Merms New Website

This commit is contained in:
Olu Amey
2021-05-19 14:36:02 +00:00
commit 685a80769d
288 changed files with 86164 additions and 0 deletions
+127
View File
@@ -0,0 +1,127 @@
#-------------------------
# Operating Specific Junk Files
#-------------------------
# OS X
.DS_Store
.AppleDouble
.LSOverride
# OS X Thumbnails
._*
# Windows image file caches
Thumbs.db
ehthumbs.db
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
# Linux
*~
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
#-------------------------
# Environment Files
#-------------------------
# These should never be under version control,
# as it poses a security risk.
.env
.vagrant
Vagrantfile
#-------------------------
# Temporary Files
#-------------------------
writable/cache/*
!writable/cache/index.html
writable/logs/*
!writable/logs/index.html
writable/session/*
!writable/session/index.html
writable/uploads/*
!writable/uploads/index.html
writable/debugbar/*
php_errors.log
#-------------------------
# User Guide Temp Files
#-------------------------
user_guide_src/build/*
user_guide_src/cilexer/build/*
user_guide_src/cilexer/dist/*
user_guide_src/cilexer/pycilexer.egg-info/*
#-------------------------
# Test Files
#-------------------------
tests/coverage*
# Don't save phpunit under version control.
phpunit
#-------------------------
# Composer
#-------------------------
vendor/
#-------------------------
# IDE / Development Files
#-------------------------
# Modules Testing
_modules/*
# phpenv local config
.php-version
# Jetbrains editors (PHPStorm, etc)
.idea/
*.iml
# Netbeans
nbproject/
build/
nbbuild/
dist/
nbdist/
nbactions.xml
nb-configuration.xml
.nb-gradle/
# Sublime Text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
*.sublime-workspace
*.sublime-project
.phpintel
/api/
# Visual Studio Code
.vscode/
/results/
/phpunit*.xml
/.phpunit.*.cache
+22
View File
@@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
Copyright (c) 2019-2021 CodeIgniter Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+63
View File
@@ -0,0 +1,63 @@
# CodeIgniter 4 Application Starter
## What is CodeIgniter?
CodeIgniter is a PHP full-stack web framework that is light, fast, flexible and secure.
More information can be found at the [official site](http://codeigniter.com).
This repository holds a composer-installable app starter.
It has been built from the
[development repository](https://github.com/codeigniter4/CodeIgniter4).
More information about the plans for version 4 can be found in [the announcement](http://forum.codeigniter.com/thread-62615.html) on the forums.
The user guide corresponding to this version of the framework can be found
[here](https://codeigniter4.github.io/userguide/).
## Installation & updates
`composer create-project codeigniter4/appstarter` then `composer update` whenever
there is a new release of the framework.
When updating, check the release notes to see if there are any changes you might need to apply
to your `app` folder. The affected files can be copied or merged from
`vendor/codeigniter4/framework/app`.
## Setup
Copy `env` to `.env` and tailor for your app, specifically the baseURL
and any database settings.
## Important Change with index.php
`index.php` is no longer in the root of the project! It has been moved inside the *public* folder,
for better security and separation of components.
This means that you should configure your web server to "point" to your project's *public* folder, and
not to the project root. A better practice would be to configure a virtual host to point there. A poor practice would be to point your web server to the project root and expect to enter *public/...*, as the rest of your logic and the
framework are exposed.
**Please** read the user guide for a better explanation of how CI4 works!
## Repository Management
We use Github issues, in our main repository, to track **BUGS** and to track approved **DEVELOPMENT** work packages.
We use our [forum](http://forum.codeigniter.com) to provide SUPPORT and to discuss
FEATURE REQUESTS.
This repository is a "distribution" one, built by our release preparation script.
Problems with it can be raised on our forum, or as issues in the main repository.
## Server Requirements
PHP version 7.3 or higher is required, with the following extensions installed:
- [intl](http://php.net/manual/en/intl.requirements.php)
- [libcurl](http://php.net/manual/en/curl.requirements.php) if you plan to use the HTTP\CURLRequest library
Additionally, make sure that the following extensions are enabled in your PHP:
- json (enabled by default - don't turn it off)
- [mbstring](http://php.net/manual/en/mbstring.installation.php)
- [mysqlnd](http://php.net/manual/en/mysqlnd.install.php)
- xml (enabled by default - don't turn it off)
+6
View File
@@ -0,0 +1,6 @@
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
+15
View File
@@ -0,0 +1,15 @@
<?php
/**
* The goal of this file is to allow developers a location
* where they can overwrite core procedural functions and
* replace them with their own. This file is loaded during
* the bootstrap process and is called during the frameworks
* execution.
*
* This can be looked at as a `master helper` file that is
* loaded early on, and may also contain additional functions
* that you'd like to use throughout your entire application
*
* @link: https://codeigniter4.github.io/CodeIgniter4/
*/
+448
View File
@@ -0,0 +1,448 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class App extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Base Site URL
* --------------------------------------------------------------------------
*
* URL to your CodeIgniter root. Typically this will be your base URL,
* WITH a trailing slash:
*
* http://example.com/
*
* If this is not set then CodeIgniter will try guess the protocol, domain
* and path to your installation. However, you should always configure this
* explicitly and never rely on auto-guessing, especially in production
* environments.
*
* @var string
*/
public $baseURL = 'http://localhost:8080/';
/**
* --------------------------------------------------------------------------
* Index File
* --------------------------------------------------------------------------
*
* Typically this will be your index.php file, unless you've renamed it to
* something else. If you are using mod_rewrite to remove the page set this
* variable so that it is blank.
*
* @var string
*/
public $indexPage = '';// 'index.php';
/**
* --------------------------------------------------------------------------
* URI PROTOCOL
* --------------------------------------------------------------------------
*
* This item determines which getServer global should be used to retrieve the
* URI string. The default setting of 'REQUEST_URI' works for most servers.
* If your links do not seem to work, try one of the other delicious flavors:
*
* 'REQUEST_URI' Uses $_SERVER['REQUEST_URI']
* 'QUERY_STRING' Uses $_SERVER['QUERY_STRING']
* 'PATH_INFO' Uses $_SERVER['PATH_INFO']
*
* WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*
* @var string
*/
public $uriProtocol = 'REQUEST_URI';
/**
* --------------------------------------------------------------------------
* Default Locale
* --------------------------------------------------------------------------
*
* The Locale roughly represents the language and location that your visitor
* is viewing the site from. It affects the language strings and other
* strings (like currency markers, numbers, etc), that your program
* should run under for this request.
*
* @var string
*/
public $defaultLocale = 'en';
/**
* --------------------------------------------------------------------------
* Negotiate Locale
* --------------------------------------------------------------------------
*
* If true, the current Request object will automatically determine the
* language to use based on the value of the Accept-Language header.
*
* If false, no automatic detection will be performed.
*
* @var boolean
*/
public $negotiateLocale = false;
/**
* --------------------------------------------------------------------------
* Supported Locales
* --------------------------------------------------------------------------
*
* If $negotiateLocale is true, this array lists the locales supported
* by the application in descending order of priority. If no match is
* found, the first locale will be used.
*
* @var string[]
*/
public $supportedLocales = ['en'];
/**
* --------------------------------------------------------------------------
* Application Timezone
* --------------------------------------------------------------------------
*
* The default timezone that will be used in your application to display
* dates with the date helper, and can be retrieved through app_timezone()
*
* @var string
*/
public $appTimezone = 'America/Chicago';
/**
* --------------------------------------------------------------------------
* Default Character Set
* --------------------------------------------------------------------------
*
* This determines which character set is used by default in various methods
* that require a character set to be provided.
*
* @see http://php.net/htmlspecialchars for a list of supported charsets.
*
* @var string
*/
public $charset = 'UTF-8';
/**
* --------------------------------------------------------------------------
* URI PROTOCOL
* --------------------------------------------------------------------------
*
* If true, this will force every request made to this application to be
* made via a secure connection (HTTPS). If the incoming request is not
* secure, the user will be redirected to a secure version of the page
* and the HTTP Strict Transport Security header will be set.
*
* @var boolean
*/
public $forceGlobalSecureRequests = false;
/**
* --------------------------------------------------------------------------
* Session Driver
* --------------------------------------------------------------------------
*
* The session storage driver to use:
* - `CodeIgniter\Session\Handlers\FileHandler`
* - `CodeIgniter\Session\Handlers\DatabaseHandler`
* - `CodeIgniter\Session\Handlers\MemcachedHandler`
* - `CodeIgniter\Session\Handlers\RedisHandler`
*
* @var string
*/
public $sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler';
/**
* --------------------------------------------------------------------------
* Session Cookie Name
* --------------------------------------------------------------------------
*
* The session cookie name, must contain only [0-9a-z_-] characters
*
* @var string
*/
public $sessionCookieName = 'ci_session';
/**
* --------------------------------------------------------------------------
* Session Expiration
* --------------------------------------------------------------------------
*
* The number of SECONDS you want the session to last.
* Setting to 0 (zero) means expire when the browser is closed.
*
* @var integer
*/
public $sessionExpiration = 7200;
/**
* --------------------------------------------------------------------------
* Session Save Path
* --------------------------------------------------------------------------
*
* The location to save sessions to and is driver dependent.
*
* For the 'files' driver, it's a path to a writable directory.
* WARNING: Only absolute paths are supported!
*
* For the 'database' driver, it's a table name.
* Please read up the manual for the format with other session drivers.
*
* IMPORTANT: You are REQUIRED to set a valid save path!
*
* @var string
*/
public $sessionSavePath = WRITEPATH . 'session';
/**
* --------------------------------------------------------------------------
* Session Match IP
* --------------------------------------------------------------------------
*
* Whether to match the user's IP address when reading the session data.
*
* WARNING: If you're using the database driver, don't forget to update
* your session table's PRIMARY KEY when changing this setting.
*
* @var boolean
*/
public $sessionMatchIP = false;
/**
* --------------------------------------------------------------------------
* Session Time to Update
* --------------------------------------------------------------------------
*
* How many seconds between CI regenerating the session ID.
*
* @var integer
*/
public $sessionTimeToUpdate = 300;
/**
* --------------------------------------------------------------------------
* Session Regenerate Destroy
* --------------------------------------------------------------------------
*
* Whether to destroy session data associated with the old session ID
* when auto-regenerating the session ID. When set to FALSE, the data
* will be later deleted by the garbage collector.
*
* @var boolean
*/
public $sessionRegenerateDestroy = false;
/**
* --------------------------------------------------------------------------
* Cookie Prefix
* --------------------------------------------------------------------------
*
* Set a cookie name prefix if you need to avoid collisions.
*
* @var string
*/
public $cookiePrefix = '';
/**
* --------------------------------------------------------------------------
* Cookie Domain
* --------------------------------------------------------------------------
*
* Set to `.your-domain.com` for site-wide cookies.
*
* @var string
*/
public $cookieDomain = '';
/**
* --------------------------------------------------------------------------
* Cookie Path
* --------------------------------------------------------------------------
*
* Typically will be a forward slash.
*
* @var string
*/
public $cookiePath = '/';
/**
* --------------------------------------------------------------------------
* Cookie Secure
* --------------------------------------------------------------------------
*
* Cookie will only be set if a secure HTTPS connection exists.
*
* @var boolean
*/
public $cookieSecure = false;
/**
* --------------------------------------------------------------------------
* Cookie HTTP Only
* --------------------------------------------------------------------------
*
* Cookie will only be accessible via HTTP(S) (no JavaScript).
*
* @var boolean
*/
public $cookieHTTPOnly = false;
/**
* --------------------------------------------------------------------------
* Cookie SameSite
* --------------------------------------------------------------------------
*
* Configure cookie SameSite setting. Allowed values are:
* - None
* - Lax
* - Strict
* - ''
*
* Defaults to `Lax` for compatibility with modern browsers. Setting `''`
* (empty string) means no SameSite attribute will be set on cookies. If
* set to `None`, `$cookieSecure` must also be set.
*
* @var string 'Lax'|'None'|'Strict'
*/
public $cookieSameSite = 'Lax';
/**
* --------------------------------------------------------------------------
* Reverse Proxy IPs
* --------------------------------------------------------------------------
*
* If your server is behind a reverse proxy, you must whitelist the proxy
* IP addresses from which CodeIgniter should trust headers such as
* HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify
* the visitor's IP address.
*
* You can use both an array or a comma-separated list of proxy addresses,
* as well as specifying whole subnets. Here are a few examples:
*
* Comma-separated: '10.0.1.200,192.168.5.0/24'
* Array: ['10.0.1.200', '192.168.5.0/24']
*
* @var string|string[]
*/
public $proxyIPs = '';
/**
* --------------------------------------------------------------------------
* CSRF Token Name
* --------------------------------------------------------------------------
*
* The token name.
*
* @deprecated Use `Config\Security` $tokenName property instead of using this property.
*
* @var string
*/
public $CSRFTokenName = 'csrf_test_name';
/**
* --------------------------------------------------------------------------
* CSRF Header Name
* --------------------------------------------------------------------------
*
* The header name.
*
* @deprecated Use `Config\Security` $headerName property instead of using this property.
*
* @var string
*/
public $CSRFHeaderName = 'X-CSRF-TOKEN';
/**
* --------------------------------------------------------------------------
* CSRF Cookie Name
* --------------------------------------------------------------------------
*
* The cookie name.
*
* @deprecated Use `Config\Security` $cookieName property instead of using this property.
*
* @var string
*/
public $CSRFCookieName = 'csrf_cookie_name';
/**
* --------------------------------------------------------------------------
* CSRF Expire
* --------------------------------------------------------------------------
*
* The number in seconds the token should expire.
*
* @deprecated Use `Config\Security` $expire property instead of using this property.
*
* @var integer
*/
public $CSRFExpire = 7200;
/**
* --------------------------------------------------------------------------
* CSRF Regenerate
* --------------------------------------------------------------------------
*
* Regenerate token on every submission?
*
* @deprecated Use `Config\Security` $regenerate property instead of using this property.
*
* @var boolean
*/
public $CSRFRegenerate = true;
/**
* --------------------------------------------------------------------------
* CSRF Redirect
* --------------------------------------------------------------------------
*
* Redirect to previous page with error on failure?
*
* @deprecated Use `Config\Security` $redirect property instead of using this property.
*
* @var boolean
*/
public $CSRFRedirect = true;
/**
* --------------------------------------------------------------------------
* CSRF SameSite
* --------------------------------------------------------------------------
*
* Setting for CSRF SameSite cookie token. Allowed values are:
* - None
* - Lax
* - Strict
* - ''
*
* Defaults to `Lax` as recommended in this link:
*
* @see https://portswigger.net/web-security/csrf/samesite-cookies
*
* @deprecated Use `Config\Security` $samesite property instead of using this property.
*
* @var string
*/
public $CSRFSameSite = 'Lax';
/**
* --------------------------------------------------------------------------
* Content Security Policy
* --------------------------------------------------------------------------
*
* Enables the Response's Content Secure Policy to restrict the sources that
* can be used for images, scripts, CSS files, audio, video, etc. If enabled,
* the Response object will populate default values for the policy from the
* `ContentSecurityPolicy.php` file. Controllers can always add to those
* restrictions at run time.
*
* For a better understanding of CSP, see these documents:
*
* @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/
* @see http://www.w3.org/TR/CSP/
*
* @var boolean
*/
public $CSPEnabled = false;
}
+66
View File
@@ -0,0 +1,66 @@
<?php
namespace Config;
use CodeIgniter\Config\AutoloadConfig;
/**
* -------------------------------------------------------------------
* AUTO-LOADER
* -------------------------------------------------------------------
*
* This file defines the namespaces and class maps so the Autoloader
* can find the files as needed.
*
* NOTE: If you use an identical key in $psr4 or $classmap, then
* the values in this file will overwrite the framework's values.
*/
class Autoload extends AutoloadConfig
{
/**
* -------------------------------------------------------------------
* Namespaces
* -------------------------------------------------------------------
* This maps the locations of any namespaces in your application to
* their location on the file system. These are used by the autoloader
* to locate files the first time they have been instantiated.
*
* The '/app' and '/system' directories are already mapped for you.
* you may change the name of the 'App' namespace if you wish,
* but this should be done prior to creating any namespaced classes,
* else you will need to modify all of those classes for this to work.
*
* Prototype:
*
* $psr4 = [
* 'CodeIgniter' => SYSTEMPATH,
* 'App' => APPPATH
* ];
*
* @var array<string, string>
*/
public $psr4 = [
APP_NAMESPACE => APPPATH, // For custom app namespace
'Config' => APPPATH . 'Config',
];
/**
* -------------------------------------------------------------------
* Class Map
* -------------------------------------------------------------------
* The class map provides a map of class names and their exact
* location on the drive. Classes loaded in this manner will have
* slightly faster performance because they will not have to be
* searched for within one or more directories as they would if they
* were being autoloaded through a namespace.
*
* Prototype:
*
* $classmap = [
* 'MyClass' => '/path/to/class/file.php'
* ];
*
* @var array<string, string>
*/
public $classmap = [];
}
+32
View File
@@ -0,0 +1,32 @@
<?php
/*
|--------------------------------------------------------------------------
| ERROR DISPLAY
|--------------------------------------------------------------------------
| In development, we want to show as many errors as possible to help
| make sure they don't make it to production. And save us hours of
| painful debugging.
*/
error_reporting(-1);
ini_set('display_errors', '1');
/*
|--------------------------------------------------------------------------
| DEBUG BACKTRACES
|--------------------------------------------------------------------------
| If true, this constant will tell the error screens to display debug
| backtraces along with the other error information. If you would
| prefer to not see this, set this value to false.
*/
defined('SHOW_DEBUG_BACKTRACE') || define('SHOW_DEBUG_BACKTRACE', true);
/*
|--------------------------------------------------------------------------
| DEBUG MODE
|--------------------------------------------------------------------------
| Debug mode is an experimental flag that can allow changes throughout
| the system. This will control whether Kint is loaded, and a few other
| items. It can always be used within your own application too.
*/
defined('CI_DEBUG') || define('CI_DEBUG', true);
+21
View File
@@ -0,0 +1,21 @@
<?php
/*
|--------------------------------------------------------------------------
| ERROR DISPLAY
|--------------------------------------------------------------------------
| Don't show ANY in production environments. Instead, let the system catch
| it and display a generic error message.
*/
ini_set('display_errors', '0');
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
/*
|--------------------------------------------------------------------------
| DEBUG MODE
|--------------------------------------------------------------------------
| Debug mode is an experimental flag that can allow changes throughout
| the system. It's not widely used currently, and may not survive
| release of the framework.
*/
defined('CI_DEBUG') || define('CI_DEBUG', false);
+32
View File
@@ -0,0 +1,32 @@
<?php
/*
|--------------------------------------------------------------------------
| ERROR DISPLAY
|--------------------------------------------------------------------------
| In development, we want to show as many errors as possible to help
| make sure they don't make it to production. And save us hours of
| painful debugging.
*/
error_reporting(-1);
ini_set('display_errors', '1');
/*
|--------------------------------------------------------------------------
| DEBUG BACKTRACES
|--------------------------------------------------------------------------
| If true, this constant will tell the error screens to display debug
| backtraces along with the other error information. If you would
| prefer to not see this, set this value to false.
*/
defined('SHOW_DEBUG_BACKTRACE') || define('SHOW_DEBUG_BACKTRACE', true);
/*
|--------------------------------------------------------------------------
| DEBUG MODE
|--------------------------------------------------------------------------
| Debug mode is an experimental flag that can allow changes throughout
| the system. It's not widely used currently, and may not survive
| release of the framework.
*/
defined('CI_DEBUG') || define('CI_DEBUG', true);
+152
View File
@@ -0,0 +1,152 @@
<?php
namespace Config;
use CodeIgniter\Cache\Handlers\DummyHandler;
use CodeIgniter\Cache\Handlers\FileHandler;
use CodeIgniter\Cache\Handlers\MemcachedHandler;
use CodeIgniter\Cache\Handlers\PredisHandler;
use CodeIgniter\Cache\Handlers\RedisHandler;
use CodeIgniter\Cache\Handlers\WincacheHandler;
use CodeIgniter\Config\BaseConfig;
class Cache extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Primary Handler
* --------------------------------------------------------------------------
*
* The name of the preferred handler that should be used. If for some reason
* it is not available, the $backupHandler will be used in its place.
*
* @var string
*/
public $handler = 'file';
/**
* --------------------------------------------------------------------------
* Backup Handler
* --------------------------------------------------------------------------
*
* The name of the handler that will be used in case the first one is
* unreachable. Often, 'file' is used here since the filesystem is
* always available, though that's not always practical for the app.
*
* @var string
*/
public $backupHandler = 'dummy';
/**
* --------------------------------------------------------------------------
* Cache Directory Path
* --------------------------------------------------------------------------
*
* The path to where cache files should be stored, if using a file-based
* system.
*
* @var string
*
* @deprecated Use the driver-specific variant under $file
*/
public $storePath = WRITEPATH . 'cache/';
/**
* --------------------------------------------------------------------------
* Cache Include Query String
* --------------------------------------------------------------------------
*
* Whether to take the URL query string into consideration when generating
* output cache files. Valid options are:
*
* false = Disabled
* true = Enabled, take all query parameters into account.
* Please be aware that this may result in numerous cache
* files generated for the same page over and over again.
* array('q') = Enabled, but only take into account the specified list
* of query parameters.
*
* @var boolean|string[]
*/
public $cacheQueryString = false;
/**
* --------------------------------------------------------------------------
* Key Prefix
* --------------------------------------------------------------------------
*
* This string is added to all cache item names to help avoid collisions
* if you run multiple applications with the same cache engine.
*
* @var string
*/
public $prefix = '';
/**
* --------------------------------------------------------------------------
* File settings
* --------------------------------------------------------------------------
* Your file storage preferences can be specified below, if you are using
* the File driver.
*
* @var array<string, string|int|null>
*/
public $file = [
'storePath' => WRITEPATH . 'cache/',
'mode' => 0640,
];
/**
* -------------------------------------------------------------------------
* Memcached settings
* -------------------------------------------------------------------------
* Your Memcached servers can be specified below, if you are using
* the Memcached drivers.
*
* @see https://codeigniter.com/user_guide/libraries/caching.html#memcached
*
* @var array<string, string|int|boolean>
*/
public $memcached = [
'host' => '127.0.0.1',
'port' => 11211,
'weight' => 1,
'raw' => false,
];
/**
* -------------------------------------------------------------------------
* Redis settings
* -------------------------------------------------------------------------
* Your Redis server can be specified below, if you are using
* the Redis or Predis drivers.
*
* @var array<string, string|int|null>
*/
public $redis = [
'host' => '127.0.0.1',
'password' => null,
'port' => 6379,
'timeout' => 0,
'database' => 0,
];
/**
* --------------------------------------------------------------------------
* Available Cache Handlers
* --------------------------------------------------------------------------
*
* This is an array of cache engine alias' and class names. Only engines
* that are listed here are allowed to be used.
*
* @var array<string, string>
*/
public $validHandlers = [
'dummy' => DummyHandler::class,
'file' => FileHandler::class,
'memcached' => MemcachedHandler::class,
'predis' => PredisHandler::class,
'redis' => RedisHandler::class,
'wincache' => WincacheHandler::class,
];
}
+96
View File
@@ -0,0 +1,96 @@
<?php
/*
| --------------------------------------------------------------------
| App Namespace
| --------------------------------------------------------------------
|
| This defines the default Namespace that is used throughout
| CodeIgniter to refer to the Application directory. Change
| this constant to change the namespace that all application
| classes should use.
|
| NOTE: changing this will require manually modifying the
| existing namespaces of App\* namespaced-classes.
*/
defined('APP_NAMESPACE') || define('APP_NAMESPACE', 'App');
/*
| --------------------------------------------------------------------------
| Composer Path
| --------------------------------------------------------------------------
|
| The path that Composer's autoload file is expected to live. By default,
| the vendor folder is in the Root directory, but you can customize that here.
*/
defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . 'vendor/autoload.php');
/*
|--------------------------------------------------------------------------
| Timing Constants
|--------------------------------------------------------------------------
|
| Provide simple ways to work with the myriad of PHP functions that
| require information to be in seconds.
*/
defined('SECOND') || define('SECOND', 1);
defined('MINUTE') || define('MINUTE', 60);
defined('HOUR') || define('HOUR', 3600);
defined('DAY') || define('DAY', 86400);
defined('WEEK') || define('WEEK', 604800);
defined('MONTH') || define('MONTH', 2592000);
defined('YEAR') || define('YEAR', 31536000);
defined('DECADE') || define('DECADE', 315360000);
/*
| --------------------------------------------------------------------------
| Exit Status Codes
| --------------------------------------------------------------------------
|
| Used to indicate the conditions under which the script is exit()ing.
| While there is no universal standard for error codes, there are some
| broad conventions. Three such conventions are mentioned below, for
| those who wish to make use of them. The CodeIgniter defaults were
| chosen for the least overlap with these conventions, while still
| leaving room for others to be defined in future versions and user
| applications.
|
| The three main conventions used for determining exit status codes
| are as follows:
|
| Standard C/C++ Library (stdlibc):
| http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
| (This link also contains other GNU-specific conventions)
| BSD sysexits.h:
| http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
| Bash scripting:
| http://tldp.org/LDP/abs/html/exitcodes.html
|
*/
defined('EXIT_SUCCESS') || define('EXIT_SUCCESS', 0); // no errors
defined('EXIT_ERROR') || define('EXIT_ERROR', 1); // generic error
defined('EXIT_CONFIG') || define('EXIT_CONFIG', 3); // configuration error
defined('EXIT_UNKNOWN_FILE') || define('EXIT_UNKNOWN_FILE', 4); // file not found
defined('EXIT_UNKNOWN_CLASS') || define('EXIT_UNKNOWN_CLASS', 5); // unknown class
defined('EXIT_UNKNOWN_METHOD') || define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
defined('EXIT_USER_INPUT') || define('EXIT_USER_INPUT', 7); // invalid user input
defined('EXIT_DATABASE') || define('EXIT_DATABASE', 8); // database error
defined('EXIT__AUTO_MIN') || define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
defined('EXIT__AUTO_MAX') || define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
include 'mermsemr_faq.php';
include 'mermsemr_myfit_text.php';
include 'mermsemr_provider_text.php';
include 'mermsemr_country.php';
define('MERMS_FAQ' ,$merms_faq);
define('MERMS_COUNTRIES', $merms_countries);
define('PROUCT_BRAND_NAME', 'MERMS');
define('MERMS_FACEBOOK', 'https://www.facebook.com/Mermsemr-381924675740341');
define('MERMS_TWITTER','https://twitter.com/mermsemr');
define('MERMS_ADDRESS_USA','USA: 32 Oatgrass Dr, Grayson GA 30017');
define('MERMS_PHONE_USA','(404) 855 7966'); //
define('MERMS_ADDRESS_LAGOS','LAGOS: 8A Saka Tinubu Street, Victoria Island, Lagos');
define('MERMS_SUPPORT_EMAIL','support@mermsemr.com');
define('MERMS_BLOG_SITE', 'https://blog.mermsemr.com');
+159
View File
@@ -0,0 +1,159 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* Stores the default settings for the ContentSecurityPolicy, if you
* choose to use it. The values here will be read in and set as defaults
* for the site. If needed, they can be overridden on a page-by-page basis.
*
* Suggested reference for explanations:
*
* @see https://www.html5rocks.com/en/tutorials/security/content-security-policy/
*/
class ContentSecurityPolicy extends BaseConfig
{
//-------------------------------------------------------------------------
// Broadbrush CSP management
//-------------------------------------------------------------------------
/**
* Default CSP report context
*
* @var boolean
*/
public $reportOnly = false;
/**
* Specifies a URL where a browser will send reports
* when a content security policy is violated.
*
* @var string|null
*/
public $reportURI = null;
/**
* Instructs user agents to rewrite URL schemes, changing
* HTTP to HTTPS. This directive is for websites with
* large numbers of old URLs that need to be rewritten.
*
* @var boolean
*/
public $upgradeInsecureRequests = false;
//-------------------------------------------------------------------------
// Sources allowed
// Note: once you set a policy to 'none', it cannot be further restricted
//-------------------------------------------------------------------------
/**
* Will default to self if not overridden
*
* @var string|string[]|null
*/
public $defaultSrc = null;
/**
* Lists allowed scripts' URLs.
*
* @var string|string[]
*/
public $scriptSrc = 'self';
/**
* Lists allowed stylesheets' URLs.
*
* @var string|string[]
*/
public $styleSrc = 'self';
/**
* Defines the origins from which images can be loaded.
*
* @var string|string[]
*/
public $imageSrc = 'self';
/**
* Restricts the URLs that can appear in a page's `<base>` element.
*
* Will default to self if not overridden
*
* @var string|string[]|null
*/
public $baseURI = null;
/**
* Lists the URLs for workers and embedded frame contents
*
* @var string|string[]
*/
public $childSrc = 'self';
/**
* Limits the origins that you can connect to (via XHR,
* WebSockets, and EventSource).
*
* @var string|string[]
*/
public $connectSrc = 'self';
/**
* Specifies the origins that can serve web fonts.
*
* @var string|string[]
*/
public $fontSrc = null;
/**
* Lists valid endpoints for submission from `<form>` tags.
*
* @var string|string[]
*/
public $formAction = 'self';
/**
* Specifies the sources that can embed the current page.
* This directive applies to `<frame>`, `<iframe>`, `<embed>`,
* and `<applet>` tags. This directive can't be used in
* `<meta>` tags and applies only to non-HTML resources.
*
* @var string|string[]|null
*/
public $frameAncestors = null;
/**
* Restricts the origins allowed to deliver video and audio.
*
* @var string|string[]|null
*/
public $mediaSrc = null;
/**
* Allows control over Flash and other plugins.
*
* @var string|string[]
*/
public $objectSrc = 'self';
/**
* @var string|string[]|null
*/
public $manifestSrc = null;
/**
* Limits the kinds of plugins a page may invoke.
*
* @var string|string[]|null
*/
public $pluginTypes = null;
/**
* List of actions allowed.
*
* @var string|string[]|null
*/
public $sandbox = null;
}
+96
View File
@@ -0,0 +1,96 @@
<?php
namespace Config;
use CodeIgniter\Database\Config;
/**
* Database Configuration
*/
class Database extends Config
{
/**
* The directory that holds the Migrations
* and Seeds directories.
*
* @var string
*/
public $filesPath = APPPATH . 'Database' . DIRECTORY_SEPARATOR;
/**
* Lets you choose which connection group to
* use if no other is specified.
*
* @var string
*/
public $defaultGroup = 'default';
/**
* The default database connection.
*
* @var array
*/
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
/**
* This database connection is used when
* running PHPUnit database tests.
*
* @var array
*/
public $tests = [
'DSN' => '',
'hostname' => '127.0.0.1',
'username' => '',
'password' => '',
'database' => ':memory:',
'DBDriver' => 'SQLite3',
'DBPrefix' => 'db_', // Needed to ensure we're working correctly with prefixes live. DO NOT REMOVE FOR CI DEVS
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
//--------------------------------------------------------------------
public function __construct()
{
parent::__construct();
// Ensure that we always set the database group to 'tests' if
// we are currently running an automated test suite, so that
// we don't overwrite live data on accident.
if (ENVIRONMENT === 'testing')
{
$this->defaultGroup = 'tests';
}
}
//--------------------------------------------------------------------
}
+33
View File
@@ -0,0 +1,33 @@
<?php
namespace Config;
class DocTypes
{
/**
* List of valid document types.
*
* @var array<string, string>
*/
public $list = [
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
'xhtml-basic11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
'html5' => '<!DOCTYPE html>',
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
'mathml1' => '<!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">',
'mathml2' => '<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">',
'svg10' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">',
'svg11' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',
'svg11-basic' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">',
'svg11-tiny' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">',
'xhtml-math-svg-xh' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-math-svg-sh' => '<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-rdfa-1' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">',
'xhtml-rdfa-2' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">',
];
}
+171
View File
@@ -0,0 +1,171 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Email extends BaseConfig
{
/**
* @var string
*/
public $fromEmail;
/**
* @var string
*/
public $fromName;
/**
* @var string
*/
public $recipients;
/**
* The "user agent"
*
* @var string
*/
public $userAgent = 'CodeIgniter';
/**
* The mail sending protocol: mail, sendmail, smtp
*
* @var string
*/
public $protocol = 'mail';
/**
* The server path to Sendmail.
*
* @var string
*/
public $mailPath = '/usr/sbin/sendmail';
/**
* SMTP Server Address
*
* @var string
*/
public $SMTPHost;
/**
* SMTP Username
*
* @var string
*/
public $SMTPUser;
/**
* SMTP Password
*
* @var string
*/
public $SMTPPass;
/**
* SMTP Port
*
* @var integer
*/
public $SMTPPort = 25;
/**
* SMTP Timeout (in seconds)
*
* @var integer
*/
public $SMTPTimeout = 5;
/**
* Enable persistent SMTP connections
*
* @var boolean
*/
public $SMTPKeepAlive = false;
/**
* SMTP Encryption. Either tls or ssl
*
* @var string
*/
public $SMTPCrypto = 'tls';
/**
* Enable word-wrap
*
* @var boolean
*/
public $wordWrap = true;
/**
* Character count to wrap at
*
* @var integer
*/
public $wrapChars = 76;
/**
* Type of mail, either 'text' or 'html'
*
* @var string
*/
public $mailType = 'text';
/**
* Character set (utf-8, iso-8859-1, etc.)
*
* @var string
*/
public $charset = 'UTF-8';
/**
* Whether to validate the email address
*
* @var boolean
*/
public $validate = false;
/**
* Email Priority. 1 = highest. 5 = lowest. 3 = normal
*
* @var integer
*/
public $priority = 3;
/**
* Newline character. (Use “\r\n” to comply with RFC 822)
*
* @var string
*/
public $CRLF = "\r\n";
/**
* Newline character. (Use “\r\n” to comply with RFC 822)
*
* @var string
*/
public $newline = "\r\n";
/**
* Enable BCC Batch Mode.
*
* @var boolean
*/
public $BCCBatchMode = false;
/**
* Number of emails in each BCC batch
*
* @var integer
*/
public $BCCBatchSize = 200;
/**
* Enable notify message from server
*
* @var boolean
*/
public $DSN = false;
}
+67
View File
@@ -0,0 +1,67 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* Encryption configuration.
*
* These are the settings used for encryption, if you don't pass a parameter
* array to the encrypter for creation/initialization.
*/
class Encryption extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Encryption Key Starter
* --------------------------------------------------------------------------
*
* If you use the Encryption class you must set an encryption key (seed).
* You need to ensure it is long enough for the cipher and mode you plan to use.
* See the user guide for more info.
*
* @var string
*/
public $key = '';
/**
* --------------------------------------------------------------------------
* Encryption Driver to Use
* --------------------------------------------------------------------------
*
* One of the supported encryption drivers.
*
* Available drivers:
* - OpenSSL
* - Sodium
*
* @var string
*/
public $driver = 'OpenSSL';
/**
* --------------------------------------------------------------------------
* SodiumHandler's Padding Length in Bytes
* --------------------------------------------------------------------------
*
* This is the number of bytes that will be padded to the plaintext message
* before it is encrypted. This value should be greater than zero.
*
* See the user guide for more information on padding.
*
* @var integer
*/
public $blockSize = 16;
/**
* --------------------------------------------------------------------------
* Encryption digest
* --------------------------------------------------------------------------
*
* HMAC digest to use, e.g. 'SHA512' or 'SHA256'. Default value is 'SHA512'.
*
* @var string
*/
public $digest = 'SHA512';
}
+54
View File
@@ -0,0 +1,54 @@
<?php
namespace Config;
use CodeIgniter\Events\Events;
use CodeIgniter\Exceptions\FrameworkException;
/*
* --------------------------------------------------------------------
* Application Events
* --------------------------------------------------------------------
* Events allow you to tap into the execution of the program without
* modifying or extending core files. This file provides a central
* location to define your events, though they can always be added
* at run-time, also, if needed.
*
* You create code that can execute by subscribing to events with
* the 'on()' method. This accepts any form of callable, including
* Closures, that will be executed when the event is triggered.
*
* Example:
* Events::on('create', [$myInstance, 'myMethod']);
*/
Events::on('pre_system', function () {
if (ENVIRONMENT !== 'testing')
{
if (ini_get('zlib.output_compression'))
{
throw FrameworkException::forEnabledZlibOutputCompression();
}
while (ob_get_level() > 0)
{
ob_end_flush();
}
ob_start(function ($buffer) {
return $buffer;
});
}
/*
* --------------------------------------------------------------------
* Debug Toolbar Listeners.
* --------------------------------------------------------------------
* If you delete, they will no longer be collected.
*/
if (CI_DEBUG)
{
Events::on('DBQuery', 'CodeIgniter\Debug\Toolbar\Collectors\Database::collect');
Services::toolbar()->respond();
}
});
+48
View File
@@ -0,0 +1,48 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* Setup how the exception handler works.
*/
class Exceptions extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* LOG EXCEPTIONS?
* --------------------------------------------------------------------------
* If true, then exceptions will be logged
* through Services::Log.
*
* Default: true
*
* @var boolean
*/
public $log = true;
/**
* --------------------------------------------------------------------------
* DO NOT LOG STATUS CODES
* --------------------------------------------------------------------------
* Any status codes here will NOT be logged if logging is turned on.
* By default, only 404 (Page Not Found) exceptions are ignored.
*
* @var array
*/
public $ignoreCodes = [404];
/**
* --------------------------------------------------------------------------
* Error Views Path
* --------------------------------------------------------------------------
* This is the path to the directory that contains the 'cli' and 'html'
* directories that hold the views used to generate errors.
*
* Default: APPPATH.'Views/errors'
*
* @var string
*/
public $errorViewPath = APPPATH . 'Views/errors';
}
+62
View File
@@ -0,0 +1,62 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Filters\CSRF;
use CodeIgniter\Filters\DebugToolbar;
use CodeIgniter\Filters\Honeypot;
class Filters extends BaseConfig
{
/**
* Configures aliases for Filter classes to
* make reading things nicer and simpler.
*
* @var array
*/
public $aliases = [
'csrf' => CSRF::class,
'toolbar' => DebugToolbar::class,
'honeypot' => Honeypot::class,
];
/**
* List of filter aliases that are always
* applied before and after every request.
*
* @var array
*/
public $globals = [
'before' => [
// 'honeypot',
// 'csrf',
],
'after' => [
'toolbar',
// 'honeypot',
],
];
/**
* List of filter aliases that works on a
* particular HTTP method (GET, POST, etc.).
*
* Example:
* 'post' => ['csrf', 'throttle']
*
* @var array
*/
public $methods = [];
/**
* List of filter aliases that should run on any
* before or after URI patterns.
*
* Example:
* 'isLoggedIn' => ['before' => ['account/*', 'profiles/*']]
*
* @var array
*/
public $filters = [];
}
+9
View File
@@ -0,0 +1,9 @@
<?php
namespace Config;
use CodeIgniter\Config\ForeignCharacters as BaseForeignCharacters;
class ForeignCharacters extends BaseForeignCharacters
{
}
+79
View File
@@ -0,0 +1,79 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Format\FormatterInterface;
class Format extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Available Response Formats
* --------------------------------------------------------------------------
*
* When you perform content negotiation with the request, these are the
* available formats that your application supports. This is currently
* only used with the API\ResponseTrait. A valid Formatter must exist
* for the specified format.
*
* These formats are only checked when the data passed to the respond()
* method is an array.
*
* @var string[]
*/
public $supportedResponseFormats = [
'application/json',
'application/xml', // machine-readable XML
'text/xml', // human-readable XML
];
/**
* --------------------------------------------------------------------------
* Formatters
* --------------------------------------------------------------------------
*
* Lists the class to use to format responses with of a particular type.
* For each mime type, list the class that should be used. Formatters
* can be retrieved through the getFormatter() method.
*
* @var array<string, string>
*/
public $formatters = [
'application/json' => 'CodeIgniter\Format\JSONFormatter',
'application/xml' => 'CodeIgniter\Format\XMLFormatter',
'text/xml' => 'CodeIgniter\Format\XMLFormatter',
];
/**
* --------------------------------------------------------------------------
* Formatters Options
* --------------------------------------------------------------------------
*
* Additional Options to adjust default formatters behaviour.
* For each mime type, list the additional options that should be used.
*
* @var array<string, int>
*/
public $formatterOptions = [
'application/json' => JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES,
'application/xml' => 0,
'text/xml' => 0,
];
//--------------------------------------------------------------------
/**
* A Factory method to return the appropriate formatter for the given mime type.
*
* @param string $mime
*
* @return FormatterInterface
*
* @deprecated This is an alias of `\CodeIgniter\Format\Format::getFormatter`. Use that instead.
*/
public function getFormatter(string $mime)
{
return Services::format()->getFormatter($mime);
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Generators extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Generator Commands' Views
* --------------------------------------------------------------------------
*
* This array defines the mapping of generator commands to the view files
* they are using. If you need to customize them for your own, copy these
* view files in your own folder and indicate the location here.
*
* You will notice that the views have special placeholders enclosed in
* curly braces `{...}`. These placeholders are used internally by the
* generator commands in processing replacements, thus you are warned
* not to delete them or modify the names. If you will do so, you may
* end up disrupting the scaffolding process and throw errors.
*
* YOU HAVE BEEN WARNED!
*
* @var array<string, string>
*/
public $views = [
'make:command' => 'CodeIgniter\Commands\Generators\Views\command.tpl.php',
'make:controller' => 'CodeIgniter\Commands\Generators\Views\controller.tpl.php',
'make:entity' => 'CodeIgniter\Commands\Generators\Views\entity.tpl.php',
'make:filter' => 'CodeIgniter\Commands\Generators\Views\filter.tpl.php',
'make:migration' => 'CodeIgniter\Commands\Generators\Views\migration.tpl.php',
'make:model' => 'CodeIgniter\Commands\Generators\Views\model.tpl.php',
'make:seeder' => 'CodeIgniter\Commands\Generators\Views\seeder.tpl.php',
'make:validation' => 'CodeIgniter\Commands\Generators\Views\validation.tpl.php',
'session:migration' => 'CodeIgniter\Commands\Generators\Views\migration.tpl.php',
];
}
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Honeypot extends BaseConfig
{
/**
* Makes Honeypot visible or not to human
*
* @var boolean
*/
public $hidden = true;
/**
* Honeypot Label Content
*
* @var string
*/
public $label = 'Fill This Field';
/**
* Honeypot Field Name
*
* @var string
*/
public $name = 'honeypot';
/**
* Honeypot HTML Template
*
* @var string
*/
public $template = '<label>{label}</label><input type="text" name="{name}" value=""/>';
/**
* Honeypot container
*
* @var string
*/
public $container = '<div style="display:none">{template}</div>';
}
+35
View File
@@ -0,0 +1,35 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Images\Handlers\GDHandler;
use CodeIgniter\Images\Handlers\ImageMagickHandler;
class Images extends BaseConfig
{
/**
* Default handler used if no other handler is specified.
*
* @var string
*/
public $defaultHandler = 'gd';
/**
* The path to the image library.
* Required for ImageMagick, GraphicsMagick, or NetPBM.
*
* @var string
*/
public $libraryPath = '/usr/local/bin/convert';
/**
* The available handler classes.
*
* @var array<string, string>
*/
public $handlers = [
'gd' => GDHandler::class,
'imagick' => ImageMagickHandler::class,
];
}
+61
View File
@@ -0,0 +1,61 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use Kint\Renderer\Renderer;
/**
* --------------------------------------------------------------------------
* Kint
* --------------------------------------------------------------------------
*
* We use Kint's `RichRenderer` and `CLIRenderer`. This area contains options
* that you can set to customize how Kint works for you.
*
* @see https://kint-php.github.io/kint/ for details on these settings.
*/
class Kint extends BaseConfig
{
/*
|--------------------------------------------------------------------------
| Global Settings
|--------------------------------------------------------------------------
*/
public $plugins = null;
public $maxDepth = 6;
public $displayCalledFrom = true;
public $expanded = false;
/*
|--------------------------------------------------------------------------
| RichRenderer Settings
|--------------------------------------------------------------------------
*/
public $richTheme = 'aante-light.css';
public $richFolder = false;
public $richSort = Renderer::SORT_FULL;
public $richObjectPlugins = null;
public $richTabPlugins = null;
/*
|--------------------------------------------------------------------------
| CLI Settings
|--------------------------------------------------------------------------
*/
public $cliColors = true;
public $cliForceUTF8 = false;
public $cliDetectWidth = true;
public $cliMinWidth = 40;
}
+140
View File
@@ -0,0 +1,140 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Logger extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Error Logging Threshold
* --------------------------------------------------------------------------
*
* You can enable error logging by setting a threshold over zero. The
* threshold determines what gets logged. Any values below or equal to the
* threshold will be logged.
*
* Threshold options are:
*
* - 0 = Disables logging, Error logging TURNED OFF
* - 1 = Emergency Messages - System is unusable
* - 2 = Alert Messages - Action Must Be Taken Immediately
* - 3 = Critical Messages - Application component unavailable, unexpected exception.
* - 4 = Runtime Errors - Don't need immediate action, but should be monitored.
* - 5 = Warnings - Exceptional occurrences that are not errors.
* - 6 = Notices - Normal but significant events.
* - 7 = Info - Interesting events, like user logging in, etc.
* - 8 = Debug - Detailed debug information.
* - 9 = All Messages
*
* You can also pass an array with threshold levels to show individual error types
*
* array(1, 2, 3, 8) = Emergency, Alert, Critical, and Debug messages
*
* For a live site you'll usually enable Critical or higher (3) to be logged otherwise
* your log files will fill up very fast.
*
* @var integer|array
*/
public $threshold = 4;
/**
* --------------------------------------------------------------------------
* Date Format for Logs
* --------------------------------------------------------------------------
*
* Each item that is logged has an associated date. You can use PHP date
* codes to set your own date formatting
*
* @var string
*/
public $dateFormat = 'Y-m-d H:i:s';
/**
* --------------------------------------------------------------------------
* Log Handlers
* --------------------------------------------------------------------------
*
* The logging system supports multiple actions to be taken when something
* is logged. This is done by allowing for multiple Handlers, special classes
* designed to write the log to their chosen destinations, whether that is
* a file on the getServer, a cloud-based service, or even taking actions such
* as emailing the dev team.
*
* Each handler is defined by the class name used for that handler, and it
* MUST implement the `CodeIgniter\Log\Handlers\HandlerInterface` interface.
*
* The value of each key is an array of configuration items that are sent
* to the constructor of each handler. The only required configuration item
* is the 'handles' element, which must be an array of integer log levels.
* This is most easily handled by using the constants defined in the
* `Psr\Log\LogLevel` class.
*
* Handlers are executed in the order defined in this array, starting with
* the handler on top and continuing down.
*
* @var array
*/
public $handlers = [
/*
* --------------------------------------------------------------------
* File Handler
* --------------------------------------------------------------------
*/
'CodeIgniter\Log\Handlers\FileHandler' => [
/*
* The log levels that this handler will handle.
*/
'handles' => [
'critical',
'alert',
'emergency',
'debug',
'error',
'info',
'notice',
'warning',
],
/*
* The default filename extension for log files.
* An extension of 'php' allows for protecting the log files via basic
* scripting, when they are to be stored under a publicly accessible directory.
*
* Note: Leaving it blank will default to 'log'.
*/
'fileExtension' => '',
/*
* The file system permissions to be applied on newly created log files.
*
* IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
* integer notation (i.e. 0700, 0644, etc.)
*/
'filePermissions' => 0644,
/*
* Logging Directory Path
*
* By default, logs are written to WRITEPATH . 'logs/'
* Specify a different destination here, if desired.
*/
'path' => '',
],
/**
* The ChromeLoggerHandler requires the use of the Chrome web browser
* and the ChromeLogger extension. Uncomment this block to use it.
*/
// 'CodeIgniter\Log\Handlers\ChromeLoggerHandler' => [
// /*
// * The log levels that this handler will handle.
// */
// 'handles' => ['critical', 'alert', 'emergency', 'debug',
// 'error', 'info', 'notice', 'warning'],
// ]
];
}
+55
View File
@@ -0,0 +1,55 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Migrations extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Enable/Disable Migrations
* --------------------------------------------------------------------------
*
* Migrations are enabled by default.
*
* You should enable migrations whenever you intend to do a schema migration
* and disable it back when you're done.
*
* @var boolean
*/
public $enabled = true;
/**
* --------------------------------------------------------------------------
* Migrations Table
* --------------------------------------------------------------------------
*
* This is the name of the table that will store the current migrations state.
* When migrations runs it will store in a database table which migration
* level the system is at. It then compares the migration level in this
* table to the $config['migration_version'] if they are not the same it
* will migrate up. This must be set.
*
* @var string
*/
public $table = 'migrations';
/**
* --------------------------------------------------------------------------
* Timestamp Format
* --------------------------------------------------------------------------
*
* This is the format that will be used when creating new migrations
* using the CLI command:
* > php spark migrate:create
*
* Typical formats:
* - YmdHis_
* - Y-m-d-His_
* - Y_m_d_His_
*
* @var string
*/
public $timestampFormat = 'Y-m-d-His_';
}
+541
View File
@@ -0,0 +1,541 @@
<?php
namespace Config;
/**
* Mimes
*
* This file contains an array of mime types. It is used by the
* Upload class to help identify allowed file types.
*
* When more than one variation for an extension exist (like jpg, jpeg, etc)
* the most common one should be first in the array to aid the guess*
* methods. The same applies when more than one mime-type exists for a
* single extension.
*
* When working with mime types, please make sure you have the ´fileinfo´
* extension enabled to reliably detect the media types.
*/
class Mimes
{
/**
* Map of extensions to mime types.
*
* @var array
*/
public static $mimes = [
'hqx' => [
'application/mac-binhex40',
'application/mac-binhex',
'application/x-binhex40',
'application/x-mac-binhex40',
],
'cpt' => 'application/mac-compactpro',
'csv' => [
'text/csv',
'text/x-comma-separated-values',
'text/comma-separated-values',
'application/vnd.ms-excel',
'application/x-csv',
'text/x-csv',
'application/csv',
'application/excel',
'application/vnd.msexcel',
'text/plain',
],
'bin' => [
'application/macbinary',
'application/mac-binary',
'application/octet-stream',
'application/x-binary',
'application/x-macbinary',
],
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => [
'application/octet-stream',
'application/x-msdownload',
],
'class' => 'application/octet-stream',
'psd' => [
'application/x-photoshop',
'image/vnd.adobe.photoshop',
],
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => [
'application/pdf',
'application/force-download',
'application/x-download',
],
'ai' => [
'application/pdf',
'application/postscript',
],
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => [
'application/vnd.ms-excel',
'application/msexcel',
'application/x-msexcel',
'application/x-ms-excel',
'application/x-excel',
'application/x-dos_ms_excel',
'application/xls',
'application/x-xls',
'application/excel',
'application/download',
'application/vnd.ms-office',
'application/msword',
],
'ppt' => [
'application/vnd.ms-powerpoint',
'application/powerpoint',
'application/vnd.ms-office',
'application/msword',
],
'pptx' => [
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'application/x-zip',
'application/zip',
],
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'php' => [
'application/x-php',
'application/x-httpd-php',
'application/php',
'text/php',
'text/x-php',
'application/x-httpd-php-source',
],
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => [
'application/x-javascript',
'text/plain',
],
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => [
'application/x-tar',
'application/x-gzip-compressed',
],
'z' => 'application/x-compress',
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' => [
'application/x-zip',
'application/zip',
'application/x-zip-compressed',
'application/s-compressed',
'multipart/x-zip',
],
'rar' => [
'application/vnd.rar',
'application/x-rar',
'application/rar',
'application/x-rar-compressed',
],
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => [
'audio/mpeg',
'audio/mpg',
'audio/mpeg3',
'audio/mp3',
],
'aif' => [
'audio/x-aiff',
'audio/aiff',
],
'aiff' => [
'audio/x-aiff',
'audio/aiff',
],
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => [
'audio/x-wav',
'audio/wave',
'audio/wav',
],
'bmp' => [
'image/bmp',
'image/x-bmp',
'image/x-bitmap',
'image/x-xbitmap',
'image/x-win-bitmap',
'image/x-windows-bmp',
'image/ms-bmp',
'image/x-ms-bmp',
'application/bmp',
'application/x-bmp',
'application/x-win-bitmap',
],
'gif' => 'image/gif',
'jpg' => [
'image/jpeg',
'image/pjpeg',
],
'jpeg' => [
'image/jpeg',
'image/pjpeg',
],
'jpe' => [
'image/jpeg',
'image/pjpeg',
],
'jp2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'j2k' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpf' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpg2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpx' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpm' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'mj2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'mjp2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'png' => [
'image/png',
'image/x-png',
],
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'css' => [
'text/css',
'text/plain',
],
'html' => [
'text/html',
'text/plain',
],
'htm' => [
'text/html',
'text/plain',
],
'shtml' => [
'text/html',
'text/plain',
],
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => [
'text/plain',
'text/x-log',
],
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => [
'application/xml',
'text/xml',
'text/plain',
],
'xsl' => [
'application/xml',
'text/xsl',
'text/xml',
],
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => [
'video/x-msvideo',
'video/msvideo',
'video/avi',
'application/x-troff-msvideo',
],
'movie' => 'video/x-sgi-movie',
'doc' => [
'application/msword',
'application/vnd.ms-office',
],
'docx' => [
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/zip',
'application/msword',
'application/x-zip',
],
'dot' => [
'application/msword',
'application/vnd.ms-office',
],
'dotx' => [
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/zip',
'application/msword',
],
'xlsx' => [
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/zip',
'application/vnd.ms-excel',
'application/msword',
'application/x-zip',
],
'word' => [
'application/msword',
'application/octet-stream',
],
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => [
'application/json',
'text/json',
],
'pem' => [
'application/x-x509-user-cert',
'application/x-pem-file',
'application/octet-stream',
],
'p10' => [
'application/x-pkcs10',
'application/pkcs10',
],
'p12' => 'application/x-pkcs12',
'p7a' => 'application/x-pkcs7-signature',
'p7c' => [
'application/pkcs7-mime',
'application/x-pkcs7-mime',
],
'p7m' => [
'application/pkcs7-mime',
'application/x-pkcs7-mime',
],
'p7r' => 'application/x-pkcs7-certreqresp',
'p7s' => 'application/pkcs7-signature',
'crt' => [
'application/x-x509-ca-cert',
'application/x-x509-user-cert',
'application/pkix-cert',
],
'crl' => [
'application/pkix-crl',
'application/pkcs-crl',
],
'der' => 'application/x-x509-ca-cert',
'kdb' => 'application/octet-stream',
'pgp' => 'application/pgp',
'gpg' => 'application/gpg-keys',
'sst' => 'application/octet-stream',
'csr' => 'application/octet-stream',
'rsa' => 'application/x-pkcs7',
'cer' => [
'application/pkix-cert',
'application/x-x509-ca-cert',
],
'3g2' => 'video/3gpp2',
'3gp' => [
'video/3gp',
'video/3gpp',
],
'mp4' => 'video/mp4',
'm4a' => 'audio/x-m4a',
'f4v' => [
'video/mp4',
'video/x-f4v',
],
'flv' => 'video/x-flv',
'webm' => 'video/webm',
'aac' => 'audio/x-acc',
'm4u' => 'application/vnd.mpegurl',
'm3u' => 'text/plain',
'xspf' => 'application/xspf+xml',
'vlc' => 'application/videolan',
'wmv' => [
'video/x-ms-wmv',
'video/x-ms-asf',
],
'au' => 'audio/x-au',
'ac3' => 'audio/ac3',
'flac' => 'audio/x-flac',
'ogg' => [
'audio/ogg',
'video/ogg',
'application/ogg',
],
'kmz' => [
'application/vnd.google-earth.kmz',
'application/zip',
'application/x-zip',
],
'kml' => [
'application/vnd.google-earth.kml+xml',
'application/xml',
'text/xml',
],
'ics' => 'text/calendar',
'ical' => 'text/calendar',
'zsh' => 'text/x-scriptzsh',
'7zip' => [
'application/x-compressed',
'application/x-zip-compressed',
'application/zip',
'multipart/x-zip',
],
'cdr' => [
'application/cdr',
'application/coreldraw',
'application/x-cdr',
'application/x-coreldraw',
'image/cdr',
'image/x-cdr',
'zz-application/zz-winassoc-cdr',
],
'wma' => [
'audio/x-ms-wma',
'video/x-ms-asf',
],
'jar' => [
'application/java-archive',
'application/x-java-application',
'application/x-jar',
'application/x-compressed',
],
'svg' => [
'image/svg+xml',
'image/svg',
'application/xml',
'text/xml',
],
'vcf' => 'text/x-vcard',
'srt' => [
'text/srt',
'text/plain',
],
'vtt' => [
'text/vtt',
'text/plain',
],
'ico' => [
'image/x-icon',
'image/x-ico',
'image/vnd.microsoft.icon',
],
'stl' => [
'application/sla',
'application/vnd.ms-pki.stl',
'application/x-navistyle',
],
];
/**
* Attempts to determine the best mime type for the given file extension.
*
* @param string $extension
*
* @return string|null The mime type found, or none if unable to determine.
*/
public static function guessTypeFromExtension(string $extension)
{
$extension = trim(strtolower($extension), '. ');
if (! array_key_exists($extension, static::$mimes))
{
return null;
}
return is_array(static::$mimes[$extension]) ? static::$mimes[$extension][0] : static::$mimes[$extension];
}
/**
* Attempts to determine the best file extension for a given mime type.
*
* @param string $type
* @param string|null $proposedExtension - default extension (in case there is more than one with the same mime type)
*
* @return string|null The extension determined, or null if unable to match.
*/
public static function guessExtensionFromType(string $type, string $proposedExtension = null)
{
$type = trim(strtolower($type), '. ');
$proposedExtension = trim(strtolower($proposedExtension));
if ($proposedExtension !== '')
{
if (array_key_exists($proposedExtension, static::$mimes) && in_array($type, is_string(static::$mimes[$proposedExtension]) ? [static::$mimes[$proposedExtension]] : static::$mimes[$proposedExtension], true))
{
// The detected mime type matches with the proposed extension.
return $proposedExtension;
}
// An extension was proposed, but the media type does not match the mime type list.
return null;
}
// Reverse check the mime type list if no extension was proposed.
// This search is order sensitive!
foreach (static::$mimes as $ext => $types)
{
if ((is_string($types) && $types === $type) || (is_array($types) && in_array($type, $types, true)))
{
return $ext;
}
}
return null;
}
}
+53
View File
@@ -0,0 +1,53 @@
<?php
namespace Config;
use CodeIgniter\Modules\Modules as BaseModules;
class Modules extends BaseModules
{
/**
* --------------------------------------------------------------------------
* Enable Auto-Discovery?
* --------------------------------------------------------------------------
*
* If true, then auto-discovery will happen across all elements listed in
* $activeExplorers below. If false, no auto-discovery will happen at all,
* giving a slight performance boost.
*
* @var boolean
*/
public $enabled = true;
/**
* --------------------------------------------------------------------------
* Enable Auto-Discovery Within Composer Packages?
* --------------------------------------------------------------------------
*
* If true, then auto-discovery will happen across all namespaces loaded
* by Composer, as well as the namespaces configured locally.
*
* @var boolean
*/
public $discoverInComposer = true;
/**
* --------------------------------------------------------------------------
* Auto-Discovery Rules
* --------------------------------------------------------------------------
*
* Aliases list of all discovery classes that will be active and used during
* the current application request.
*
* If it is not listed, only the base application elements will be used.
*
* @var string[]
*/
public $aliases = [
'events',
'filters',
'registrars',
'routes',
'services',
];
}
+39
View File
@@ -0,0 +1,39 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Pager extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Templates
* --------------------------------------------------------------------------
*
* Pagination links are rendered out using views to configure their
* appearance. This array contains aliases and the view names to
* use when rendering the links.
*
* Within each view, the Pager object will be available as $pager,
* and the desired group as $pagerGroup;
*
* @var array<string, string>
*/
public $templates = [
'default_full' => 'CodeIgniter\Pager\Views\default_full',
'default_simple' => 'CodeIgniter\Pager\Views\default_simple',
'default_head' => 'CodeIgniter\Pager\Views\default_head',
];
/**
* --------------------------------------------------------------------------
* Items Per Page
* --------------------------------------------------------------------------
*
* The default number of results shown in a single page.
*
* @var integer
*/
public $perPage = 20;
}
+86
View File
@@ -0,0 +1,86 @@
<?php
namespace Config;
/**
* Paths
*
* Holds the paths that are used by the system to
* locate the main directories, app, system, etc.
*
* Modifying these allows you to restructure your application,
* share a system folder between multiple applications, and more.
*
* All paths are relative to the project's root folder.
*/
class Paths
{
/**
* ---------------------------------------------------------------
* SYSTEM FOLDER NAME
* ---------------------------------------------------------------
*
* This must contain the name of your "system" folder. Include
* the path if the folder is not in the same directory as this file.
*
* @var string
*/
public $systemDirectory = __DIR__ . '/../../vendor/codeigniter4/framework/system';
/**
* ---------------------------------------------------------------
* APPLICATION FOLDER NAME
* ---------------------------------------------------------------
*
* If you want this front controller to use a different "app"
* folder than the default one you can set its name here. The folder
* can also be renamed or relocated anywhere on your getServer. If
* you do, use a full getServer path.
*
* @see http://codeigniter.com/user_guide/general/managing_apps.html
*
* @var string
*/
public $appDirectory = __DIR__ . '/..';
/**
* ---------------------------------------------------------------
* WRITABLE DIRECTORY NAME
* ---------------------------------------------------------------
*
* This variable must contain the name of your "writable" directory.
* The writable directory allows you to group all directories that
* need write permission to a single place that can be tucked away
* for maximum security, keeping it out of the app and/or
* system directories.
*
* @var string
*/
public $writableDirectory = __DIR__ . '/../../writable';
/**
* ---------------------------------------------------------------
* TESTS DIRECTORY NAME
* ---------------------------------------------------------------
*
* This variable must contain the name of your "tests" directory.
*
* @var string
*/
public $testsDirectory = __DIR__ . '/../../tests';
/**
* ---------------------------------------------------------------
* VIEW DIRECTORY NAME
* ---------------------------------------------------------------
*
* This variable must contain the name of the directory that
* contains the view files used by your application. By
* default this is in `app/Views`. This value
* is used when no value is provided to `Services::renderer()`.
*
* @var string
*/
public $viewDirectory = __DIR__ . '/../Views';
}
+53
View File
@@ -0,0 +1,53 @@
<?php
namespace Config;
// Create a new instance of our RouteCollection class.
$routes = Services::routes();
// Load the system's routing file first, so that the app and ENVIRONMENT
// can override as needed.
if (file_exists(SYSTEMPATH . 'Config/Routes.php'))
{
require SYSTEMPATH . 'Config/Routes.php';
}
/**
* --------------------------------------------------------------------
* Router Setup
* --------------------------------------------------------------------
*/
$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(true);
/*
* --------------------------------------------------------------------
* Route Definitions
* --------------------------------------------------------------------
*/
// We get a performance increase by specifying the default
// route since we don't have to scan directories.
$routes->get('/', 'Home::index');
/*
* --------------------------------------------------------------------
* Additional Routing
* --------------------------------------------------------------------
*
* There will often be times that you need additional routing and you
* need it to be able to override any defaults in this file. Environment
* based routes is one such time. require() additional route files here
* to make that happen.
*
* You will have access to the $routes object within that file without
* needing to reload it.
*/
if (file_exists(APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php'))
{
require APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php';
}
+92
View File
@@ -0,0 +1,92 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Security extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* CSRF Token Name
* --------------------------------------------------------------------------
*
* Token name for Cross Site Request Forgery protection cookie.
*
* @var string
*/
public $tokenName = 'csrf_test_name';
/**
* --------------------------------------------------------------------------
* CSRF Header Name
* --------------------------------------------------------------------------
*
* Token name for Cross Site Request Forgery protection cookie.
*
* @var string
*/
public $headerName = 'X-CSRF-TOKEN';
/**
* --------------------------------------------------------------------------
* CSRF Cookie Name
* --------------------------------------------------------------------------
*
* Cookie name for Cross Site Request Forgery protection cookie.
*
* @var string
*/
public $cookieName = 'csrf_cookie_name';
/**
* --------------------------------------------------------------------------
* CSRF Expires
* --------------------------------------------------------------------------
*
* Expiration time for Cross Site Request Forgery protection cookie.
*
* Defaults to two hours (in seconds).
*
* @var integer
*/
public $expires = 7200;
/**
* --------------------------------------------------------------------------
* CSRF Regenerate
* --------------------------------------------------------------------------
*
* Regenerate CSRF Token on every request.
*
* @var boolean
*/
public $regenerate = true;
/**
* --------------------------------------------------------------------------
* CSRF Redirect
* --------------------------------------------------------------------------
*
* Redirect to previous page with error on failure.
*
* @var boolean
*/
public $redirect = true;
/**
* --------------------------------------------------------------------------
* CSRF SameSite
* --------------------------------------------------------------------------
*
* Setting for CSRF SameSite cookie token.
*
* Allowed values are: None - Lax - Strict - ''.
*
* Defaults to `Lax` as recommended in this link:
* @see https://portswigger.net/web-security/csrf/samesite-cookies
*
* @var string 'Lax'|'None'|'Strict'
*/
public $samesite = 'Lax';
}
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseService;
/**
* Services Configuration file.
*
* Services are simply other classes/libraries that the system uses
* to do its job. This is used by CodeIgniter to allow the core of the
* framework to be swapped out easily without affecting the usage within
* the rest of your application.
*
* This file holds any application-specific services, or service overrides
* that you might need. An example has been included with the general
* method format you should use for your service methods. For more examples,
* see the core Services file at system/Config/Services.php.
*/
class Services extends BaseService
{
// public static function example($getShared = true)
// {
// if ($getShared)
// {
// return static::getSharedInstance('example');
// }
//
// return new \CodeIgniter\Example();
// }
}
+87
View File
@@ -0,0 +1,87 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Debug\Toolbar\Collectors\Database;
use CodeIgniter\Debug\Toolbar\Collectors\Events;
use CodeIgniter\Debug\Toolbar\Collectors\Files;
use CodeIgniter\Debug\Toolbar\Collectors\Logs;
use CodeIgniter\Debug\Toolbar\Collectors\Routes;
use CodeIgniter\Debug\Toolbar\Collectors\Timers;
use CodeIgniter\Debug\Toolbar\Collectors\Views;
/**
* --------------------------------------------------------------------------
* Debug Toolbar
* --------------------------------------------------------------------------
*
* The Debug Toolbar provides a way to see information about the performance
* and state of your application during that page display. By default it will
* NOT be displayed under production environments, and will only display if
* `CI_DEBUG` is true, since if it's not, there's not much to display anyway.
*/
class Toolbar extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Toolbar Collectors
* --------------------------------------------------------------------------
*
* List of toolbar collectors that will be called when Debug Toolbar
* fires up and collects data from.
*
* @var string[]
*/
public $collectors = [
Timers::class,
Database::class,
Logs::class,
Views::class,
// \CodeIgniter\Debug\Toolbar\Collectors\Cache::class,
Files::class,
Routes::class,
Events::class,
];
/**
* --------------------------------------------------------------------------
* Max History
* --------------------------------------------------------------------------
*
* `$maxHistory` sets a limit on the number of past requests that are stored,
* helping to conserve file space used to store them. You can set it to
* 0 (zero) to not have any history stored, or -1 for unlimited history.
*
* @var integer
*/
public $maxHistory = 20;
/**
* --------------------------------------------------------------------------
* Toolbar Views Path
* --------------------------------------------------------------------------
*
* The full path to the the views that are used by the toolbar.
* This MUST have a trailing slash.
*
* @var string
*/
public $viewsPath = SYSTEMPATH . 'Debug/Toolbar/Views/';
/**
* --------------------------------------------------------------------------
* Max Queries
* --------------------------------------------------------------------------
*
* If the Database Collector is enabled, it will log every query that the
* the system generates so they can be displayed on the toolbar's timeline
* and in the query log. This can lead to memory issues in some instances
* with hundreds of queries.
*
* `$maxQueries` defines the maximum amount of queries that will be stored.
*
* @var integer
*/
public $maxQueries = 100;
}
+252
View File
@@ -0,0 +1,252 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* -------------------------------------------------------------------
* User Agents
* -------------------------------------------------------------------
*
* This file contains four arrays of user agent data. It is used by the
* User Agent Class to help identify browser, platform, robot, and
* mobile device data. The array keys are used to identify the device
* and the array values are used to set the actual name of the item.
*/
class UserAgents extends BaseConfig
{
/**
* -------------------------------------------------------------------
* OS Platforms
* -------------------------------------------------------------------
*
* @var array<string, string>
*/
public $platforms = [
'windows nt 10.0' => 'Windows 10',
'windows nt 6.3' => 'Windows 8.1',
'windows nt 6.2' => 'Windows 8',
'windows nt 6.1' => 'Windows 7',
'windows nt 6.0' => 'Windows Vista',
'windows nt 5.2' => 'Windows 2003',
'windows nt 5.1' => 'Windows XP',
'windows nt 5.0' => 'Windows 2000',
'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT',
'windows 98' => 'Windows 98',
'win98' => 'Windows 98',
'windows 95' => 'Windows 95',
'win95' => 'Windows 95',
'windows phone' => 'Windows Phone',
'windows' => 'Unknown Windows OS',
'android' => 'Android',
'blackberry' => 'BlackBerry',
'iphone' => 'iOS',
'ipad' => 'iOS',
'ipod' => 'iOS',
'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh',
'linux' => 'Linux',
'debian' => 'Debian',
'sunos' => 'Sun Solaris',
'beos' => 'BeOS',
'apachebench' => 'ApacheBench',
'aix' => 'AIX',
'irix' => 'Irix',
'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD',
'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS',
'symbian' => 'Symbian OS',
];
/**
* -------------------------------------------------------------------
* Browsers
* -------------------------------------------------------------------
*
* The order of this array should NOT be changed. Many browsers return
* multiple browser types so we want to identify the subtype first.
*
* @var array<string, string>
*/
public $browsers = [
'OPR' => 'Opera',
'Flock' => 'Flock',
'Edge' => 'Spartan',
'Edg' => 'Edge',
'Chrome' => 'Chrome',
// Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
'Opera.*?Version' => 'Opera',
'Opera' => 'Opera',
'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer',
'Trident.* rv' => 'Internet Explorer',
'Shiira' => 'Shiira',
'Firefox' => 'Firefox',
'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird',
'Camino' => 'Camino',
'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari',
'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror',
'icab' => 'iCab',
'Lynx' => 'Lynx',
'Links' => 'Links',
'hotjava' => 'HotJava',
'amaya' => 'Amaya',
'IBrowse' => 'IBrowse',
'Maxthon' => 'Maxthon',
'Ubuntu' => 'Ubuntu Web Browser',
'Vivaldi' => 'Vivaldi',
];
/**
* -------------------------------------------------------------------
* Mobiles
* -------------------------------------------------------------------
*
* @var array<string, string>
*/
public $mobiles = [
// legacy array, old values commented out
'mobileexplorer' => 'Mobile Explorer',
// 'openwave' => 'Open Wave',
// 'opera mini' => 'Opera Mini',
// 'operamini' => 'Opera Mini',
// 'elaine' => 'Palm',
'palmsource' => 'Palm',
// 'digital paths' => 'Palm',
// 'avantgo' => 'Avantgo',
// 'xiino' => 'Xiino',
'palmscape' => 'Palmscape',
// 'nokia' => 'Nokia',
// 'ericsson' => 'Ericsson',
// 'blackberry' => 'BlackBerry',
// 'motorola' => 'Motorola'
// Phones and Manufacturers
'motorola' => 'Motorola',
'nokia' => 'Nokia',
'palm' => 'Palm',
'iphone' => 'Apple iPhone',
'ipad' => 'iPad',
'ipod' => 'Apple iPod Touch',
'sony' => 'Sony Ericsson',
'ericsson' => 'Sony Ericsson',
'blackberry' => 'BlackBerry',
'cocoon' => 'O2 Cocoon',
'blazer' => 'Treo',
'lg' => 'LG',
'amoi' => 'Amoi',
'xda' => 'XDA',
'mda' => 'MDA',
'vario' => 'Vario',
'htc' => 'HTC',
'samsung' => 'Samsung',
'sharp' => 'Sharp',
'sie-' => 'Siemens',
'alcatel' => 'Alcatel',
'benq' => 'BenQ',
'ipaq' => 'HP iPaq',
'mot-' => 'Motorola',
'playstation portable' => 'PlayStation Portable',
'playstation 3' => 'PlayStation 3',
'playstation vita' => 'PlayStation Vita',
'hiptop' => 'Danger Hiptop',
'nec-' => 'NEC',
'panasonic' => 'Panasonic',
'philips' => 'Philips',
'sagem' => 'Sagem',
'sanyo' => 'Sanyo',
'spv' => 'SPV',
'zte' => 'ZTE',
'sendo' => 'Sendo',
'nintendo dsi' => 'Nintendo DSi',
'nintendo ds' => 'Nintendo DS',
'nintendo 3ds' => 'Nintendo 3DS',
'wii' => 'Nintendo Wii',
'open web' => 'Open Web',
'openweb' => 'OpenWeb',
// Operating Systems
'android' => 'Android',
'symbian' => 'Symbian',
'SymbianOS' => 'SymbianOS',
'elaine' => 'Palm',
'series60' => 'Symbian S60',
'windows ce' => 'Windows CE',
// Browsers
'obigo' => 'Obigo',
'netfront' => 'Netfront Browser',
'openwave' => 'Openwave Browser',
'mobilexplorer' => 'Mobile Explorer',
'operamini' => 'Opera Mini',
'opera mini' => 'Opera Mini',
'opera mobi' => 'Opera Mobile',
'fennec' => 'Firefox Mobile',
// Other
'digital paths' => 'Digital Paths',
'avantgo' => 'AvantGo',
'xiino' => 'Xiino',
'novarra' => 'Novarra Transcoder',
'vodafone' => 'Vodafone',
'docomo' => 'NTT DoCoMo',
'o2' => 'O2',
// Fallback
'mobile' => 'Generic Mobile',
'wireless' => 'Generic Mobile',
'j2me' => 'Generic Mobile',
'midp' => 'Generic Mobile',
'cldc' => 'Generic Mobile',
'up.link' => 'Generic Mobile',
'up.browser' => 'Generic Mobile',
'smartphone' => 'Generic Mobile',
'cellphone' => 'Generic Mobile',
];
/**
* -------------------------------------------------------------------
* Robots
* -------------------------------------------------------------------
*
* There are hundred of bots but these are the most common.
*
* @var array<string, string>
*/
public $robots = [
'googlebot' => 'Googlebot',
'msnbot' => 'MSNBot',
'baiduspider' => 'Baiduspider',
'bingbot' => 'Bing',
'slurp' => 'Inktomi Slurp',
'yahoo' => 'Yahoo',
'ask jeeves' => 'Ask Jeeves',
'fastcrawler' => 'FastCrawler',
'infoseek' => 'InfoSeek Robot 1.0',
'lycos' => 'Lycos',
'yandex' => 'YandexBot',
'mediapartners-google' => 'MediaPartners Google',
'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
'adsbot-google' => 'AdsBot Google',
'feedfetcher-google' => 'Feedfetcher Google',
'curious george' => 'Curious George',
'ia_archiver' => 'Alexa Crawler',
'MJ12bot' => 'Majestic-12',
'Uptimebot' => 'Uptimebot',
];
}
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace Config;
use CodeIgniter\Validation\CreditCardRules;
use CodeIgniter\Validation\FileRules;
use CodeIgniter\Validation\FormatRules;
use CodeIgniter\Validation\Rules;
class Validation
{
//--------------------------------------------------------------------
// Setup
//--------------------------------------------------------------------
/**
* Stores the classes that contain the
* rules that are available.
*
* @var string[]
*/
public $ruleSets = [
Rules::class,
FormatRules::class,
FileRules::class,
CreditCardRules::class,
];
/**
* Specifies the views that are used to display the
* errors.
*
* @var array<string, string>
*/
public $templates = [
'list' => 'CodeIgniter\Validation\Views\list',
'single' => 'CodeIgniter\Validation\Views\single',
];
//--------------------------------------------------------------------
// Rules
//--------------------------------------------------------------------
}
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace Config;
use CodeIgniter\Config\View as BaseView;
class View extends BaseView
{
/**
* When false, the view method will clear the data between each
* call. This keeps your data safe and ensures there is no accidental
* leaking between calls, so you would need to explicitly pass the data
* to each view. You might prefer to have the data stick around between
* calls so that it is available to all views. If that is the case,
* set $saveData to true.
*
* @var boolean
*/
public $saveData = true;
/**
* Parser Filters map a filter name with any PHP callable. When the
* Parser prepares a variable for display, it will chain it
* through the filters in the order defined, inserting any parameters.
* To prevent potential abuse, all filters MUST be defined here
* in order for them to be available for use within the Parser.
*
* Examples:
* { title|esc(js) }
* { created_on|date(Y-m-d)|esc(attr) }
*
* @var array
*/
public $filters = [];
/**
* Parser Plugins provide a way to extend the functionality provided
* by the core Parser by creating aliases that will be replaced with
* any callable. Can be single or tag pair.
*
* @var array
*/
public $plugins = [];
}
+273
View File
@@ -0,0 +1,273 @@
<?php
$merms_countries = array
(
'CM' => 'Cameroon',
'EG' => 'Egypt',
'GH' => 'Ghana',
'KE' => 'Kenya',
'LR' => 'Liberia',
'MG' => 'Madagascar',
'MZ' => 'Mozambique',
'MM' => 'Myanmar',
'NG' => 'Nigeria',
'ZA' => 'South Africa',
'GB' => 'United Kingdom',
'US' => 'United States',
'ZW' => 'Zimbabwe',
);
$merms_countries2 = array
(
'AF' => 'Afghanistan',
'AX' => 'Aland Islands',
'AL' => 'Albania',
'DZ' => 'Algeria',
'AS' => 'American Samoa',
'AD' => 'Andorra',
'AO' => 'Angola',
'AI' => 'Anguilla',
'AQ' => 'Antarctica',
'AG' => 'Antigua And Barbuda',
'AR' => 'Argentina',
'AM' => 'Armenia',
'AW' => 'Aruba',
'AU' => 'Australia',
'AT' => 'Austria',
'AZ' => 'Azerbaijan',
'BS' => 'Bahamas',
'BH' => 'Bahrain',
'BD' => 'Bangladesh',
'BB' => 'Barbados',
'BY' => 'Belarus',
'BE' => 'Belgium',
'BZ' => 'Belize',
'BJ' => 'Benin',
'BM' => 'Bermuda',
'BT' => 'Bhutan',
'BO' => 'Bolivia',
'BA' => 'Bosnia And Herzegovina',
'BW' => 'Botswana',
'BV' => 'Bouvet Island',
'BR' => 'Brazil',
'IO' => 'British Indian Ocean Territory',
'BN' => 'Brunei Darussalam',
'BG' => 'Bulgaria',
'BF' => 'Burkina Faso',
'BI' => 'Burundi',
'KH' => 'Cambodia',
'CM' => 'Cameroon',
'CA' => 'Canada',
'CV' => 'Cape Verde',
'KY' => 'Cayman Islands',
'CF' => 'Central African Republic',
'TD' => 'Chad',
'CL' => 'Chile',
'CN' => 'China',
'CX' => 'Christmas Island',
'CC' => 'Cocos (Keeling) Islands',
'CO' => 'Colombia',
'KM' => 'Comoros',
'CG' => 'Congo',
'CD' => 'Congo, Democratic Republic',
'CK' => 'Cook Islands',
'CR' => 'Costa Rica',
'CI' => 'Cote D\'Ivoire',
'HR' => 'Croatia',
'CU' => 'Cuba',
'CY' => 'Cyprus',
'CZ' => 'Czech Republic',
'DK' => 'Denmark',
'DJ' => 'Djibouti',
'DM' => 'Dominica',
'DO' => 'Dominican Republic',
'EC' => 'Ecuador',
'EG' => 'Egypt',
'SV' => 'El Salvador',
'GQ' => 'Equatorial Guinea',
'ER' => 'Eritrea',
'EE' => 'Estonia',
'ET' => 'Ethiopia',
'FK' => 'Falkland Islands (Malvinas)',
'FO' => 'Faroe Islands',
'FJ' => 'Fiji',
'FI' => 'Finland',
'FR' => 'France',
'GF' => 'French Guiana',
'PF' => 'French Polynesia',
'TF' => 'French Southern Territories',
'GA' => 'Gabon',
'GM' => 'Gambia',
'GE' => 'Georgia',
'DE' => 'Germany',
'GH' => 'Ghana',
'GI' => 'Gibraltar',
'GR' => 'Greece',
'GL' => 'Greenland',
'GD' => 'Grenada',
'GP' => 'Guadeloupe',
'GU' => 'Guam',
'GT' => 'Guatemala',
'GG' => 'Guernsey',
'GN' => 'Guinea',
'GW' => 'Guinea-Bissau',
'GY' => 'Guyana',
'HT' => 'Haiti',
'HM' => 'Heard Island & Mcdonald Islands',
'VA' => 'Holy See (Vatican City State)',
'HN' => 'Honduras',
'HK' => 'Hong Kong',
'HU' => 'Hungary',
'IS' => 'Iceland',
'IN' => 'India',
'ID' => 'Indonesia',
'IR' => 'Iran, Islamic Republic Of',
'IQ' => 'Iraq',
'IE' => 'Ireland',
'IM' => 'Isle Of Man',
'IL' => 'Israel',
'IT' => 'Italy',
'JM' => 'Jamaica',
'JP' => 'Japan',
'JE' => 'Jersey',
'JO' => 'Jordan',
'KZ' => 'Kazakhstan',
'KE' => 'Kenya',
'KI' => 'Kiribati',
'KR' => 'Korea',
'KW' => 'Kuwait',
'KG' => 'Kyrgyzstan',
'LA' => 'Lao People\'s Democratic Republic',
'LV' => 'Latvia',
'LB' => 'Lebanon',
'LS' => 'Lesotho',
'LR' => 'Liberia',
'LY' => 'Libyan Arab Jamahiriya',
'LI' => 'Liechtenstein',
'LT' => 'Lithuania',
'LU' => 'Luxembourg',
'MO' => 'Macao',
'MK' => 'Macedonia',
'MG' => 'Madagascar',
'MW' => 'Malawi',
'MY' => 'Malaysia',
'MV' => 'Maldives',
'ML' => 'Mali',
'MT' => 'Malta',
'MH' => 'Marshall Islands',
'MQ' => 'Martinique',
'MR' => 'Mauritania',
'MU' => 'Mauritius',
'YT' => 'Mayotte',
'MX' => 'Mexico',
'FM' => 'Micronesia, Federated States Of',
'MD' => 'Moldova',
'MC' => 'Monaco',
'MN' => 'Mongolia',
'ME' => 'Montenegro',
'MS' => 'Montserrat',
'MA' => 'Morocco',
'MZ' => 'Mozambique',
'MM' => 'Myanmar',
'NA' => 'Namibia',
'NR' => 'Nauru',
'NP' => 'Nepal',
'NL' => 'Netherlands',
'AN' => 'Netherlands Antilles',
'NC' => 'New Caledonia',
'NZ' => 'New Zealand',
'NI' => 'Nicaragua',
'NE' => 'Niger',
'NG' => 'Nigeria',
'NU' => 'Niue',
'NF' => 'Norfolk Island',
'MP' => 'Northern Mariana Islands',
'NO' => 'Norway',
'OM' => 'Oman',
'PK' => 'Pakistan',
'PW' => 'Palau',
'PS' => 'Palestinian Territory, Occupied',
'PA' => 'Panama',
'PG' => 'Papua New Guinea',
'PY' => 'Paraguay',
'PE' => 'Peru',
'PH' => 'Philippines',
'PN' => 'Pitcairn',
'PL' => 'Poland',
'PT' => 'Portugal',
'PR' => 'Puerto Rico',
'QA' => 'Qatar',
'RE' => 'Reunion',
'RO' => 'Romania',
'RU' => 'Russian Federation',
'RW' => 'Rwanda',
'BL' => 'Saint Barthelemy',
'SH' => 'Saint Helena',
'KN' => 'Saint Kitts And Nevis',
'LC' => 'Saint Lucia',
'MF' => 'Saint Martin',
'PM' => 'Saint Pierre And Miquelon',
'VC' => 'Saint Vincent And Grenadines',
'WS' => 'Samoa',
'SM' => 'San Marino',
'ST' => 'Sao Tome And Principe',
'SA' => 'Saudi Arabia',
'SN' => 'Senegal',
'RS' => 'Serbia',
'SC' => 'Seychelles',
'SL' => 'Sierra Leone',
'SG' => 'Singapore',
'SK' => 'Slovakia',
'SI' => 'Slovenia',
'SB' => 'Solomon Islands',
'SO' => 'Somalia',
'ZA' => 'South Africa',
'GS' => 'South Georgia And Sandwich Isl.',
'ES' => 'Spain',
'LK' => 'Sri Lanka',
'SD' => 'Sudan',
'SR' => 'Suriname',
'SJ' => 'Svalbard And Jan Mayen',
'SZ' => 'Swaziland',
'SE' => 'Sweden',
'CH' => 'Switzerland',
'SY' => 'Syrian Arab Republic',
'TW' => 'Taiwan',
'TJ' => 'Tajikistan',
'TZ' => 'Tanzania',
'TH' => 'Thailand',
'TL' => 'Timor-Leste',
'TG' => 'Togo',
'TK' => 'Tokelau',
'TO' => 'Tonga',
'TT' => 'Trinidad And Tobago',
'TN' => 'Tunisia',
'TR' => 'Turkey',
'TM' => 'Turkmenistan',
'TC' => 'Turks And Caicos Islands',
'TV' => 'Tuvalu',
'UG' => 'Uganda',
'UA' => 'Ukraine',
'AE' => 'United Arab Emirates',
'GB' => 'United Kingdom',
'US' => 'United States',
'UM' => 'United States Outlying Islands',
'UY' => 'Uruguay',
'UZ' => 'Uzbekistan',
'VU' => 'Vanuatu',
'VE' => 'Venezuela',
'VN' => 'Viet Nam',
'VG' => 'Virgin Islands, British',
'VI' => 'Virgin Islands, U.S.',
'WF' => 'Wallis And Futuna',
'EH' => 'Western Sahara',
'YE' => 'Yemen',
'ZM' => 'Zambia',
'ZW' => 'Zimbabwe',
);
?>
+55
View File
@@ -0,0 +1,55 @@
<?php
$merms_faq = array
(
[
'What is MERMS ?',
'What is MERMS ?',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using Content here, content here, making it look like readable English.'
],
[
'What is myFit App ?',
'What is myFit, The Personal Care, App ?',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
''
],
[
'What MERMS Providers ?',
'What MERMS Providers ?',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
''
],
[
'SHort Title here',
'Long Title here here here here',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
''
],
[
'SHort Title here',
'Long Title here here here here',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
''
],
[
'SHort Title here',
'Long Title here here here here',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
''
],
[
'Can I manage my practice with MERMS ?',
'Can I manage my practice with MERMS ?',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
''
],
[
'What can I track with MERMS myFit ?',
'What can I track with MERMS myFit ?',
'is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that ',
''
],
);
?>
+12
View File
@@ -0,0 +1,12 @@
<?php
$myfit_items = array(
['Manage Health Plan', '/assets/image/svg/patient.svg', '', '', '/myfit'],
['Usefull Health Tips', '/assets/image/svg/messages.png', '', '', '/myfit'],
['Health Reminders', '/assets/image/svg/clock_refresh.png', '', '', '/myfit'],
['Health Statistics', '/assets/image/svg/dot-chart.png', '', '', '/myfit'],
['Health record with you', '/assets/image/svg/records-everywhere.png', '', '', '/myfit'],
['Share Medical record', '/assets/image/svg/note_new.png', '', '', '/myfit'],
['Quickly Schedule', '/assets/image/svg/calendar.png', '', '', '/myfit'],
['Provider everywhere anywhere ', '/assets/image/svg/graphics-tablet.png', '', '', '/myfit']
);
?>
+16
View File
@@ -0,0 +1,16 @@
<?php
$practice_text1 = array(
['Patient Engagement', 'Through the MERMS myFit users portal & app, patients have better access to their doctors and their medical clinic. ', '/providers'],
['Care Coordination', 'The MERMS suite of services allows clinical practices to manage tasks needed with ease.', '/providers'],
['Smart Practice Management', 'MERMS offers an integrated practice management software that can be tailored to meet the unique needs of your practice.', '/providers'],
['Built for your practice', 'MERMS is purpose-built for the unique needs of your practice', '/providers'],
);
$practice_text2 = array(
['Health Records', 'Everything from medical history to diagnosis, to referral records, can be accessed with ease.', '/providers'],
['Telehealth', 'Continue care with MERMS Telehealth. We allow for your practice to visit with patients in a way that helps works for the goal.', '/providers'],
['Wellness Messenger', 'MERMS Messenger System is designed to reach targeted sets of patients to improve patient outreach.', '/providers'],
['Committed to your success', 'MERMS goal is to enable your success by helping you and your team make the right decisions to deliver results.', '/providers'],
);
?>
+76
View File
@@ -0,0 +1,76 @@
<?php
namespace App\Controllers;
/**
* Class BaseController
*
* BaseController provides a convenient place for loading components
* and performing functions that are needed by all your controllers.
* Extend this class in any new controllers:
* class Home extends BaseController
*
* For security be sure to declare any new methods as protected or private.
*
* @package CodeIgniter
*/
use CodeIgniter\Controller;
class BaseController extends Controller {
/**
* An array of helpers to be loaded automatically upon
* class instantiation. These helpers will be available
* to all other controllers that extend BaseController.
*
* @var array
*/
protected $helpers = [];
/**
* Constructor.
*/
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger) {
// Do Not Edit This Line
parent::initController($request, $response, $logger);
//--------------------------------------------------------------------
// Preload any models, libraries, etc, here.
//--------------------------------------------------------------------
// E.g.:
// $this->session = \Config\Services::session();
$this->session = \Config\Services::session();
}
protected function renderExtPage($page, $data) {
echo view('header');
echo view($page, $data);
echo view('footer');
}
protected function getBlogItems() {
$blog_feed_url = MERMS_BLOG_SITE ."/?feed=rss";
$rss = simplexml_load_file($blog_feed_url);
$blog_post = array();
$blog_cnt =0;
foreach ($rss->channel->item as $item) {
$image = "/assets/image/resources/blog-2.jpg";
//print_r($item);
$itemA = array(
'title' => $item->title,
'desc' => $item->description,
'link' => $item->link,
'date' => $item->pubDate,
'image' => $image,
);
if ($blog_cnt == 0){
$this->session->blogItem = $itemA ;
}
$blog_cnt++;
array_push($blog_post, $itemA);
}
return $blog_post;
}
}
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace App\Controllers;
class Developers extends BaseController {
public function index() {
$data = array();
$this->renderExtPage('developers', $data);
}
//--------------------------------------------------------------------
}
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace App\Controllers;
class Download extends BaseController {
public function index() {
$data = array();
$this->renderExtPage('download', $data);
}
//--------------------------------------------------------------------
}
+15
View File
@@ -0,0 +1,15 @@
<?php
namespace App\Controllers;
class Faq extends BaseController {
public function index() {
$data = array();
$data["merms_faq"] = MERMS_FAQ;
$this->renderExtPage('faq', $data);
}
//--------------------------------------------------------------------
}
+24
View File
@@ -0,0 +1,24 @@
<?php
namespace App\Controllers;
class Home extends BaseController {
public function index() {
global $myfit_items;
global $practice_text1;
global $practice_text2;
$data = array();
$data["blog_post"] =$this->getBlogItems(); // $blog_post;
$data["myfit_items"] = $myfit_items;
$data["practice_text1"] = $practice_text1;
$data["practice_text2"] = $practice_text2;
$data["country"] = MERMS_COUNTRIES;
$data["merms_faq"] = MERMS_FAQ;
$this->renderExtPage('merms-home', $data);
}
//--------------------------------------------------------------------
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace App\Controllers;
class Land extends BaseController {
public function index() {
$data = array();
$this->renderExtPage('terms', $data);
}
public function covit() {
$data = array();
$this->renderExtPage('covit', $data);
}
//--------------------------------------------------------------------
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Controllers;
class Merms extends BaseController {
public function index() {
global $myfit_items;
global $practice_text1;
global $practice_text2;
$data = array();
$data["blog_post"] =$this->getBlogItems(); // $blog_post;
$data["myfit_items"] = $myfit_items;
$data["practice_text1"] = $practice_text1;
$data["practice_text2"] = $practice_text2;
$data["country"] = MERMS_COUNTRIES;
$this->renderExtPage('merms-home', $data);
}
//--------------------------------------------------------------------
}
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace App\Controllers;
class Myfit extends BaseController {
public function index() {
$data = array();
$this->renderExtPage('myfit', $data);
}
//--------------------------------------------------------------------
}
+12
View File
@@ -0,0 +1,12 @@
<?php
namespace App\Controllers;
class Providers extends BaseController {
public function index() {
$data = array();
$this->renderExtPage('providers', $data);
}
//--------------------------------------------------------------------
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Controllers;
class Support extends BaseController {
public function index() {
global $myfit_items;
global $practice_text1;
global $practice_text2;
$data = array();
$data["blog_post"] =$this->getBlogItems(); // $blog_post;
$data["myfit_items"] = $myfit_items;
$data["practice_text1"] = $practice_text1;
$data["practice_text2"] = $practice_text2;
$data["country"] = MERMS_COUNTRIES;
$this->renderExtPage('merms-home', $data);
}
//--------------------------------------------------------------------
}
+12
View File
@@ -0,0 +1,12 @@
<?php
namespace App\Controllers;
class Terms extends BaseController {
public function index() {
$data = array();
$this->renderExtPage('terms', $data);
}
//--------------------------------------------------------------------
}
View File
View File
View File
View File
View File
+4
View File
@@ -0,0 +1,4 @@
<?php
// override core en language system validation or define your own en language validation message
return [];
View File
View File
View File
+102
View File
@@ -0,0 +1,102 @@
<!------main-content------>
<main class="main-content">
<section class="page_title">
<div class="container">
<div class="row">
<div class="col-lg-12 d-flex">
<div class="content_box">
<ul class="bread_crumb text-center">
<li class="bread_crumb-item"><a href="/">Home</a></li>
<li class="bread_crumb-item active"> MERMS Blog</li>
</ul>
<h1 style="color:black;">About Covit-19</h1>
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<section class="prevention_single">
<div class="container">
<div class="row">
<div class="col-lg-4">
<div class="image_box">
<img src="/assets/image/resources/convid-19.jpg" class="img-fluid" alt="prevention" />
</div>
</div>
<div class="col-lg-8">
<div class="prevention_single_content">
<h1>Coronavirus Disease 2019 (COVID-19)</h1>
<div class="content_box">
<ul>
<li> <b>Coronavirus - </b><br>
COVID-19,SARS-CoV-2. SARS-CoV-2, was reported Dec. 1, 2019, and may have originated in an animal and mutated so it could cause illness in humans. In the past, several infectious disease outbreaks have been traced to viruses originating in other animals that mutated to become dangerous to humans.</span></li>
<li> <b>How coronavirus spread?- </b><br>
Researchers know that the coronavirus is spread through droplets and virus particles released into the air throug an an infected person. Larger droplets may fall to the ground in a few seconds, but tiny infectious particles can linger in the air and accumulate in indoor places, especially where many people are gathered and there is poor ventilation.</span></li>
<li> <b>The incubation period?- </b><br>
COVID-19 symptoms show up in people within 2 to 14 days of exposure to the virus. An infected person is contagious to others for up to two days before symptoms appear, and they remain contagious to others for 10 to 20 days after
.</span></li>
<li> <a href="https://blog.mermsemr.com/corona-virus/">Read More...</a></li>
</ul>
</div>
</div>
<div class="symptoms">
<h2>The best way to prevent illness is to avoid being exposed to this virus.</h2>
<div class="row">
<div class="col-lg-6">
<ul>
<li>
<span class="flaticon-check"></span>
<p>Clean AND disinfect frequently touched surfaces </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Avoid touching your eyes, nose, and mouth</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Clean your hands with a hand sanitizer </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Cover coughs and sneezes</p>
</li>
</ul>
</div>
<div class="col-lg-6">
<ul>
<li>
<span class="flaticon-check"></span>
<p>Stay home if youre sick</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Wear a facemask if sick</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Cover your mouth and nose </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Throw used tissues in trash</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Ensure solution has at least 70% alcohol.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-------------main-centent-end--------------->
</main>
+131
View File
@@ -0,0 +1,131 @@
<!------main-content------>
<main class="main-content">
<section class="page_title">
<div class="container">
<div class="row">
<div class="col-lg-12 d-flex">
<div class="content_box">
<ul class="bread_crumb text-center">
<li class="bread_crumb-item"><a href="/">Home</a></li>
<li class="bread_crumb-item active">MERMS Developers</li>
</ul>
<h1 style="color:black;">Developers</h1>
</div>
</div>
</div>
</div>
</section>
<section class="about type_one">
<div class="container">
<div class="row">
<div class="col-lg-6">
<div class="heading icon_dark tp_one">
<h6>about Corona</h6>
<h1>Coronavirus Disease 2019 (COVID-19)</h1>
<span class="flaticon-virus icon"></span>
</div>
<div class="about_content">
<p class="description">It is a long established fact that a reader will be distracted . The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look
like readable English.
</p>
<div class="symptoms">
<h2>The best way to prevent illness is to avoid being exposed to this virus.</h2>
<div class="row">
<div class="col-lg-6">
<ul>
<li>
<span class="flaticon-check"></span>
<p>Clean AND disinfect frequently touched surfaces </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Avoid touching your eyes, nose, and mouth</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Clean your hands with a hand sanitizer </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Cover coughs and sneezes</p>
</li>
</ul>
</div>
<div class="col-lg-6">
<ul>
<li>
<span class="flaticon-check"></span>
<p>Stay home if youre sick</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Wear a facemask if sick</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Cover your mouth and nose </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Throw used tissues in trash</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Ensure solution has at least 70% alcohol.</p>
</li>
</ul>
</div>
</div>
</div>
<a href="#" class="theme_btn tp_one">Read More</a>
</div>
</div>
<div class="col-lg-6">
<div class="row">
<div class="col-lg-6 first_column">
<div class="icon_box type_one wow slideInUp" data-wow-delay="00ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/working-at-home.svg" class="img-fluid svg_image" alt="home" /> <span class="flaticon-virus "></span>
</div>
<div class="content_box">
<h2><a href="#">Stay at Home</a></h2>
<p>It is a long established fact that a reader will be distracted . </p>
</div>
</div>
<div class="icon_box type_one wow slideInUp" data-wow-delay="100ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/mask-2.svg" class="img-fluid svg_image" alt="home" /> <span class="flaticon-virus "></span>
</div>
<div class="content_box">
<h2><a href="#">Protect yourself</a></h2>
<p>It is a long established fact that a reader will be distracted . </p>
</div>
</div>
</div>
<div class="col-lg-6 second_column">
<div class="icon_box type_one wow slideInUp" data-wow-delay="200ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/sport-team.svg" class="img-fluid svg_image" alt="home" /> <span class="flaticon-virus "></span>
</div>
<div class="content_box">
<h2><a href="#">Be Supportive</a></h2>
<p>It is a long established fact that a reader will be distracted . </p>
</div>
</div>
<div class="icon_box type_one last wow slideInUp" data-wow-delay="300ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/smartphone.svg" class="img-fluid svg_image" alt="svg" /> <span class="flaticon-virus "></span>
</div>
<div class="content_box">
<h6>Contact Support</h6>
<h2><a href="#"><?=MERMS_PHONE_USA?></a></h2>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
+94
View File
@@ -0,0 +1,94 @@
<!------main-content------>
<main class="main-content">
<section class="page_title" style="height: 60px;">
<div class="container">
<div class="row">
<div class="col-lg-12 d-flex">
<div class="content_box">
<ul class="bread_crumb text-center">
<li class="bread_crumb-item"><a href="/">Home</a></li>
<li class="bread_crumb-item active">TRY MERMS FREE!</li>
</ul>
<h1>MERMS Sign up</h1>
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<section class="prevention_single">
<div class="container">
<div class="row">
<div class="col-lg-8">
<div class="prevention_single_content">
<h1>Signup</h1>
<div class="content_box">
<ul>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
</ul>
</div>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
PLUG THE CURRENT SIGNUP FORM HERE <br>
</div>
</div>
<div class="col-lg-4">
<div class="prevention_single_content">
<div class="content_box">
<ul>
<li>Side Item Here Short text.</span></li>
<li>Side Item Here Short text.</span></li>
<li>Side Item Here Short text.</span></li>
<li>Side Item Here Short text.</span></li>
<li>Side Item Here Short text.</span></li>
<li>Side Item Here Short text.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li>Side Item Here Short text.</span></li>
<li>Side Item Here Short text.</span></li>
</ul>
</div>
</div>
<div class="image_box">
<img src="/assets/image/resources/prevention-single.jpg" class="img-fluid" alt="prevention" />
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<!-------------main-centent-end--------------->
</main>
+7
View File
@@ -0,0 +1,7 @@
<?php
use CodeIgniter\CLI\CLI;
CLI::error('ERROR: ' . $code);
CLI::write($message);
CLI::newLine();
+72
View File
@@ -0,0 +1,72 @@
<?php
use CodeIgniter\CLI\CLI;
// The main Exception
CLI::newLine();
CLI::write('[' . get_class($exception) . ']', 'light_gray', 'red');
CLI::newLine();
CLI::write($message);
CLI::newLine();
CLI::write('at ' . CLI::color(clean_path($exception->getFile()) . ':' . $exception->getLine(), 'green'));
CLI::newLine();
// The backtrace
if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE)
{
$backtraces = $exception->getTrace();
if ($backtraces)
{
CLI::write('Backtrace:', 'green');
}
foreach ($backtraces as $i => $error)
{
$padFile = ' '; // 4 spaces
$padClass = ' '; // 7 spaces
$c = str_pad($i + 1, 3, ' ', STR_PAD_LEFT);
if (isset($error['file']))
{
$filepath = clean_path($error['file']) . ':' . $error['line'];
CLI::write($c . $padFile . CLI::color($filepath, 'yellow'));
}
else
{
CLI::write($c . $padFile . CLI::color('[internal function]', 'yellow'));
}
$function = '';
if (isset($error['class']))
{
$type = ($error['type'] === '->') ? '()' . $error['type'] : $error['type'];
$function .= $padClass . $error['class'] . $type . $error['function'];
}
elseif (! isset($error['class']) && isset($error['function']))
{
$function .= $padClass . $error['function'];
}
$args = implode(', ', array_map(function ($value) {
switch (true)
{
case is_object($value):
return 'Object(' . get_class($value) . ')';
case is_array($value):
return count($value) ? '[...]' : '[]';
case is_null($value):
return 'null'; // return the lowercased version
default:
return var_export($value, true);
}
}, array_values($error['args'] ?? [])));
$function .= '(' . $args . ')';
CLI::write($function);
CLI::newLine();
}
}
+5
View File
@@ -0,0 +1,5 @@
<?php
// On the CLI, we still want errors in productions
// so just use the exception template.
include __DIR__ . '/error_exception.php';
+177
View File
@@ -0,0 +1,177 @@
body {
height: 100%;
background: #fafafa;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #777;
font-weight: 300;
margin: 0;
padding: 0;
}
h1 {
font-weight: lighter;
letter-spacing: 0.8;
font-size: 3rem;
color: #222;
margin: 0;
}
h1.headline {
margin-top: 20%;
font-size: 5rem;
}
.text-center {
text-align: center;
}
p.lead {
font-size: 1.6rem;
}
.container {
max-width: 75rem;
margin: 0 auto;
padding: 1rem;
}
.header {
background: #85271f;
color: #fff;
}
.header h1 {
color: #fff;
}
.header p {
font-size: 1.2rem;
margin: 0;
line-height: 2.5;
}
.header a {
color: rgba(255,255,255,0.5);
margin-left: 2rem;
display: none;
text-decoration: none;
}
.header:hover a {
display: inline;
}
.footer .container {
border-top: 1px solid #e7e7e7;
margin-top: 1rem;
text-align: center;
}
.source {
background: #333;
color: #c7c7c7;
padding: 0.5em 1em;
border-radius: 5px;
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
margin: 0;
overflow-x: scroll;
}
.source span.line {
line-height: 1.4;
}
.source span.line .number {
color: #666;
}
.source .line .highlight {
display: block;
background: #555;
color: #fff;
}
.source span.highlight .number {
color: #fff;
}
.tabs {
list-style: none;
list-style-position: inside;
margin: 0;
padding: 0;
margin-bottom: -1px;
}
.tabs li {
display: inline;
}
.tabs a:link,
.tabs a:visited {
padding: 0rem 1rem;
line-height: 2.7;
text-decoration: none;
color: #a7a7a7;
background: #f1f1f1;
border: 1px solid #e7e7e7;
border-bottom: 0;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
display: inline-block;
}
.tabs a:hover {
background: #e7e7e7;
border-color: #e1e1e1;
}
.tabs a.active {
background: #fff;
}
.tab-content {
background: #fff;
border: 1px solid #efefef;
}
.content {
padding: 1rem;
}
.hide {
display: none;
}
.alert {
margin-top: 2rem;
display: block;
text-align: center;
line-height: 3.0;
background: #d9edf7;
border: 1px solid #bcdff1;
border-radius: 5px;
color: #31708f;
}
ul, ol {
line-height: 1.8;
}
table {
width: 100%;
overflow: hidden;
}
th {
text-align: left;
border-bottom: 1px solid #e7e7e7;
padding-bottom: 0.5rem;
}
td {
padding: 0.2rem 0.5rem 0.2rem 0;
}
tr:hover td {
background: #f1f1f1;
}
td pre {
white-space: pre-wrap;
}
.trace a {
color: inherit;
}
.trace table {
width: auto;
}
.trace tr td:first-child {
min-width: 5em;
font-weight: bold;
}
.trace td {
background: #e7e7e7;
padding: 0 1rem;
}
.trace td pre {
margin: 0;
}
.args {
display: none;
}
+128
View File
@@ -0,0 +1,128 @@
//--------------------------------------------------------------------
// Tabs
//--------------------------------------------------------------------
var tabLinks = new Array();
var contentDivs = new Array();
function init()
{
// Grab the tab links and content divs from the page
var tabListItems = document.getElementById('tabs').childNodes;
console.log(tabListItems);
for (var i = 0; i < tabListItems.length; i ++)
{
if (tabListItems[i].nodeName == "LI")
{
var tabLink = getFirstChildWithTagName(tabListItems[i], 'A');
var id = getHash(tabLink.getAttribute('href'));
tabLinks[id] = tabLink;
contentDivs[id] = document.getElementById(id);
}
}
// Assign onclick events to the tab links, and
// highlight the first tab
var i = 0;
for (var id in tabLinks)
{
tabLinks[id].onclick = showTab;
tabLinks[id].onfocus = function () {
this.blur()
};
if (i == 0)
{
tabLinks[id].className = 'active';
}
i ++;
}
// Hide all content divs except the first
var i = 0;
for (var id in contentDivs)
{
if (i != 0)
{
console.log(contentDivs[id]);
contentDivs[id].className = 'content hide';
}
i ++;
}
}
//--------------------------------------------------------------------
function showTab()
{
var selectedId = getHash(this.getAttribute('href'));
// Highlight the selected tab, and dim all others.
// Also show the selected content div, and hide all others.
for (var id in contentDivs)
{
if (id == selectedId)
{
tabLinks[id].className = 'active';
contentDivs[id].className = 'content';
}
else
{
tabLinks[id].className = '';
contentDivs[id].className = 'content hide';
}
}
// Stop the browser following the link
return false;
}
//--------------------------------------------------------------------
function getFirstChildWithTagName(element, tagName)
{
for (var i = 0; i < element.childNodes.length; i ++)
{
if (element.childNodes[i].nodeName == tagName)
{
return element.childNodes[i];
}
}
}
//--------------------------------------------------------------------
function getHash(url)
{
var hashPos = url.lastIndexOf('#');
return url.substring(hashPos + 1);
}
//--------------------------------------------------------------------
function toggle(elem)
{
elem = document.getElementById(elem);
if (elem.style && elem.style['display'])
{
// Only works with the "style" attr
var disp = elem.style['display'];
}
else if (elem.currentStyle)
{
// For MSIE, naturally
var disp = elem.currentStyle['display'];
}
else if (window.getComputedStyle)
{
// For most other browsers
var disp = document.defaultView.getComputedStyle(elem, null).getPropertyValue('display');
}
// Toggle the state of the "display" style
elem.style.display = disp == 'block' ? 'none' : 'block';
return false;
}
+84
View File
@@ -0,0 +1,84 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404 Page Not Found</title>
<style>
div.logo {
height: 200px;
width: 155px;
display: inline-block;
opacity: 0.08;
position: absolute;
top: 2rem;
left: 50%;
margin-left: -73px;
}
body {
height: 100%;
background: #fafafa;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #777;
font-weight: 300;
}
h1 {
font-weight: lighter;
letter-spacing: 0.8;
font-size: 3rem;
margin-top: 0;
margin-bottom: 0;
color: #222;
}
.wrap {
max-width: 1024px;
margin: 5rem auto;
padding: 2rem;
background: #fff;
text-align: center;
border: 1px solid #efefef;
border-radius: 0.5rem;
position: relative;
}
pre {
white-space: normal;
margin-top: 1.5rem;
}
code {
background: #fafafa;
border: 1px solid #efefef;
padding: 0.5rem 1rem;
border-radius: 5px;
display: block;
}
p {
margin-top: 1.5rem;
}
.footer {
margin-top: 2rem;
border-top: 1px solid #efefef;
padding: 1em 2em 0 2em;
font-size: 85%;
color: #999;
}
a:active,
a:link,
a:visited {
color: #dd4814;
}
</style>
</head>
<body>
<div class="wrap">
<h1>404 - File Not Found</h1>
<p>
<?php if (! empty($message) && $message !== '(null)') : ?>
<?= esc($message) ?>
<?php else : ?>
Sorry! Cannot seem to find the page you were looking for.
<?php endif ?>
</p>
</div>
</body>
</html>
+401
View File
@@ -0,0 +1,401 @@
<?php $error_id = uniqid('error', true); ?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex">
<title><?= esc($title) ?></title>
<style type="text/css">
<?= preg_replace('#[\r\n\t ]+#', ' ', file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'debug.css')) ?>
</style>
<script type="text/javascript">
<?= file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'debug.js') ?>
</script>
</head>
<body onload="init()">
<!-- Header -->
<div class="header">
<div class="container">
<h1><?= esc($title), esc($exception->getCode() ? ' #' . $exception->getCode() : '') ?></h1>
<p>
<?= esc($exception->getMessage()) ?>
<a href="https://www.google.com/search?q=<?= urlencode($title . ' ' . preg_replace('#\'.*\'|".*"#Us', '', $exception->getMessage())) ?>"
rel="noreferrer" target="_blank">search &rarr;</a>
</p>
</div>
</div>
<!-- Source -->
<div class="container">
<p><b><?= esc(static::cleanPath($file, $line)) ?></b> at line <b><?= esc($line) ?></b></p>
<?php if (is_file($file)) : ?>
<div class="source">
<?= static::highlightFile($file, $line, 15); ?>
</div>
<?php endif; ?>
</div>
<div class="container">
<ul class="tabs" id="tabs">
<li><a href="#backtrace">Backtrace</a></li>
<li><a href="#server">Server</a></li>
<li><a href="#request">Request</a></li>
<li><a href="#response">Response</a></li>
<li><a href="#files">Files</a></li>
<li><a href="#memory">Memory</a></li>
</li>
</ul>
<div class="tab-content">
<!-- Backtrace -->
<div class="content" id="backtrace">
<ol class="trace">
<?php foreach ($trace as $index => $row) : ?>
<li>
<p>
<!-- Trace info -->
<?php if (isset($row['file']) && is_file($row['file'])) :?>
<?php
if (isset($row['function']) && in_array($row['function'], ['include', 'include_once', 'require', 'require_once'], true))
{
echo esc($row['function'] . ' ' . static::cleanPath($row['file']));
}
else
{
echo esc(static::cleanPath($row['file']) . ' : ' . $row['line']);
}
?>
<?php else : ?>
{PHP internal code}
<?php endif; ?>
<!-- Class/Method -->
<?php if (isset($row['class'])) : ?>
&nbsp;&nbsp;&mdash;&nbsp;&nbsp;<?= esc($row['class'] . $row['type'] . $row['function']) ?>
<?php if (! empty($row['args'])) : ?>
<?php $args_id = $error_id . 'args' . $index ?>
( <a href="#" onclick="return toggle('<?= esc($args_id, 'attr') ?>');">arguments</a> )
<div class="args" id="<?= esc($args_id, 'attr') ?>">
<table cellspacing="0">
<?php
$params = null;
// Reflection by name is not available for closure function
if (substr($row['function'], -1) !== '}')
{
$mirror = isset($row['class']) ? new \ReflectionMethod($row['class'], $row['function']) : new \ReflectionFunction($row['function']);
$params = $mirror->getParameters();
}
foreach ($row['args'] as $key => $value) : ?>
<tr>
<td><code><?= esc(isset($params[$key]) ? '$' . $params[$key]->name : "#$key") ?></code></td>
<td><pre><?= esc(print_r($value, true)) ?></pre></td>
</tr>
<?php endforeach ?>
</table>
</div>
<?php else : ?>
()
<?php endif; ?>
<?php endif; ?>
<?php if (! isset($row['class']) && isset($row['function'])) : ?>
&nbsp;&nbsp;&mdash;&nbsp;&nbsp; <?= esc($row['function']) ?>()
<?php endif; ?>
</p>
<!-- Source? -->
<?php if (isset($row['file']) && is_file($row['file']) && isset($row['class'])) : ?>
<div class="source">
<?= static::highlightFile($row['file'], $row['line']) ?>
</div>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ol>
</div>
<!-- Server -->
<div class="content" id="server">
<?php foreach (['_SERVER', '_SESSION'] as $var) : ?>
<?php if (empty($GLOBALS[$var]) || ! is_array($GLOBALS[$var]))
{
continue;
} ?>
<h3>$<?= esc($var) ?></h3>
<table>
<thead>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<?php foreach ($GLOBALS[$var] as $key => $value) : ?>
<tr>
<td><?= esc($key) ?></td>
<td>
<?php if (is_string($value)) : ?>
<?= esc($value) ?>
<?php else: ?>
<pre><?= esc(print_r($value, true)) ?></pre>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endforeach ?>
<!-- Constants -->
<?php $constants = get_defined_constants(true); ?>
<?php if (! empty($constants['user'])) : ?>
<h3>Constants</h3>
<table>
<thead>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<?php foreach ($constants['user'] as $key => $value) : ?>
<tr>
<td><?= esc($key) ?></td>
<td>
<?php if (is_string($value)) : ?>
<?= esc($value) ?>
<?php else: ?>
<pre><?= esc(print_r($value, true)) ?></pre>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
</div>
<!-- Request -->
<div class="content" id="request">
<?php $request = \Config\Services::request(); ?>
<table>
<tbody>
<tr>
<td style="width: 10em">Path</td>
<td><?= esc($request->uri) ?></td>
</tr>
<tr>
<td>HTTP Method</td>
<td><?= esc($request->getMethod(true)) ?></td>
</tr>
<tr>
<td>IP Address</td>
<td><?= esc($request->getIPAddress()) ?></td>
</tr>
<tr>
<td style="width: 10em">Is AJAX Request?</td>
<td><?= $request->isAJAX() ? 'yes' : 'no' ?></td>
</tr>
<tr>
<td>Is CLI Request?</td>
<td><?= $request->isCLI() ? 'yes' : 'no' ?></td>
</tr>
<tr>
<td>Is Secure Request?</td>
<td><?= $request->isSecure() ? 'yes' : 'no' ?></td>
</tr>
<tr>
<td>User Agent</td>
<td><?= esc($request->getUserAgent()->getAgentString()) ?></td>
</tr>
</tbody>
</table>
<?php $empty = true; ?>
<?php foreach (['_GET', '_POST', '_COOKIE'] as $var) : ?>
<?php if (empty($GLOBALS[$var]) || ! is_array($GLOBALS[$var]))
{
continue;
} ?>
<?php $empty = false; ?>
<h3>$<?= esc($var) ?></h3>
<table style="width: 100%">
<thead>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<?php foreach ($GLOBALS[$var] as $key => $value) : ?>
<tr>
<td><?= esc($key) ?></td>
<td>
<?php if (is_string($value)) : ?>
<?= esc($value) ?>
<?php else: ?>
<pre><?= esc(print_r($value, true)) ?></pre>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endforeach ?>
<?php if ($empty) : ?>
<div class="alert">
No $_GET, $_POST, or $_COOKIE Information to show.
</div>
<?php endif; ?>
<?php $headers = $request->getHeaders(); ?>
<?php if (! empty($headers)) : ?>
<h3>Headers</h3>
<table>
<thead>
<tr>
<th>Header</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<?php foreach ($headers as $value) : ?>
<?php if (empty($value))
{
continue;
} ?>
<?php if (! is_array($value))
{
$value = [$value];
} ?>
<?php foreach ($value as $h) : ?>
<tr>
<td><?= esc($h->getName(), 'html') ?></td>
<td><?= esc($h->getValueLine(), 'html') ?></td>
</tr>
<?php endforeach; ?>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
</div>
<!-- Response -->
<?php
$response = \Config\Services::response();
$response->setStatusCode(http_response_code());
?>
<div class="content" id="response">
<table>
<tr>
<td style="width: 15em">Response Status</td>
<td><?= esc($response->getStatusCode() . ' - ' . $response->getReason()) ?></td>
</tr>
</table>
<?php $headers = $response->getHeaders(); ?>
<?php if (! empty($headers)) : ?>
<?php natsort($headers) ?>
<h3>Headers</h3>
<table>
<thead>
<tr>
<th>Header</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<?php foreach ($headers as $name => $value) : ?>
<tr>
<td><?= esc($name, 'html') ?></td>
<td><?= esc($response->getHeaderLine($name), 'html') ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
</div>
<!-- Files -->
<div class="content" id="files">
<?php $files = get_included_files(); ?>
<ol>
<?php foreach ($files as $file) :?>
<li><?= esc(static::cleanPath($file)) ?></li>
<?php endforeach ?>
</ol>
</div>
<!-- Memory -->
<div class="content" id="memory">
<table>
<tbody>
<tr>
<td>Memory Usage</td>
<td><?= esc(static::describeMemory(memory_get_usage(true))) ?></td>
</tr>
<tr>
<td style="width: 12em">Peak Memory Usage:</td>
<td><?= esc(static::describeMemory(memory_get_peak_usage(true))) ?></td>
</tr>
<tr>
<td>Memory Limit:</td>
<td><?= esc(ini_get('memory_limit')) ?></td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /tab-content -->
</div> <!-- /container -->
<div class="footer">
<div class="container">
<p>
Displayed at <?= esc(date('H:i:sa')) ?> &mdash;
PHP: <?= esc(phpversion()) ?> &mdash;
CodeIgniter: <?= esc(\CodeIgniter\CodeIgniter::CI_VERSION) ?>
</p>
</div>
</div>
</body>
</html>
+25
View File
@@ -0,0 +1,25 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex">
<title>Whoops!</title>
<style type="text/css">
<?= preg_replace('#[\r\n\t ]+#', ' ', file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'debug.css')) ?>
</style>
</head>
<body>
<div class="container text-center">
<h1 class="headline">Whoops!</h1>
<p class="lead">We seem to have hit a snag. Please try again later...</p>
</div>
</body>
</html>
+57
View File
@@ -0,0 +1,57 @@
<!------main-content------>
<main class="main-content">
<section class="page_title">
<div class="container">
<div class="row">
<div class="col-lg-12 d-flex">
<div class="content_box">
<ul class="bread_crumb text-center">
<li class="bread_crumb-item"><a href="/">Home</a></li>
<li class="bread_crumb-item active"> <?=PROUCT_BRAND_NAME?> Faq's</li>
</ul>
<h1 style="color:black;"><?=PROUCT_BRAND_NAME?> Faq's</h1>
</div>
</div>
</div>
</div>
</section>
<!--------doctors-------->
<section class="faq_all">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div id="accordiontwo">
<?php
$ii=0;
foreach($merms_faq as $q){
?>
<div class="card faq_box type_one">
<div class="card-header" id="heading<?=$ii?>">
<h5 class="mb-0">
<button class="faq_btn <?=$ii==0?'':'collapsed'?>" data-toggle="collapse" data-target="#collapse<?=$ii?>" aria-expanded="<?=$ii==0?true:false?>" aria-controls="collapse<?=$ii?>">
<?=$q[1]?><span class="flaticon-question-2 faq_icon"></span>
</button>
</h5>
</div>
<div id="collapse<?=$ii?>" class="collapse <?=$ii==0?'show':''?>" aria-labelledby="heading<?=$ii?>" data-parent="#accordiontwo">
<div class="card-body">
<?=$q[3]?>
</div>
</div>
</div>
<?php
$ii++;
}
?>
</div>
</div>
</div>
</div>
</section>
+202
View File
@@ -0,0 +1,202 @@
<section class="footer type_two">
<!-- div class="footer_layer" style="background-image: url(assets/image/resources/footer-bg1.png);"></div -->
<div class="container">
<div class="row">
<div class="col-lg-6 col-xs-12">
<div class="footer_widgets tp_two first">
<!-- h3 class="widgets_title logo">
<a href="/"><img src="assets/image/logo.png" class="img-fluid" alt="MERMS"></a>
</h3 -->
<h3 class="widgets_title"><?=PROUCT_BRAND_NAME?></h3>
<div class="inner_widgets">
<p><?=PROUCT_BRAND_NAME?> is a unified suite of software solutions designed for m healthcare organizations and independent physician practices. Features include practice management, electronic health records, medical billing, patient engagement tools, telemedicine functionality, patient charts, reputation management.</p>
<div class="social_media_icon">
<ul class="clearfix">
<li>
<a href="<?=MERMS_FACEBOOK?>" class="has-tooltip">
<span class="fa fa-facebook"></span>
<div class="c-tooltip">
<div class="tooltip-inner">Facebook</div>
</div>
</a>
</li>
<li>
<a href="<?=MERMS_TWITTER?>" class="has-tooltip">
<span class="fa fa-twitter"></span>
<div class="c-tooltip">
<div class="tooltip-inner">Twitter</div>
</div>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
<div class="footer_widgets tp_two">
<h3 class="widgets_title">Usefull links</h3>
<div class="inner_widgets">
<ul>
<li><a href="/support">Support/Help</a></li>
<li><a href="/faq">FAQ</a></li>
<li><a href="/developers">Developers</a></li>
<li><a href="/terms">Terms & Conditions</a></li>
</ul>
</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
<div class="footer_widgets tp_two">
<h3 class="widgets_title">Contact us</h3>
<div class="inner_widgets">
<div class="text_box">
<span class="fa fa-map-marker"></span>
<p><?=MERMS_ADDRESS_USA?></p>
</div>
<div class="text_box">
<span class="fa fa-phone"></span>
<p><?=MERMS_PHONE_USA?></p>
</div>
<!-- div class="text_box">
<span class="fa fa-clock-o"></span>
<p>Mon - Fri: 09.00 to 18.00</p>
</div -->
<div class="text_box">
<span class="fa fa-envelope"></span>
<p><?=MERMS_SUPPORT_EMAIL?></p>
</div>
</div>
</div>
</div>
</div>
<div class="footer_last type_two">
<div class="row">
<div class="col-lg-12 text-center">
<p><?=PROUCT_BRAND_NAME?></a> <i class="fa fa-copyright"></i> <?= date('Y') ?> <?=PROUCT_BRAND_NAME?>. All Rights Reserved.</p>
</div>
</div>
</div>
</div>
</section>
<!-------------main-centent-end--------------->
</main>
</div>
<!--Scroll to top-->
<a href="#" id="scroll" class="default-bg" style="display: inline;"><span class="fa fa-angle-up"></span></a>
<!---------mbile-navbar----->
<div class="bsnav-mobile">
<div class="bsnav-mobile-overlay"></div>
<div class="navbar">
<button class="navbar-toggler toggler-spring mobile-toggler"><span class="fa fa-close"></span></button>
</div>
</div>
<!---------mbile-navbar----->
<!-- /.side-menu__block -->
<div class="side-menu__block">
<div class="side-menu__block-overlay custom-cursor__overlay">
<div class="cursor"></div>
<div class="cursor-follower"></div>
</div>
<!-- /.side-menu__block-overlay -->
<div class="side-menu__block-inner">
<div class="row">
<div class="col-lg-12">
<div class="logo_site">
<a href="/"><img src="/assets/image/logo.png" alt="logo" /></a>
</div>
<div class="side-menu__block-contact">
<h2>We love to hear from you.</h2>
<div class="form_outer">
<form>
<div class="from_group">
<input type="text" name="name" placeholder="Name" />
</div>
<div class="from_group">
<input type="email" name="email" placeholder="Email" />
</div>
<div class="from_group">
<input type="text" name="phone" placeholder="Phone" />
</div>
<div class="from_group">
<textarea rows="4" placeholder="Send your feedback"></textarea>
</div>
<div class="from_group">
<button class="theme_btn tp_two" type="submit">Contact Us</button>
</div>
</form>
</div>
</div>
<!-- /.side-menu__block-contact -->
<div class="side-menu__block-contact">
<h3 class="side-menu__block__title">Contact Us</h3>
<!-- /.side-menu__block__title -->
<ul class="side-menu__block-contact__list">
<li class="side-menu__block-contact__list-item">
<i class="fa fa-map-marker"></i> <?=MERMS_ADDRESS_USA?>
</li>
<!-- /.side-menu__block-contact__list-item -->
<li class="side-menu__block-contact__list-item">
<i class="fa fa-phone"></i>
<a href="tel:<?=MERMS_PHONE_USA?>"><?=MERMS_PHONE_USA?></a>
</li>
<!-- /.side-menu__block-contact__list-item -->
<li class="side-menu__block-contact__list-item">
<i class="fa fa-envelope"></i>
<a href="mailto:<?=MERMS_SUPPORT_EMAIL?>"><?=MERMS_SUPPORT_EMAIL?></a>
</li>
<!-- /.side-menu__block-contact__list-item -->
<!-- li class="side-menu__block-contact__list-item">
<i class="fa fa-clock-o"></i> Week Days: 09.00 to 18.00 EST.<br> Sunday: Closed
</li -->
<!-- /.side-menu__block-contact__list-item -->
</ul>
<!-- /.side-menu__block-contact__list -->
</div>
<!-- /.side-menu__block-contact -->
<p class="side-menu__block__text site-footer__copy-text"><a href="/"><?=PROUCT_BRAND_NAME?></a> <i class="fa fa-copyright"></i> <?= date('Y') ?> All Right Reserved</p>
</div>
</div>
<!-- /.side-menu__block-inner -->
</div>
</div>
<!-- /.side-menu__block -->
<!-----------------------------------script-------------------------------------->
<script src="/assets/js/jquery.js"></script>
<script src="/assets/js/popper.min.js"></script>
<script src="/assets/js/bootstrap.min.js"></script>
<script src="/assets/js/bsnav.min.js"></script>
<script src="/assets/js/jquery-ui.js"></script>
<script src="/assets/js/owl.js"></script>
<script src="/assets/js/wow.js"></script>
<script src="/assets/js/jquery.fancybox.js"></script>
<script src="/assets/js/TweenMax.min.js"></script>
<script src="/assets/js/validator.min.js"></script>
<script src="/assets/js/appear.js"></script>
<script src="/assets/js/moment.js"></script>
<script src="/assets/js/jquery.flexslider-min.js"></script>
<script src="/assets/js/pagenav.js"></script>
<script src="/assets/js/custom.js"></script>
<!-- Start Google Analytics -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-139179419-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-139179419-1');
</script
</body>
</html>
+140
View File
@@ -0,0 +1,140 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="title" content="<?=PROUCT_BRAND_NAME?>">
<meta property="fb:app_id" content="312" />
<meta property="og:type" content="<?=PROUCT_BRAND_NAME?>" />
<meta property="og:title" content="<?=PROUCT_BRAND_NAME?>">
<meta property="og:description" content="<?=PROUCT_BRAND_NAME?>">
<meta name="full-screen" content="yes">
<meta name="theme-color" content="#269bef">
<meta name="description" content="Establish and grow a healthy practice with <?=PROUCT_BRAND_NAME?>; Clinical, Billing, Managed Billing, Documants and Practice modules." />
<meta name="keywords" content="EHR, EMR, Electronic Medical records, Electronic Health Records, Electronic Health Records, PM, Practice Management, Patient Engagement, Practice Marketing, Billing Services, ePrescribing, Medical Billing, Electronic Health Records, Meaningful Use, ICD-10" />
<meta name="news_keywords" content="EHR, EMR, Electronic Medical records, Electronic Health Records, Electronic Health Records, PM, Practice Management, Patient Engagement, Practice Marketing, RCM, Billing Services, ePrescribing, Medical Billing, Electronic Health Records, Meaningful Use, ICD-10" />
<link rel="canonical" href="https://www.<?=PROUCT_BRAND_NAME?>.com/" />
<link rel="shortlink" href="https://www.<?=PROUCT_BRAND_NAME?>.com/" />
<!-- Responsive -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title><?=PROUCT_BRAND_NAME?> - comprehensive health care solution</title>
<link rel="stylesheet" type="text/css" href="/assets/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/assets/css/style.css">
<link rel="stylesheet" type="text/css" href="/assets/fonts/font/flaticon.css">
<!---------favicon--------------->
<link rel="icon" type="image/png" href="/assets/image/favicon.ico" sizes="32x32">
<!---------favicon--------------->
</head>
<body class="home_page_one">
<div class="page_wapper">
<!--Start Preloader-->
<!-- div class="preloader">
<div class="preloader_box">
<div class="loader">
<div class="circle item0"></div>
<div class="circle item1"></div>
<div class="circle item2"></div>
</div>
</div>
</div -->
<!--End Preloader -->
<!--Header-->
<header class="header_v2" id="blog">
<section class="header_top">
<div class="container">
<div class="row">
<div class="col-lg-8">
<div class="row">
<!-- div class="col-lg-3 col-md-3">
<div class="heading">
<h2>MERMS Blog</h2>
</div>
</div -->
<div class="col-lg-12 col-md-12">
<div class="news_inner">
<div class="owl-carousel owl-theme single_items">
<div class="mid-text">
<p><a href="/#applications">Welcome to <?=PROUCT_BRAND_NAME?>' Products </a></p>
</div>
<?php
if (isset($_SESSION['blogItem'])){
$blogItem = $_SESSION['blogItem'];
?>
<div class="mid-text">
<p><a href="<?=$blogItem['link']?>"><?=$blogItem['title']?></a></p>
</div>
<?php
}
?>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="text_right">
<div class="social_media_icon">
<ul class="clearfix">
<li>
<a href="<?=MERMS_FACEBOOK?>" class="has-tooltip">
<span class="fa fa-facebook"></span>
<div class="c-tooltip">
<div class="tooltip-inner">Facebook</div>
</div>
</a>
</li>
<li>
<a href="<?=MERMS_TWITTER?>" class="has-tooltip">
<span class="fa fa-twitter"></span>
<div class="c-tooltip">
<div class="tooltip-inner">Twitter</div>
</div>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="navbar_outer">
<div class="navbar navbar-expand-lg bsnav bsnav-sticky bsnav-sticky-slide">
<div class="container">
<a class="navbar-brand" href="/"><img src="/assets/image/logo.png" class="img-fluid" alt="<?=PROUCT_BRAND_NAME?>"></a>
<button class="navbar-toggler toggler-spring"><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse scroll-nav">
<ul class="navbar-nav navbar-mobile navbar_left ml-auto" id="nav">
<li class="nav-item nav_item"><a class="nav-link link_hd" href="/#autohome">Home </a></li>
<li class="nav-item nav_item"><a class="nav-link link_hd" href="/#about">About </a></li>
<li class="nav-item nav_item"><a class="nav-link link_hd" href="/#applications">Products</a></li>
<li class="nav-item nav_item"><a class="nav-link link_hd" href="/#contact">Contact</a></li>
<li class="nav-item nav_item"><a class="nav-link link_hd" href="/#ourblog">Blog </a></li>
<li class="nav-item nav_item"><a style='color:red' class="nav-link link_hd" href="/index.php/land/covit">COVID-19</a></li>
</ul>
<ul class="navbar-nav navbar-mobile navbar_right">
<li class="nav-item dropdown">
<!-- /.site-header__cart -->
<a href="#" class="site-header__sidemenu-nav side-menu__toggler">
<span class="site-header__sidemenu-nav-line"></span>
<!-- /.site-header__sidemenu-nav-line -->
<span class="site-header__sidemenu-nav-line"></span>
<!-- /.site-header__sidemenu-nav-line -->
<span class="site-header__sidemenu-nav-line"></span>
<!-- /.site-header__sidemenu-nav-line -->
</a>
</li>
</ul>
</div>
</div>
</div>
</section>
</header>
<!--Header-->
+465
View File
@@ -0,0 +1,465 @@
<main class="main-content">
<!------main-content------>
<!------main-slider------>
<section class="main-slider" id="autohome">
<div class="main-slider-carousel main_slider owl-carousel owl-theme">
<div class="slide one">
<div class="container text-left">
<div class="row">
<div class="col-lg-7 d-flex">
<div class="content">
<h6><?=PROUCT_BRAND_NAME?> EHR</h6>
<h1>Intelligent & user-friendly EMR/EHR at your service.</h1>
<div class="text">Manage various practice activities through user-friendly features customizable to your practice need.</div>
<div class="link-box">
<a href="/merms" class="theme_btn tp_two">Learn More</a>
<a href="/#contact" class="theme_btn tp_one two">Contact us</a>
</div>
</div>
</div>
<div class="col-lg-5">
<div class="slider_image slide_image_right clearfix">
<div class="image image_1 floating">
<img src="/assets/image/main-slider/merms-slider-1.png" class="img-fluid" alt="img" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="slide two">
<div class="container text-left">
<div class="row">
<div class="col-lg-6 d-flex order-last">
<div class="content slide_content_right">
<h6><?=PROUCT_BRAND_NAME?> EHR</h6>
<h1>Health Record Systems<br class="md_none"/> that works for you. </h1>
<div class="text">Manage various practice activities through user-friendly features customizable to your practice need.</div>
<div class="link-box">
<a href="/merms" class="theme_btn tp_two">Learn More</a>
<a href="/#contact" class="theme_btn tp_one two">Contact us</a>
</div>
</div>
</div>
<div class="col-lg-6 order-first">
<div class="slider_image slide_image_left clearfix">
<div class="image image_1 floating">
<img src="/assets/image/main-slider/merms-slider-2.png" class="img-fluid" alt="img" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="slide three">
<div class="container text-left">
<div class="row">
<div class="col-lg-7 d-flex">
<div class=" content">
<h6><?=PROUCT_BRAND_NAME?> EHR</h6>
<h1>Connect your world with your health with Health Intelligence.</h1>
<div class="text">Integrate tracking devices of your choice into your healthcare. Monitor vital signs and any health data point of your need.</div>
<div class="link-box">
<a href="/merms" class="theme_btn tp_two">Learn More</a>
<a href="/#contact" class="theme_btn tp_one two">Contact us</a>
</div>
</div>
</div>
<div class="col-lg-5">
<div class="slider_image slide_image_right clearfix">
<div class="image image_1 floating">
<img src="/assets/image/main-slider/merms-slider-3.png" class="img-fluid" alt="img" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!------main-slider------>
<!-------------welome_box---------->
<section class="welcome type_one">
<div class="container">
<div class="row">
<div class="col-lg-3 col-md-6 col-sm-6 col-xs-12">
<div class="icon_box type_one wow slideInUp" data-wow-delay="00ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/patient.svg" class="img-fluid svg_image" alt="<?=PROUCT_BRAND_NAME?> practice" />
</div>
<div class="content_box">
<h2><a href="/myfit">myFit Personal Care</a></h2>
<p>Whether your health goal is, myfit unleashes the power of AI with health design.</p>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-6 col-xs-12">
<div class="icon_box type_one wow slideInUp" data-wow-delay="100ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/patient.png" class="img-fluid svg_image" alt="<?=PROUCT_BRAND_NAME?> providers" />
</div>
<div class="content_box">
<h2><a href="/providers"><?=PROUCT_BRAND_NAME?> Providers</a></h2>
<p>Smart solutions for efficient encounters management and patient continuous care. </p>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-6 col-xs-12">
<div class="icon_box type_one wow slideInUp" data-wow-delay="200ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/toolbox.png" class="img-fluid svg_image" alt="Merms Tools" />
</div>
<div class="content_box">
<h2><a href="#"><?=PROUCT_BRAND_NAME?> Suite</a></h2>
<p>Our ecosystem of solutions includes tools that meet you on your platform of choice. </p>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6 col-sm-6 col-xs-12">
<div class="icon_box type_one last wow slideInUp" data-wow-delay="300ms" data-wow-duration="1500ms">
<div class="icon">
<img src="/assets/image/svg/others.png" class="img-fluid svg_image" alt="Other Services" />
</div>
<div class="content_box">
<h2><a href="#">More...</a></h2>
<h6>Telemedicine</h6>
<h6>Home Health</h6>
<h6>Professional Billers</h6>
</div>
</div>
</div>
</div>
</div>
</section>
<!-------------welome_box---------->
<!-------------abou us---------->
<section class="about type_one" id="about">
<div class="container">
<div class="row">
<div class="col-lg-6">
<div class="image_box">
<div class="image image_1">
<img src="/assets/image/resources/about-merms.png" class="img-fluid" alt="about <?=PROUCT_BRAND_NAME?>" />
</div>
<div class="image image_2">
<img src="/assets/image/resources/about-merms-2.png" class="img-fluid" alt="about <?=PROUCT_BRAND_NAME?>" />
</div>
</div>
</div>
<div class="col-lg-6">
<div class="heading tp_one icon_dark">
<h6>About <?=PROUCT_BRAND_NAME?></h6>
<h1>Your intelligent health care management platform.</h1>
<span class="flaticon-virus icon"></span>
</div>
<div class="about_content">
<p class="description"> <?=PROUCT_BRAND_NAME?> goal is to follow the patient's continuous case in personal and clinical settings without betraying any side. We understand users care goes beyond when they are hospitalized, our solution ensures your personal continues care is achievable in parallel with clinical encounters.
</p>
<div class="symptoms">
<h2>Optimizing your practice from all dimensions with modern technology.</h2>
<div class="row">
<div class="col-lg-6">
<ul>
<li>
<span class="flaticon-check"></span>
<p>Your practice on-the-go </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Health care analytics</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Modern Interface Design.</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Simplify what matters</p>
</li>
</ul>
</div>
<div class="col-lg-6">
<ul>
<li>
<span class="flaticon-check"></span>
<p>Remote Patient Monitoring</p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Health Notifications </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Integrated Telehealth </p>
</li>
<li>
<span class="flaticon-check"></span>
<p>Secure & Compliance.</p>
</li>
</ul>
</div>
</div>
</div>
<a href="#" class="theme_btn tp_two">Read More</a>
</div>
</div>
</div>
</div>
</section>
<section class="preventions bg_white type_two" id="applications">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="heading text-center icon_dark tp_one">
<h6>your total healthcare platform</h6>
<h1><?=PROUCT_BRAND_NAME?> myFit Personal Care.</h1>
<span class="flaticon-virus icon"></span>
<p>myFit is your personal health care concierge. this app helps you to manage the intricacies of your daily and long term health activities.</p>
</div>
</div>
</div>
<div class="row">
<?php
foreach ($myfit_items as $vl) {
// print_r($vl);
?>
<div class="col-lg-3 col-md-6 col-sm-6 col-xs-12">
<div class="icon_box type_three wow fadeIn" data-wow-delay="400ms" data-wow-duration="1500ms">
<div class="icon_box">
<img src="<?= $vl[1] ?>" class="img-fluid svg_icon" alt="img" />
</div>
<h2><a href="/claims"><?= $vl[0] ?></a></h2>
<a href="<?= $vl[4] ?>" class="read_more tp_two">Read More <span class="flaticon-arrow"></span></a>
</div>
</div>
<?php
}
?>
</div>
</div>
</section>
<section class="symptoms type_two">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="heading text-center icon_dark tp_one">
<h6>Complete EHR for your Practice</h6>
<h1><?=PROUCT_BRAND_NAME?> Providers</h1>
<span class="flaticon-virus icon"></span>
<p> <?=PROUCT_BRAND_NAME?> Providers is a unified suite of software solutions designed for m healthcare organizations and independent physician practices.</p>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6">
<div class="row">
<div class="col-lg-6">
<?php
foreach ($practice_text1 as $vl) {
// print_r($vl);
?>
<div class="symptoms_box_two wow slideInUp" data-wow-delay="00ms" data-wow-duration="1500ms">
<p><span><a href="<?=$vl[2]?>"><?= $vl[0] ?></a> </span><?= $vl[1] ?>.</p>
</div>
<?php
}
?>
</div>
<div class="col-lg-6">
<?php
foreach ($practice_text2 as $vl) {
// print_r($vl);
?>
<div class="symptoms_box_two wow slideInUp" data-wow-delay="00ms" data-wow-duration="1500ms">
<p><span><a href="<?=$vl[2]?>"><?= $vl[0] ?></a> </span><?= $vl[1] ?>.</p>
</div>
<?php
}
?>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="image_box">
<img src="assets/image/resources/merms-providers.png" class="img-fluid" alt="merms-providers" />
</div>
</div>
</div>
</div>
</section>
<section class="blog type_two" id="ourblog">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="heading text-center icon_dark tp_one">
<!-- h6>Blog</h6 -->
<h1>Latest from our Blog </h1>
<span class="flaticon-virus icon"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 padding_zero">
<div class=" owl-carousel three_items">
<?php
foreach ($blog_post as $bitem) {
// print_r($bitem);
?>
<div class="blog_box type_two">
<div class="image_box">
<img src="<?=$bitem['image']?>" class="img-fluid" alt="img" />
<div class="overlay">
<a href="<?= $bitem['link'][0] ?>" data-fancybox="gallery" data-caption="">
<span class="flaticon-image zoom_icon"></span>
</a>
</div>
</div>
<div class="content_box">
<a href="<?= $bitem['link'][0] ?>" class="category"><?=PROUCT_BRAND_NAME?></a>
<div class="title_box">
<div class="post-date">
<p><span class="fa fa-clock-o"></span><?= $bitem['date'][0] ?></p>
</div>
<h2><a href="<?= $bitem['link'][0] ?>"><?= $bitem['title'][0] ?> </a></h2>
</div>
<p><?= $bitem['desc'][0] ?>.</p>
<a href="<?= $bitem['link'][0] ?>" class="read_more tp_two">Read More<span class="flaticon-arrow"></span></a>
</div>
</div>
<?php
}
?>
</div>
</div>
</div>
</div>
</section>
<section class="contact_form faq type_two" id="contact">
<div class="container">
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="contact_form_box type_two">
<h2>Contact Us</h2>
<form>
<div class="row">
<div class="col-lg-6 col-md-6">
<div class="form-group">
<label> Name</label>
<input type="text" name="form_name" placeholder="" class="form-control">
</div>
</div>
<div class="col-lg-6 col-md-6">
<div class="form-group"> <label> Email</label>
<input type="email" name="form_email" placeholder="" class="form-control">
</div>
</div>
<div class="col-lg-6 col-md-6">
<div class="form-group"> <label> Phone</label>
<input type="text" name="form_phone" placeholder="" class="form-control">
</div>
</div>
<div class="col-lg-6 col-md-6">
<div class="form-group">
<label>Country of Travel</label>
<select name="country" id="country">
<option selected="selected">Select Country</option>
<?php
foreach ($country as $key => &$value) {
var_dump($ctr);
echo "<option>".$value."</option>";
}
?>
<option>Australia</option>
<option>America</option>
<option>China</option>
<option>England</option>
</select>
</div>
</div>
<div class="col-lg-12 col-md-12">
<div class="form-group"> <label> Message</label>
<textarea name="form_message" placeholder="" class="form-control textarea required" rows="3"></textarea>
</div>
</div>
<div class="col-lg-12 col-md-12">
<div class="lower_button_box">
<div class="row">
<div class="col-lg-7">
<div class="emergrncy_contact">
<h6>.</h6>
</div>
</div>
<div class="col-lg-5">
<div class="form-group text-right">
<button class="theme_btn tp_two" type="submit">Send Message</button>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="col-lg-6">
<div class="faq_box_outer">
<div class="heading tp_one">
<h6>Faq"s</h6>
<h1>Frequently Ask Questions</h1>
<span class="flaticon-virus icon"></span>
</div>
<h2></h2>
<div id="accordion">
<?php
$ii=0;
foreach($merms_faq as $q){
?>
<div class="card faq_box type_two">
<div class="card-header" id="heading<?=$ii?>">
<h5 class="mb-0">
<button class="faq_btn" data-toggle="collapse" data-target="#collapse<?=$ii?>" aria-expanded="true" aria-controls="collapse<?=$ii?>">
<span class="flaticon-question-3 faq_icon"></span> <?=$q[0]?>
</button>
</h5>
</div>
<div id="collapse<?=$ii?>" class="collapse <?=$ii==0?'show':''?>" aria-labelledby="heading<?=$ii?>" data-parent="#accordion">
<div class="card-body">
<?=$q[2]?>
</div>
</div>
</div>
<?php
$ii++;
}
?>
</div>
</div>
</div>
</div>
</div>
</section>
+76
View File
@@ -0,0 +1,76 @@
<!------main-content------>
<main class="main-content">
<section class="page_title">
<div class="container">
<div class="row">
<div class="col-lg-12 d-flex">
<div class="content_box">
<ul class="bread_crumb text-center">
<li class="bread_crumb-item"><a href="/">Home</a></li>
<li class="bread_crumb-item active"> myFit Personal Care</li>
</ul>
<h1 style="color:black;">myFit Personal Care</h1>
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<section class="prevention_single">
<div class="container">
<div class="row">
<div class="col-lg-4">
<div class="row">
<div class="col-lg-6">
<div class="image_box">
<a href="https://play.google.com/store/apps/details?id=com.mermsemr.myfit" class="large_button" id="android">
<img src="/assets/image/resources/apple-download.jpg" class="img-fluid" alt="prevention" />
</a>
</div>
</div>
<div class="col-lg-6">
<div class="image_box">
<a href="https://play.google.com/store/apps/details?id=com.mermsemr.myfit" class="large_button" id="android">
<img src="/assets/image/resources/google-download.jpg" class="img-fluid" alt="prevention" />
</a>
</div>
</div>
</div>
<div class="image_box">
<img src="/assets/image/resources/myfit-side.jpg" class="img-fluid" alt="myFit Personal" />
</div>
</div>
<div class="col-lg-8">
<div class="prevention_single_content">
<h1><a href="https://myfit.mermsemr.com/">myFit Personal Health</a></h1>
myFit is your personal health care concierge. this app helps you to manage the intricacies of your daily and long term health activities. With myFit, your health record is yours at all point, you decide your provider access as needed from time to time.
<br>
<div class="content_box">
<ul>
<li> Health Plan -Your health plan your way - myFit assist you organizing your prescription, health routines, your providers treatment plans in one place.</span></li>
<li> Health Tips - Health Tips myFit continuously help you organize both general and the few health questions relevant to you. We can privately help you find answer in our communities to new questions. myFit continuously help you organize both general and the few health questions relevant to you. We can privately help you find answer in our communities to new questions..</span></li>
<li> Reminders - Miss no appointment, medication schedule and more with myFit reminders. Allow your provider or simply set up whatever you needed reminding for.</span></li>
<li> Health Stats - Collect your health statistics yourself, weight changes, blood pressure, blood glucose data all helps to ensure that your provider is creating plans that fits you specifically.</span></li>
<li> Health Record - Health record your way. With myFit health record you control your information. Add family record and decide how you want your providers to access your record.</span></li>
<li> Help & Support - We are here to support you. let us know is there is anything we can do to make your personal care better - Contact us. </span></li>
<!-- li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li -->
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
+82
View File
@@ -0,0 +1,82 @@
<!------main-content------>
<main class="main-content">
<section class="page_title">
<div class="container">
<div class="row">
<div class="col-lg-12 d-flex">
<div class="content_box">
<ul class="bread_crumb text-center">
<li class="bread_crumb-item"><a href="/">Home</a></li>
<li class="bread_crumb-item active"> <?=PROUCT_BRAND_NAME?> Providers</li>
</ul>
<h1 style="color:black;"><?=PROUCT_BRAND_NAME?> Providers</h1>
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<section class="prevention_single">
<div class="container">
<div class="row">
<div class="col-lg-4">
<div class="row">
<div class="col-lg-6">
<div class="image_box">
<a href="https://play.google.com/store/apps/details?id=com.mermsemr.providers" class="large_button" id="android">
<img src="/assets/image/resources/apple-download.jpg" class="img-fluid" alt="prevention" />
</div>
</div>
<div class="col-lg-6">
<div class="image_box">
<a href="https://play.google.com/store/apps/details?id=com.mermsemr.providers" class="large_button" id="android">
<img src="/assets/image/resources/google-download.jpg" class="img-fluid" alt="prevention" />
</a>
</div>
</div>
</div>
<div class="image_box">
<img src="/assets/image/resources/prevention-single.jpg" class="img-fluid" alt="prevention" />
</div>
</div>
<div class="col-lg-8">
<div class="prevention_single_content">
<h1><?=PROUCT_BRAND_NAME?> Providers</h1>
<div class="content_box">
<ul>
<li> Create and Manage patient information on one clear interface. Add any number of patient insurance provider and employment information also. Accept patient picture with ease, monitor patient balance real time..</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More. It could be longer sometimes </span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
<li> WE need to form buleted test here for description - very SEO Ricch words and More.</span></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="covid_19_information">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="image_box">
<img src="/assets/image/resources/cov-19-information.jpg" class="img-fluid" alt="img" />
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<!-------------main-centent-end--------------->
</main>
+266
View File
@@ -0,0 +1,266 @@
<!------main-content------>
<main class="main-content">
<section class="page_title">
<div class="container">
<div class="row">
<div class="col-lg-12 d-flex">
<div class="content_box">
<ul class="bread_crumb text-center">
<li class="bread_crumb-item"><a href="/">Home</a></li>
<li class="bread_crumb-item active"> Terms & Condition of use</li>
</ul>
<h1 style="color:black;">Terms & Condition of use</h1>
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<section class="prevention_single">
<div class="container">
<div class="row">
<div class="col-lg-4">
<div class="image_box">
<img src="/assets/image/resources/prevention-single.jpg" class="img-fluid" alt="prevention" />
</div>
</div>
<div class="col-lg-8">
<div class="prevention_single_content">
<h1>Terms & Condition of use</h1>
<div class="content_box">
<ul>
<li>
Last Updated: 02/04/2021
myFit . ("MERMS myFit") is committed to upholding the privacy rights of individuals. This Privacy Policy explains the collection, use, purpose, and sharing of personally identifiable information ("PII") related to the use of Merms's myFit website https://myfit.mermsemr.com/ , MERMS providing of services to our users ("Partners"), or from our employees. PII does not include information that is anonymized or aggregated, and other information which is excluded from the scope of applicable privacy laws.
myFit does not require you to register or provide PII to visit our website. By accessing our website or purchasing our services, you agree to this Privacy Policy in addition to any other agreements we might have with you.
myFit complies with the EU-U.S. Privacy Shield Framework as set forth by the U.S. Department of Commerce regarding the collection, use, and retention of all personal information transferred from the European Union to the United States.
myFit adheres to the Privacy Shield Principles, and is subject to the investigatory and enforcement powers of the Federal Trade Commission. If there is any conflict between the terms in this Privacy Policy and the Privacy Shield Principles, the Privacy Shield Principles shall govern.
Provides its services (described below) to you through its website located at https://myfit.mermsemr.com/ (the "Site") and through its mobile applications and related services (collectively, such services, including any new features and applications, and the Site, the "Service(s)"), subject to the following Terms of Service (as amended from time to time, the "Terms of Service").
ADDITIONAL TERMS
Your use of the Services is at all times subject to our separate Terms of Use or such other customer or user agreement between myFit and the entity through which you access and use the Services, which incorporates this Privacy Policy. We use any terms in this Privacy Policy without defining them with the definitions given to them in our Terms of Use.
Access and Use of the Service
Services Description: Our Services are designed to provide you with personal health information platform service that helps you to manage the intricacies of your daily and long term health activities. It allows you to consolidate, track and optimize your health habits. Our Services may include health plan to track your health, organizing your prescription, health routines. Health tips, help you manage both general and the few health questions relevant to you. Health Records. Record you control your information. Your health record is yours at all point; you decide your provider access as needed from time to time. Add family record and determine how you want your providers to access your record, including Health Stats that collect your health statistics yourself, weight changes, blood pressure, blood glucose data, and ensure that your provider is creating plans that fit you precisely. We may provide certain recommendations based on your health habits. Our Services may also present you information relating to third-party products or services ("myFit Offers") that you may be interested in. The Services may also provide you with general tips, recommendations and educational material.
Access to Third Party Service Accounts: To use certain features of the Services, you may elect to grant myFit access to your accounts with certain third-party platforms for myFit to obtain certain history information about you. myFit will only use this information to provide you with the Services or in an aggregated and anonymized manner to generally improve its products and services. You represent that you are entitled to grant us access for this purpose, without any obligation by myFit to pay any fees or be subject to any restrictions or limitations. Using the Services, you expressly authorize myFit to access your account information maintained by identified third parties, on your behalf as your agent, and you expressly authorize such third parties to disclose your information to us. When you use the "Add Accounts" feature of the Services, you will be directly connected to the website for the third party you have identified. myFit will submit information including usernames and passwords that you provide to log into the Site. You hereby authorize and permit myFit to use and store the information submitted by you to accomplish the foregoing and configure the Services to be compatible with the third party sites for which you submit your information. For purposes of this Agreement and solely to provide the account information to you as part of the Services, you grant myFit a limited power of attorney, and appoint myFit as your attorney-in-fact and agent, to access third party sites, retrieve and use your information with the full power and authority to do and perform each thing necessary in connection with such activities, as you could do in person.
YOU ACKNOWLEDGE AND AGREE THAT WHEN myFit IS ACCESSING AND RETRIEVING ACCOUNT INFORMATION FROM THIRD PARTY SITES, myFit IS ACTING AS YOUR AGENT, AND NOT AS THE AGENT OF OR ON BEHALF OF THE THIRD PARTY THAT OPERATES THE THIRD PARTY SITE. You understand and agree that the Services are not sponsored or endorsed by any third parties accessible through the Services. myFit is not responsible for any payment processing errors or fees or other Services-related issues, including those issues that may arise from inaccurate account information.
Your Registration Obligations: You may be required to register with myFit to access and use certain Service features. If you choose to register for the Service, you agree to provide and maintain true, accurate, current and complete information about yourself as prompted by the Service's registration form. Our Privacy Policy governs registration data and certain other information about you. If you are under 13 years of age, you cannot use the Service, with or without registering. Also, if you are under 18 years old, you may use the Service, with or without registering, only with your parent or guardian's approval.
Member Account, Password and Security: You are responsible for maintaining the confidentiality of your password and account, if any, and are fully responsible for any activities that occur under your password or account. You agree to (a) immediately notify myFit of any unauthorized use of your password or account or any other breach of security, and (b) ensure that you exit from your account at the end of each session when accessing the Service. myFit will not be liable for any loss or damage arising from your failure to comply with this Section.
Modifications to Service: myFit reserves the right to modify or discontinue, temporarily or permanently, the Service (or any part thereof) with or without notice. You agree that myFit will not be liable to you or to any third party for any modification, suspension or discontinuance of the Service.
General Practices Regarding Use and Storage: You acknowledge that myFit may establish general practices and limits concerning use of the Service, including without limitation the maximum period of time that data or other content will be retained by the Service and the maximum storage space that will be allotted on myFit servers on your behalf. You agree that myFit has no responsibility or liability for the deletion or failure to store any data or other content maintained or uploaded by the Service. You acknowledge that myFit reserves the right to terminate accounts that are inactive for an extended period of time. You further acknowledge that myFit reserves the right to change these general practices and limits at any time, in its sole discretion, with or without notice.
Mobile Services: The Service includes certain services that are available via a mobile device, including (i) the ability to upload content to the Service via a mobile device, (ii) the ability to browse the Service and the Site from a mobile device and (iii) the ability to access certain features through an application downloaded and installed on a mobile device (collectively, the Mobile Services). To the extent you access the Service through a mobile device, your wireless service carrier standard charges, data rates and other fees may apply. In addition, downloading, installing, or using certain Mobile Services may be prohibited or restricted by your carrier, and not all Mobile Services may work with all carriers or devices. By using the Mobile Services, you agree that we may communicate with you regarding myFit and other entities by SMS, MMS, text message or other electronic means to your mobile device and that certain information about your usage of the Mobile Services may be communicated to us. In the event you change or deactivate your mobile telephone number, you agree to promptly update your myFit account information to ensure that your messages are not sent to the person that acquires your old number.
Conditions of Use
User Conduct: You are solely responsible for all code, video, images, information, data, text, software, music, sound, photographs, graphics, messages or other materials (Content) that you upload, post, publish or display (hereinafter, upload) or email or otherwise use via the Service. The following are examples of the kind of content and/or use that is illegal or prohibited by myFit. myFit reserves the right to investigate and take appropriate legal action against anyone who, in myFit sole discretion, violates this provision, including without limitation, removing the offending content from the Service, suspending or terminating the account of such violators and reporting you to the law enforcement authorities. You agree to not use the Service to:
email or otherwise upload any content that (i) infringes any intellectual property or other proprietary rights of any party; (ii) you do not have a right to upload under any law or under contractual or fiduciary relationships; (iii) contains software viruses or any other computer code, files or programs designed to interrupt, destroy or limit the functionality of any computer software or hardware or telecommunications equipment; (iv) poses or creates a privacy or security risk to any person; (v) constitutes unsolicited or unauthorized advertising, promotional materials, commercial activities and/or sales, junk mail, spam, chain letters, pyramid schemes,contests,sweepstakes, or any other form of solicitation; (vi) is unlawful, harmful, threatening, abusive, harassing, tortious, excessively violent, defamatory, vulgar, obscene, pornographic, libelous, invasive of anothers privacy, hateful racially, ethnically or otherwise objectionable; or (vii) in the sole judgment of myFit, is objectionable or which restricts or inhibits any other person from using or enjoying the Service, or which may expose myFit or its users to any harm or liability of any type;
interfere with or disrupt the Service or servers or networks connected to the Service, or disobey any requirements, procedures, policies or regulations of networks connected to the Service; or
violate any applicable local, state, national or international law, or any regulations having the force of law;
impersonate any person or entity, or falsely state or otherwise misrepresent your affiliation with a person or entity;
solicit personal information from anyone under the age of 18;
harvest or collect email addresses or other contact information of other users from the Service by electronic or other means for the purposes of sending unsolicited emails or other unsolicited communications; advertise or offer to sell or buy any goods or services for any business purpose that is not specifically authorized; further or promote any criminal activity or enterprise or provide instructional information about illegal activities; or obtain or attempt to access or otherwise obtain any materials or information through any means not intentionally made available or provided for through the Service.
Fees: To the extent the Service or any portion thereof is made available for any fee, you will be required to select a payment plan and provide myFit information regarding your credit card or other payment instrument. You represent and warrant to myFit that such information is true and that you are authorized to use the payment instrument. You will promptly update your account information with any changes (for example, a change in your billing address or credit card expiration date) that may occur. You agree to pay myFit the amount that is specified in the payment plan in accordance with the terms of such plan and this Terms of Service. You hereby authorize myFit to bill your payment instrument in advance on a periodic basis in accordance with the terms of the applicable payment plan until you terminate your account, and you further agree to pay any charges so incurred If you dispute any charges you must let myFit know within sixty (60) days after the date that myFit charges you. We reserve the right to change myFit prices. If myFit does change prices, myFit will provide notice of the change on the Site or in email to you, at myFit option, at least 30 days before the change is to take effect. Your continued use of the Service after the price change becomes effective constitutes your agreement to pay the changed amount. You shall be responsible for all taxes associated with the Services other than U.S. taxes based on myFit net income.
Special Notice for International Use; Export Controls: Software (defined below) available in connection with the Service and the transmission of applicable data, if any, is subject to United States export controls. No Software may be downloaded from the Service or otherwise exported or re-exported in violation of U.S. export laws. Downloading or using the Software is at your sole risk. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Service, including as it concerns online conduct and acceptable content.
Special Notice for International Use; Export Controls: Software (defined below) available in connection with the Service and the transmission of applicable data, if any, is subject to United States export controls. No Software may be downloaded from the Service or otherwise exported or re-exported in violation of U.S. export laws. Downloading or using the Software is at your sole risk. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Service, including as it concerns online conduct and acceptable content.
Rewards Program: Your account with myFit may accrue cash rewards in a variety of ways (Rewards). You can earn Rewards by changing your mobility behaviour in specific ways as suggested by myFit. The details of the Rewards are set forth on the myFit app and website, and you can track your Rewards in progress in you Special Notice for International Use; Export Controls: Software (defined below) available in connection with the Service and the transmission of applicable data, if any, is subject to United States export controls. No Software may be downloaded from the Service or otherwise exported or re-exported in violation of U.S. export laws. Downloading or using the Software is at your sole risk. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Service, including as it concerns online conduct and acceptable content. r account Rewards page. myFit shall pay you the Rewards, upon request, whenever they accrue at least 1000 points, to be paid out in cash and sent to your bank account listed in your account.
No Commercial Use: The Service is for your personal use only. Unless otherwise expressly authorized herein or in the Service, you agree not to display, distribute, license, perform, publish, reproduce, duplicate, copy, create derivative works from, modify, sell, resell, exploit, transfer or upload for any commercial purposes, any portion of the Service, use of the Service, or access to the Service
Third-Party Distribution Channels
myFit offers Software applications that may be made available through the Android App Store, Android Marketplace or other distribution channels (Distribution Channels). If you obtain such Software through a Distribution Channel, you may be subject to additional terms of the Distribution Channel. These Terms of Service are between you and us only, and not with the Distribution Channel. To the extent that you utilize any other third party products and services in connection with your use of our Services, you agree to comply with all applicable terms of any agreement for such third party products and services.
With respect to Software that is made available for your use in connection with an Android-branded product (such Software, Android-Enabled Software), in addition to the other terms and conditions set forth in these Terms of Service, the following terms and conditions apply:
myFit and you acknowledge that these Terms of Service are concluded between myFit and you only, and not with Android Inc. (Android), and that as between myFit and Android, myFit, not Android, is solely responsible for the Android-Enabled Software and the content thereof.
You may not use the Android-Enabled Software in any manner that is in violation of or inconsistent with the Usage Rules set forth for Android-Enabled Software in, or otherwise be in conflict with, the App Store Terms of Service.
Your license to use the Android-Enabled Software is limited to a non-transferable license to use the Android-Enabled Software on an Android Product that you own or control, as permitted by the Usage Rules set forth in the App Store Terms of Service.
Android has no obligation whatsoever to provide any maintenance or support services with respect to the Android-Enabled Software.
Android is not responsible for any product warranties, whether express or implied by law. In the event of any failure of the Android-Enabled Software to conform to any applicable warranty, you may notify Android, and Android will refund the purchase price for the Android-Enabled Software to you, if any; and, to the maximum extent permitted by applicable law, Android will have no other warranty obligation whatsoever with respect to the Android-Enabled Software, or any other claims, losses, liabilities, damages, costs or expenses attributable to any failure to conform to any warranty, which will be myFit sole responsibility, to the extent it cannot be disclaimed under applicable law.
myFit and you acknowledge that myFit, not Android, is responsible for addressing any claims of you or any third party relating to the Android-Enabled Software or your possession and/or use of that Android-Enabled Software, including, but not limited to: (i) product liability claims; (ii) any claim that the Android-Enabled Software fails to conform to any applicable legal or regulatory requirement; and (iii) claims arising under consumer protection or similar legislation.
In the event of any third party claim that the Android-Enabled Software or the end-users possession and use of that Android-Enabled Software infringes that third partys intellectual property rights, as between myFit and Android, myFit, not Android, will be solely responsible for the investigation, defense, settlement and discharge of any such intellectual property infringement claim.
You represent and warrant that (i) you are not located in a country that is subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a terrorist supporting country; and (ii) you are not listed on any U.S. Government list of prohibited or restricted parties.
If you have any questions, complaints or claims with respect to the Android-Enabled Software, they should be directed to myFit as follows:
support@mermsemr.com
myFit and you acknowledge and agree that Android, and Androids subsidiaries, are third-party beneficiaries of these Terms of Service with respect to the Android-Enabled Software, and that, upon your acceptance of the terms and conditions of these Terms of Service, Android will have the right (and will be deemed to have accepted the right) to enforce these Terms of Service against you with respect to the Android-Enabled Software as a third party beneficiary thereof.
Intellectual Property Rights
Service Content, Software and Trademarks: You acknowledge and agree that the Service may contain content or features (Service Content) that are protected by copyright, patent, trademark, trade secret or other proprietary rights and laws. Except as expressly authorized by myFit, you agree not to modify, copy, frame, scrape, rent, lease, loan, sell, distribute or create derivative works based on the Service or the Service Content, in whole or in part, except that the foregoing does not apply to your own User Content (as defined below) that you legally upload to the Service. In connection with your use of the Service you will not engage in or use any data mining, robots, scraping or similar data gathering or extraction methods. If you are blocked by myFit from accessing the Service (including by blocking your IP address), you agree not to implement any measures to circumvent such blocking (e.g., by masking your IP address or using a proxy IP address). Any use of the Service or the Service Content other than as specifically authorized herein is strictly prohibited. The technology and software underlying the Service or distributed in connection therewith are the property of myFit, our affiliates and our partners (the Software). You agree not to copy, modify, create a derivative work of, reverse engineer, reverse assemble or otherwise attempt to discover any source code, sell, assign, sublicense, or otherwise transfer any right in the Software. Any rights not expressly granted herein are reserved by myFit.
The myFit name and logos are trademarks and service marks of myFit (collectively the myFit Trademarks). Other company, product, and service names and logos used and displayed via the Service may be trademarks or service marks of their respective owners who may or may not endorse or be affiliated with or connected to myFit. Nothing in this Terms of Service or the Service should be construed as granting, by implication, estoppel, or otherwise, any license or right to use any of myFit Trademarks displayed on the Service, without our prior written permission in each instance. All goodwill generated from the use of myFit Trademarks will inure to our exclusive benefit.
Third-Party Material: Under no circumstances will myFit be liable in any way for any content or materials of any third parties (including users), including, but not limited to, for any errors or omissions in any content, or for any loss or damage of any kind incurred as a result of the use of any such content. You acknowledge that myFit does not pre-screen Content, but that myFit and its designees will have the right (but not the obligation) in their sole discretion to refuse or remove any content that is available via the Service. Without limiting the foregoing, myFit and its designees will have the right to remove any content that violates these Terms of Service or is deemed by myFit, in its sole discretion, to be otherwise objectionable. You agree that you must evaluate, and bear all risks associated with, the use of any content, including any reliance on the accuracy, completeness, or usefulness of such content.
User Content Transmitted Through the Service: With respect to the content or other materials you upload through the Service or share with other users or recipients (collectively, User Content), you represent and warrant that you own all right, title and interest in and to such User Content, including, without limitation, all copyrights and rights of publicity contained therein. By uploading any User Content you hereby grant and will grant myFit and its affiliated companies a nonexclusive, worldwide, royalty-free, fully paid up, transferable, sublicensable, perpetual, irrevocable license to copy, display, upload, perform, distribute, store, modify and otherwise use your User Content in connection with the operation of the Service, in any form, medium or technology now known or later developed.
You acknowledge and agree that any questions, comments, suggestions, ideas, feedback or other information about the Service (Submissions), provided by you to myFit are non-confidential and myFit will be entitled to the unrestricted use and dissemination of these Submissions for any purpose, commercial or otherwise, without acknowledgment or compensation to you.
You acknowledge and agree that myFit may preserve Content and may also disclose Content if required to do so by law or in the good faith belief that such preservation or disclosure is reasonably necessary to: (a) comply with legal process, applicable laws or government requests; (b) enforce these Terms of Service; (c) respond to claims that any content violates the rights of third parties; or (d) protect the rights, property, or personal safety of myFit, its users and the public. You understand that the technical processing and transmission of the Service, including your content, may involve (a) transmissions over various networks; and (b) changes to conform and adapt to technical requirements of connecting networks or devices.
Copyright Complaints: myFit respects the intellectual property of others, and we ask our users to do the same. If you believe that your work has been copied in a way that constitutes copyright infringement, or that your intellectual property rights have been otherwise violated, you should notify myFit of your infringement claim in accordance with the procedure set forth below.
myFit will process and investigate notices of alleged infringement and will take appropriate actions under the Digital Millennium Copyright Act (DMCA) and other applicable intellectual property laws with respect to any alleged or actual infringement. A notification of claimed copyright infringement should be emailed to myFit Copyright Agent at support@myFit.com (Subject line: DMCA Takedown Request). You may also contact us by mail or facsimile at:
support@mermsemr.com
To be effective, the notification must be in writing and contain the following information:
an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright or other intellectual property interest;
a description of the copyrighted work or other intellectual property that you claim has been infringed;
a description of where the material that you claim is infringing is located on the Service, with enough detail that we may find it on the Service;
your address, telephone number, and email address;
a statement by you that you have a good faith belief that the disputed use is not authorized by the copyright or intellectual property owner, its agent, or the law;
a statement by you, made under penalty of perjury, that the above information in your Notice is accurate and that you are the copyright or intellectual property owner or authorized to act on the copyright or intellectual property owners behalf.
Counter-Notice: If you believe that your User Content that was removed (or to which access was disabled) is not infringing, or that you have the authorization from the copyright owner, the copyright owners agent, or pursuant to the law, to upload and use the content in your User Content, you may send a written counter-notice containing the following information to the Copyright Agent:
your physical or electronic signature;
identification of the content that has been removed or to which access has been disabled and the location at which the content appeared before it was removed or disabled;
a statement that you have a good faith belief that the content was removed or disabled as a result of mistake or a misidentification of the content; and
your name, address, telephone number, and email address, a statement that you consent to the jurisdiction of the federal court located within Northern District of California and a statement that you will accept service of process from the person who provided notification of the alleged infringement.
If a counter-notice is received by the Copyright Agent, myFit will send a copy of the counter-notice to the original complaining party informing that person that it may replace the removed content or cease disabling it in 10 business days. Unless the copyright owner files an action seeking a court order against the content provider, member or user, the removed content may be replaced, or access to it restored, in 10 to 14 business days or more after receipt of the counter-notice, at our sole discretion.
Repeat Infringer Policy: In accordance with the DMCA and other applicable law, myFit has adopted a policy of terminating, in appropriate circumstances and at myFit's sole discretion, users who are deemed to be repeat infringers. myFit may also at its sole discretion limit access to the Service and/or terminate the memberships of any users who infringe any intellectual property rights of others, whether or not there is any repeat infringement.
Third-Party Websites
The Service may provide, or third parties may provide, links or other access to other sites and resources on the Internet. myFit has no control over such sites and resources and myFit is not responsible for and does not endorse such sites and resources. You further acknowledge and agree that myFit will not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any content, events, goods or services available on or through any such site or resource. Any dealings you have with third parties found while using the Service are between you and the third-party, and you agree that myFit is not liable for any loss or claim that you may have against any such third party.
Social Networking Services
You may enable or log in to the Service via various online third-party services, such as social media and social networking services like Facebook or Twitter (Social Networking Services). By logging in or directly integrating these Social Networking Services into the Service, we make your online experiences richer and more personalized. To take advantage of this feature and capabilities, we may ask you to authenticate, register for or log into Social Networking Services on the websites of their respective providers. As part of such integration, the Social Networking Services will provide us with access to certain information that you have provided to such Social Networking Services, and we will use, store and disclose such information in accordance with our Privacy Policy. For more information about the implications of activating these Social Networking Services and myFit use, storage and disclosure of information related to you and your use of such services within myFit (including your friend lists and the like), please see our Privacy Policy. However, please remember that the manner in which Social Networking Services use, store and disclose your information is governed solely by the policies of such third parties, and myFit shall have no liability or responsibility for the privacy practices or other actions of any third-party site or service that may be enabled within the Service.
In addition, myFit is not responsible for the accuracy, availability or reliability of any information, content, goods, data, opinions, advice or statements made available in connection with Social Networking Services. As such, myFit is not liable for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such Social Networking Services. myFit enables these features merely as a convenience and the integration or inclusion of such features does not imply an endorsement or recommendation.
Indemnity and Release
You agree to release, indemnify and hold myFit and its affiliates and their officers, employees, directors and agents (collectively, Indemnitees) harmless from any from any and all losses, damages, expenses, including reasonable attorneys fees, rights, claims, actions of any kind and injury (including death) arising out of or relating to your use of the Service, any User Content, your connection to the Service, your violation of these Terms of Service or your violation of any rights of another. Notwithstanding the foregoing, you will have no obligation to indemnify or hold harmless any Indemnitee from or against any liability, losses, damages or expenses incurred as a result of any action or inaction of such Indemnitee. If you are a California resident, you waive California Civil Code Section 1542, which says: A general release does not extend to claims which the creditor does not know or suspect to exist in his favor at the time of executing the release, which if known by him must have materially affected his settlement with the debtor. If you are a resident of another jurisdiction, you waive any comparable statute or doctrine.
Disclaimer of Warranties
YOUR USE OF THE SERVICE IS AT YOUR SOLE RISK. THE SERVICE IS PROVIDED ON AN AS IS AND AS AVAILABLE BASIS. myFit EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT.
myFit MAKES NO WARRANTY THAT (I) THE SERVICE WILL MEET YOUR REQUIREMENTS, (II) THE SERVICE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE, (III) THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SERVICE WILL BE ACCURATE OR RELIABLE, OR (IV) THE QUALITY OF ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL PURCHASED OR OBTAINED BY YOU THROUGH THE SERVICE WILL MEET YOUR EXPECTATIONS.
Limitation of Liability
YOU EXPRESSLY UNDERSTAND AND AGREE THAT myFit WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY DAMAGES, OR DAMAGES FOR LOSS OF PROFITS INCLUDING BUT NOT LIMITED TO, DAMAGES FOR LOSS OF GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF myFit HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES), WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, RESULTING FROM: (I) THE USE OR THE INABILITY TO USE THE SERVICE; (II) THE COST OF PROCUREMENT OF SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS, DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR FROM THE SERVICE; (III) UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR TRANSMISSIONS OR DATA; (IV) STATEMENTS OR CONDUCT OF ANY THIRD PARTY ON THE SERVICE; OR (V) ANY OTHER MATTER RELATING TO THE SERVICE. IN NO EVENT WILL myFitS TOTAL LIABILITY TO YOU FOR ALL DAMAGES, LOSSES OR CAUSES OF ACTION EXCEED THE AMOUNT YOU HAVE PAID myFit IN THE LAST SIX (6) MONTHS, OR, IF GREATER, ONE HUNDRED DOLLARS ($100).
SOME JURISDICTIONS DO NOT ALLOW THE DISCLAIMER OR EXCLUSION OF CERTAIN WARRANTIES OR THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES. ACCORDINGLY, SOME OF THE ABOVE LIMITATIONS SET FORTH ABOVE MAY NOT APPLY TO YOU OR BE ENFORCEABLE WITH RESPECT TO YOU. IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE SERVICE OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE SERVICE.
IF YOU ARE A USER FROM NEW JERSEY, THE FOREGOING SECTIONS TITLED DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITY ARE INTENDED TO BE ONLY AS BROAD AS IS PERMITTED UNDER THE LAWS OF THE STATE OF NEW JERSEY. IF ANY PORTION OF THESE SECTIONS IS HELD TO BE INVALID UNDER THE LAWS OF THE STATE OF NEW JERSEY, THE INVALIDITY OF SUCH PORTION SHALL NOT AFFECT THE VALIDITY OF THE REMAINING PORTIONS OF THE APPLICABLE SECTIONS.
Dispute Resolution By Binding Arbitration: PLEASE READ THIS SECTION CAREFULLY AS IT AFFECTS YOUR RIGHTS.
Agreement to Arbitrate
This Dispute Resolution by Binding Arbitration section is referred to in this Terms of Service as the Arbitration Agreement. You agree that any and all disputes or claims that have arisen or may arise between you and myFit, whether arising out of or relating to this Terms of Service (including any alleged breach thereof), the Services, any advertising, any aspect of the relationship or transactions between us, shall be resolved exclusively through final and binding arbitration, rather than a court, in accordance with the terms of this Arbitration Agreement, except that you may assert individual claims in small claims court, if your claims qualify. Further, this Arbitration Agreement does not preclude you from bringing issues to the attention of federal, state, or local agencies, and such agencies can, if the law allows, seek relief against us on your behalf. You agree that, by entering into this Terms of Service, you and myFit are each waiving the right to a trial by jury or to participate in a class action. Your rights will be determined by a neutral arbitrator, not a judge or jury. The Federal Arbitration Act governs the interpretation and enforcement of this Arbitration Agreement.
Prohibition of Class and Representative Actions and Non-Individualized Relief
YOU AND myFit AGREE THAT EACH OF US MAY BRING CLAIMS AGAINST THE OTHER ONLY ON AN INDIVIDUAL BASIS AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR REPRESENTATIVE ACTION OR PROCEEDING. UNLESS BOTH YOU AND myFit AGREE OTHERWISE, THE ARBITRATOR MAY NOT CONSOLIDATE OR JOIN MORE THAN ONE PERSONS OR PARTYS CLAIMS AND MAY NOT OTHERWISE PRESIDE OVER ANY FORM OF A CONSOLIDATED, REPRESENTATIVE, OR CLASS PROCEEDING. ALSO, THE ARBITRATOR MAY AWARD RELIEF (INCLUDING MONETARY, INJUNCTIVE, AND DECLARATORY RELIEF) ONLY IN FAVOR OF THE INDIVIDUAL PARTY SEEKING RELIEF AND ONLY TO THE EXTENT NECESSARY TO PROVIDE RELIEF NECESSITATED BY THAT PARTYS INDIVIDUAL CLAIM(S), EXCEPT THAT YOU MAY PURSUE A CLAIM FOR AND THE ARBITRATOR MAY AWARD PUBLIC INJUNCTIVE RELIEF UNDER APPLICABLE LAW TO THE EXTENT REQUIRED FOR THE ENFORCEABILITY OF THIS PROVISION.
Pre-Arbitration Dispute Resolution
myFit is always interested in resolving disputes amicably and efficiently, and most customer concerns can be resolved quickly and to the customer's satisfaction by emailing customer support at support@mymyFit.com. If such efforts prove unsuccessful, a party who intends to seek arbitration must first send to the other, by certified mail, a written Notice of Dispute ("Notice"). The Notice to myFit should be sent to 1070 Cresta Way, Unit 2, San Rafael, CA 94903 ("Notice Address"). The Notice must (i) describe the nature and basis of the claim or dispute and (ii) set forth the specific relief sought. If myFit and you do not resolve the claim within sixty (60) calendar days after the Notice is received, you or myFit may commence an arbitration proceeding. During the arbitration, the amount of any settlement offer made by myFit or you shall not be disclosed to the arbitrator until after the arbitrator determines the amount, if any, to which you or myFit is entitled.
</li><li>
Arbitration Procedures
Arbitration will be conducted by a neutral arbitrator in accordance with the American Arbitration Associations (AAA) rules and procedures, including the AAAs Consumer Arbitration Rules (collectively, the AAA Rules), as modified by this Arbitration Agreement. For information on the AAA, please visit its website, http://www.adr.org. Information about the AAA Rules and fees for consumer disputes can be found at the AAAs consumer arbitration page, http://www.adr.org/consumer_arbitration. If there is any inconsistency between any term of the AAA Rules and any term of this Arbitration Agreement, the applicable terms of this Arbitration Agreement will control unless the arbitrator determines that the application of the inconsistent Arbitration Agreement terms would not result in a fundamentally fair arbitration. The arbitrator must also follow the provisions of these Terms of Service as a court would. All issues are for the arbitrator to decide, including, but not limited to, issues relating to the scope, enforceability, and arbitrability of this Arbitration Agreement. Although arbitration proceedings are usually simpler and more streamlined than trials and other judicial proceedings, the arbitrator can award the same damages and relief on an individual basis that a court can award to an individual under the Terms of Service and applicable law. Decisions by the arbitrator are enforceable in court and may be overturned by a court only for very limited reasons.
Unless myFit and you agree otherwise, any arbitration hearings will take place in a reasonably convenient location for both parties with due consideration of their ability to travel and other pertinent circumstances. If the parties are unable to agree on a location, the determination shall be made by AAA. If your claim is for $10,000 or less, myFit agrees that you may choose whether the arbitration will be conducted solely on the basis of documents submitted to the arbitrator, through a telephonic hearing, or by an in-person hearing as established by the AAA Rules. If your claim exceeds $10,000, the right to a hearing will be determined by the AAA Rules. Regardless of the manner in which the arbitration is conducted, the arbitrator shall issue a reasoned written decision sufficient to explain the essential findings and conclusions on which the award is based.
</li><li>
Costs of Arbitration
Payment of all filing, administration, and arbitrator fees (collectively, the Arbitration Fees) will be governed by the AAA Rules, unless otherwise provided in this Arbitration Agreement. If the value of the relief sought is $75,000 or less, at your request, myFit will pay all Arbitration Fees. If the value of relief sought is more than $75,000 and you are able to demonstrate to the arbitrator that you are economically unable to pay your portion of the Arbitration Fees or if the arbitrator otherwise determines for any reason that you should not be required to pay your portion of the Arbitration Fees, myFit will pay your portion of such fees. In addition, if you demonstrate to the arbitrator that the costs of arbitration will be prohibitive as compared to the costs of litigation, myFit will pay as much of the Arbitration Fees as the arbitrator deems necessary to prevent the arbitration from being cost-prohibitive. Any payment of attorneys fees will be governed by the AAA Rules.
Confidentiality
All aspects of the arbitration proceeding, and any ruling, decision, or award by the arbitrator, will be strictly confidential for the benefit of all parties.
</li><li>
Severability
If a court or the arbitrator decides that any term or provision of this Arbitration Agreement (other than the subsection (b) titled -Prohibition of Class and Representative Actions and Non-Individualized Relief above) is invalid or unenforceable, the parties agree to replace such term or provision with a term or provision that is valid and enforceable and that comes closest to expressing the intention of the invalid or unenforceable term or provision, and this Arbitration Agreement shall be enforceable as so modified. If a court or the arbitrator decides that any of the provisions of subsection (b) above titled- Prohibition of Class and Representative Actions and Non-Individualized Relief are invalid or unenforceable, then the entirety of this Arbitration Agreement shall be null and void, unless such provisions are deemed to be invalid or unenforceable solely with respect to claims for public injunctive relief. The remainder of the Terms of Service will continue to apply.
</li><li>
Future Changes to Arbitration Agreement
Notwithstanding any provision in this Terms of Service to the contrary, myFit agrees that if it makes any future change to this Arbitration Agreement (other than a change to the Notice Address) while you are a user of the Services, you may reject any such change by sending myFit written notice within thirty (30) calendar days of the change to the Notice Address provided above. By rejecting any future change, you are agreeing that you will arbitrate any dispute between us in accordance with the language of this Arbitration Agreement as of the date you first accepted these Terms of Service (or accepted any subsequent changes to these Terms of Service).
</li><li>
Termination
You agree that myFit, in its sole discretion, may suspend or terminate your account (or any part thereof) or use of the Service and remove and discard any content within the Service, for any reason, including, without limitation, for lack of use or if myFit believes that you have violated or acted inconsistently with the letter or spirit of these Terms of Service. Any suspected fraudulent, abusive or illegal activity that may be grounds for termination of your use of Service, may be referred to appropriate law enforcement authorities. myFit may also in its sole discretion and at any time discontinue providing the Service, or any part thereof, with or without notice. You agree that any termination of your access to the Service under any provision of this Terms of Service may be effected without prior notice, and acknowledge and agree that myFit may immediately deactivate or delete your account and all related information and files in your account and/or bar any further access to such files or the Service. Further, you agree that myFit will not be liable to you or any third party for any termination of your access to the Service.
</li><li>
User Disputes
You agree that you are solely responsible for your interactions with any other user in connection with the Service and myFit will have no liability or responsibility with respect thereto. myFit reserves the right, but has no obligation, to become involved in any way with disputes between you and any other user of the Service.
</li><li>
General
These Terms of Service constitute the entire agreement between you and myFit and govern your use of the Service, superseding any prior agreements between you and myFit with respect to the Service. You also may be subject to additional terms and conditions that may apply when you use affiliate or third-party services, third-party content or third party software. These Terms of Service will be governed by the laws of the State of California without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth above, you and myFit agree to submit to the personal and exclusive jurisdiction of the state and federal courts located within San Francisco County, California. The failure of myFit to exercise or enforce any right or provision of these Terms of Service will not constitute a waiver of such right or provision. If any provision of these Terms of Service is found by a court of competent jurisdiction to be invalid, the parties nevertheless agree that the court should endeavor to give effect to the parties intentions as reflected in the provision, and the other provisions of these Terms of Service remain in full force and effect. You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Service or these Terms of Service must be filed within one (1) year after such claim or cause of action arose or be forever barred. A printed version of this agreement and of any notice given in electronic form will be admissible in judicial or administrative proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally generated and maintained in printed form. You may not assign this Terms of Service without the prior written consent of myFit, but myFit may assign or transfer this Terms of Service, in whole or in part, without restriction. The section titles in these Terms of Service are for convenience only and have no legal or contractual effect. Notices to you may be made via either email or regular mail. The Service may also provide notices to you of changes to these Terms of Service or other matters by displaying notices or links to notices generally on the Service.
</li><li>
Your Privacy At myFit, we respect the privacy of our users. For details please see our Privacy Policy. By using the Service, you consent to our collection and use of personal data as outlined therein. To the extent you use the myFit services and access your third party bank accounts, you also agree to the terms of our provider Salt Edge located here: Salt Edge End User License Agreement.
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<!--------Checkout-------->
<!-------------main-centent-end--------------->
</main>
+11
View File
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>
Executable
+163
View File
@@ -0,0 +1,163 @@
#!/usr/bin/env php
<?php
define('LATEST_RELEASE', '^4.0');
define('GITHUB_URL', 'https://github.com/codeigniter4/codeigniter4');
/*
* --------------------------------------------------------------------
* Stability Toggle
* --------------------------------------------------------------------
* Use this script to toggle the CodeIgniter dependency between the
* latest stable release and the most recent development update.
*
* Usage: php builds [release|development]
*/
// Determine the requested stability
if (empty($argv[1]) || ! in_array($argv[1], ['release', 'development']))
{
echo 'Usage: php builds [release|development]' . PHP_EOL;
exit;
}
$dev = $argv[1] == 'development';
$modified = [];
/* Locate each file and update it for the requested stability */
// Composer.json
$file = __DIR__ . DIRECTORY_SEPARATOR . 'composer.json';
if (is_file($file))
{
// Make sure we can read it
if ($contents = file_get_contents($file))
{
if ($array = json_decode($contents, true))
{
// Development
if ($dev)
{
// Set 'minimum-stability'
$array['minimum-stability'] = 'dev';
$array['prefer-stable'] = true;
// Make sure the repo is configured
if (! isset($array['repositories']))
{
$array['repositories'] = [];
}
// Check for the CodeIgniter repo
$found = false;
foreach ($array['repositories'] as $repository)
{
if ($repository['url'] == GITHUB_URL)
{
$found = true;
break;
}
}
// Add the repo if it was not found
if (! $found)
{
$array['repositories'][] = [
'type' => 'vcs',
'url' => GITHUB_URL,
];
}
// Define the "require"
$array['require']['codeigniter4/codeigniter4'] = 'dev-develop';
unset($array['require']['codeigniter4/framework']);
}
// Release
else
{
// Clear 'minimum-stability'
unset($array['minimum-stability']);
// If the repo is configured then clear it
if (isset($array['repositories']))
{
// Check for the CodeIgniter repo
foreach ($array['repositories'] as $i => $repository)
{
if ($repository['url'] == GITHUB_URL)
{
unset($array['repositories'][$i]);
break;
}
}
if (empty($array['repositories']))
{
unset($array['repositories']);
}
}
// Define the "require"
$array['require']['codeigniter4/framework'] = LATEST_RELEASE;
unset($array['require']['codeigniter4/codeigniter4']);
}
// Write out a new composer.json
file_put_contents($file, json_encode($array, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES) . PHP_EOL);
$modified[] = $file;
}
else
{
echo 'Warning: Unable to decode composer.json! Skipping...' . PHP_EOL;
}
}
else
{
echo 'Warning: Unable to read composer.json! Skipping...' . PHP_EOL;
}
}
// Paths config and PHPUnit XMLs
$files = [
__DIR__ . DIRECTORY_SEPARATOR . 'app/Config/Paths.php',
__DIR__ . DIRECTORY_SEPARATOR . 'phpunit.xml.dist',
__DIR__ . DIRECTORY_SEPARATOR . 'phpunit.xml',
];
foreach ($files as $file)
{
if (is_file($file))
{
$contents = file_get_contents($file);
// Development
if ($dev)
{
$contents = str_replace('vendor/codeigniter4/framework', 'vendor/codeigniter4/codeigniter4', $contents);
}
// Release
else
{
$contents = str_replace('vendor/codeigniter4/codeigniter4', 'vendor/codeigniter4/framework', $contents);
}
file_put_contents($file, $contents);
$modified[] = $file;
}
}
if (empty($modified))
{
echo 'No files modified' . PHP_EOL;
}
else
{
echo 'The following files were modified:' . PHP_EOL;
foreach ($modified as $file)
{
echo " * {$file}" . PHP_EOL;
}
echo 'Run `composer update` to sync changes with your vendor folder' . PHP_EOL;
}
+41
View File
@@ -0,0 +1,41 @@
{
"name": "codeigniter4/appstarter",
"type": "project",
"description": "CodeIgniter4 starter app",
"homepage": "https://codeigniter.com",
"license": "MIT",
"require": {
"php": "^7.3||^8.0",
"codeigniter4/framework": "^4"
},
"require-dev": {
"fakerphp/faker": "^1.9",
"mikey179/vfsstream": "^1.6",
"phpunit/phpunit": "^9.1"
},
"suggest": {
"ext-fileinfo": "Improves mime type detection for files"
},
"autoload": {
"psr-4": {
"App\\": "app",
"Config\\": "app/Config"
},
"exclude-from-classmap": [
"**/Database/Migrations/**"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\Support\\": "tests/_support"
}
},
"scripts": {
"test": "phpunit"
},
"support": {
"forum": "http://forum.codeigniter.com/",
"source": "https://github.com/codeigniter4/CodeIgniter4",
"slack": "https://codeigniterchat.slack.com"
}
}
Generated
+2650
View File
File diff suppressed because it is too large Load Diff
+123
View File
@@ -0,0 +1,123 @@
#--------------------------------------------------------------------
# Example Environment Configuration file
#
# This file can be used as a starting point for your own
# custom .env files, and contains most of the possible settings
# available in a default install.
#
# By default, all of the settings are commented out. If you want
# to override the setting, you must un-comment it by removing the '#'
# at the beginning of the line.
#--------------------------------------------------------------------
#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
CI_ENVIRONMENT = production
#--------------------------------------------------------------------
# APP
#--------------------------------------------------------------------
# app.baseURL = ''
# app.forceGlobalSecureRequests = false
# app.sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'
# app.sessionCookieName = 'ci_session'
# app.sessionSavePath = NULL
# app.sessionMatchIP = false
# app.sessionTimeToUpdate = 300
# app.sessionRegenerateDestroy = false
# app.cookiePrefix = ''
# app.cookieDomain = ''
# app.cookiePath = '/'
# app.cookieSecure = false
# app.cookieHTTPOnly = false
# app.cookieSameSite = 'Lax'
# app.CSRFProtection = false
# app.CSRFTokenName = 'csrf_test_name'
# app.CSRFCookieName = 'csrf_cookie_name'
# app.CSRFExpire = 7200
# app.CSRFRegenerate = true
# app.CSRFExcludeURIs = []
# app.CSRFSameSite = 'Lax'
# app.CSPEnabled = false
#--------------------------------------------------------------------
# DATABASE
#--------------------------------------------------------------------
# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi
# database.tests.hostname = localhost
# database.tests.database = ci4
# database.tests.username = root
# database.tests.password = root
# database.tests.DBDriver = MySQLi
#--------------------------------------------------------------------
# CONTENT SECURITY POLICY
#--------------------------------------------------------------------
# contentsecuritypolicy.reportOnly = false
# contentsecuritypolicy.defaultSrc = 'none'
# contentsecuritypolicy.scriptSrc = 'self'
# contentsecuritypolicy.styleSrc = 'self'
# contentsecuritypolicy.imageSrc = 'self'
# contentsecuritypolicy.base_uri = null
# contentsecuritypolicy.childSrc = null
# contentsecuritypolicy.connectSrc = 'self'
# contentsecuritypolicy.fontSrc = null
# contentsecuritypolicy.formAction = null
# contentsecuritypolicy.frameAncestors = null
# contentsecuritypolicy.mediaSrc = null
# contentsecuritypolicy.objectSrc = null
# contentsecuritypolicy.pluginTypes = null
# contentsecuritypolicy.reportURI = null
# contentsecuritypolicy.sandbox = false
# contentsecuritypolicy.upgradeInsecureRequests = false
#--------------------------------------------------------------------
# ENCRYPTION
#--------------------------------------------------------------------
# encryption.key =
# encryption.driver = OpenSSL
# encryption.blockSize = 16
# encryption.digest = SHA512
#--------------------------------------------------------------------
# HONEYPOT
#--------------------------------------------------------------------
# honeypot.hidden = 'true'
# honeypot.label = 'Fill This Field'
# honeypot.name = 'honeypot'
# honeypot.template = '<label>{label}</label><input type="text" name="{name}" value=""/>'
# honeypot.container = '<div style="display:none">{template}</div>'
#--------------------------------------------------------------------
# SECURITY
#--------------------------------------------------------------------
# security.tokenName = 'csrf_token_name'
# security.headerName = 'X-CSRF-TOKEN'
# security.cookieName = 'csrf_cookie_name'
# security.expires = 7200
# security.regenerate = true
# security.redirect = true
# security.samesite = 'Lax'
#--------------------------------------------------------------------
# LOGGER
#--------------------------------------------------------------------
# logger.threshold = 4
+57
View File
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="vendor/codeigniter4/framework/system/Test/bootstrap.php"
backupGlobals="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage includeUncoveredFiles="true" processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
<exclude>
<directory suffix=".php">./app/Views</directory>
<file>./app/Config/Routes.php</file>
</exclude>
<report>
<clover outputFile="build/logs/clover.xml"/>
<html outputDirectory="build/logs/html"/>
<php outputFile="build/logs/coverage.serialized"/>
<text outputFile="php://stdout" showUncoveredFiles="false"/>
</report>
</coverage>
<testsuites>
<testsuite name="App">
<directory>./tests</directory>
</testsuite>
</testsuites>
<logging>
<testdoxHtml outputFile="build/logs/testdox.html"/>
<testdoxText outputFile="build/logs/testdox.txt"/>
<junit outputFile="build/logs/logfile.xml"/>
</logging>
<php>
<server name="app.baseURL" value="http://example.com/"/>
<!-- Directory containing phpunit.xml -->
<const name="HOMEPATH" value="./"/>
<!-- Directory containing the Paths config file -->
<const name="CONFIGPATH" value="./app/Config/"/>
<!-- Directory containing the front controller (index.php) -->
<const name="PUBLICPATH" value="./public/"/>
<!-- Database configuration -->
<!-- Uncomment to provide your own database for testing
<env name="database.tests.hostname" value="localhost"/>
<env name="database.tests.database" value="tests"/>
<env name="database.tests.username" value="tests_user"/>
<env name="database.tests.password" value=""/>
<env name="database.tests.DBDriver" value="MySQLi"/>
<env name="database.tests.DBPrefix" value="tests_"/>
-->
</php>
</phpunit>
+9
View File
@@ -0,0 +1,9 @@
<IfModule mod_rewrite.c>
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
+3479
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+10579
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+1388
View File
File diff suppressed because it is too large Load Diff
+280
View File
@@ -0,0 +1,280 @@
/*
* jQuery FlexSlider v2.7.2
* https://www.woocommerce.com/flexslider/
*
* Copyright 2012 WooThemes
* Free to use under the GPLv2 and later license.
* http://www.gnu.org/licenses/gpl-2.0.html
*
* Contributing author: Tyler Smith (@mbmufffin)
*
*/
/* ====================================================================================================================
* FONT-FACE
* ====================================================================================================================*/
@font-face {
font-family: 'flexslider-icon';
src: url('fonts/flexslider-icon.eot');
src: url('fonts/flexslider-icon.eot?#iefix') format('embedded-opentype'), url('fonts/flexslider-icon.woff') format('woff'), url('fonts/flexslider-icon.ttf') format('truetype'), url('fonts/flexslider-icon.svg#flexslider-icon') format('svg');
font-weight: normal;
font-style: normal;
}
/* ====================================================================================================================
* RESETS
* ====================================================================================================================*/
.flex-container a:hover,
.flex-slider a:hover {
outline: none;
}
.slides,
.slides > li,
.flex-control-nav,
.flex-direction-nav {
margin: 0;
padding: 0;
list-style: none;
}
.flex-pauseplay span {
text-transform: capitalize;
}
/* ====================================================================================================================
* BASE STYLES
* ====================================================================================================================*/
.flexslider {
margin: 0;
padding: 0;
}
.flexslider .slides > li {
display: none;
-webkit-backface-visibility: hidden;
}
.flexslider .slides img {
width: 100%;
display: block;
}
.flexslider .slides:after {
content: "\0020";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
html[xmlns] .flexslider .slides {
display: block;
}
* html .flexslider .slides {
height: 1%;
}
.no-js .flexslider .slides > li:first-child {
display: block;
}
/* ====================================================================================================================
* DEFAULT THEME
* ====================================================================================================================*/
.flexslider {
margin: 0 0 60px;
background: #fff;
border: 4px solid #fff;
position: relative;
zoom: 1;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
-moz-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
-o-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
}
.flexslider .slides {
zoom: 1;
}
.flexslider .slides img {
height: auto;
-moz-user-select: none;
}
.flex-viewport {
max-height: 2000px;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-ms-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
.loading .flex-viewport {
max-height: 300px;
}
@-moz-document url-prefix() {
.loading .flex-viewport {
max-height: none;
}
}
.carousel li {
margin-right: 5px;
}
.flex-direction-nav {
*height: 0;
}
.flex-direction-nav a {
text-decoration: none;
display: block;
width: 40px;
height: 40px;
margin: -20px 0 0;
position: absolute;
top: 50%;
z-index: 10;
overflow: hidden;
opacity: 0;
cursor: pointer;
color: rgba(0, 0, 0, 0.8);
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-ms-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
.flex-direction-nav a:before {
font-family: "flexslider-icon";
font-size: 40px;
display: inline-block;
content: '\f001';
color: rgba(0, 0, 0, 0.8);
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
}
.flex-direction-nav a.flex-next:before {
content: '\f002';
}
.flex-direction-nav .flex-prev {
left: -50px;
}
.flex-direction-nav .flex-next {
right: -50px;
text-align: right;
}
.flexslider:hover .flex-direction-nav .flex-prev {
opacity: 0.7;
left: 10px;
}
.flexslider:hover .flex-direction-nav .flex-prev:hover {
opacity: 1;
}
.flexslider:hover .flex-direction-nav .flex-next {
opacity: 0.7;
right: 10px;
}
.flexslider:hover .flex-direction-nav .flex-next:hover {
opacity: 1;
}
.flex-direction-nav .flex-disabled {
opacity: 0!important;
filter: alpha(opacity=0);
cursor: default;
z-index: -1;
}
.flex-pauseplay a {
display: block;
width: 20px;
height: 20px;
position: absolute;
bottom: 5px;
left: 10px;
opacity: 0.8;
z-index: 10;
overflow: hidden;
cursor: pointer;
color: #000;
}
.flex-pauseplay a:before {
font-family: "flexslider-icon";
font-size: 20px;
display: inline-block;
content: '\f004';
}
.flex-pauseplay a:hover {
opacity: 1;
}
.flex-pauseplay a.flex-play:before {
content: '\f003';
}
.flex-control-nav {
width: 100%;
position: absolute;
bottom: -40px;
text-align: center;
}
.flex-control-nav li {
margin: 0 6px;
display: inline-block;
zoom: 1;
*display: inline;
}
.flex-control-paging li a {
width: 11px;
height: 11px;
display: block;
background: #666;
background: rgba(0, 0, 0, 0.5);
cursor: pointer;
text-indent: -9999px;
-webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
-moz-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
-o-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
}
.flex-control-paging li a:hover {
background: #333;
background: rgba(0, 0, 0, 0.7);
}
.flex-control-paging li a.flex-active {
background: #000;
background: rgba(0, 0, 0, 0.9);
cursor: default;
}
.flex-control-thumbs {
margin: 5px 0 0;
position: static;
overflow: hidden;
}
.flex-control-thumbs li {
width: 25%;
float: left;
margin: 0;
}
.flex-control-thumbs img {
width: 100%;
height: auto;
display: block;
opacity: .7;
cursor: pointer;
-moz-user-select: none;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-ms-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
.flex-control-thumbs img:hover {
opacity: 1;
}
.flex-control-thumbs .flex-active {
opacity: 1;
cursor: default;
}
/* ====================================================================================================================
* RESPONSIVE
* ====================================================================================================================*/
@media screen and (max-width: 860px) {
.flex-direction-nav .flex-prev {
opacity: 1;
left: 10px;
}
.flex-direction-nav .flex-next {
opacity: 1;
right: 10px;
}
}
File diff suppressed because one or more lines are too long
+2063
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Some files were not shown because too many files have changed in this diff Show More