initial commit

This commit is contained in:
2026-06-29 14:51:56 +06:00
commit c5c4b7c509
2400 changed files with 725568 additions and 0 deletions

698
config/app.constant.php Normal file
View File

@@ -0,0 +1,698 @@
<?php
//application constant
use Cake\I18n\FrozenTime;define("TOKEN_EXPIRED_AFTER", "+15 min");
define("PIN_EXPIRED_AFTER", "+10 min");
define("APP_DEFAULT_LANGUAGE", "en_US");
define("TRUE_CODE", "1");
define("FALSE_CODE", "0");
define("SUCCESS_CODE", "+000");
define("FAIL_CODE", "-1");
define("TOKEN_CHAR_NO", "8");
define("BULK_ACTION_DELETE", "1");
define('PROFILE_PIC_UPLOAD_DIR', 'profileImages/');
define("APP_DEFAULT_IMAGE_PATH", "default/default_image.png");
define("APP_REG_EMAIL_TEMPLATE_NAME", "registration/email");
define("APP_FORGOT_PASS_EMAIL_TEMPLATE_NAME", "forgotpass/forgot_password");
define("REGISTRATION_EMAIL_SCHEDULE_TRACKING_FILE", "registration_email_schedule.txt");
define("APP_EMAIL_FROM", "no-reply@ygtimes.com");
define("APP_EMAIL_FROM_DISPLAY_NAME", "Zeerow");
define("FA_CONFEDERATION", json_encode(['AFC','UEFA','CAF','CONCACAF','CONMEBOL','OFC']));
define("TEAM_TYPES", json_encode(['Football' , 'Futsal' , 'Beach football']));
define("GENDER", json_encode(['Men','Women']));
define("FORM_TYPE", json_encode(['1'=>'Static','2'=>'Form']));
define('LANGUAGE_CODE_ENGLISH', 'en');
define('LANGUAGE_CODE_KOREAN', 'ko');
define('LANGUAGES',[
'en'=>'English'
// ,'ko'=>'Korean'
]);
define('STATUS_ACTIVE', 1);
define('STATUS_NOT_ACTIVE', 0);
define('SUPER_SUPER_ADMIN_ID', 1);
define('STATUS_PAUSE_MEMBERSHIP', 2);
define("RANDOM_KEY_LENGTH", 4); // key lenght for generating sharing key.
define("WIDTH_OF_IMAGE", 100); // Set the width of thumbnail image
define("MAX_FILE_SIZE",1288490190); // Set Maximum File size for content page. 1.2 GB
define('MANDRILL_TEMPLATE_USER_CREATION', 'user-creation-cms-en');
define('MANDRILL_TEMPLATE_FORGOT_PASSWORD', 'cms-forgot-password');
define('MANDRILL_TEMPLATE_REPLY_MESSAGE', 'reply-message');
define('INVOICE_TEMPLATE', 'invoice');
define('ESTIMATE_TEMPLATE', 'estimate');
define('MANDRILL_TEMPLATE_STUDENT_CONFIRMATION', 'student_registration_for_student');
define('MANDRILL_TEMPLATE_STUDENT_CONFIRMATION_FOR_ADMIN', 'student_registration_for_admin');
define('DEFAULT_MEMBER_ID', 2);
define('COMPANY_ID', 8);
define('MAXIMUM_ALLOW_IP', 2);
define('ADMIN_USER_GROUP_ID', 9);
define('ADMIN_USER_ROLE_ID', 9);
define('USER_GROUP_ID', 11);
define('USER_ROLE_ID', 11);
define('UNIT', 'USD');
define('STAFF_GROUP_ID', 12);
define('INVOICE_ACTIVE', 0);
define('INVOICE_INACTIVE', 1);
define('INVOICE_STATUS', json_encode(['Open','Paid','Sent','Partially Paid','Canceled','Accepted','Declined','Invoiced','Revised']));// 0 = Open, 1 = paid, 2 = sent, 3= PartiallyPaid, 4=Canceled, 5= Accepted,6=Declined,7=Invoiced,8=Revised
define('INVOICE_CURRENCY', json_encode(['$'=>'$','£'=>'£','€'=>'€','¥'=>'¥']));
define('DATE_FORMAT', 'Y-m-d');
define('CURRENCY_INDICATOR', '');
define('DISCOUNT_TYPE_INDICATOR', '%');
define("PERMISSION", json_encode(['Only show own tasks for non super admins','Clients can create tasks']));
define("TYPES", json_encode(['Payment' , 'Refund']));
define("REBILL", json_encode(['Yes' , 'No']));
define("ATTACHMENT", "attach-documents/");
define("INVOICE_LOGO", "invoice-logo/");
define("PROJECT_MEDIA_FILES", "project-media-files/");
define("PRIORITY", json_encode(['Low' , 'Medium','High']));
define('TASK_STATUS', json_encode(['Open','Done']));
define('TASK_TYPE', json_encode(['Not Billable','Billable','Billed']));
define('SUBSCRIPTION_FREQUENCY', json_encode([7=>'weekly',30=>'Monthly']));
define('SUBSCRIPTION_STATUS', json_encode([0=>'Inactive',1=>'Active',2=>'Ended',3=>'All']));
define('USER_STATUS', json_encode(['Active','InActive']));
define('MEMBER_STATUS', json_encode(['InActive','Active']));
define("USER_PHOTO", "user-photo/");
define('TICKET_STATUS', json_encode(['Open','Reopen','Closed'])); //0 = open, 1 = Reopen, 2 = close
define('TICKET_BULK_ACTION', json_encode(['Close'])); //0 = open, 1 = Reopen, 2 = close
define('INVOICE_ADDPAYMENT_TYPE', json_encode(['Cash','Credit', 'Card','Paypal','Bank Transfer','Check','Direct Debit'])); //0 = open, 1 = Reopen, 2 = close
define("CONTACT_PHOTO", "contact_photo/");//latest
define("CMSUSER_LOGO", "cmsuser_logo/");//latest
define("PROJECT_RATE_TYPE", json_encode(['Fixed price','Rate per hour','Subscription pricing']));
// we have 4 types of user & they can log in separately
define('CMS_USER_INDICATOR',1);
define('CONTACT_USER_INDICATOR',3);
define('CRM_USER_INDICATOR',2);
define('STAF_USER_INDICATOR',4);
define('CSV_HEADING', json_encode(['Id','First Name','Last Name',
'Address','City','State',
'ZIP Code','CR D.O.B','Send Credential',
'Password','Email','Phone',
'CR CRA Report','CR First Name',
'CR Last Name','CR Street No','CR Street Name',
'CR City','CR State','CR Credit Bureau Address',
'CR Social Security No','CR Sincerely','CR Credit Company Name',
'CR Credit Company username','CR Credit Company Password'
]));
define('TICKET_PRIORITY',['-1'=>'All','0'=>'Low','1'=>'Medium','2'=>'High','3'=>'Urgent','4'=>'Very Urgent']);
define('SUPPORT_EMAIL','support');
define('SUPPORT_TEAM_MAIL',json_encode(['','']));
define("SUPPORT_STATUS",json_encode(['All','Open','Closed'])); //2=closed,1=open,3=archieved,0=All
define('SUPPORT_STATUS_OPEN', 1);
define('SUPPORT_STATUS_CLOSED', 2);
define('SUPPORT_STATUS_ARCHIEVED', 3);
define('CLOSE_TICKET_TIME', 15); //15 days
define('ARCHIEVE_TICKET_TIME', 30); //30 days
define('SUPPORT_MESSAGE','support_reply');
define("SUPPORT_MEDIA_FILES", "media/companies/");
define('TICKET_ATTACHMENT_SIZE', 2097152);
define('CLOSE_TICKET', 'close_ticket');
define('GUEST_STATUS',json_encode(['Inactive','Active']));
define('REGISTRATION','registration'); //guest registration email template
define('ADMIN_EMAIL','');
define('GUEST_FORGOT_PASSWORD','guests_forgot_password'); // guest forgot password email template
define("EMAIL_EXPORT_TYPE", 1);
define("DROPBOX_EXPORT_TYPE", 2);
define("GOOGLE_DRIVE_EXPORT_TYPE", 3);
define("ZAPIER_EXPORT_TYPE", 4);
define("RINGCENTRAL_EXPORT_TYPE", 5);
define("LETTER_STREAM_TYPE", 6);
define("ONE_DRIVE_TYPE", 7);
define("MEMBER_EXPORT_OPTIONS", [
EMAIL_EXPORT_TYPE=>['name'=>'Email'],
DROPBOX_EXPORT_TYPE=>['name'=>'Dropbox'],
GOOGLE_DRIVE_EXPORT_TYPE=>['name'=>'Google Drive'],
ZAPIER_EXPORT_TYPE=>['name'=>'Zapier'],
RINGCENTRAL_EXPORT_TYPE =>['name'=>'Ring Central'],
LETTER_STREAM_TYPE =>['name'=>'Letter Stream'],
ONE_DRIVE_TYPE =>['name'=>'One Drive']
]);
define('ADMIN_TO_MEMBER_EMAIL_TEMPLATE', 'admintomembers');
define('PROJECT_DIR_NAME','html');
define('CUSTOMER_USER_GROUP_ID',11);
define("MEMBER_ACTIVE_INACTIVE_LIST", [
''=>'All',
'1'=>'Member',
'2'=>'Not Member',
]);
define("MEMBER_EXPORT_CSV_HEADING", ['id','Username','Email','Member','Stripe Customer','Phone','Created on']);
define("GUEST_ADMIN_REG_EMAIL_TEMPLATE","guest_registration_to_admin");
define("GUEST_DOWNLOAD_COUNT",5);
define("MEMBER_STATUS_LIST", [
'3'=>'All',
'1'=>'Active Member',
'2'=>'Inactive Member',
'4'=>'Trial User'
]);
define('NEXT_SELECTION_NEAREST_DAY',3);
define('CRM_USER_MAX_INSERT', 2);
define('AUTOMATION_ACTION_TYPES',['1'=>'Delete all','2'=>'Make pause','3'=>'Make one time','4'=>'Make recurring','5'=>'Send Later']);
define('CHAT_AFFILIATE_USER', 1);
define('CHAT_CLIENT_USER', 3);
define('CHAT_MEMBER_USER', 2);
define('AGREEMENT_STATUS',['1'=>'Active','2'=>'Inactive']);
define('AUTHORIZE_DOT_NET_TYPE', 1);
define('AGREEMENT_ACTION_TYPES', ['1'=>'Delete all','2'=>'Make all active','3'=>'Make all inactive']);
define('PUBLIC_RECORD_DROPDOWN_INFO', ['Chapter 7'=>'Chapter 7','Chapter 13'=>'Chapter 13','Chapter 11'=>'Chapter 11','Tax Lien'=>'Tax Lien']);
define('INVOICE_CONTROLLER_ID', 4);
define('PROFILE_IMAGE_SIZE',['height'=>600,'width'=>500]);
define('LOGO_SIZE',['height'=>1372,'width'=>2527]);
define('SETUP_MESSAGE_STATUS',['1'=>'Active','2'=>'Inactive']);
define('GUEST_REMINDER_EMAIL_TEMPLATE','guest_reminder_email');
define('CLIENT_MESSAGE_EMAIL_TEMPLATE','client_message_email');
//client upload medias type id
define('IDENTIFICATION_IMAGE_ID',1);
define('MAIL_DOC_IMAGE_ID',2);
define('SSN_IMAGE_ID',3);
define('STATE_PHOTO_IMAGE_ID',4);
define('NOTARIZED_LETTER_IMAGE_ID',5);
define('CR_REPORT_IMAGE_ID',6);
define('TROUBLE_MARK_FILE_IMAGE_ID',7);
define('ITEM_CHALLENGE_FILE_IMAGE_ID',8);
define('SOFTWARE_VERSION_STATUS',['1'=>'Active','2'=>'Inactive']);
define('SUPER_RTG_LS_FAX_PKG_ID',15);
define('AUTH_ID_FOR_DEPLOYMENT',[3,2]);
define('DEPLOYMENT_SUBMODULE_ID',3227);
define('SETUP_EMAIL_ACTION_TYPES', ['1'=>'Delete all','2'=>'Send Email']);
define('EMAIL_SENT_OUT_LIST_TYPE', 1);
define('EMAIL_TEMPLATE_LIST_TYPE', 2);
define('EMAIL_CAMPAIGN_LIST_TYPE', 3);
define('EMAIL_CAMPAIGN_SENTOUT_LIST_TYPE', 4);
define('SETUP_EMAIL_ACTION_LIST_TYPES', [
EMAIL_SENT_OUT_LIST_TYPE=>'Email Sent out List',
EMAIL_TEMPLATE_LIST_TYPE=>'Template List',
EMAIL_CAMPAIGN_LIST_TYPE=>'Campaign List',
EMAIL_CAMPAIGN_SENTOUT_LIST_TYPE=>'Campaign Sent out List',
]);
define('EMAIL_CAMPAIGN_STATUS', ['1'=>'Active','2'=>'Inactive']);
define('CRA_ACCOUNT__ANALYSIS','[ACCOUNT_ANALYSIS]');
define('CRA_SUMMARY_HTML','[SUMMARY_HTML]');
define('CRA_CREDIT_SCORE','[CREDIT_SCORE]');
define('CRA_PUBLIC_RECORD','[PUBLIC_RECORD]');
define('CRA_INQUIRES','[INQUIRES]');
define('CRA_INQUIRES_COUNT','[INQUIRES_COUNT]');
define('CRA_CREDIT_UTILIZATION','[CREDIT_UTILIZATION]');
define('CRA_CREDIT_UTILIZATION_SUMMARY','[CREDIT_UTILIZATION_SUMMARY]');
define('CRA_DEROGETORY','[DEROGETORY]');
define('CRA_PUBLIC_RECORD_COUNT','[PUBLIC_RECORD_COUNT]');
define('CRA_PERSONAL_INFO','[PERSONAL_INFORMATION]');
define('CLIENT_PORTAL_DOMAIN','https://www.learninghub.com/');
define('CLIENT_PORTAL_FAVICON','images/favicon/lock_favicon.ico');
define('CLIENT_PORTAL_LOGO','/images/logo/favicon.ico');
define('CLIENT_PORTAL_DEFAULT_HEADER','Secure Client Portal');
define('CREDIT_ANALYSIS_EMAIL_SUB','Congratulations! Your Credit Analysis is Ready');
define('CREDIT_ANALYSIS_EMAIL_BODY','Congratulations! Your Credit Analysis is Ready to View Below. Please contact us if you have any further questions');
define('CREDIT_ANALYZER_EMAIL_SUB','Congratulations! Your Credit Analyzer is Ready');
define('CREDIT_ANALYZER_EMAIL_BODY','Congratulations! Your Credit Analyzer is Ready to View Below. Please contact us if you have any further questions');
define('LIMITED_VERSION_EXCEED_MESSAGE','OOPS! You have exceeded your #_LIMITED_VERSION_CLIENT_COUNT_# Person Access Limit, If you would like to Add more People Please contact Us At 614-547-6222.');
define('SAME_AS_BY', 'same_as_by');
define('LIMITED_VERSION_PKG_ID', 16);
define('USER_TYPE_DROPDOW_LIST',['1'=>'Everyone','2'=>'Me','3'=>'Team Member','4'=>'Client']);
define('LIMITED_TIME_PKG_ID', 17);
define('LIMITED_TIME_PKG_MESSAGE',
'Your #_DAYS_#'
.' days has expired, you are now ready to upgrade to the '
. 'full version of Clickletters. Please contact our customer support '
. 'team at 614-547-622 for more assistance.');
define('CLIENT_ACTION_TYPES', ['1'=>'Delete all','2'=>'Make all Active','3'=>'Make all Inactive','4'=>'Make All Graduated/Completed','5'=>'Export All']);
define('AUTOMATION_WARRING',"This letter has automations and by deleting this account all automations will also be deleted do you want to continue ?");
define('CLIENT_POPUPS_LIST',[
'1'=>'Image',
'2'=>'Video',
]);
define('MESSAGE_LENGTH',1000); // for client message limit.
define('LETTER_COUNT_MESSAGE','#_maxlength_# character limit, #_remlength_# remaining.');
define('EMPLOYEE_USER_TYPE_DROPDOW_LIST',['1'=>'Everyone','2'=>'Me','4'=>'Client']);
define('MEMBER_EMPLOYEE_MESSAGE_TO_CLIENT','Customer Support');
define('NEXT_DATE_INTERVAL_DAYS',['15'=>'15 days','21'=>'21 days','45'=>'45 days','65'=>'65 days']);
define('UPLOAD_MEDIA_SIZE', 1048576*3);//1MB = 1048576bytes
define('UPLOAD_MEDIA_WIDTH', 900);
define('UPLOAD_MEDIA_HEIGHT', 500);
define('UPLOAD_CLIENT_MEDIA_SIZE',UPLOAD_MEDIA_SIZE/1048576); // Size in MB
define('UPLOAD_MEDIA_MESSAGE', 'Please keep upload image size less than '.UPLOAD_CLIENT_MEDIA_SIZE.'MB and proportion '.UPLOAD_MEDIA_WIDTH.' X '.UPLOAD_MEDIA_HEIGHT);
define('NOTE_CHAR_LENGTH',2000);
define('CLIENT_SEND_EMAIL_ACTION_TYPES', ['1'=>'Delete all']);
define('QUEUE_MONITOR_USER_EMAIL',['']);
define('EPIVELOCITY_FOR_EMPLOYEES_PKG_ID',20);
define('RTG_FOR_EMPLOYEES_PKG_ID',21);
define('DATE_SELECTION_BY_DAYS',[
'15'=>'15 days',
'21'=>'21 days',
'30'=>'30 days',
'45'=>'45 days',
'60'=>'60 days',
'65'=>'65 days',
'90'=>'90 days',
'180'=>'180 days',
]);
define('VIDEO_SETTINGS_STATUS',['1'=>'Active','0'=>'Inactive']);
define('COPY_RIGHT_YEAR','2025');
define('CLIENT_PORTAL_DEFAULT_FOOTER','Secure SSL Area | This website is protected by secure portal © '.COPY_RIGHT_YEAR.' All rights reserved.');
define('UPGRADE_BUTTON_ALERT_TEXT', 'Please contact customer support for details to upgrade your account (614-547-6222)');
define('MAIN_DOMAIN_FOOTER','<strong>Secure SSL Area | This website is protected by secure portal © '.COPY_RIGHT_YEAR.' <a href="https://www.lslh.org.uk/" target="_blank">londonschooloflearninghub</a>. </strong> All rights reserved.');
define("STUDENT_TITLE", json_encode(["Mr","Ms","Mrs","Miss","Dr"]));
define("DAYS", json_encode(["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"]));
define("MONTHS", [ "01" => "January","02" =>"February",
"03"=>"March","04" =>"April",
"05"=>"May","06" => "June",
"07" => "July","08" => "August",
"09" => "September","10" => "October",
"11" => "November","12" => "December"]);
define("STUDENT_GENDER", json_encode(["Male","Female","Others"]));
define("COUNTRIES", [
'Afghanistan' => 'Afghanistan',
'Åland Islands' => 'Åland Islands',
'Albania' => 'Albania',
'Algeria' => 'Algeria',
'American Samoa' => 'American Samoa',
'Andorra' => 'Andorra',
'Angola' => 'Angola',
'Anguilla' => 'Anguilla',
'Antarctica' => 'Antarctica',
'Antigua and Barbuda' => 'Antigua and Barbuda',
'Argentina' => 'Argentina',
'Armenia' => 'Armenia',
'Aruba' => 'Aruba',
'Australia' => 'Australia',
'Austria' => 'Austria',
'Azerbaijan' => 'Azerbaijan',
'Bahamas' => 'Bahamas',
'Bahrain' => 'Bahrain',
'Bangladesh' => 'Bangladesh',
'Barbados' => 'Barbados',
'Belarus' => 'Belarus',
'Belgium' => 'Belgium',
'Belize' => 'Belize',
'Benin' => 'Benin',
'Bermuda' => 'Bermuda',
'Bhutan' => 'Bhutan',
'Bolivia' => 'Bolivia',
'Bosnia and Herzegovina' => 'Bosnia and Herzegovina',
'Botswana' => 'Botswana',
'Bouvet Island' => 'Bouvet Island',
'Brazil' => 'Brazil',
'British Indian Ocean Territory' => 'British Indian Ocean Territory',
'Brunei Darussalam' => 'Brunei Darussalam',
'Bulgaria' => 'Bulgaria',
'Burkina Faso' => 'Burkina Faso',
'Burundi' => 'Burundi',
'Cambodia' => 'Cambodia',
'Cameroon' => 'Cameroon',
'Canada' => 'Canada',
'Cape Verde' => 'Cape Verde',
'Cayman Islands' => 'Cayman Islands',
'Central African Republic' => 'Central African Republic',
'Chad' => 'Chad',
'Chile' => 'Chile',
'China' => 'China',
'Christmas Island' => 'Christmas Island',
'Cocos (Keeling) Islands' => 'Cocos (Keeling) Islands',
'Colombia' => 'Colombia',
'Comoros' => 'Comoros',
'Congo' => 'Congo',
'Congo, The Democratic Republic of The' => 'Congo, The Democratic Republic of The',
'Cook Islands' => 'Cook Islands',
'Costa Rica' => 'Costa Rica',
'Cote D\'ivoire' => 'Cote D\'ivoire',
'Croatia' => 'Croatia',
'Cuba' => 'Cuba',
'Cyprus' => 'Cyprus',
'Czech Republic' => 'Czech Republic',
'Denmark' => 'Denmark',
'Djibouti' => 'Djibouti',
'Dominica' => 'Dominica',
'Dominican Republic' => 'Dominican Republic',
'Ecuador' => 'Ecuador',
'Egypt' => 'Egypt',
'El Salvador' => 'El Salvador',
'Equatorial Guinea' => 'Equatorial Guinea',
'Eritrea' => 'Eritrea',
'Estonia' => 'Estonia',
'Ethiopia' => 'Ethiopia',
'Falkland Islands (Malvinas)' => 'Falkland Islands (Malvinas)',
'Faroe Islands' => 'Faroe Islands',
'Fiji' => 'Fiji',
'Finland' => 'Finland',
'France' => 'France',
'French Guiana' => 'French Guiana',
'French Polynesia' => 'French Polynesia',
'French Southern Territories' => 'French Southern Territories',
'Gabon' => 'Gabon',
'Gambia' => 'Gambia',
'Georgia' => 'Georgia',
'Germany' => 'Germany',
'Ghana' => 'Ghana',
'Gibraltar' => 'Gibraltar',
'Greece' => 'Greece',
'Greenland' => 'Greenland',
'Grenada' => 'Grenada',
'Guadeloupe' => 'Guadeloupe',
'Guam' => 'Guam',
'Guatemala' => 'Guatemala',
'Guernsey' => 'Guernsey',
'Guinea' => 'Guinea',
'Guinea-bissau' => 'Guinea-bissau',
'Guyana' => 'Guyana',
'Haiti' => 'Haiti',
'Heard Island and Mcdonald Islands' => 'Heard Island and Mcdonald Islands',
'Holy See (Vatican City State)' => 'Holy See (Vatican City State)',
'Honduras' => 'Honduras',
'Hong Kong' => 'Hong Kong',
'Hungary' => 'Hungary',
'Iceland' => 'Iceland',
'India' => 'India',
'Indonesia' => 'Indonesia',
'Iran, Islamic Republic of' => 'Iran, Islamic Republic of',
'Iraq' => 'Iraq',
'Ireland' => 'Ireland',
'Isle of Man' => 'Isle of Man',
'Israel' => 'Israel',
'Italy' => 'Italy',
'Jamaica' => 'Jamaica',
'Japan' => 'Japan',
'Jersey' => 'Jersey',
'Jordan' => 'Jordan',
'Kazakhstan' => 'Kazakhstan',
'Kenya' => 'Kenya',
'Kiribati' => 'Kiribati',
'Korea, Democratic People\'s Republic of' => 'Korea, Democratic People\'s Republic of',
'Korea, Republic of' => 'Korea, Republic of',
'Kuwait' => 'Kuwait',
'Kyrgyzstan' => 'Kyrgyzstan',
'Lao People\'s Democratic Republic' => 'Lao People\'s Democratic Republic',
'Latvia' => 'Latvia',
'Lebanon' => 'Lebanon',
'Lesotho' => 'Lesotho',
'Liberia' => 'Liberia',
'Libyan Arab Jamahiriya' => 'Libyan Arab Jamahiriya',
'Liechtenstein' => 'Liechtenstein',
'Lithuania' => 'Lithuania',
'Luxembourg' => 'Luxembourg',
'Macao' => 'Macao',
'Macedonia, The Former Yugoslav Republic of' => 'Macedonia, The Former Yugoslav Republic of',
'Madagascar' => 'Madagascar',
'Malawi' => 'Malawi',
'Malaysia' => 'Malaysia',
'Maldives' => 'Maldives',
'Mali' => 'Mali',
'Malta' => 'Malta',
'Marshall Islands' => 'Marshall Islands',
'Martinique' => 'Martinique',
'Mauritania' => 'Mauritania',
'Mauritius' => 'Mauritius',
'Mayotte' => 'Mayotte',
'Mexico' => 'Mexico',
'Micronesia, Federated States of' => 'Micronesia, Federated States of',
'Moldova, Republic of' => 'Moldova, Republic of',
'Monaco' => 'Monaco',
'Mongolia' => 'Mongolia',
'Montenegro' => 'Montenegro',
'Montserrat' => 'Montserrat',
'Morocco' => 'Morocco',
'Mozambique' => 'Mozambique',
'Myanmar' => 'Myanmar',
'Namibia' => 'Namibia',
'Nauru' => 'Nauru',
'Nepal' => 'Nepal',
'Netherlands' => 'Netherlands',
'Netherlands Antilles' => 'Netherlands Antilles',
'New Caledonia' => 'New Caledonia',
'New Zealand' => 'New Zealand',
'Nicaragua' => 'Nicaragua',
'Niger' => 'Niger',
'Nigeria' => 'Nigeria',
'Niue' => 'Niue',
'Norfolk Island' => 'Norfolk Island',
'Northern Mariana Islands' => 'Northern Mariana Islands',
'Norway' => 'Norway',
'Oman' => 'Oman',
'Pakistan' => 'Pakistan',
'Palau' => 'Palau',
'Palestinian Territory, Occupied' => 'Palestinian Territory, Occupied',
'Panama' => 'Panama',
'Papua New Guinea' => 'Papua New Guinea',
'Paraguay' => 'Paraguay',
'Peru' => 'Peru',
'Philippines' => 'Philippines',
'Pitcairn' => 'Pitcairn',
'Poland' => 'Poland',
'Portugal' => 'Portugal',
'Puerto Rico' => 'Puerto Rico',
'Qatar' => 'Qatar',
'Reunion' => 'Reunion',
'Romania' => 'Romania',
'Russian Federation' => 'Russian Federation',
'Rwanda' => 'Rwanda',
'Saint Helena' => 'Saint Helena',
'Saint Kitts and Nevis' => 'Saint Kitts and Nevis',
'Saint Lucia' => 'Saint Lucia',
'Saint Pierre and Miquelon' => 'Saint Pierre and Miquelon',
'Saint Vincent and The Grenadines' => 'Saint Vincent and The Grenadines',
'Samoa' => 'Samoa',
'San Marino' => 'San Marino',
'Sao Tome and Principe' => 'Sao Tome and Principe',
'Saudi Arabia' => 'Saudi Arabia',
'Senegal' => 'Senegal',
'Serbia' => 'Serbia',
'Seychelles' => 'Seychelles',
'Sierra Leone' => 'Sierra Leone',
'Singapore' => 'Singapore',
'Slovakia' => 'Slovakia',
'Slovenia' => 'Slovenia',
'Solomon Islands' => 'Solomon Islands',
'Somalia' => 'Somalia',
'South Africa' => 'South Africa',
'South Georgia and The South Sandwich Islands' => 'South Georgia and The South Sandwich Islands',
'Spain' => 'Spain',
'Sri Lanka' => 'Sri Lanka',
'Sudan' => 'Sudan',
'Suriname' => 'Suriname',
'Svalbard and Jan Mayen' => 'Svalbard and Jan Mayen',
'Swaziland' => 'Swaziland',
'Sweden' => 'Sweden',
'Switzerland' => 'Switzerland',
'Syrian Arab Republic' => 'Syrian Arab Republic',
'Taiwan' => 'Taiwan',
'Tajikistan' => 'Tajikistan',
'Tanzania, United Republic of' => 'Tanzania, United Republic of',
'Thailand' => 'Thailand',
'Timor-leste' => 'Timor-leste',
'Togo' => 'Togo',
'Tokelau' => 'Tokelau',
'Tonga' => 'Tonga',
'Trinidad and Tobago' => 'Trinidad and Tobago',
'Tunisia' => 'Tunisia',
'Turkey' => 'Turkey',
'Turkmenistan' => 'Turkmenistan',
'Turks and Caicos Islands' => 'Turks and Caicos Islands',
'Tuvalu' => 'Tuvalu',
'Uganda' => 'Uganda',
'Ukraine' => 'Ukraine',
'United Arab Emirates' => 'United Arab Emirates',
'United Kingdom' => 'United Kingdom',
'United States' => 'United States',
'United States Minor Outlying Islands' => 'United States Minor Outlying Islands',
'Uruguay' => 'Uruguay',
'Uzbekistan' => 'Uzbekistan',
'Vanuatu' => 'Vanuatu',
'Venezuela' => 'Venezuela',
'Viet Nam' => 'Viet Nam',
'Virgin Islands, British' => 'Virgin Islands, British',
'Virgin Islands, U.S.' => 'Virgin Islands, U.S.',
'Wallis and Futuna' => 'Wallis and Futuna',
'Western Sahara' => 'Western Sahara',
'Yemen' => 'Yemen',
'Zambia' => 'Zambia',
'Zimbabwe' => 'Zimbabwe'
]);
define("FEED_BACK_STATUS",json_encode(['Pending','Resolved','Closed']));
define("ADMIN_EMAIL_LEARNING_HUB","admissions@lslh.org.uk");
define("IS_MANDATORY",['1' => 'Required', '0' => 'Not Required']);
define('FORM_SEQUENCE',[
'1' => 'First',
'2' => 'Second',
'3' => 'Third',
'4' => 'Fourth',
'5' => 'Fifth',
'6' => 'Sixth',
'7' => 'Seventh'
]);
define("AVOID_FROM_REPORT",["id","Date","student_id","status","current_checklist_id","created_by","updated_by","created_at","updated_at", "created_by_id","updated_by_id","emergency_contact_name", "emergency_contact_relation", "emergency_contact_email", "emergency_contact_phone_number", "education_name1", "education_year1", "education_institution1", "education_name2", "education_year2", "education_institution2", "education_name3", "education_year3" ,"education_institution3" ,"employer_name", "position"]);
define('ALL_REPORT_TABLES',[
'Students' => 'Student',
'Courses' => 'Course',
'Sessions' => 'Session',
'RegistrationPayments' => 'Registration Payment',
'PassportDetails' => 'Passport Detail'
]);
define('FIXED_REPORT_VARIABLE',[
'Current Date' => FrozenTime::now()->format('jS F Y'),
'Provider' => "London School of Learning Hub",
'Bank Account Title' => 'London School of Learning Hub',
'Bank SortCode' =>'60-01-38',
'Bank AccountNo' => '53619404',
'Bank IBAN_NO' => 'GB98 NWBK 6001 3853 6194 04',
'Bank SWIFT-BIC'=> 'NWBKGB2L',
'Admin Email' => 'admissions@lslh.org.uk',
'Phone Number' => '+44-02034887793',
'Office Address' => '160 London Road Jhumat house, Barking IG11 8BB',
'ASIC Accreditation No' => 'AS90940/1121',
'Admission Officer' => 'Ms. Agata Pawlowska',
'Verification link' => 'https://www.lslh.org.uk/verification'
]);
define('VISA_TYPE',[
'student-visa' => 'Student Visa',
'child-study-visa' => "Child Student Visa",
'visa-to-study-english' => 'Short-term study visa',
'standard-visitor' =>'Visit the UK as a Standard Visitor'
]);
define('DECIMAL_COLUMN',[
'registration_fee',
'tuition_fees',
'total_fees_paid',
'total_fees' ,
'outstanding_fees' ,
'total_fees' ,
'living_costs'
]);
define('STUDY_MOD',[
'1' => 'Full-time',
'2' => "Part-time",
'3' => 'Online/Distance Learning',
'4' =>'Blended Learning'
]);
define('OFFER_LETTER_TYPE',[
'1' => 'Offer Letter',
'2' => "Conditional Offer Letter"
]);
define('DEFAULT_USER_PASSWORD','12345678');
define('USER_TYPE',['ADMINISTRATOR'=>'0','STUDENT'=>'1']);
define('DEFAULT_STUDENT_USER_GROUP',14);
define('COURSE_SEMESTER_ID',1);
//define('NOTIFICATION_TYPE',['EMAIL'=>'email','SMS'=>'sms']);
//define('PAYMENT_METHOD',['BKASH'=>'bkash','NMI'=>'nmi']);
define('AVAILABILITY_TYPE',['1'=>'UK and International','2'=>'UK']);
define('DELIVERY_MODE',[1 => 'Online', 2 => 'Blended', 3 => 'Both']);
define('ACCREDITATION_STATUS', [
1 => 'Accredited',
2 => 'Under Review'
]);
define('ENGLISH_COURSE_CATEGORY_ID',2);
?>

326
config/app.default.php Normal file
View File

@@ -0,0 +1,326 @@
<?php
return [
/**
* Debug Level:
*
* Production Mode:
* false: No error messages, errors, or warnings shown.
*
* Development Mode:
* true: Errors and warnings shown.
*/
'debug' => true,
/**
* Configure basic information about the application.
*
* - namespace - The namespace to find app classes under.
* - encoding - The encoding used for HTML + database connections.
* - base - The base directory the app resides in. If false this
* will be auto detected.
* - dir - Name of app directory.
* - webroot - The webroot directory.
* - wwwRoot - The file path to webroot.
* - baseUrl - To configure CakePHP to *not* use mod_rewrite and to
* use CakePHP pretty URLs, remove these .htaccess
* files:
* /.htaccess
* /webroot/.htaccess
* And uncomment the baseUrl key below.
* - fullBaseUrl - A base URL to use for absolute links.
* - imageBaseUrl - Web path to the public images directory under webroot.
* - cssBaseUrl - Web path to the public css directory under webroot.
* - jsBaseUrl - Web path to the public js directory under webroot.
* - paths - Configure paths for non class based resources. Supports the
* `plugins`, `templates`, `locales` subkeys, which allow the definition of
* paths for plugins, view templates and locale files respectively.
*/
'App' => [
'namespace' => 'App',
'encoding' => 'UTF-8',
'base' => false,
'dir' => 'src',
'webroot' => 'webroot',
'wwwRoot' => WWW_ROOT,
// 'baseUrl' => env('SCRIPT_NAME'),
'fullBaseUrl' => false,
'imageBaseUrl' => 'img/',
'cssBaseUrl' => 'css/',
'jsBaseUrl' => 'js/',
'paths' => [
'plugins' => [ROOT . DS . 'plugins' . DS],
'templates' => [APP . 'Template' . DS],
'locales' => [APP . 'Locale' . DS],
],
],
/**
* Security and encryption configuration
*
* - salt - A random string used in security hashing methods.
* The salt value is also used as the encryption key.
* You should treat it as extremely sensitive data.
*/
'Security' => [
'salt' => '__SALT__',
],
/**
* Apply timestamps with the last modified time to static assets (js, css, images).
* Will append a querystring parameter containing the time the file was modified.
* This is useful for busting browser caches.
*
* Set to true to apply timestamps when debug is true. Set to 'force' to always
* enable timestamping regardless of debug value.
*/
'Asset' => [
// 'timestamp' => true,
],
/**
* Configure the cache adapters.
*/
'Cache' => [
'default' => [
'className' => 'File',
'path' => CACHE,
],
/**
* Configure the cache used for general framework caching.
* Translation cache files are stored with this configuration.
*/
'_cake_core_' => [
'className' => 'File',
'prefix' => 'myapp_cake_core_',
'path' => CACHE . 'persistent/',
'serialize' => true,
'duration' => '+2 minutes',
],
/**
* Configure the cache for model and datasource caches. This cache
* configuration is used to store schema descriptions, and table listings
* in connections.
*/
'_cake_model_' => [
'className' => 'File',
'prefix' => 'myapp_cake_model_',
'path' => CACHE . 'models/',
'serialize' => true,
'duration' => '+2 minutes',
],
],
/**
* Configure the Error and Exception handlers used by your application.
*
* By default errors are displayed using Debugger, when debug is true and logged
* by Cake\Log\Log when debug is false.
*
* In CLI environments exceptions will be printed to stderr with a backtrace.
* In web environments an HTML page will be displayed for the exception.
* With debug true, framework errors like Missing Controller will be displayed.
* When debug is false, framework errors will be coerced into generic HTTP errors.
*
* Options:
*
* - `errorLevel` - int - The level of errors you are interested in capturing.
* - `trace` - boolean - Whether or not backtraces should be included in
* logged errors/exceptions.
* - `log` - boolean - Whether or not you want exceptions logged.
* - `exceptionRenderer` - string - The class responsible for rendering
* uncaught exceptions. If you choose a custom class you should place
* the file for that class in src/Error. This class needs to implement a
* render method.
* - `skipLog` - array - List of exceptions to skip for logging. Exceptions that
* extend one of the listed exceptions will also be skipped for logging.
* E.g.:
* `'skipLog' => ['Cake\Network\Exception\NotFoundException', 'Cake\Network\Exception\UnauthorizedException']`
*/
'Error' => [
'errorLevel' => E_ALL & ~E_DEPRECATED,
'exceptionRenderer' => 'Cake\Error\ExceptionRenderer',
'skipLog' => [],
'log' => true,
'trace' => true,
],
/**
* Email configuration.
*
* By defining transports separately from delivery profiles you can easily
* re-use transport configuration across multiple profiles.
*
* You can specify multiple configurations for production, development and
* testing.
*
* Each transport needs a `className`. Valid options are as follows:
*
* Mail - Send using PHP mail function
* Smtp - Send using SMTP
* Debug - Do not send the email, just return the result
*
* You can add custom transports (or override existing transports) by adding the
* appropriate file to src/Mailer/Transport. Transports should be named
* 'YourTransport.php', where 'Your' is the name of the transport.
*/
'EmailTransport' => [
'default' => [
'className' => 'Mail',
// The following keys are used in SMTP transports
'host' => 'localhost',
'port' => 25,
'timeout' => 30,
'username' => 'root',
'password' => '',
'client' => null,
'tls' => null,
],
],
/**
* Email delivery profiles
*
* Delivery profiles allow you to predefine various properties about email
* messages from your application and give the settings a name. This saves
* duplication across your application and makes maintenance and development
* easier. Each profile accepts a number of keys. See `Cake\Network\Email\Email`
* for more information.
*/
'Email' => [
'default' => [
'transport' => 'default',
'from' => 'you@localhost',
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
],
],
/**
* Connection information used by the ORM to connect
* to your application's datastores.
* Drivers include Mysql Postgres Sqlite Sqlserver
* See vendor\cakephp\cakephp\src\Database\Driver for complete list
*/
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'nonstandard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'my_app',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'log' => false,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
/**
* The test connection is used during the test suite.
*/
'test' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
//'port' => 'nonstandard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'test_myapp',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
],
/**
* Configures logging options
*/
'Log' => [
'debug' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'debug',
'levels' => ['notice', 'info', 'debug'],
],
'error' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'error',
'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
],
],
/**
* Session configuration.
*
* Contains an array of settings to use for session configuration. The
* `defaults` key is used to define a default preset to use for sessions, any
* settings declared here will override the settings of the default config.
*
* ## Options
*
* - `cookie` - The name of the cookie to use. Defaults to 'CAKEPHP'.
* - `cookiePath` - The url path for which session cookie is set. Maps to the
* `session.cookie_path` php.ini config. Defaults to base path of app.
* - `timeout` - The time in minutes the session should be valid for.
* Pass 0 to disable checking timeout.
* Please note that php.ini's session.gc_maxlifetime must be equal to or greater
* than the largest Session['timeout'] in all served websites for it to have the
* desired effect.
* - `defaults` - The default configuration set to use as a basis for your session.
* There are four built-in options: php, cake, cache, database.
* - `handler` - Can be used to enable a custom session handler. Expects an
* array with at least the `engine` key, being the name of the Session engine
* class to use for managing the session. CakePHP bundles the `CacheSession`
* and `DatabaseSession` engines.
* - `ini` - An associative array of additional ini values to set.
*
* The built-in `defaults` options are:
*
* - 'php' - Uses settings defined in your php.ini.
* - 'cake' - Saves session files in CakePHP's /tmp directory.
* - 'database' - Uses CakePHP's database sessions.
* - 'cache' - Use the Cache class to save sessions.
*
* To define a custom session handler, save it at src/Network/Session/<name>.php.
* Make sure the class implements PHP's `SessionHandlerInterface` and set
* Session.handler to <name>
*
* To use database sessions, load the SQL file located at config/Schema/sessions.sql
*/
'Session' => [
'defaults' => 'php',
],
];

389
config/app.php Normal file
View File

@@ -0,0 +1,389 @@
<?php
return [
/**
* Debug Level:
*
* Production Mode:
* false: No error messages, errors, or warnings shown.
*
* Development Mode:
* true: Errors and warnings shown.
*/
'debug' => APP_CONFIG_DEBUG_MODE,
/**
* Configure basic information about the application.
*
* - namespace - The namespace to find app classes under.
* - encoding - The encoding used for HTML + database connections.
* - base - The base directory the app resides in. If false this
* will be auto detected.
* - dir - Name of app directory.
* - webroot - The webroot directory.
* - wwwRoot - The file path to webroot.
* - baseUrl - To configure CakePHP to *not* use mod_rewrite and to
* use CakePHP pretty URLs, remove these .htaccess
* files:
* /.htaccess
* /webroot/.htaccess
* And uncomment the baseUrl key below.
* - fullBaseUrl - A base URL to use for absolute links.
* - imageBaseUrl - Web path to the public images directory under webroot.
* - cssBaseUrl - Web path to the public css directory under webroot.
* - jsBaseUrl - Web path to the public js directory under webroot.
* - paths - Configure paths for non class based resources. Supports the
* `plugins`, `templates`, `locales` subkeys, which allow the definition of
* paths for plugins, view templates and locale files respectively.
*/
'App' => [
'namespace' => 'App',
'encoding' => 'UTF-8',
'base' => false,
'dir' => 'src',
'webroot' => 'webroot',
'wwwRoot' => WWW_ROOT,
// 'baseUrl' => env('SCRIPT_NAME'),
'fullBaseUrl' => false,
'imageBaseUrl' => 'img/',
'cssBaseUrl' => 'css/',
'jsBaseUrl' => 'js/',
'paths' => [
'plugins' => [ROOT . DS . 'plugins' . DS],
'templates' => [APP . 'Template' . DS],
'locales' => [APP . 'Locale' . DS],
],
],
/**
* Security and encryption configuration
*
* - salt - A random string used in security hashing methods.
* The salt value is also used as the encryption key.
* You should treat it as extremely sensitive data.
*/
'Security' => [
'salt' => 'a26ac8c6a0c4277c3df4251dce80897b36ac331293a7dcdf220ca307b26e897c',
],
/**
* Apply timestamps with the last modified time to static assets (js, css, images).
* Will append a querystring parameter containing the time the file was modified.
* This is useful for busting browser caches.
*
* Set to true to apply timestamps when debug is true. Set to 'force' to always
* enable timestamping regardless of debug value.
*/
'Asset' => [
// 'timestamp' => true,
],
/**
* Configure the cache adapters.
*/
'Cache' => [
'default' => [
'className' => DEFAULT_CACHE,
'path' => CACHE,
],
'redis'=>[
'port'=>REDIS_PORT,
'duration'=>REDIS_DURATION,
'host '=>REDIS_HOST,
'database'=>REDIS_DB,
'password'=>REDIS_PASSWORD,
'persistent '=>REDIS_PERSISTENT,
'timeout'=>REDIS_TIMEOUT,
'unix_socket'=>REDIS_UNIX_SOCKET,
],
/**
* Configure the cache used for general framework caching.
* Translation cache files are stored with this configuration.
*/
'_cake_core_' => [
'className' => 'File',
'prefix' => 'myapp_cake_core_',
'path' => CACHE . 'persistent/',
'serialize' => true,
'duration' => '+2 minutes',
],
/**
* Configure the cache for model and datasource caches. This cache
* configuration is used to store schema descriptions, and table listings
* in connections.
*/
'_cake_model_' => [
'className' => 'File',
'prefix' => 'myapp_cake_model_',
'path' => CACHE . 'models/',
'serialize' => true,
'duration' => '+2 minutes',
],
],
/**
* Configure the Error and Exception handlers used by your application.
*
* By default errors are displayed using Debugger, when debug is true and logged
* by Cake\Log\Log when debug is false.
*
* In CLI environments exceptions will be printed to stderr with a backtrace.
* In web environments an HTML page will be displayed for the exception.
* With debug true, framework errors like Missing Controller will be displayed.
* When debug is false, framework errors will be coerced into generic HTTP errors.
*
* Options:
*
* - `errorLevel` - int - The level of errors you are interested in capturing.
* - `trace` - boolean - Whether or not backtraces should be included in
* logged errors/exceptions.
* - `log` - boolean - Whether or not you want exceptions logged.
* - `exceptionRenderer` - string - The class responsible for rendering
* uncaught exceptions. If you choose a custom class you should place
* the file for that class in src/Error. This class needs to implement a
* render method.
* - `skipLog` - array - List of exceptions to skip for logging. Exceptions that
* extend one of the listed exceptions will also be skipped for logging.
* E.g.:
* `'skipLog' => ['Cake\Network\Exception\NotFoundException', 'Cake\Network\Exception\UnauthorizedException']`
*/
'Error' => [
'errorLevel' => '',
// 'exceptionRenderer' => 'Cake\Error\ExceptionRenderer',
'exceptionRenderer' => 'App\Error\AppExceptionRenderer',
'skipLog' => [],
'log' => true,
'trace' => true,
],
/**
* Email configuration.
*
* By defining transports separately from delivery profiles you can easily
* re-use transport configuration across multiple profiles.
*
* You can specify multiple configurations for production, development and
* testing.
*
* Each transport needs a `className`. Valid options are as follows:
*
* Mail - Send using PHP mail function
* Smtp - Send using SMTP
* Debug - Do not send the email, just return the result
*
* You can add custom transports (or override existing transports) by adding the
* appropriate file to src/Mailer/Transport. Transports should be named
* 'YourTransport.php', where 'Your' is the name of the transport.
*/
'EmailTransport' => [
'default' => [
'className' => APP_EMAIL_CLASS,
'host' =>APP_SMTP_HOST,
'port' => APP_SMTP_PORT,
'timeout' => APP_SMTP_TIMEOUT,
'username' => APP_SMTP_USERNAME,
'password' => APP_SMTP_PASSWORD,
'tls' => APP_SMTP_IS_TLS,
],
'Debug' => [
'className' => 'Debug'
]
],
/**
* Email delivery profiles
*
* Delivery profiles allow you to predefine various properties about email
* messages from your application and give the settings a name. This saves
* duplication across your application and makes maintenance and development
* easier. Each profile accepts a number of keys. See `Cake\Network\Email\Email`
* for more information.
*/
'Email' => [
'default' => [
'transport' => 'default',
'from' => 'cloudhighttest@gmail.com',
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
],
],
/**
* Connection information used by the ORM to connect
* to your application's datastores.
* Drivers include Mysql Postgres Sqlite Sqlserver
* See vendor\cakephp\cakephp\src\Database\Driver for complete list
*/
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => APP_DB_IS_PERSISTENT,
'host' => APP_DB_HOST,
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'nonstandard_port_number',
'username' => APP_DB_USERNAME,
'password' => APP_DB_PASSWORD,
'database' => APP_DB_DATABASE_NAME,
'encoding' => APP_DB_ENCODING,
'timezone' => 'UTC',
'cacheMetadata' => true,
'log' => true,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
'mybb' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => APP_DB_IS_PERSISTENT,
'host' => APP_DB_HOST,
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'nonstandard_port_number',
'username' => APP_DB_USERNAME,
'password' => APP_DB_PASSWORD,
'database' => MYBB_DB_NAME,
'encoding' => APP_DB_ENCODING,
'timezone' => 'UTC',
'cacheMetadata' => true,
'log' => true,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
/**
* The test connection is used during the test suite.
*/
'test' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
//'port' => 'nonstandard_port_number',
'username' => 'root',
'password' => '',
'database' => 'pdfgenerator',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
],
/**
* Configures logging options
*/
'Log' => [
'debug' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'debug-'.date('Y-m-d'),
'levels' => ['notice', 'info', 'debug'],
],
'error' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'error-'.date('Y-m-d'),
'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
],'cli_info' => [
'className' => 'Cake\Log\Engine\FileLog',
'path' => LOGS,
'file' => 'info-'.date('Y-m-d'),
'levels' => [ 'info'],
],
],
/**
* Session configuration.
*
* Contains an array of settings to use for session configuration. The
* `defaults` key is used to define a default preset to use for sessions, any
* settings declared here will override the settings of the default config.
*
* ## Options
*
* - `cookie` - The name of the cookie to use. Defaults to 'CAKEPHP'.
* - `cookiePath` - The url path for which session cookie is set. Maps to the
* `session.cookie_path` php.ini config. Defaults to base path of app.
* - `timeout` - The time in minutes the session should be valid for.
* Pass 0 to disable checking timeout.
* Please note that php.ini's session.gc_maxlifetime must be equal to or greater
* than the largest Session['timeout'] in all served websites for it to have the
* desired effect.
* - `defaults` - The default configuration set to use as a basis for your session.
* There are four built-in options: php, cake, cache, database.
* - `handler` - Can be used to enable a custom session handler. Expects an
* array with at least the `engine` key, being the name of the Session engine
* class to use for managing the session. CakePHP bundles the `CacheSession`
* and `DatabaseSession` engines.
* - `ini` - An associative array of additional ini values to set.
*
* The built-in `defaults` options are:
*
* - 'php' - Uses settings defined in your php.ini.
* - 'cake' - Saves session files in CakePHP's /tmp directory.
* - 'database' - Uses CakePHP's database sessions.
* - 'cache' - Use the Cache class to save sessions.
*
* To define a custom session handler, save it at src/Network/Session/<name>.php.
* Make sure the class implements PHP's `SessionHandlerInterface` and set
* Session.handler to <name>
*
* To use database sessions, load the SQL file located at config/Schema/sessions.sql
*/
'Session' => [
'defaults' => 'php',
'timeout'=>60//in minutes
],
];

212
config/bootstrap.php Normal file
View File

@@ -0,0 +1,212 @@
<?php
/**
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @since 0.10.8
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
/**
* Configure paths required to find CakePHP + general filepath
* constants
*/
require __DIR__ . '/paths.php';
// Use composer to load the autoloader.
require ROOT . DS . 'vendor' . DS . 'autoload.php';
require ROOT . DS . 'config' . DS . 'app.settings.php';
require ROOT . DS . 'config' . DS . 'app.constant.php';
//echo "yyy";exit;
/**
* Bootstrap CakePHP.
*
* Does the various bits of setup that CakePHP needs to do.
* This includes:
*
* - Registering the CakePHP autoloader.
* - Setting the default application paths.
*/
require CORE_PATH . 'config' . DS . 'bootstrap.php';
//echo "mmm";exit;
// You can remove this if you are confident you have intl installed.
if (!extension_loaded('intl')) {
trigger_error('You must enable the intl extension to use CakePHP.', E_USER_ERROR);
}
//echo "hello";exit;
use Cake\Cache\Cache;
use Cake\Console\ConsoleErrorHandler;
use Cake\Core\App;
use Cake\Core\Configure;
use Cake\Core\Configure\Engine\PhpConfig;
use Cake\Core\Plugin;
use Cake\Database\Type;
use Cake\Datasource\ConnectionManager;
use Cake\Error\ErrorHandler;
use Cake\Log\Log;
use Cake\Network\Email\Email;
use Cake\Network\Request;
use Cake\Routing\DispatcherFactory;
use Cake\Utility\Inflector;
use Cake\Utility\Security;
/**
* Read configuration file and inject configuration into various
* CakePHP classes.
*
* By default there is only one configuration file. It is often a good
* idea to create multiple configuration files, and separate the configuration
* that changes from configuration that does not. This makes deployment simpler.
*/
try {
Configure::config('default', new PhpConfig());
Configure::load('app', 'default', false);
} catch (\Exception $e) {
die($e->getMessage() . "\n");
}
// Load an environment local configuration file.
// You can use a file like app_local.php to provide local overrides to your
// shared configuration.
//Configure::load('app_local', 'default');
// When debug = false the metadata cache should last
// for a very very long time, as we don't want
// to refresh the cache while users are doing requests.
if (!Configure::read('debug')) {
Configure::write('Cache._cake_model_.duration', '+1 years');
Configure::write('Cache._cake_core_.duration', '+1 years');
}
/**
* Set server timezone to UTC. You can change it to another timezone of your
* choice but using UTC makes time calculations / conversions easier.
*/
date_default_timezone_set('UTC');
/**
* Configure the mbstring extension to use the correct encoding.
*/
mb_internal_encoding(Configure::read('App.encoding'));
/**
* Set the default locale. This controls how dates, number and currency is
* formatted and sets the default language to use for translations.
*/
ini_set('intl.default_locale', 'en_US');
/**
* Register application error and exception handlers.
*/
$isCli = php_sapi_name() === 'cli';
if ($isCli) {
(new ConsoleErrorHandler(Configure::read('Error')))->register();
} else {
(new ErrorHandler(Configure::read('Error')))->register();
}
// Include the CLI bootstrap overrides.
if ($isCli) {
require __DIR__ . '/bootstrap_cli.php';
}
/**
* Set the full base URL.
* This URL is used as the base of all absolute links.
*
* If you define fullBaseUrl in your config file you can remove this.
*/
if (!Configure::read('App.fullBaseUrl')) {
$s = null;
if (env('HTTPS')) {
$s = 's';
}
$httpHost = env('HTTP_HOST');
if (isset($httpHost)) {
Configure::write('App.fullBaseUrl', 'http' . $s . '://' . $httpHost);
}
unset($httpHost, $s);
}
Cache::config(Configure::consume('Cache'));
ConnectionManager::config(Configure::consume('Datasources'));
Email::configTransport(Configure::consume('EmailTransport'));
Email::config(Configure::consume('Email'));
Log::config(Configure::consume('Log'));
Security::salt(Configure::consume('Security.salt'));
//default language
ini_set('intl.default_locale', 'en_US');
/**
* The default crypto extension in 3.0 is OpenSSL.
* If you are migrating from 2.x uncomment this code to
* use a more compatible Mcrypt based implementation
*/
// Security::engine(new \Cake\Utility\Crypto\Mcrypt());
/**
* Setup detectors for mobile and tablet.
*/
Request::addDetector('mobile', function ($request) {
$detector = new \Detection\MobileDetect();
return $detector->isMobile();
});
Request::addDetector('tablet', function ($request) {
$detector = new \Detection\MobileDetect();
return $detector->isTablet();
});
/**
* Custom Inflector rules, can be set to correctly pluralize or singularize
* table, model, controller names or whatever other string is passed to the
* inflection functions.
*
* Inflector::rules('plural', ['/^(inflect)or$/i' => '\1ables']);
* Inflector::rules('irregular', ['red' => 'redlings']);
* Inflector::rules('uninflected', ['dontinflectme']);
* Inflector::rules('transliteration', ['/å/' => 'aa']);
*/
/**
* Plugins need to be loaded manually, you can either load them one by one or all of them in a single call
* Uncomment one of the lines below, as you need. make sure you read the documentation on Plugin to use more
* advanced ways of loading plugins
*
* Plugin::loadAll(); // Loads all plugins at once
* Plugin::load('Migrations'); //Loads a single plugin named Migrations
*
*/
Plugin::load('Migrations');
// Only try to load DebugKit in development mode
// Debug Kit should not be installed on a production system
if (Configure::read('debug')) {
Plugin::load('DebugKit', ['bootstrap' => true]);
}
/**
* Connect middleware/dispatcher filters.
*/
DispatcherFactory::add('Asset');
DispatcherFactory::add('Routing');
DispatcherFactory::add('ControllerFactory');
/**
* Enable default locale format parsing.
* This is needed for matching the auto-localized string output of Time() class when parsing dates.
*/
Type::build('datetime')->useLocaleParser();

33
config/bootstrap_cli.php Normal file
View File

@@ -0,0 +1,33 @@
<?php
/**
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @since 3.0.0
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
use Cake\Core\Configure;
use Cake\Core\Exception\MissingPluginException;
use Cake\Core\Plugin;
/**
* Additional bootstrapping and configuration for CLI environments should
* be put here.
*/
// Set logs to different files so they don't have permission conflicts.
Configure::write('Log.cli_info.file', 'cli-info-'.date('Y-m-d'));
Configure::write('Log.debug.file', 'cli-debug');
Configure::write('Log.error.file', 'cli-error-'.date('Y-m-d'));
try {
Plugin::load('Bake');
} catch (MissingPluginException $e) {
// Do not halt if the plugin is missing
}

40
config/dynamic_domain.php Normal file
View File

@@ -0,0 +1,40 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
if (isset($_SERVER['HTTP_REFERER'])) {
$host_dynamic_array = parse_url($_SERVER['HTTP_REFERER']);
$host_dynamic = $host_dynamic_array["scheme"] . "://" . $host_dynamic_array["host"] . "/";
define("APP_SERVER_HOST_URL", $host_dynamic);
define("SITE_DOMAIN", $host_dynamic_array["host"]);
} else if (isset($_SERVER['HTTP_HOST'])) {
if ($_SERVER['HTTP_HOST'] == APP_DEFAULT_DOMAIN) {
define("APP_SERVER_HOST_URL", "https://" . APP_DEFAULT_DOMAIN . "/");
define('SITE_DOMAIN', APP_DEFAULT_DOMAIN);
} else {
$ssl = "http://";
if(ENVIROMENT == 1){
$ssl = "https://";
}
$host_dynamic = $ssl. $_SERVER['HTTP_HOST'] . "/";
define("APP_SERVER_HOST_URL", $host_dynamic);
define('SITE_DOMAIN', $_SERVER['HTTP_HOST']);
}
}else{
define("APP_SERVER_HOST_URL", APP_SERVER_HOST_URL_DEFAULT);
define('SITE_DOMAIN', APP_DEFAULT_DOMAIN);
}

85
config/paths.php Normal file
View File

@@ -0,0 +1,85 @@
<?php
/**
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @since 3.0.0
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
/**
* Use the DS to separate the directories in other defines
*/
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
/**
* These defines should only be edited if you have cake installed in
* a directory layout other than the way it is distributed.
* When using custom settings be sure to use the DS and do not add a trailing DS.
*/
/**
* The full path to the directory which holds "src", WITHOUT a trailing DS.
*/
define('ROOT', dirname(__DIR__));
/**
* The actual directory name for the application directory. Normally
* named 'src'.
*/
define('APP_DIR', 'src');
/**
* Path to the application's directory.
*/
define('APP', ROOT . DS . APP_DIR . DS);
/**
* Path to the config directory.
*/
define('CONFIG', ROOT . DS . 'config' . DS);
/**
* File path to the webroot directory.
*/
define('WWW_ROOT', ROOT . DS . 'webroot' . DS);
/**
* Path to the tests directory.
*/
define('TESTS', ROOT . DS . 'tests' . DS);
/**
* Path to the temporary files directory.
*/
define('TMP', ROOT . DS . 'tmp' . DS);
/**
* Path to the logs directory.
*/
define('LOGS', ROOT . DS . 'logs' . DS);
/**
* Path to the cache files directory. It can be shared between hosts in a multi-server setup.
*/
define('CACHE', TMP . 'cache' . DS);
/**
* The absolute path to the "cake" directory, WITHOUT a trailing DS.
*
* CakePHP should always be installed with composer, so look there.
*/
define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'vendor' . DS . 'cakephp' . DS . 'cakephp');
/**
* Path to the cake directory.
*/
define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
define('CAKE', CORE_PATH . 'src' . DS);

190
config/routes.php Normal file
View File

@@ -0,0 +1,190 @@
<?php
/**
* Routes configuration
*
* In this file, you set up routes to your controllers and their actions.
* Routes are very important mechanism that allows you to freely connect
* different URLs to chosen controllers and their actions (functions).
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
use Cake\Core\Plugin;
use Cake\Routing\Router;
/**
* The default class to use for all routes
*
* The following route classes are supplied with CakePHP and are appropriate
* to set as the default:
*
* - Route
* - InflectedRoute
* - DashedRoute
*
* If no call is made to `Router::defaultRouteClass()`, the class used is
* `Route` (`Cake\Routing\Route\Route`)
*
* Note that `Route` does not do any inflections on URLs which will result in
* inconsistently cased URLs when used with `:plugin`, `:controller` and
* `:action` markers.
*
*/
Router::defaultRouteClass('DashedRoute');
Router::scope('/', function ($routes) {
$routes->setExtensions(['json']);
$routes->resources('Files');
/**
* Here, we are connecting '/' (base path) to a controller called 'Pages',
* its action called 'display', and we pass a param to select the view file
* to use (in this case, src/Template/Pages/home.ctp)...
*/
$url = $_SERVER['REQUEST_URI'];
$exploded_url = explode("/", $url);
$params_array = [];
$cmsuser_id = 0;
$client_id = 0;
if(!empty($exploded_url)){
foreach ($exploded_url as $ex_value){
if($ex_value > 0){
$params_array[] = $ex_value;
}
}
}
if(isset($params_array[0]) && $params_array[0] > 0){
$cmsuser_id = $params_array[0];
}
if($cmsuser_id > 0 && $client_id == 0){
$routes->connect('/:pass', ['controller' => 'Cmsusers', 'action' => 'login']);
}
else if($cmsuser_id > 0 && $client_id > 0){
$routes->connect('/:pass/:client_id', ['controller' => 'Cmsusers', 'action' => 'login']);
}
$routes->connect('/login', ['controller' => 'Cmsusers', 'action' => 'login']);
$routes->connect('/', ['controller' => 'Learninghub', 'action' => 'index']);
$routes->connect('/admin', ['controller' => 'Cmsusers', 'action' => 'login']);
$routes->connect('/reset_password/*', ['controller' => 'Cmsusers', 'action' => 'resetPassword']);
/**
* ...and connect the rest of 'Pages' controller's URLs.
*/
$routes->connect('/users/logout/', ['controller' => 'Cmsusers', 'action' => 'logout']);
$routes->connect('/users/edit-profile/', ['controller' => 'Cmsusers', 'action' => 'editProfile']);
$routes->connect('/users/add/', ['controller' => 'Cmsusers', 'action' => 'add']);
$routes->connect('/forgot_password', ['controller' => 'Cmsusers', 'action' => 'forgotPassword']);
$routes->connect('/users/bulk-action', ['controller' => 'Cmsusers', 'action' => 'bulkAction']);
$routes->connect('/users/allowaction/*', ['controller' => 'Cmsusers', 'action' => 'allowaction']);
$routes->connect('/users/revokeaction/*', ['controller' => 'Cmsusers', 'action' => 'revokeaction']);
$routes->connect('/users/revokePassword/*', ['controller' => 'Cmsusers', 'action' => 'revokePassword']);
$routes->connect('/users/edit/*', ['controller' => 'Cmsusers', 'action' => 'edit']);
$routes->connect('/users/view/*', ['controller' => 'Cmsusers', 'action' => 'view']);
$routes->connect('/users/addmembership/*', ['controller' => 'Cmsusers', 'action' => 'addmembership']);
$routes->connect('/users/revokemembership/*', ['controller' => 'Cmsusers', 'action' => 'revokemembership']);
$routes->connect('/users/*', ['controller' => 'Cmsusers']);
$routes->connect('/pages/*', ['controller' => 'Pages']);
$routes->connect('/pages/edit/*', ['controller' => 'Pages', 'action' => 'edit']);
$routes->connect('/pages/add', ['controller' => 'Pages', 'action' => 'add']);
$routes->connect('/pages/delete/*', ['controller' => 'Pages', 'action' => 'delete']);
$routes->connect('/pages/bulk-action', ['controller' => 'Pages', 'action' => 'bulkAction']);
$routes->connect('/submodules/*', ['controller' => 'SubModules']);
$routes->connect('/submodules/add', ['controller' => 'SubModules', 'action' => 'add']);
$routes->connect('/submodules/edit/*', ['controller' => 'SubModules', 'action' => 'edit']);
$routes->connect('/submodules/delete/*', ['controller' => 'SubModules', 'action' => 'delete']);
$routes->connect('/submodules/bulk-action', ['controller' => 'SubModules', 'action' => 'bulkAction']);
$routes->connect('/companies/*', ['controller' => 'Companies']);
$routes->connect('/companies/add', ['controller' => 'Companies', 'action' => 'add']);
$routes->connect('/companies/edit/*', ['controller' => 'Companies', 'action' => 'edit']);
$routes->connect('/companies/delete/*', ['controller' => 'Companies', 'action' => 'delete']);
$routes->connect('/companies/view/*', ['controller' => 'Companies', 'action' => 'view']);
$routes->connect('/companies/bulk-action', ['controller' => 'Companies', 'action' => 'bulkAction']);
$routes->connect('/companies/uploadPicture', ['controller' => 'Companies', 'action' => 'uploadPicture']);
$routes->connect('/companies/companyActive', ['controller' => 'Companies', 'action' => 'companyActive']);
$routes->connect('/companies/trnsToaws/*', ['controller' => 'Companies', 'action' => 'trnsToaws']);
$routes->connect('/settings/edit/*', ['controller' => 'Settings', 'action' => 'edit']);
$routes->connect('/session', ['controller' => 'Session', 'action' => 'index']);
$routes->connect('/session/add', ['controller' => 'Session', 'action' => 'add']);
$routes->connect('/session/edit/*', ['controller' => 'Session', 'action' => 'edit']);
$routes->connect('/session/delete/*', ['controller' => 'Session', 'action' => 'delete']);
$routes->connect('/session/view/*', ['controller' => 'Session', 'action' => 'view']);
$routes->connect('/course', ['controller' => 'Course', 'action' => 'index']);
$routes->connect('/course/add', ['controller' => 'Course', 'action' => 'add']);
$routes->connect('/course/edit/*', ['controller' => 'Course', 'action' => 'edit']);
$routes->connect('/course/delete/*', ['controller' => 'Course', 'action' => 'delete']);
$routes->connect('/course/view/*', ['controller' => 'Course', 'action' => 'view']);
$routes->connect('/student', ['controller' => 'Student', 'action' => 'index']);
$routes->connect('/student/add', ['controller' => 'Student', 'action' => 'add']);
$routes->connect('/student/edit/*', ['controller' => 'Student', 'action' => 'edit']);
$routes->connect('/student/delete/*', ['controller' => 'Student', 'action' => 'delete']);
$routes->connect('/about', ['controller' => 'Learninghub', 'action' => 'about']);
$routes->connect('/acreditation', ['controller' => 'Learninghub', 'action' => 'acreditation']);
$routes->connect('/accomodation', ['controller' => 'Learninghub', 'action' => 'accomodation']);
$routes->connect('/application-process', ['controller' => 'Learninghub', 'action' => 'applicationProcess']);
$routes->connect('/apply-form', ['controller' => 'Learninghub', 'action' => 'applyForm']);
$routes->connect('/contact', ['controller' => 'Learninghub', 'action' => 'contact']);
$routes->connect('/courses', ['controller' => 'Learninghub', 'action' => 'courses']);
$routes->connect('/courses/:slug', ['controller' => 'Learninghub', 'action' => 'viewCourses'], [
'pass' => ['slug'],
'slug' => '[a-z0-9_\-]+'
]);
$routes->connect('/verification', ['controller' => 'Learninghub', 'action' => 'verification']);
$routes->connect('/agencies', ['controller' => 'Learninghub', 'action' => 'agent']);
$routes->connect('/courses/english', ['controller' => 'Learninghub', 'action' => 'viewEnglishCourses']);
/**
* Connect catchall routes for all controllers.
*
* Using the argument `DashedRoute`, the `fallbacks` method is a shortcut for
* `$routes->connect('/:controller', ['action' => 'index'], ['routeClass' => 'DashedRoute']);`
* `$routes->connect('/:controller/:action/*', [], ['routeClass' => 'DashedRoute']);`
*
* Any route class can be used with this method, such as:
* - DashedRoute
* - InflectedRoute
* - Route
* - Or your own route class
*
* You can remove these routes once you've connected the
* routes you want in your application.
*/
$routes->fallbacks('DashedRoute');
});
/**
* Load all plugin routes. See the Plugin documentation on
* how to customize the loading of plugin routes.
*/
Plugin::routes();

27
config/schema/i18n.sql Normal file
View File

@@ -0,0 +1,27 @@
# $Id$
#
# Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
#
# Licensed under The MIT License
# For full copyright and license information, please see the LICENSE.txt
# Redistributions of files must retain the above copyright notice.
# MIT License (http://www.opensource.org/licenses/mit-license.php)
CREATE TABLE i18n (
id int(10) NOT NULL auto_increment,
locale varchar(6) NOT NULL,
model varchar(255) NOT NULL,
foreign_key int(10) NOT NULL,
field varchar(255) NOT NULL,
content mediumtext,
PRIMARY KEY (id),
# UNIQUE INDEX I18N_LOCALE_FIELD(locale, model, foreign_key, field),
# INDEX I18N_LOCALE_ROW(locale, model, foreign_key),
# INDEX I18N_LOCALE_MODEL(locale, model),
# INDEX I18N_FIELD(model, foreign_key, field),
# INDEX I18N_ROW(model, foreign_key),
INDEX locale (locale),
INDEX model (model),
INDEX row_id (foreign_key),
INDEX field (field)
);

View File

View File

@@ -0,0 +1,15 @@
# $Id$
#
# Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
#
# Licensed under The MIT License
# For full copyright and license information, please see the LICENSE.txt
# Redistributions of files must retain the above copyright notice.
# MIT License (http://www.opensource.org/licenses/mit-license.php)
CREATE TABLE sessions (
id varchar(40) NOT NULL default '',
data text,
expires INT(11) NOT NULL,
PRIMARY KEY (id)
);