summaryrefslogtreecommitdiff
path: root/public/app/config/app_constants.php
diff options
context:
space:
mode:
authorGeo Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-05-15 18:15:37 +0300
committerGeo Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-05-15 18:15:37 +0300
commit59cd40235bf4746a119421609b25d7e9b7f65f83 (patch)
tree35a4929d59ed87b97219ea992e4cbcdc994a78d5 /public/app/config/app_constants.php
parent0d983359abb511f75aa5f0b2b498b97728eb25a3 (diff)
downloadgyraf1gov-59cd40235bf4746a119421609b25d7e9b7f65f83.tar.gz
gyraf1gov-59cd40235bf4746a119421609b25d7e9b7f65f83.tar.bz2
gyraf1gov-59cd40235bf4746a119421609b25d7e9b7f65f83.zip
refactoring framework defaults
Diffstat (limited to 'public/app/config/app_constants.php')
-rw-r--r--public/app/config/app_constants.php708
1 files changed, 0 insertions, 708 deletions
diff --git a/public/app/config/app_constants.php b/public/app/config/app_constants.php
deleted file mode 100644
index 6974bd8..0000000
--- a/public/app/config/app_constants.php
+++ /dev/null
@@ -1,708 +0,0 @@
-<?php
-/** Custom Application Constants
- * -----------------------------------------------------------------------------
- *
- * Constants defined for your current application:
- *
- * 1. Main constants (Names, Labels, securoty defaults, etc)
- *
- * 2. Credentials and sub-configuration of main services
- *
- * 3. Other custom constants
- *
- * -----------------------------------------------------------------------------
- */
-
-/** Preload environmental file
- * Setting up main constants via en envoronment file is HIGHLY RECOMMENDED;
- *
- * read ini file if exist
- */
-if (file_exists("../core/auth/.env")) {
- $env = parse_ini_file("../core/auth/.env");
-}
-
-
-
-
-
-## -----------------------------------------------------------------------------
-##
-## - - - -- -- --- M A I N C O N S T A N T S --- -- -- - - -
-## Main constants (names, labels, default roles, security defaults, etc
-##
-## -----------------------------------------------------------------------------
-
-
-
-/** Main default constants / strings / names / etc
- * -----------------------------------------------------------------------------
- */
-
-define('SITE_TITLE', 'schoolGov'); // Site Title (the end-users' title)
-
-
-
-/** Autoload paths
- * -----------------------------------------------------------------------------
- *
- * CLASSPATHS : array of paths where classes are saved
- *
- * NOTE:
- * if the custom autoloader is used (instead of composer's)
- * then you need to defing CLASSPATHS constant-array too;
- *
- * In most cases you won't need this,
- * so comment the next lines out of the code-base
- *
- * -----------------------------------------------------------------------------
- */
-# define('CLASSPATHS', array(
-# '/../core/classes/', // core classes
-# '/app/controllers/', // controller classes
-# '/app/models/', // model classes
-# '/app/extends/', // extending core classes
-# '/../vendor/' // vendor/dependency classes
-# )
-# );
-
-
-
-/** FileSession Path
- * --- -- -- - - -
- * if FileSession is selected, a path for session-files is needed
- *
- * TODO:
- * also, the hybrid sessioning (in progress) will need this setting
- *
- * NOTE:
- * DefaultSession is also file-based but to not need a file-path setting
- * (php will handle any file-needed actions to the file-system)
- */
-
-# define('FILESESSION_PATH', '../storage/session');
-
-
-
-/** Session and cookie names
- * --- -- -- - - -
- */
-define('SESSION_NAME', 'offticket'); // cookie for session (office ticket)
-define('CONNECTION_COOKIE', 'con'); // cookie for connection
-define('MAX_SESSION_LIFE', 2*60*60); // maximum session lifetime (2 hours)
-
-
-
-/** SECURITY SETTINGS ///////////////////////////////////////////////////////////
- * -----------------------------------------------------------------------------
- *
- * Cross Site Request Forgery
- * ---
- * Enables a CSRF cookie token to be set. When set to TRUE, token will be
- * checked on a submitted form. If you are accepting user data, it is strongly
- * recommended CSRF protection be enabled.
- * -----------------------------------------------------------------------------
- */
-
-define('CSRF_PROTECTION', false);
-
-define('CSRF_TOKEN_NAME', 'csrf_test_name'); // token name
-
-define('CSRF_COOKIE_NAME', 'csrf_cookie_name'); // cookie name
-
-define('CSRF_EXPIRE', 7200); // The number in seconds the token should expire.
-
-define('CSRF_REGENERATE', TRUE); // Regenerate token on every submission
-
-define('CSRF_EXCLUDE_URIS', array()); // Array of URIs which ignore CSRF checks
-
-
-
-
-## -----------------------------------------------------------------------------
-##
-## - - - -- -- --- C O N N E C T I O N C R E D E N T I A L S --- -- -- - - -
-##
-## -----------------------------------------------------------------------------
-
-
-
-/** SERVICE PARAMETRES
- * -----------------------------------------------------------------------------
- *
- * Connection parametres and credentials for accssing services
- * needed by the application; Such services may be..
- *
- * - RDBMS
- * -- MySQL
- * -- PotgresSQL
- *
- * - Caching services
- * -- Redis
- * -- MemCached
- *
- * Edit only the constants needed by the application;
- * Comment those you do not need;
- *
- * /////////////////////////////////////////////////////////////////////////////
- */
-
-/** DATABASE CONNECTION PARAMETRES
- * -----------------------------------------------------------------------------
- * Production and staging environments may use different databases.
- *
- * A safe practice is to keep credentials outside plain files like this one
- * in environmental variable or other secret file etc.
- *
- * Uncomment/enable each group of definitions suits your case to define
- * the credentials needed for accessing the database
- */
-
-define('DB_NAME', $ini['DB_NAME']);
-
-define('DB_USER', $ini['DB_USER']);
-
-define('DB_PASS', $ini['DB_PASS']);
-
-/** NOTE:
- * PDO_HOST can be a hostname/port combination -or- a unix socket
- *
- * ...examples:
- * define('PDO_HOST', 'host=/localhost') ## hostname case
- * define('PDO_HOST', 'host=/localhost;port=3456') ## hostname/port case
- * define('PDO_HOST', 'unix_socket=/sql/ex123:europe:some-db'); ## unix socket
- * define('PDO_HOST', 'unix_socket=/cloudsql/name-123456:europe-west4:name-db-eu');
- */
-
-define('PDO_HOST', $ini['PDO_HOST']);
-
-define('DB_TIMEZONE', "SET time_zone = 'Europe/Athens'");
-
-
-
-
-/** CACHED SERVICES
- *
- * impemented services:
- *
- * - File Cache
- * - Redis
- * - Memcached
- *
- * NOTE:
- * Both Redis and Memcached configurations are given as a template to work on;
- * In most cases the default values should do the job -- of course you need to
- * read the README file (check the project's root);
- * As these caching services are not fully tested you may need to ochestrate
- * the services in detail or edit the connection strings into the core classes
- * (hosted under the '/core/classes/cacher' folder)
- */
-
- define('FILECACHE_PATH', APP_ROOT.'/../storage/cache/'); // if CACHE_DRIVER is set to 'FileCache'
-
- define('MEDIA_STORAGE_ROOT', APP_ROOT.'/../storage/uploads/'); // Media files root directory
-
-
-
- # define('MEMCAHCED_SERVER', '127.0.0.1'); // if CACHE_DRIVER is set to 'MemCached'
-
-/** REDIS SERVICE
- * -----------------------------------------------------------------------------
- * Most of the times Redis is running on 'localhost' (host = '127.0.0.1')
- * When implemented via anom's docker-composer (redis via bridge) then you need
- * do declare the hostname as 'redis'
- */
-
-# define('REDIS_HOST', '127.0.0.1'); // if CACHE_DRIVER is set to 'RedisCache'
-# if (!defined('REDIS_HOST')) define('REDIS_HOST', 'redis');
-#
-# if (!defined('REDIS_PORT')) define('REDIS_PORT', 6379);
-#
-# if (!defined('REDIS_PASS')) define('REDIS_PASS', null);
-
-
-/** MEMCACHED
- * -----------------------------------------------------------------------------
- * Memcached looks very much like Redis (plus, both are serving from RAM)
- * Usualy Memcashed is running localy so host is 'localhost' ('127.0.0.1')
- * If you use the framework's docker-composer implementation then
- * the hostname is 'anomemcached'
- */
-
-# if (!defined('MEMCACHE_HOST')) define('MEMCACHE_HOST', 'anomemcached');
-
-
-
-
-
-
-/** email setup
- * --- -- -- - - -
- */
- // SMTP
-define('MAIL_MAILER', $env['MAIL_MAILER']);
-define('MAIL_HOST', $env['MAIL_HOST']);
-define('MAIL_PORT', $env['MAIL_PORT']);
-define('MAIL_USERNAME', $env['MAIL_USERNAME']);
-define('MAIL_PASSWORD', $env['MAIL_PASSWORD']);
-define('MAIL_ENCRYPTION', $env['MAIL_ENCRYPTION']);
- // Mailjet
-define('MAILJET_APIKEY', $env['MAILJET_APIKEY']); // apikey
-define('MAILJET_SECRET', $env['MAILJET_SECRET']); // secret
-define('MAILJET_TICKET', $env['MAILJET_TICKET']); // apikey:secret
- // sender info
-define('MAIL_FROM_NAME', $env['MAIL_FROM_NAME']);
-define('NO_REPLY_EMAIL', $env['NO_REPLY_EMAIL']);
-define('REPLY_TO_EMAIL', $env['REPLY_TO_EMAIL']);
-
-// default mail service; options so far: [ mailjet | phpmailer ]
-define('DEFAULT_MAIL_SERVICE', 'mailjet');
-
-
-// DEFAULT VALUES //////////////////////////////////////////////////////////////
-// -----------------------------------------------------------------------------
-
-// default privileges (for the subscribed user)
-// (array of privilege aliases)
-// --- -- -- - - -
-define('DEFAULT_PRIVILEGES', [
- 1, // economics, level 1
- 5 // programming. level 1
-]);
-
-
-// User Roles
-// --- -- -- - - -
-define('Admin', 1);
-define('Secretary', 2);
-define('Teacher', 3);
-
-
-// ACCESS HISTORY //////////////////////////////////////////////////////////////
-// -----------------------------------------------------------------------------
-// (user-)access types
-
-define('TRACK_LOGIN', 1); // login / logout
-define('TRACK_ACCOUNT', 2); // create user / activate account / modidy profile
-define('TRACK_REQUESTS', 4); // order / payment / refund etc...
-
-// access type strings
-// ---
-define('USER_ACCESS_TYPE', [
- 1 => 'Login',
- 2 => 'Account',
- 3 => 'Request'
-]);
-
-
-
-// ERRORS AND ERROR MESSAGES ///////////////////////////////////////////////////
-// -----------------------------------------------------------------------------
-
-define('EMPTY_REQUIRED_FIELDS', 'Δεν έχουν συμπληρωθεί όλα τα υποχρεωτικά πεδία');
-
-
-
-// ASSETS: PATHS USED HEAVILY //////////////////////////////////////////////////
-// -----------------------------------------------------------------------------
-// these paths are used in order to easily find and autoload useful elemets
-
-
-// JAVASCRIPT LIBRARY PATHS
-// -----------------------------------------------------------------------------
-define('JS_DIR', '/content/'); // <base> path to contruct link
-
-
-
-// CSS ASSET PATHS
-// -----------------------------------------------------------------------------
-define('CSS_DIR', '/content/css/'); // <base> path to contruct link
-define('CSS_FILES', array( // path after <base> to the actual file
- 'main' => 'main.min.css',
- 'filter' => 'filter.css',
- 'overides' => 'overides.css',
- )
-);
-
-
-
-// Mesagges ////////////////////////////////////////////////////////////////////
-// -----------------------------------------------------------------------------
-
-// 404
-// ---
-define('PAGE_404_TITLE', '404: Not Found');
-
-// registration
-// ---
-define('REGISTRATION_SUCCESS', "<h3>Επιτυχής Εγγραφή</h3>
- <p>
- Παρακαλώ ελέγξτε το email σας και ακολουθήστε το σύνδεσμο ενεργοποίησης
- που σας 'εχει αποσταλεί, ώστε να έχετε πρόσβαση σε επιπλέον περιεχόμενο του site
- </p>"
-);
-define ('REGISTRATION_USER_EXISTS', "<h3>Αποτυχία Εγγραφής</h3>
- <p>
- Υπάρχει ήδη χρήστης με αυτό το email. Αν δεν θυμάστε το password
- μπορείτε να κάνετε επαναφορά του ακολουθώντας
- <a href='/reset-password'>αυτό το σύνδεσμο</a>.
- </p>"
-);
-
-
-// activation
-// ---
-define('ACCOUNT_ACTIVATED_TITLE', 'Ο λογαριασμός σας έχει ενεργοποιηθεί');
-define('ACCOUNT_ACTIVATED_MESSAGE', 'Τώρα μπορείτε να
- <a href="/login">συνδεθείτε στο σύστημα</a>.');
-define('NOT_VALID_ACTIVATION_TITLE', 'Σφάλμα!');
-define('NOT_VALID_ACTIVATION_MESSAGE', 'Ο λογαριασμός δεν έχει ενεργοποιηθεί.
- Ξαναδοκιμάστε αργότερα κι αν το σφάλμα επιμείνει, επικοινωνήστε με την υπεύθυνη του προγράμμαρος.');
-
-define ('PETITION_TYPE', [
- 1 => 'common',
- 2 => 'penalty'
-]);
-
-
-
-// forms
-// --- -- -- - - -
-
-// registration/activation form (from invitation)
-// ---
-define('REGISTRATION_FORM', [
- 'defaults' => [
- 'outer_class' => 'col-12',
- 'inner_class' => 'form-control',
- 'type' => 'text',
- 'source' => '\app\controllers\User::current'
- ],
- 'form' => [
- [
- 'name' => 'first_name',
- 'label' => 'Όνομα',
- 'value' => 'auto',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'last_name',
- 'label' => 'Επίθετο',
- 'value' => 'auto',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'email',
- 'label' => 'Email',
- 'type' => 'email',
- 'value' => 'auto',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'father_name',
- 'label' => 'Πατρώνυμο',
- 'value' => 'auto',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'registration_number',
- 'label' => 'Αριθμός μητρώου',
- 'class' => 'col-8',
- 'value' => 'auto',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'sector',
- 'label' => 'Κλάδος / Ειδικότητα',
- 'value' => 'auto',
- 'type' => 'select',
- 'attributes' => ['required'],
- 'options' => [
- 'ΠΕ01 ΘΕΟΛΟΓΟΙ',
- 'ΠΕ02 ΦΙΛΟΛΟΓΟΙ',
- 'ΠΕ02.50 ΦΙΛΟΛΟΓΟΙ ΕΙΔΙΚΗΣ ΑΓΩΓΗΣ',
- 'ΠΕ03 ΜΑΘΗΜΑΤΙΚΟΙ',
- 'ΠΕ03.50 ΜΑΘΗΜΑΤΙΚΟΙ ΕΙΔΙΚΗΣ ΑΓΩΓΗΣ',
- 'ΠΕ04.01 ΦΥΣΙΚΟΙ',
- 'ΠΕ04.01.50 ΦΥΣΙΚΟΙ ΕΙΔΙΚΗΣ ΑΓΩΓΗΣ',
- 'ΠΕ04.02 ΧΗΜΙΚΟΙ',
- 'ΠΕ04.04 ΒΙΟΛΟΓΟΙ',
- 'ΠΕ05 ΓΑΛΛΙΚΗΣ ΦΙΛΟΛΟΓΙΑΣ',
- 'ΠΕ06 ΑΓΓΛΙΚΗΣ ΦΙΛΟΛΟΓΙΑΣ',
- 'ΠΕ07 ΓΕΡΜΑΝΙΚΗΣ ΦΙΛΟΛΟΓΙΑΣ',
- 'ΠΕ08 ΚΑΛΛΙΤΕΧΝΙΚΩΝ',
- 'ΠΕ11 ΦΥΣΙΚΗΣ ΑΓΩΓΗΣ',
- 'ΠΕ23-ΣΔΕΥ ΨΥΧΟΛΟΓΟΙ',
- 'ΠΕ30-ΣΔΕΥ ΚΟΙΝΩΝΙΚΟΙ ΛΕΙΤΟΥΡΓΟΙ',
- 'ΠΕ78 ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ',
- 'ΠΕ79.01 ΜΟΥΣΙΚΗΣ ΕΠΙΣΤΗΜΗΣ',
- 'ΠΕ80 ΟΙΚΟΝΟΜΙΑΣ',
- 'ΠΕ81 ΠΟΛ.ΜΗΧΑΝΙΚΩΝ-ΑΡΧΙΤΕΚΤΟΝΩΝ',
- 'ΠΕ82 ΜΗΧΑΝΟΛΟΓΩΝ',
- 'ΠΕ86 ΠΛΗΡΟΦΟΡΙΚΗΣ',
- 'ΠΕ88.01 ΓΕΩΠΟΝΟΙ'
- ]
- ],
- [
- 'name' => 'belonging_school',
- 'label' => 'Σχολείο τοποθέτησης',
- 'value' => 'auto',
- 'attributes' => ['required']
- ],
- // [ // working school = (obviously) is the current school
- // 'name' => 'working_school',
- // 'label' => 'Σχολείο εργασίας',
- // 'attributes' => ['required']
- // ],
- [
- 'name' => 'position',
- 'label' => 'Θέση',
- 'type' => 'select',
- 'value' => 'auto',
- 'attributes' => ['required'],
- 'options' => []
- ],
- [
- 'name' => 'phone',
- 'label' => 'Τηλέφωνο',
- 'class' => 'col-8',
- 'value' => 'auto',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'password',
- 'label' => 'Κωδικός πρόσβασης',
- 'type' => 'password',
- 'class' => 'col-8',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'confirm_password',
- 'label' => 'Επαλήθευση κωδικού πρόσβασης',
- 'type' => 'password',
- 'class' => 'col-8',
- 'attributes' => ['required']
- ]
- ]
-]);
-
-// common requesy form (for any application)
-// ---
-define('COMMON_REQUEST_FORM', [
- 'defaults' => [
- 'outer_class' => 'col-12',
- 'inner_class' => 'form-control',
- 'type' => 'text',
- 'source' => '\app\controllers\User::current'
- ],
- 'form' => [
- [
- 'name' => 'subject',
- 'label' => 'Θέμα (χαρακτηριστικός τίτλος για αναφορά)',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'first_name',
- 'label' => 'Όνομα',
- 'attributes' => ['auto']
- ],
- [
- 'name' => 'last_name',
- 'label' => 'Επίθετο',
- 'attributes' => ['auto']
- ],
- [
- 'name' => 'email',
- 'label' => 'e-mail',
- 'type' => 'email',
- 'attributes' => ['auto']
- ],
- [
- 'name' => 'father_name',
- 'label' => 'Πατρώνυμο',
- 'attributes' => ['auto']
- ],
- [
- 'name' => 'registration_number',
- 'label' => 'Αριθμός μητρώου',
- 'class' => 'col-5',
- 'attributes' => ['auto']
- ],
- [
- 'name' => 'sector',
- 'label' => 'Κλάδος / Ειδικότητα',
- 'attributes' => ['auto']
- ],
- [
- 'name' => 'belonging_school',
- 'label' => 'Σχολείο τοποθέτησης',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'working_school',
- 'label' => 'Σχολείο εργασίας',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'position',
- 'label' => 'Θέση',
- 'type' => 'select',
- 'source' => 'positions',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'phone',
- 'label' => 'Τηλέφωνο',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'request',
- 'label' => 'Αίτημα (πχ, Παρακαλώ να μου χορηγήσετε ...)',
- 'type' => 'textarea',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'date',
- 'label' => 'Ημερομηνία αίτησης',
- 'type' => 'date',
- 'attributes' => ['required']
- ]
- ]
-]);
-
-// penalty form
-// ---
-
-define('PENALTY_FORM', [
- 'defaults' => [
- 'outer_class' => 'col-12',
- 'inner_class' => 'form-control',
- 'type' => 'text',
- 'source' => 'user'
- ],
- 'form' => [
- [
- 'name' => 'subject',
- 'label' => 'Θέμα (χαρακτηριστικός τίτλος για αναφορά)',
- 'attributes' => ['required']
- ],
- [
- 'label' => '',
- 'type' => 'label'
- ],
- [
- 'label' => 'Πειθαρχική υπόθεση',
- 'type' => 'label'
- ],
- [
- 'name' => 'of_article',
- 'label' => 'του/της/των...',
- 'type' => 'select',
- 'options' => [
- 'του μαθητή',
- 'της μαθήτριας',
- 'των μαθητών',
- 'των μαθητριών'
- ],
- 'class' => 'col-md-4',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'student_names',
- 'label' => '(ονοματεπώνυ-μο/μα, πτώση γενική)',
- 'type' => 'textarea',
- 'class' => 'col-md-8',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'of_department',
- 'label' => 'του τμήματος...',
- 'class' => 'col-md-4',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'date',
- 'label' => 'Ημερομηνία',
- 'type' => 'date',
- 'class' => 'col-md-4',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'time',
- 'label' => 'Ώρα',
- 'class' => 'col-md-4',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'place',
- 'label' => 'Τόπος',
- 'type' => 'select',
- 'options' => [
- 'Γραφείο Διευθηντή',
- 'Γραφείο Καθηγητών'
- ],
- 'attributes' => ['required']
- ],
- [
- 'name' => 'rapporteur',
- 'label' => 'εισηγητής',
- 'type' => 'select',
- 'source' => '\app\extends\Cache_service::all_users',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'charge',
- 'label' => 'Περιγραφή συμβάντος:',
- 'type' => 'textarea',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'apology',
- 'label' => 'Απολογία: (μαθητή/-των)', // + of_student
- 'type' => 'textarea',
- 'attributes' => []
- ],
- [
- 'name' => 'decision_reasoning',
- 'label' => 'Αιτιολογία απόφασης (πχ. Επειδή...)',
- 'type' => 'textarea',
- 'attributes' => []
- ],
- [
- 'label' => 'Το Πειθαρχικό Συμβούλιο',
- 'type' => 'label'
- ],
- [
- 'name' => 'decision',
- 'label' => 'Αποφασίζει',
- 'type' => 'select',
- 'options' => [
- 'προφορική επίπληξη',
- 'ωριαία αποβολή',
- 'ημερήσια αποβολή'
- ],
- 'attributes' => []
- ],
- [
- 'name' => 'decision_more',
- 'label' => '(μη τυποποιημένο κείμενο απόφασης)',
- 'attributes' => []
- ],
- [
- 'name' => 'president',
- 'label' => 'Πρόεδρος συνεδρίασης',
- 'type' => 'select',
- 'source' => '\app\extends\Cache_service::all_users',
- 'attributes' => ['required']
- ],
- [
- 'name' => 'members',
- 'label' => 'Μέλη',
- 'type' => 'select',
- 'attributes' => ['required', 'multiple'],
- 'source' => '\app\extends\Cache_service::all_users'
- ]
- ]
-]);
-
-