From 70586d89e80df2e0e99fbecab3acc3d717074c50 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Fri, 4 May 2018 10:29:29 +0200 Subject: [PATCH] FEAT #7710 Lang + refactoring --- modules/reports/xml/reports.xml | 4 +- src/app/action/models/ActionModelAbstract.php | 20 +- .../models/AttachmentModelAbstract.php | 2 +- src/app/basket/models/BasketModelAbstract.php | 6 +- .../models/GroupBasketModelAbstract.php | 4 +- .../contact/controllers/ContactController.php | 4 +- .../contact/models/ContactModelAbstract.php | 49 ++-- src/app/entity/models/EntityModelAbstract.php | 10 +- .../models/ListInstanceModelAbstract.php | 2 +- .../models/ListTemplateModelAbstract.php | 2 +- .../folder/models/FolderTypeModelAbstract.php | 8 +- src/app/group/models/GroupModelAbstract.php | 3 +- src/app/group/models/ServiceModelAbstract.php | 2 +- .../history/models/HistoryModelAbstract.php | 2 +- src/app/link/controllers/LinkController.php | 6 +- src/app/link/models/LinkModelAbstract.php | 2 +- src/app/note/models/NoteModelAbstract.php | 2 +- .../controllers/NotificationController.php | 15 +- .../NotificationScheduleController.php | 15 +- .../NotificationsEventsController.php | 7 +- .../models/NotificationModelAbstract.php | 13 +- .../NotificationScheduleModelAbstract.php | 11 +- .../NotificationsEventsModelAbstract.php | 7 +- .../models/ParameterModelAbstract.php | 2 +- .../controllers/PriorityController.php | 12 + .../priority/models/PriorityModelAbstract.php | 3 +- .../report/controllers/ReportController.php | 1 - src/app/report/models/ReportModelAbstract.php | 2 +- .../resource/controllers/ResController.php | 2 +- src/app/resource/models/ChronoModel.php | 1 - src/app/resource/models/ResModelAbstract.php | 2 +- .../controllers/SignatureBookController.php | 5 +- .../status/controllers/StatusController.php | 34 +-- .../models/StatusImagesModelAbstract.php | 5 +- src/app/status/models/StatusModelAbstract.php | 3 +- .../template/models/TemplateModelAbstract.php | 2 +- src/app/user/controllers/UserController.php | 24 +- .../UserBasketPreferenceModelAbstract.php | 2 +- .../user/models/UserEntityModelAbstract.php | 2 +- src/app/user/models/UserModelAbstract.php | 86 ++----- .../models/UserSignatureModelAbstract.php | 53 +++- src/core/controllers/CoreController.php | 1 - src/core/lang/lang-en.php | 229 ++++++++--------- src/core/lang/lang-fr.php | 230 +++++++++--------- src/core/models/ValidatorModel.php | 1 - 45 files changed, 442 insertions(+), 456 deletions(-) diff --git a/modules/reports/xml/reports.xml b/modules/reports/xml/reports.xml index 3bcd1092b8d..dd4704062ac 100755 --- a/modules/reports/xml/reports.xml +++ b/modules/reports/xml/reports.xml @@ -3,7 +3,7 @@ <REPORT> <ID>folder_view_stat</ID> <LABEL>_FOLDER_VIEW_STAT</LABEL> - <DESCRIPTION>_FOLDER_VIEW_STAT_DESC</DESCRIPTION> + <DESCRIPTION>_FOLDER_VIEW_STAT</DESCRIPTION> <URL>folder_view_stats</URL> <IN_MENU_REPORTS>true</IN_MENU_REPORTS><!-- the report can be accessed by the menu report --> <ENABLED>true</ENABLED> @@ -58,7 +58,7 @@ <REPORT> <ID>users_logs</ID> <LABEL>_USERS_LOGS</LABEL> - <DESCRIPTION>_USERS_LOGS_DESC</DESCRIPTION> + <DESCRIPTION>_USERS_LOGS</DESCRIPTION> <URL>users_logs</URL> <IN_MENU_REPORTS>true</IN_MENU_REPORTS> <ENABLED>false</ENABLED> diff --git a/src/app/action/models/ActionModelAbstract.php b/src/app/action/models/ActionModelAbstract.php index 5d605ebb9d4..692993c7290 100644 --- a/src/app/action/models/ActionModelAbstract.php +++ b/src/app/action/models/ActionModelAbstract.php @@ -1,13 +1,15 @@ <?php /** -* Copyright Maarch since 2008 under licence GPLv3. -* See LICENCE.txt file at the root folder for more details. -* This file is part of Maarch software. + * Copyright Maarch since 2008 under licence GPLv3. + * See LICENCE.txt file at the root folder for more details. + * This file is part of Maarch software. + * + */ -* @brief ActionModelAbstract -* @author dev <dev@maarch.org> -* @ingroup core +/** +* @brief Action Model Abstract +* @author dev@maarch.org */ namespace Action\models; @@ -16,7 +18,7 @@ use SrcCore\models\ValidatorModel; use SrcCore\models\CoreConfigModel; use SrcCore\models\DatabaseModel; -class ActionModelAbstract +abstract class ActionModelAbstract { public static function get(array $aArgs = []) { @@ -161,12 +163,12 @@ class ActionModelAbstract if (!empty((string) $actionPage->MODULE)) { $origin = (string) $actionPage->MODULE; } else { - $origin = 'apps'; + $origin = 'apps'; } if (!empty((string) $actionPage->DESC)) { $desc = constant((string) $actionPage->DESC); } else { - $desc = 'no description'; + $desc = 'no description'; } $tabActions_pages['actionsPageList'][] = array( 'id' => (string) $actionPage->ID, diff --git a/src/app/attachment/models/AttachmentModelAbstract.php b/src/app/attachment/models/AttachmentModelAbstract.php index c988968c01e..69066fc3a97 100644 --- a/src/app/attachment/models/AttachmentModelAbstract.php +++ b/src/app/attachment/models/AttachmentModelAbstract.php @@ -18,7 +18,7 @@ use SrcCore\models\CoreConfigModel; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; -class AttachmentModelAbstract +abstract class AttachmentModelAbstract { public static function getOnView(array $aArgs) { diff --git a/src/app/basket/models/BasketModelAbstract.php b/src/app/basket/models/BasketModelAbstract.php index 0f0186a1332..2b7117ccb9f 100644 --- a/src/app/basket/models/BasketModelAbstract.php +++ b/src/app/basket/models/BasketModelAbstract.php @@ -8,8 +8,8 @@ */ /** -* @brief BasketModelAbstract -* @author <dev@maarch.org> +* @brief Basket Model Abstract +* @author dev@maarch.org */ namespace Basket\models; @@ -22,7 +22,7 @@ use SrcCore\models\DatabaseModel; use User\models\UserBasketPreferenceModel; use User\models\UserModel; -class BasketModelAbstract +abstract class BasketModelAbstract { public static function get(array $aArgs = []) { diff --git a/src/app/basket/models/GroupBasketModelAbstract.php b/src/app/basket/models/GroupBasketModelAbstract.php index df4c25d2210..4eaa3cd9575 100644 --- a/src/app/basket/models/GroupBasketModelAbstract.php +++ b/src/app/basket/models/GroupBasketModelAbstract.php @@ -9,7 +9,7 @@ /** * @brief GroupBasket Model Abstract -* @author <dev@maarch.org> +* @author dev@maarch.org */ namespace Basket\models; @@ -17,7 +17,7 @@ namespace Basket\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class GroupBasketModelAbstract +abstract class GroupBasketModelAbstract { public static function get(array $aArgs) { diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php index 83d3649533d..4fc4d1bdc0d 100644 --- a/src/app/contact/controllers/ContactController.php +++ b/src/app/contact/controllers/ContactController.php @@ -169,8 +169,8 @@ class ContactController foreach ($result as $title) { foreach ($title as $value) { $aCivility[(string) $value->id] = [ - 'label' => (string) $value->label, - 'abbreviation' => (string) $value->abbreviation, + 'label' => (string) $value->label, + 'abbreviation' => (string) $value->abbreviation, ]; } } diff --git a/src/app/contact/models/ContactModelAbstract.php b/src/app/contact/models/ContactModelAbstract.php index 780f1bd56b5..b6fd0bf19ef 100644 --- a/src/app/contact/models/ContactModelAbstract.php +++ b/src/app/contact/models/ContactModelAbstract.php @@ -18,7 +18,7 @@ use Resource\models\ResModel; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; -class ContactModelAbstract +abstract class ContactModelAbstract { public static function getById(array $aArgs) { @@ -121,7 +121,7 @@ class ContactModelAbstract return $nextSequenceId; } - public static function getFullAddressById(array $aArgs = []) + public static function getFullAddressById(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['addressId']); ValidatorModel::intVal($aArgs, ['addressId']); @@ -136,7 +136,7 @@ class ContactModelAbstract return $aReturn; } - public static function getContactFullLabel(array $aArgs = []) + public static function getContactFullLabel(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['addressId']); ValidatorModel::intVal($aArgs, ['addressId']); @@ -173,7 +173,7 @@ class ContactModelAbstract return $contactName; } - public static function getContactCommunication(array $aArgs = []) + public static function getContactCommunication(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['contactId']); ValidatorModel::intVal($aArgs, ['contactId']); @@ -193,7 +193,7 @@ class ContactModelAbstract } } - public static function getContactIdByCommunicationValue(array $aArgs = []) + public static function getContactIdByCommunicationValue(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['communicationValue']); @@ -205,15 +205,16 @@ class ContactModelAbstract ]); if (empty($aReturn)) { - return ""; + return ''; } else { return $aReturn[0]; } } - public static function getAddressByExternalContactId(array $aArgs = []) + public static function getAddressByExternalContactId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['externalContactId']); + $aReturn = DatabaseModel::select([ 'select' => ['*'], 'table' => ['view_contacts'], @@ -222,18 +223,18 @@ class ContactModelAbstract ]); if (empty($aReturn)) { - return ""; + return ''; } else { return $aReturn[0]; } } - public static function createContactCommunication(array $aArgs = []) + public static function createContactCommunication(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['contactId', 'type', 'value']); ValidatorModel::intVal($aArgs, ['contactId']); - $aReturn = DatabaseModel::insert([ + DatabaseModel::insert([ 'table' => 'contact_communication', 'columnsValues' => [ 'contact_id' => $aArgs['contactId'], @@ -242,7 +243,7 @@ class ContactModelAbstract ] ]); - return $aReturn; + return true; } public static function getLabelledContactWithAddress(array $aArgs) @@ -331,7 +332,7 @@ class ContactModelAbstract return $aContact[0]; } - public static function getCommunicationByContactId(array $aArgs = []) + public static function getCommunicationByContactId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['contactId']); ValidatorModel::stringType($aArgs, ['contactId']); @@ -346,7 +347,7 @@ class ContactModelAbstract return $aReturn[0]; } - public static function CreateContactM2M(array $aArgs = []) + public static function CreateContactM2M(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['data', 'contactCommunication']); @@ -397,7 +398,7 @@ class ContactModelAbstract // Si le contact n'existe pas, on le créé if (!$contact_exists) { - $contactInfo = self::getContactIdByCommunicationValue(['communicationValue' => $aArgs['contactCommunication']]); + $contactInfo = ContactModel::getContactIdByCommunicationValue(['communicationValue' => $aArgs['contactCommunication']]); if (!empty($contactInfo)) { $currentContactId = $contactInfo['contact_id']; } else { @@ -413,13 +414,13 @@ class ContactModelAbstract 'columnsValues' => $formatedDataContact ]); } catch (\Exception $e) { - $returnResArray = array( + $returnResArray = [ 'returnCode' => (int) -1, 'contactId' => 'ERROR', 'addressId' => 'ERROR', 'contactInfo' => '', 'error' => 'contact creation error : '. $e->getMessage(), - ); + ]; return $returnResArray; } @@ -436,33 +437,33 @@ class ContactModelAbstract 'columnsValues' => $formatedDataAddress ]); } catch (\Exception $e) { - $returnResArray = array( + $returnResArray = [ 'returnCode' => (int) -1, 'contactId' => $currentContactId, 'addressId' => 'ERROR', 'contactInfo' => '', 'error' => 'address creation error : '. $e->getMessage(), - ); + ]; return $returnResArray; } - $returnResArray = array( + $returnResArray = [ 'returnCode' => (int) 0, 'contactId' => $currentContactId, 'addressId' => $currentAddressId, 'contactInfo' => 'contact created and attached to doc ... ', - 'error' => '', - ); + 'error' => '' + ]; return $returnResArray; } else { - $returnResArray = array( + $returnResArray = [ 'returnCode' => (int) 0, 'contactId' => $currentContactId, 'addressId' => $currentAddressId, 'contactInfo' => 'contact already exist, attached to doc ... ', - 'error' => '', - ); + 'error' => '' + ]; return $returnResArray; } diff --git a/src/app/entity/models/EntityModelAbstract.php b/src/app/entity/models/EntityModelAbstract.php index d4ade9e3d9f..7d780870ea6 100644 --- a/src/app/entity/models/EntityModelAbstract.php +++ b/src/app/entity/models/EntityModelAbstract.php @@ -19,7 +19,7 @@ use SrcCore\models\CoreConfigModel; use SrcCore\models\DatabaseModel; use User\models\UserModel; -class EntityModelAbstract +abstract class EntityModelAbstract { public static function get(array $aArgs = []) { @@ -190,13 +190,13 @@ class EntityModelAbstract ValidatorModel::notEmpty($aArgs, ['entityId']); ValidatorModel::stringType($aArgs, ['entityId']); - $aReturn = self::getById([ + $aReturn = EntityModel::getById([ 'select' => ['entity_id', 'entity_label', 'parent_entity_id'], 'entityId' => $aArgs['entityId'] ]); if (!empty($aReturn['parent_entity_id'])) { - $aReturn = self::getEntityRootById(['entityId' => $aReturn['parent_entity_id']]); + $aReturn = EntityModel::getEntityRootById(['entityId' => $aReturn['parent_entity_id']]); } return $aReturn; @@ -364,8 +364,8 @@ class EntityModelAbstract if ($loadedXml) { foreach ($loadedXml->ROLES->ROLE as $value) { $roles[] = [ - 'id' => (string)$value->id, - 'label' => defined((string)$value->label) ? constant((string)$value->label) : (string)$value->label, + 'id' => (string)$value->id, + 'label' => defined((string)$value->label) ? constant((string)$value->label) : (string)$value->label ]; } } diff --git a/src/app/entity/models/ListInstanceModelAbstract.php b/src/app/entity/models/ListInstanceModelAbstract.php index 3437a2f46f2..db008ba97a0 100644 --- a/src/app/entity/models/ListInstanceModelAbstract.php +++ b/src/app/entity/models/ListInstanceModelAbstract.php @@ -17,7 +17,7 @@ namespace Entity\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class ListInstanceModelAbstract +abstract class ListInstanceModelAbstract { public static function get(array $aArgs) { diff --git a/src/app/entity/models/ListTemplateModelAbstract.php b/src/app/entity/models/ListTemplateModelAbstract.php index 8595af155a7..8e7a5dba1ca 100644 --- a/src/app/entity/models/ListTemplateModelAbstract.php +++ b/src/app/entity/models/ListTemplateModelAbstract.php @@ -17,7 +17,7 @@ namespace Entity\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class ListTemplateModelAbstract +abstract class ListTemplateModelAbstract { public static function get(array $aArgs = []) { diff --git a/src/app/folder/models/FolderTypeModelAbstract.php b/src/app/folder/models/FolderTypeModelAbstract.php index 08cf1f81daa..b76308bf045 100644 --- a/src/app/folder/models/FolderTypeModelAbstract.php +++ b/src/app/folder/models/FolderTypeModelAbstract.php @@ -12,12 +12,11 @@ namespace Folder\models; use SrcCore\models\ValidatorModel; -use SrcCore\models\CoreConfigModel; use SrcCore\models\DatabaseModel; class FolderTypeModelAbstract { - public static function get(array $aArgs = []) + public static function get(array $aArgs) { ValidatorModel::arrayType($aArgs, ['select']); @@ -29,7 +28,7 @@ class FolderTypeModelAbstract return $folderType; } - public static function getFolderTypeDocTypeFirstLevel(array $aArgs = []) + public static function getFolderTypeDocTypeFirstLevel(array $aArgs) { ValidatorModel::arrayType($aArgs, ['select']); @@ -43,7 +42,7 @@ class FolderTypeModelAbstract return $folderType; } - public static function createFolderTypeDocTypeFirstLevel(array $aArgs = []) + public static function createFolderTypeDocTypeFirstLevel(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['foldertype_id', 'doctypes_first_level_id']); ValidatorModel::intVal($aArgs, ['foldertype_id', 'doctypes_first_level_id']); @@ -69,5 +68,4 @@ class FolderTypeModelAbstract return true; } - } diff --git a/src/app/group/models/GroupModelAbstract.php b/src/app/group/models/GroupModelAbstract.php index f16efba9343..07367a650fe 100644 --- a/src/app/group/models/GroupModelAbstract.php +++ b/src/app/group/models/GroupModelAbstract.php @@ -14,13 +14,12 @@ namespace Group\models; -use Group\models\ServiceModel; use Group\controllers\GroupController; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; use User\models\UserModel; -class GroupModelAbstract +abstract class GroupModelAbstract { public static function get(array $aArgs = []) { diff --git a/src/app/group/models/ServiceModelAbstract.php b/src/app/group/models/ServiceModelAbstract.php index f34ff949f51..e08b1703af0 100644 --- a/src/app/group/models/ServiceModelAbstract.php +++ b/src/app/group/models/ServiceModelAbstract.php @@ -17,7 +17,7 @@ use SrcCore\models\CoreConfigModel; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; -class ServiceModelAbstract +abstract class ServiceModelAbstract { public static function getServicesByXML() { diff --git a/src/app/history/models/HistoryModelAbstract.php b/src/app/history/models/HistoryModelAbstract.php index 0b5af34043c..5a34b44c042 100644 --- a/src/app/history/models/HistoryModelAbstract.php +++ b/src/app/history/models/HistoryModelAbstract.php @@ -17,7 +17,7 @@ namespace History\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class HistoryModelAbstract +abstract class HistoryModelAbstract { public static function get(array $aArgs) { diff --git a/src/app/link/controllers/LinkController.php b/src/app/link/controllers/LinkController.php index 87529d86785..84951b64b03 100644 --- a/src/app/link/controllers/LinkController.php +++ b/src/app/link/controllers/LinkController.php @@ -16,13 +16,13 @@ namespace Link\controllers; use Link\models\LinkModel; -use Psr\Http\Message\RequestInterface; -use Psr\Http\Message\ResponseInterface; use Respect\Validation\Validator; +use Slim\Http\Request; +use Slim\Http\Response; class LinkController { - public function getByResId(RequestInterface $request, ResponseInterface $response, $aArgs) + public function getByResId(Request $request, Response $response, $aArgs) { $check = Validator::intVal()->validate($aArgs['resId']); if (!$check) { diff --git a/src/app/link/models/LinkModelAbstract.php b/src/app/link/models/LinkModelAbstract.php index a198e331e6c..51c57738433 100644 --- a/src/app/link/models/LinkModelAbstract.php +++ b/src/app/link/models/LinkModelAbstract.php @@ -17,7 +17,7 @@ namespace Link\models; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; -class LinkModelAbstract +abstract class LinkModelAbstract { public static function getByResId(array $aArgs) { diff --git a/src/app/note/models/NoteModelAbstract.php b/src/app/note/models/NoteModelAbstract.php index 90b854f0964..77026ac534e 100644 --- a/src/app/note/models/NoteModelAbstract.php +++ b/src/app/note/models/NoteModelAbstract.php @@ -17,7 +17,7 @@ namespace Note\models; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; -class NoteModelAbstract +abstract class NoteModelAbstract { public static function countByResId(array $aArgs) { diff --git a/src/app/notification/controllers/NotificationController.php b/src/app/notification/controllers/NotificationController.php index 756b526a790..87ac12f80d1 100644 --- a/src/app/notification/controllers/NotificationController.php +++ b/src/app/notification/controllers/NotificationController.php @@ -113,7 +113,7 @@ class NotificationController $notificationInDb = NotificationModel::getByNotificationId(['notificationId' => $data['notification_id'], 'select' => ['notification_sid']]); if (Validator::notEmpty()->validate($notificationInDb)) { - return $response->withStatus(400)->withJson(['errors' => _NOTIF_ALREADY_EXIST]); + return $response->withStatus(400)->withJson(['errors' => _NOTIFICATION_ALREADY_EXIST]); } $data['notification_mode'] = 'EMAIL'; @@ -150,7 +150,7 @@ class NotificationController } } - public function update(Request $request, Response $response, $aArgs) + public function update(Request $request, Response $response, array $aArgs) { if (!ServiceModel::hasService(['id' => 'admin_notif', 'userId' => $GLOBALS['userId'], 'location' => 'notifications', 'type' => 'admin'])) { return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); @@ -163,8 +163,7 @@ class NotificationController $errors = $this->control($data, 'update'); if (!empty($errors)) { - return $response - ->withStatus(500)->withJson(['errors' => $errors]); + return $response->withStatus(500)->withJson(['errors' => $errors]); } $data['diffusion_properties'] = implode(',', $data['diffusion_properties']); @@ -189,16 +188,14 @@ class NotificationController return $response->withJson(['notification' => $notification]); } - public function delete(Request $request, Response $response, $aArgs) + public function delete(Request $request, Response $response, array $aArgs) { if (!ServiceModel::hasService(['id' => 'admin_notif', 'userId' => $GLOBALS['userId'], 'location' => 'notifications', 'type' => 'admin'])) { return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } if (!Validator::intVal()->validate($aArgs['id'])) { - return $response - ->withStatus(500) - ->withJson(['errors' => 'Id is not a numeric']); + return $response->withStatus(500)->withJson(['errors' => 'Id is not a numeric']); } $notification = NotificationModel::getById(['notification_sid' => $aArgs['id']]); @@ -255,7 +252,7 @@ class NotificationController ]); } - protected function control($aArgs, $mode) + protected function control(array $aArgs, string $mode) { $errors = []; diff --git a/src/app/notification/controllers/NotificationScheduleController.php b/src/app/notification/controllers/NotificationScheduleController.php index 48fe00bdce4..69189e0d396 100644 --- a/src/app/notification/controllers/NotificationScheduleController.php +++ b/src/app/notification/controllers/NotificationScheduleController.php @@ -10,7 +10,6 @@ * @brief Notifications Schedule Controller * * @author dev@maarch.org - * @ingroup notifications */ namespace Notification\controllers; @@ -33,7 +32,7 @@ class NotificationScheduleController return $response->withJson([ 'crontab' => NotificationScheduleModel::getCrontab(), - 'authorizedNotification' => self::getAuthorizedNotifications(), + 'authorizedNotification' => NotificationScheduleController::getAuthorizedNotifications(), ]); } @@ -45,7 +44,7 @@ class NotificationScheduleController } $data = $request->getParams(); - if (!self::checkCrontab($data)) { + if (!NotificationScheduleController::checkCrontab($data)) { return $response->withStatus(500)->withJson(['errors' => 'Problem with crontab']); } @@ -71,7 +70,7 @@ class NotificationScheduleController protected static function getAuthorizedNotifications() { $aNotification = NotificationModel::getEnableNotifications(['select' => ['notification_id', 'notification_sid', 'description']]); - $notificationsArray = array(); + $notificationsArray = []; $customId = CoreConfigModel::getCustomId(); $corePath = str_replace('custom/'.$customId.'/src/app/notification/controllers', '', __DIR__); $corePath = str_replace('src/app/notification/controllers', '', $corePath); @@ -92,7 +91,7 @@ class NotificationScheduleController $path = $pathToFolow.'modules/notifications/batch/scripts/'.$filename; if (file_exists($path)) { - $notificationsArray[] = array('description' => $result['description'], 'path' => $path); + $notificationsArray[] = ['description' => $result['description'], 'path' => $path]; } } @@ -105,6 +104,8 @@ class NotificationScheduleController $crontabBeforeSave = NotificationScheduleModel::getCrontab(); $corePath = str_replace('custom/'.$customId.'/src/app/notification/controllers', '', __DIR__); $corePath = str_replace('src/app/notification/controllers', '', $corePath); + + $returnValue = false; foreach ($crontabToSave as $id => $cronValue) { if ($cronValue['state'] != 'hidden' && $crontabBeforeSave[$id]['state'] == 'hidden') { $returnValue = false; @@ -148,9 +149,7 @@ class NotificationScheduleController } if (!empty($errors)) { - return $response - ->withStatus(500) - ->withJson(['errors' => $errors]); + return $response->withStatus(500)->withJson(['errors' => $errors]); } $notification_sid = $data['notification_sid']; diff --git a/src/app/notification/controllers/NotificationsEventsController.php b/src/app/notification/controllers/NotificationsEventsController.php index d8b4328bc1c..7139bbe30f8 100644 --- a/src/app/notification/controllers/NotificationsEventsController.php +++ b/src/app/notification/controllers/NotificationsEventsController.php @@ -8,9 +8,8 @@ */ /** -* @brief Notifications events Controller +* @brief Notifications Events Controller * @author dev@maarch.org -* @ingroup core */ namespace Notification\controllers; @@ -35,7 +34,7 @@ class NotificationsEventsController $event_ids = explode(',', $notification['event_id']); if ($aArgs['eventId'] == $notification['event_id'] - || self::wildcardMatch(["pattern" => $notification['event_id'], "str" => $aArgs['eventId']]) + || NotificationsEventsController::wildcardMatch(["pattern" => $notification['event_id'], "str" => $aArgs['eventId']]) || in_array($aArgs['eventId'], $event_ids)) { NotificationsEventsModel::create([ 'notification_sid' => $notification['notification_sid'], @@ -48,7 +47,7 @@ class NotificationsEventsController } } - public function wildcardMatch(array $aArgs) + public static function wildcardMatch(array $aArgs) { $pattern = '/^' . str_replace(array('%', '\*', '\?', '\[', '\]'), array('.*', '.*', '.', '[', ']+'), preg_quote($aArgs['pattern'])) . '$/is'; $result = preg_match($pattern, $aArgs['str']); diff --git a/src/app/notification/models/NotificationModelAbstract.php b/src/app/notification/models/NotificationModelAbstract.php index 669a2fcb804..3a9e0c8596e 100644 --- a/src/app/notification/models/NotificationModelAbstract.php +++ b/src/app/notification/models/NotificationModelAbstract.php @@ -10,7 +10,6 @@ * @brief Notifications Model * * @author dev@maarch.org - * @ingroup Module */ namespace Notification\models; @@ -22,7 +21,7 @@ use SrcCore\models\DatabaseModel; use Status\models\StatusModel; use SrcCore\models\CoreConfigModel; -class NotificationModelAbstract +abstract class NotificationModelAbstract { public static function get(array $aArgs = []) { @@ -36,7 +35,7 @@ class NotificationModelAbstract return $aNotifications; } - public static function getById(array $aArgs = []) + public static function getById(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['notification_sid']); @@ -54,7 +53,7 @@ class NotificationModelAbstract return $aNotification[0]; } - public static function getByNotificationId(array $aArgs = []) + public static function getByNotificationId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['notificationId']); @@ -72,7 +71,7 @@ class NotificationModelAbstract return $aNotification[0]; } - public static function delete(array $aArgs = []) + public static function delete(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['notification_sid']); ValidatorModel::intVal($aArgs, ['notification_sid']); @@ -86,7 +85,7 @@ class NotificationModelAbstract return true; } - public static function create(array $aArgs = []) + public static function create(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['notification_id', 'description', 'is_enabled', 'event_id', 'notification_mode', 'template_id', 'diffusion_type']); ValidatorModel::intVal($aArgs, ['template_id']); @@ -250,6 +249,8 @@ class NotificationModelAbstract public static function getEnableNotifications(array $aArgs = []) { + ValidatorModel::arrayType($aArgs, ['select']); + $aReturn = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'table' => ['notifications'], diff --git a/src/app/notification/models/NotificationScheduleModelAbstract.php b/src/app/notification/models/NotificationScheduleModelAbstract.php index a047e1bca0a..dffb8fadbac 100644 --- a/src/app/notification/models/NotificationScheduleModelAbstract.php +++ b/src/app/notification/models/NotificationScheduleModelAbstract.php @@ -10,7 +10,6 @@ * @brief Notifications Model * * @author dev@maarch.org - * @ingroup Module */ namespace Notification\models; @@ -19,7 +18,7 @@ use SrcCore\models\ValidatorModel; use SrcCore\models\CoreConfigModel; use History\controllers\HistoryController; -class NotificationScheduleModelAbstract +abstract class NotificationScheduleModelAbstract { public static function saveCrontab(array $aArgs = []) { @@ -68,7 +67,7 @@ class NotificationScheduleModelAbstract $crontab = shell_exec('crontab -l'); // TODO check crontab is installed $lines = explode("\n", $crontab); - $data = array(); + $data = []; $customId = CoreConfigModel::getCustomId(); $corePath = str_replace('custom/'.$customId.'/src/app/notification/models', '', __DIR__); $corePath = str_replace('src/app/notification/models', '', $corePath); @@ -103,7 +102,7 @@ class NotificationScheduleModelAbstract $filename = explode('/', $cmd); - $data[] = array( + $data[] = [ 'm' => $m, 'h' => $h, 'dom' => $dom, @@ -112,13 +111,13 @@ class NotificationScheduleModelAbstract 'cmd' => $cmd, 'description' => end($filename), 'state' => $state, - ); + ]; } return $data; } - public static function createScriptNotification(array $aArgs = []) + public static function createScriptNotification(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['notification_sid', 'notification_id']); ValidatorModel::intVal($aArgs, ['notification_sid']); diff --git a/src/app/notification/models/NotificationsEventsModelAbstract.php b/src/app/notification/models/NotificationsEventsModelAbstract.php index 53f253c2468..8a4e783a369 100644 --- a/src/app/notification/models/NotificationsEventsModelAbstract.php +++ b/src/app/notification/models/NotificationsEventsModelAbstract.php @@ -10,7 +10,6 @@ /** * @brief Notifications Events Model * @author dev@maarch.org -* @ingroup core */ namespace Notification\models; @@ -18,9 +17,9 @@ namespace Notification\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class NotificationsEventsModelAbstract +abstract class NotificationsEventsModelAbstract { - public static function create(array $aArgs = []) + public static function create(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['notification_sid', 'table_name', 'record_id', 'user_id', 'event_info']); ValidatorModel::stringType($aArgs, ['table_name', 'user_id', 'event_info']); @@ -31,7 +30,7 @@ class NotificationsEventsModelAbstract $aReturn = DatabaseModel::insert([ 'table' => 'notif_event_stack', 'columnsValues' => $aArgs - ]); + ]); return $aReturn; } diff --git a/src/app/parameter/models/ParameterModelAbstract.php b/src/app/parameter/models/ParameterModelAbstract.php index 6909c205279..e33c18e327f 100644 --- a/src/app/parameter/models/ParameterModelAbstract.php +++ b/src/app/parameter/models/ParameterModelAbstract.php @@ -20,7 +20,7 @@ namespace Parameter\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class ParameterModelAbstract +abstract class ParameterModelAbstract { public static function get(array $aArgs = []) { diff --git a/src/app/priority/controllers/PriorityController.php b/src/app/priority/controllers/PriorityController.php index 8459e18e1fd..6aee379ed02 100644 --- a/src/app/priority/controllers/PriorityController.php +++ b/src/app/priority/controllers/PriorityController.php @@ -1,5 +1,17 @@ <?php +/** + * Copyright Maarch since 2008 under licence GPLv3. + * See LICENCE.txt file at the root folder for more details. + * This file is part of Maarch software. + * + */ + +/** + * @brief Priority Controller + * @author dev@maarch.org + */ + namespace Priority\controllers; use Group\models\ServiceModel; diff --git a/src/app/priority/models/PriorityModelAbstract.php b/src/app/priority/models/PriorityModelAbstract.php index fccccffac03..f2129b53684 100644 --- a/src/app/priority/models/PriorityModelAbstract.php +++ b/src/app/priority/models/PriorityModelAbstract.php @@ -143,7 +143,6 @@ abstract class PriorityModelAbstract ]); return true; - } - + } } diff --git a/src/app/report/controllers/ReportController.php b/src/app/report/controllers/ReportController.php index 6af4bdceff9..0186a466a67 100644 --- a/src/app/report/controllers/ReportController.php +++ b/src/app/report/controllers/ReportController.php @@ -21,7 +21,6 @@ use Report\models\ReportModel; use Slim\Http\Request; use Slim\Http\Response; - class ReportController { public function getGroups(Request $request, Response $response) diff --git a/src/app/report/models/ReportModelAbstract.php b/src/app/report/models/ReportModelAbstract.php index 02945d4dc6b..2dbe49ebdd9 100644 --- a/src/app/report/models/ReportModelAbstract.php +++ b/src/app/report/models/ReportModelAbstract.php @@ -18,7 +18,7 @@ use SrcCore\models\ValidatorModel; use SrcCore\models\CoreConfigModel; use SrcCore\models\DatabaseModel; -class ReportModelAbstract +abstract class ReportModelAbstract { public static function getByGroupId(array $aArgs) { diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php index 029f6798cc4..c4b0fe5525b 100755 --- a/src/app/resource/controllers/ResController.php +++ b/src/app/resource/controllers/ResController.php @@ -154,7 +154,7 @@ class ResController 'moduleId' => 'apps', 'eventId' => 'resup', ]); - } + } return $response->withJson(['success' => 'success']); } diff --git a/src/app/resource/models/ChronoModel.php b/src/app/resource/models/ChronoModel.php index 723a4445eb8..bd40a0507b6 100644 --- a/src/app/resource/models/ChronoModel.php +++ b/src/app/resource/models/ChronoModel.php @@ -33,7 +33,6 @@ class ChronoModel if ($loadedXml) { foreach ($loadedXml->CHRONO as $chrono) { if ($chrono->id == $aArgs['id']) { - $separator = (string)$chrono->separator; foreach ($chrono->ELEMENT as $chronoElement) { $elements[] = [ 'type' => (string)$chronoElement->type, diff --git a/src/app/resource/models/ResModelAbstract.php b/src/app/resource/models/ResModelAbstract.php index c9a0632d5b5..a89a87e84ea 100644 --- a/src/app/resource/models/ResModelAbstract.php +++ b/src/app/resource/models/ResModelAbstract.php @@ -18,7 +18,7 @@ use SrcCore\models\CoreConfigModel; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class ResModelAbstract +abstract class ResModelAbstract { public static function getOnView(array $aArgs) { diff --git a/src/app/signatureBook/controllers/SignatureBookController.php b/src/app/signatureBook/controllers/SignatureBookController.php index 8fdb01c14f2..d8b902685b5 100644 --- a/src/app/signatureBook/controllers/SignatureBookController.php +++ b/src/app/signatureBook/controllers/SignatureBookController.php @@ -1,4 +1,5 @@ <?php + /** * Copyright Maarch since 2008 under licence GPLv3. * See LICENCE.txt file at the root folder for more details. @@ -8,8 +9,9 @@ /** * @brief Signature Book Controller -* @author <dev@maarch.org> +* @author dev@maarch.org */ + namespace SignatureBook\controllers; use Attachment\models\AttachmentModel; @@ -33,7 +35,6 @@ use SrcCore\models\ValidatorModel; use User\models\UserModel; use User\models\UserSignatureModel; - class SignatureBookController { public function getSignatureBook(Request $request, Response $response, array $aArgs) diff --git a/src/app/status/controllers/StatusController.php b/src/app/status/controllers/StatusController.php index f29985a9044..7862ed48e90 100755 --- a/src/app/status/controllers/StatusController.php +++ b/src/app/status/controllers/StatusController.php @@ -10,7 +10,6 @@ /** * @brief Status Controller * @author dev@maarch.org -* @ingroup core */ namespace Status\controllers; @@ -31,9 +30,7 @@ class StatusController return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - return $response->withJson([ - 'statuses' => StatusModel::get() - ]); + return $response->withJson(['statuses' => StatusModel::get()]); } public function getNewInformations(Request $request, Response $response) @@ -69,25 +66,18 @@ class StatusController } } - public function getById(Request $request, Response $response, $aArgs) + public function getById(Request $request, Response $response, array $aArgs) { if (!ServiceModel::hasService(['id' => 'admin_status', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); } - if (!empty($aArgs['id'])) { - $obj = StatusModel::getById(['id' => $aArgs['id']]); - - if (empty($obj)) { - return $response->withStatus(404)->withJson(['errors' => 'id not found']); - } - - return $response->withJson([ - 'status' => $obj, - ]); - } else { - return $response->withStatus(500)->withJson(['errors' => 'id not valid']); + $status = StatusModel::getById(['id' => $aArgs['id']]); + if (empty($status)) { + return $response->withStatus(404)->withJson(['errors' => 'id not found']); } + + return $response->withJson(['status' => $status]); } public function create(Request $request, Response $response) @@ -97,7 +87,7 @@ class StatusController } $request = $request->getParams(); - $aArgs = self::manageValue($request); + $aArgs = StatusController::manageValue($request); $errors = $this->control($aArgs, 'create'); if (!empty($errors)) { @@ -128,7 +118,7 @@ class StatusController $request = $request->getParams(); $request = array_merge($request, $aArgs); - $aArgs = self::manageValue($request); + $aArgs = StatusController::manageValue($request); $errors = $this->control($aArgs, 'update'); if (!empty($errors)) { @@ -169,15 +159,13 @@ class StatusController 'info' => _STATUS_DELETED . ' : ' . $statusDeleted[0]['id'] ]); } else { - return $response - ->withStatus(500) - ->withJson(['errors' => 'identifier not valid']); + return $response->withStatus(500)->withJson(['errors' => 'identifier not valid']); } return $response->withJson(['statuses' => StatusModel::get()]); } - protected function manageValue($request) + protected static function manageValue($request) { foreach ($request as $key => $value) { if (in_array($key, ['is_system', 'is_folder_status', 'can_be_searched', 'can_be_modified'])) { diff --git a/src/app/status/models/StatusImagesModelAbstract.php b/src/app/status/models/StatusImagesModelAbstract.php index bed8bf03f5a..cdd1a2771aa 100644 --- a/src/app/status/models/StatusImagesModelAbstract.php +++ b/src/app/status/models/StatusImagesModelAbstract.php @@ -15,11 +15,14 @@ namespace Status\models; use SrcCore\models\DatabaseModel; +use SrcCore\models\ValidatorModel; -class StatusImagesModelAbstract +abstract class StatusImagesModelAbstract { public static function getStatusImages(array $aArgs = []) { + ValidatorModel::arrayType($aArgs, ['select']); + $aReturn = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'table' => ['status_images'], diff --git a/src/app/status/models/StatusModelAbstract.php b/src/app/status/models/StatusModelAbstract.php index 5e0ae527818..89cfc8d4c8c 100755 --- a/src/app/status/models/StatusModelAbstract.php +++ b/src/app/status/models/StatusModelAbstract.php @@ -10,7 +10,6 @@ /** * @brief Status Model * @author dev@maarch.org -* @ingroup core */ namespace Status\models; @@ -18,7 +17,7 @@ namespace Status\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class StatusModelAbstract +abstract class StatusModelAbstract { public static function get(array $aArgs = []) { diff --git a/src/app/template/models/TemplateModelAbstract.php b/src/app/template/models/TemplateModelAbstract.php index aa0db036f9d..2f33315adce 100644 --- a/src/app/template/models/TemplateModelAbstract.php +++ b/src/app/template/models/TemplateModelAbstract.php @@ -17,7 +17,7 @@ namespace Template\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class TemplateModelAbstract +abstract class TemplateModelAbstract { public static function getById(array $aArgs) { diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index 21745729f7c..0cca9a0e255 100644 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -542,10 +542,10 @@ class UserController ]); if (!file_exists($storeInfos['path_template']. str_replace('#', '/', $storeInfos['destination_dir']) .$storeInfos['file_destination_name'])) { - return $response->withStatus(500)->withJson(['errors' => $storeInfos['error'] .' '._PATH_OF_DOCSERVER_UNAPPROACHABLE]); + return $response->withStatus(500)->withJson(['errors' => $storeInfos['error'] .' '. _PATH_OF_DOCSERVER_UNAPPROACHABLE]); } - UserModel::createSignature([ + UserSignatureModel::create([ 'userSerialId' => $aArgs['id'], 'signatureLabel' => $data['label'], 'signaturePath' => $storeInfos['destination_dir'], @@ -570,7 +570,7 @@ class UserController return $response->withStatus(400)->withJson(['errors' => 'Bad Request']); } - UserModel::updateSignature([ + UserSignatureModel::update([ 'signatureId' => $aArgs['signatureId'], 'userSerialId' => $aArgs['id'], 'label' => $data['label'] @@ -588,7 +588,7 @@ class UserController return $response->withStatus($error['status'])->withJson(['errors' => $error['error']]); } - UserModel::deleteSignature(['signatureId' => $aArgs['signatureId'], 'userSerialId' => $aArgs['id']]); + UserSignatureModel::delete(['signatureId' => $aArgs['signatureId'], 'userSerialId' => $aArgs['id']]); return $response->withJson([ 'signatures' => UserSignatureModel::getByUserSerialId(['userSerialid' => $aArgs['id']]) @@ -600,19 +600,15 @@ class UserController $data = $request->getParams(); if (!$this->checkNeededParameters(['data' => $data, 'needed' => ['title', 'htmlBody']])) { - return $response->withJson(['errors' => _EMPTY_EMAIL_SIGNATURE_FORM]); + return $response->withJson(['errors' => 'Bad Request']); } - $r = UserModel::createEmailSignature([ + UserModel::createEmailSignature([ 'userId' => $GLOBALS['userId'], 'title' => $data['title'], 'htmlBody' => $data['htmlBody'] ]); - if (!$r) { - return $response->withStatus(500)->withJson(['errors' => 'Email Signature Creation Error']); - } - return $response->withJson([ 'emailSignatures' => UserModel::getEmailSignaturesById(['userId' => $GLOBALS['userId']]) ]); @@ -623,20 +619,16 @@ class UserController $data = $request->getParams(); if (!$this->checkNeededParameters(['data' => $data, 'needed' => ['title', 'htmlBody']])) { - return $response->withJson(['errors' => _EMPTY_EMAIL_SIGNATURE_FORM]); + return $response->withJson(['errors' => 'Bad Request']); } - $r = UserModel::updateEmailSignature([ + UserModel::updateEmailSignature([ 'id' => $aArgs['id'], 'userId' => $GLOBALS['userId'], 'title' => $data['title'], 'htmlBody' => $data['htmlBody'] ]); - if (!$r) { - return $response->withStatus(500)->withJson(['errors' => 'Email Signature Update Error']); - } - return $response->withJson([ 'emailSignature' => UserModel::getEmailSignatureWithSignatureIdById(['userId' => $GLOBALS['userId'], 'signatureId' => $aArgs['id']]) ]); diff --git a/src/app/user/models/UserBasketPreferenceModelAbstract.php b/src/app/user/models/UserBasketPreferenceModelAbstract.php index 82081817e5e..30ffef6a9b6 100644 --- a/src/app/user/models/UserBasketPreferenceModelAbstract.php +++ b/src/app/user/models/UserBasketPreferenceModelAbstract.php @@ -17,7 +17,7 @@ namespace User\models; use SrcCore\models\ValidatorModel; use SrcCore\models\DatabaseModel; -class UserBasketPreferenceModelAbstract +abstract class UserBasketPreferenceModelAbstract { public static function get(array $aArgs = []) { diff --git a/src/app/user/models/UserEntityModelAbstract.php b/src/app/user/models/UserEntityModelAbstract.php index b52afe10bcb..05fc09d3fec 100644 --- a/src/app/user/models/UserEntityModelAbstract.php +++ b/src/app/user/models/UserEntityModelAbstract.php @@ -18,7 +18,7 @@ use Entity\models\EntityModel; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; -class UserEntityModelAbstract +abstract class UserEntityModelAbstract { public static function get(array $aArgs) { diff --git a/src/app/user/models/UserModelAbstract.php b/src/app/user/models/UserModelAbstract.php index ca757d73a38..18779323b16 100644 --- a/src/app/user/models/UserModelAbstract.php +++ b/src/app/user/models/UserModelAbstract.php @@ -14,15 +14,13 @@ namespace User\models; -use Docserver\models\DocserverModel; -use SrcCore\models\CoreConfigModel; use SrcCore\models\DatabaseModel; use SrcCore\models\SecurityModel; use SrcCore\models\ValidatorModel; require_once 'core/class/Url.php'; -class UserModelAbstract +abstract class UserModelAbstract { public static function get(array $aArgs) { @@ -85,7 +83,7 @@ class UserModelAbstract return true; } - public static function update(array $aArgs = []) + public static function update(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id', 'user']); ValidatorModel::notEmpty($aArgs['user'], ['firstname', 'lastname']); @@ -128,7 +126,7 @@ class UserModelAbstract return true; } - public static function getByUserId(array $aArgs = []) + public static function getByUserId(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId']); ValidatorModel::stringType($aArgs, ['userId']); @@ -147,7 +145,7 @@ class UserModelAbstract return $aUser[0]; } - public static function getByEmail(array $aArgs = []) + public static function getByEmail(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['mail']); ValidatorModel::stringType($aArgs, ['mail']); @@ -163,7 +161,7 @@ class UserModelAbstract return $aUser; } - public static function updatePassword(array $aArgs = []) + public static function updatePassword(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id', 'password']); ValidatorModel::intVal($aArgs, ['id']); @@ -199,58 +197,7 @@ class UserModelAbstract return true; } - public static function createSignature(array $aArgs = []) - { - ValidatorModel::notEmpty($aArgs, ['userSerialId', 'signatureLabel', 'signaturePath', 'signatureFileName']); - ValidatorModel::stringType($aArgs, ['signatureLabel', 'signaturePath', 'signatureFileName']); - ValidatorModel::intVal($aArgs, ['userSerialId']); - - DatabaseModel::insert([ - 'table' => 'user_signatures', - 'columnsValues' => [ - 'user_serial_id' => $aArgs['userSerialId'], - 'signature_label' => $aArgs['signatureLabel'], - 'signature_path' => $aArgs['signaturePath'], - 'signature_file_name' => $aArgs['signatureFileName'] - ] - ]); - - return true; - } - - public static function updateSignature(array $aArgs = []) - { - ValidatorModel::notEmpty($aArgs, ['signatureId', 'userSerialId', 'label']); - ValidatorModel::stringType($aArgs, ['label']); - ValidatorModel::intVal($aArgs, ['signatureId', 'userSerialId']); - - DatabaseModel::update([ - 'table' => 'user_signatures', - 'set' => [ - 'signature_label' => $aArgs['label'] - ], - 'where' => ['user_serial_id = ?', 'id = ?'], - 'data' => [$aArgs['userSerialId'], $aArgs['signatureId']] - ]); - - return true; - } - - public static function deleteSignature(array $aArgs = []) - { - ValidatorModel::notEmpty($aArgs, ['signatureId', 'userSerialId']); - ValidatorModel::intVal($aArgs, ['signatureId', 'userSerialId']); - - DatabaseModel::delete([ - 'table' => 'user_signatures', - 'where' => ['user_serial_id = ?', 'id = ?'], - 'data' => [$aArgs['userSerialId'], $aArgs['signatureId']], - ]); - - return true; - } - - public static function createEmailSignature(array $aArgs = []) + public static function createEmailSignature(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId', 'title', 'htmlBody']); ValidatorModel::stringType($aArgs, ['userId', 'title', 'htmlBody']); @@ -267,7 +214,7 @@ class UserModelAbstract return true; } - public static function updateEmailSignature(array $aArgs = []) + public static function updateEmailSignature(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id','userId', 'title', 'htmlBody']); ValidatorModel::stringType($aArgs, ['userId', 'title', 'htmlBody']); @@ -286,7 +233,7 @@ class UserModelAbstract return true; } - public static function deleteEmailSignature(array $aArgs = []) + public static function deleteEmailSignature(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id', 'userId']); ValidatorModel::stringType($aArgs, ['userId']); @@ -300,7 +247,7 @@ class UserModelAbstract return true; } - public static function getEmailSignaturesById(array $aArgs = []) + public static function getEmailSignaturesById(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId']); ValidatorModel::stringType($aArgs, ['userId']); @@ -316,7 +263,7 @@ class UserModelAbstract return $aReturn; } - public static function getEmailSignatureWithSignatureIdById(array $aArgs = []) + public static function getEmailSignatureWithSignatureIdById(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['userId', 'signatureId']); ValidatorModel::stringType($aArgs, ['userId']); @@ -332,7 +279,7 @@ class UserModelAbstract return $aReturn[0]; } - public static function getLabelledUserById(array $aArgs = []) + public static function getLabelledUserById(array $aArgs) { ValidatorModel::intVal($aArgs, ['id']); ValidatorModel::stringType($aArgs, ['userId']); @@ -351,12 +298,11 @@ class UserModelAbstract return $labelledUser; } - public static function getCurrentConsigneById(array $aArgs = []) + public static function getCurrentConsigneById(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['resId']); ValidatorModel::intVal($aArgs, ['resId']); - $aReturn = DatabaseModel::select([ 'select' => ['process_comment'], 'table' => ['listinstance'], @@ -441,7 +387,7 @@ class UserModelAbstract return true; } - public static function hasGroup(array $aArgs = []) + public static function hasGroup(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id', 'groupId']); ValidatorModel::intVal($aArgs, ['id']); @@ -478,7 +424,7 @@ class UserModelAbstract return true; } - public static function updateGroup(array $aArgs = []) + public static function updateGroup(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id', 'groupId']); ValidatorModel::intVal($aArgs, ['id']); @@ -497,7 +443,7 @@ class UserModelAbstract return true; } - public static function deleteGroup(array $aArgs = []) + public static function deleteGroup(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id', 'groupId']); ValidatorModel::intVal($aArgs, ['id']); @@ -513,7 +459,7 @@ class UserModelAbstract return true; } - public static function hasEntity(array $aArgs = []) + public static function hasEntity(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id', 'entityId']); ValidatorModel::intVal($aArgs, ['id']); diff --git a/src/app/user/models/UserSignatureModelAbstract.php b/src/app/user/models/UserSignatureModelAbstract.php index 52afd11013e..5057039eed5 100644 --- a/src/app/user/models/UserSignatureModelAbstract.php +++ b/src/app/user/models/UserSignatureModelAbstract.php @@ -17,7 +17,7 @@ namespace User\models; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; -class UserSignatureModelAbstract +abstract class UserSignatureModelAbstract { public static function get(array $aArgs) { @@ -64,4 +64,55 @@ class UserSignatureModelAbstract return $signatures; } + + public static function create(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['userSerialId', 'signatureLabel', 'signaturePath', 'signatureFileName']); + ValidatorModel::stringType($aArgs, ['signatureLabel', 'signaturePath', 'signatureFileName']); + ValidatorModel::intVal($aArgs, ['userSerialId']); + + DatabaseModel::insert([ + 'table' => 'user_signatures', + 'columnsValues' => [ + 'user_serial_id' => $aArgs['userSerialId'], + 'signature_label' => $aArgs['signatureLabel'], + 'signature_path' => $aArgs['signaturePath'], + 'signature_file_name' => $aArgs['signatureFileName'] + ] + ]); + + return true; + } + + public static function update(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['signatureId', 'userSerialId', 'label']); + ValidatorModel::stringType($aArgs, ['label']); + ValidatorModel::intVal($aArgs, ['signatureId', 'userSerialId']); + + DatabaseModel::update([ + 'table' => 'user_signatures', + 'set' => [ + 'signature_label' => $aArgs['label'] + ], + 'where' => ['user_serial_id = ?', 'id = ?'], + 'data' => [$aArgs['userSerialId'], $aArgs['signatureId']] + ]); + + return true; + } + + public static function delete(array $aArgs) + { + ValidatorModel::notEmpty($aArgs, ['signatureId', 'userSerialId']); + ValidatorModel::intVal($aArgs, ['signatureId', 'userSerialId']); + + DatabaseModel::delete([ + 'table' => 'user_signatures', + 'where' => ['user_serial_id = ?', 'id = ?'], + 'data' => [$aArgs['userSerialId'], $aArgs['signatureId']], + ]); + + return true; + } } diff --git a/src/core/controllers/CoreController.php b/src/core/controllers/CoreController.php index 79c689916d7..8146f062ed0 100644 --- a/src/core/controllers/CoreController.php +++ b/src/core/controllers/CoreController.php @@ -10,7 +10,6 @@ * @brief Core Controller * * @author dev@maarch.org - * @ingroup Core */ namespace SrcCore\controllers; diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php index 8c28e3d6ae0..b942e24491b 100644 --- a/src/core/lang/lang-en.php +++ b/src/core/lang/lang-en.php @@ -11,6 +11,7 @@ * * @author dev@maarch.org */ + define('_ACTION_ADDED', 'Action added'); define('_ACTION_DELETED', 'Action deleted'); define('_ACTION_UPDATED', 'Action updated'); @@ -41,6 +42,7 @@ define('_DOCUMENT_NOT_FOUND', 'Document not found'); define('_ENTITY_CREATION', 'Entity creation'); define('_ENTITY_MODIFICATION', 'Entity modification'); define('_ENTITY_SUPPRESSION', 'Entity suppression'); +define('_ID', 'Identifier'); define('_ID_TO_DISPLAY', 'res_id'); define('_INVALID_CLAUSE', 'Clause is not valid'); define('_INVALID_REQUEST', 'Request is not valid'); @@ -102,63 +104,10 @@ define('_REGISTERED_MAIL', 'registered letter with recorded delivery'); define('_COURIER', 'Courier'); define('_NUMERIC_PACKAGE', 'Numeric package'); define('_OTHER', 'Other'); - -//BEGIN ALEX -define('_ID', 'Identifier'); -define('_REDIRECT_TO_ACTION', 'Redirect to an action'); -define('_ADMIN', 'Administration'); -define('_ADV_SEARCH_MLB', 'Search'); -define('_INDEXING_MLB', 'Save a mail/document'); -define('_SEARCH_CONTACTS', 'Search a contact'); -define('_PARAM_MLB_DOCTYPES', 'Documents types configuration '); -define('_PARAM_MLB_DOCTYPES_DESC', 'Doctypes configuration '); -define('_WELCOME_TEXT_LOAD', 'Text loading of the home page'); -define('_QUICKLAUNCH', 'Short cut'); -define('_MY_CONTACTS', 'Create contacts from indexation/title'); -define('_MY_CONTACTS_MENU', 'My contacts'); -define('_CREATE_CONTACTS', 'All the contacts'); -define('_UPDATE_CONTACTS', 'Contact update from indexation/ title'); -define('_VIEW_TECHNICAL_INFORMATIONS', 'See technical information'); -define('_VIEW_DOC_HISTORY', 'See global document history'); -define('_VIEW_FULL_HISTORY', 'See Full document history'); -define('_VIEW_FULL_HISTORY_DESC', 'Read the full events history linked to the utilisation of Maarch.'); -define('_DELETE_DOCUMENT_IN_DETAIL', 'Delete a document in detail page'); -define('_EDIT_DOCUMENT_IN_DETAIL', 'Edit a document in detail page'); -define('_EDIT_DOCUMENT_IN_DETAIL_DESC', 'Edit a document in detail page. Il will also depend on status setting (Index modification)'); -define('_PUT_DOC_ON_VALIDATION_FROM_DETAILS', 'Send the document for validation from the detailed page'); -define('_LOAD_STATUSES_SESSION', 'Load Status session'); -define('_PARAM_AVAILABLE_STATUS_ON_GROUP_BASKETS', 'Indexation status configuration'); -define('_ADD_LINKS', 'Add connection'); -define('_PRINT_DETAILS_SERVICE', 'Print the liaison sheet from the detail sheet'); -define('_PRINT_DOC_DETAILS_FROM_LIST', 'Print the liaison sheets from the results lists'); -define('_ATTACHMENTS_COMMENT', 'Attachments management'); -define('_BASKETS_COMMENT', 'Baskets'); -define('_CASES_COMMENT', 'Cases'); -define('_ENTITIES_COMMENT', 'Departments'); -define('_FILEPLAN_COMMENT', 'Organizational file plan'); -define('_FOLDERS_COMMENT', 'Folders'); -define('_FULL_TEXT', 'Full text'); -define('_NOTES_COMMENT', 'Notes'); -define('_NOTIFICATIONS_COMMENT', 'Notifications'); -define('_TEMPLATES_COMMENT', 'Templates'); -define('_REPORTS_COMMENT', 'States and editions'); -define('_LIFE_CYCLE_COMMENT', 'Life cycle management'); -define('_CONTENT_MANAGEMENT_COMMENT', 'Management of document versions'); -define('_TAGS_COMMENT', 'Tags'); -define('_SENDMAIL_COMMENT', 'Send emails'); -define('_THUMBNAILS_COMMENT', 'Unit of thumbnails'); -define('_VISA_WORKFLOW_COMMENT', 'Visa workflow management'); -define('_AVIS_WORKFLOW_COMMENT', 'recommendation workflow management'); -define('_THESAURUS_COMMENT', 'Thesaurus management'); -define('_EXPORT_SEDA_COMMENT', 'Export'); -define('_CONVERT_COMMENT', 'Conversions module'); -define('_VIEW_BASKETS', 'My baskets'); -define('_PRINT_SEPS', 'Limiters printing'); -define('_FILEPLAN_SHORT', 'File plan'); -define('_CREATE_FOLDER', 'Create a folder'); -define('_FOLDER_SEARCH', 'Search a folder'); -define('_VIEW_FOLDER_TREE', 'Read a folder'); -define('_SAVE_NUMERIC_PACKAGE', 'Save numeric package'); +define('_NOTIFICATION_ALREADY_EXIST', 'Notification already exists'); +define('_WRONG_PSW', 'Wrong password'); +define('_MAX_SIZE_UPLOAD_REACHED', 'File maximum size is exceeded'); +define('_PATH_OF_DOCSERVER_UNAPPROACHABLE', 'Inaccessible Docserver path'); // LISTS define('_DOCUMENTS_LIST_WITH_ATTACHMENTS', 'List with filters and responses'); @@ -216,6 +165,99 @@ define('_ADMIN_NOTIFICATIONS_DESC', " Create and manage users' notifications bas define('_TEMPLATES', 'Templates'); define('_ADMIN_TEMPLATES_DESC', 'Manage templates for attachments, notifications, document generation, sendmail and notes'); +//SERVICES +define('_REDIRECT_TO_ACTION', 'Redirect to an action'); +define('_ADMIN', 'Administration'); +define('_ADV_SEARCH_MLB', 'Search'); +define('_INDEXING_MLB', 'Save a mail/document'); +define('_SEARCH_CONTACTS', 'Search a contact'); +define('_PARAM_MLB_DOCTYPES', 'Documents types configuration '); +define('_PARAM_MLB_DOCTYPES_DESC', 'Doctypes configuration '); +define('_WELCOME_TEXT_LOAD', 'Text loading of the home page'); +define('_QUICKLAUNCH', 'Short cut'); +define('_MY_CONTACTS', 'Create contacts from indexation/title'); +define('_MY_CONTACTS_MENU', 'My contacts'); +define('_CREATE_CONTACTS', 'All the contacts'); +define('_UPDATE_CONTACTS', 'Contact update from indexation/ title'); +define('_VIEW_TECHNICAL_INFORMATIONS', 'See technical information'); +define('_VIEW_DOC_HISTORY', 'See global document history'); +define('_VIEW_FULL_HISTORY', 'See Full document history'); +define('_VIEW_FULL_HISTORY_DESC', 'Read the full events history linked to the utilisation of Maarch.'); +define('_DELETE_DOCUMENT_IN_DETAIL', 'Delete a document in detail page'); +define('_EDIT_DOCUMENT_IN_DETAIL', 'Edit a document in detail page'); +define('_EDIT_DOCUMENT_IN_DETAIL_DESC', 'Edit a document in detail page. Il will also depend on status setting (Index modification)'); +define('_PUT_DOC_ON_VALIDATION_FROM_DETAILS', 'Send the document for validation from the detailed page'); +define('_LOAD_STATUSES_SESSION', 'Load Status session'); +define('_PARAM_AVAILABLE_STATUS_ON_GROUP_BASKETS', 'Indexation status configuration'); +define('_ADD_LINKS', 'Add connection'); +define('_PRINT_DETAILS_SERVICE', 'Print the liaison sheet from the detail sheet'); +define('_PRINT_DOC_DETAILS_FROM_LIST', 'Print the liaison sheets from the results lists'); +define('_ATTACHMENTS_COMMENT', 'Attachments management'); +define('_BASKETS_COMMENT', 'Baskets'); +define('_CASES_COMMENT', 'Cases'); +define('_ENTITIES_COMMENT', 'Departments'); +define('_FILEPLAN_COMMENT', 'Organizational file plan'); +define('_FOLDERS_COMMENT', 'Folders'); +define('_FULL_TEXT', 'Full text'); +define('_NOTES_COMMENT', 'Notes'); +define('_NOTIFICATIONS_COMMENT', 'Notifications'); +define('_TEMPLATES_COMMENT', 'Templates'); +define('_REPORTS_COMMENT', 'States and editions'); +define('_LIFE_CYCLE_COMMENT', 'Life cycle management'); +define('_CONTENT_MANAGEMENT_COMMENT', 'Management of document versions'); +define('_TAGS_COMMENT', 'Tags'); +define('_SENDMAIL_COMMENT', 'Send emails'); +define('_THUMBNAILS_COMMENT', 'Unit of thumbnails'); +define('_VISA_WORKFLOW_COMMENT', 'Visa workflow management'); +define('_AVIS_WORKFLOW_COMMENT', 'recommendation workflow management'); +define('_THESAURUS_COMMENT', 'Thesaurus management'); +define('_EXPORT_SEDA_COMMENT', 'Export'); +define('_CONVERT_COMMENT', 'Conversions module'); +define('_VIEW_BASKETS', 'My baskets'); +define('_PRINT_SEPS', 'Limiters printing'); +define('_FILEPLAN_SHORT', 'File plan'); +define('_CREATE_FOLDER', 'Create a folder'); +define('_FOLDER_SEARCH', 'Search a folder'); +define('_VIEW_FOLDER_TREE', 'Read a folder'); +define('_SAVE_NUMERIC_PACKAGE', 'Save numeric package'); +define("_SELECT_FOLDER", "Folder selection"); +define("_FOLDER_HISTORY", "Folder's history"); +define("_MODIFY_FOLDER", "Modify folder's index"); +define("_ATTACH_DOC_TO_FOLDER", "Attach a document to a folder"); +define("_DELETE_FOLDER", "Delete a folder"); +define("_FREEZE_FOLDER", "Freeze the folder"); +define("_CLOSE_FOLDER", "Close the folder"); +define("_NOTES_RESTRICTION", "By default, limit the notes to your department"); +define("_MANAGE_NOTES", "Manage notes"); +define("_REPORTS_DESC", "States editions"); +define('_GRAPHICS_REPORTS', 'Graphics mode enabled'); +define("_USE_MAIL_SERVICES", "Use emails services as sender"); +define("_USE_MAIL_SERVICES_DESC", "Use emails services as sender"); +define("_TAG_DEFAULT", "Tag"); +define("_TAG_VIEW", "View the Tag of the documents"); +define("_TAG_VIEW_DESC", "Allows to view Tag"); +define("_CREATE_TAG", "Create Tag"); +define("_CREATE_TAG_DESC", "Allows to create Tag not existing in database"); +define("_ADD_TAG_TO_RES", "Associate the available Tag to a document"); +define("_ADD_TAG_TO_RES_DESC", "Allows to add Tag to a resource"); +define("_PRIVATE_TAGS", "Associate Tag to the user's entity (Direction level)"); +define("_PRIVATE_TAGS_DESC", "User will only see Tag restricted to user's direction (adding / updating will automatically associate the word to user's direction)."); +define("_THESAURUS_VIEW", "Display the thesaurus in the process pages"); +define("_THESAURUS_VIEW_DESC", "Be able to see the term(s) which are associated to different documents"); +define("_ADD_THESAURUS_TO_RES", "Be able to associate terms to different documents"); +define("_ADD_THESAURUS_TO_RES_DESC", "Allow to use thesaurus 's available terms to refer documents"); +define('_CONFIG_VISA_WORKFLOW', 'Visa workflow setting'); +define('_CONFIG_VISA_WORKFLOW_DESC', 'Allows to set up visa flow which the mail will have to follow'); +define('_CONFIG_VISA_WORKFLOW_IN_DETAIL', 'Visa workflow setting from detailed card'); +define('_VISA_ANSWERS', 'Aim the responses projects'); +define('_VISA_ANSWERS_DESC', 'Allows to aim response projects'); +define('_SIGN_DOCS', 'Sign the documents'); +define('_MODIFY_VISA_IN_SIGNATUREBOOK', 'Modify current visa user from signature book'); +define('_MODIFY_VISA_IN_SIGNATUREBOOK_DESC', 'Useful if signature book is used as a supervision signature book'); +define('_PRINT_FOLDER_DOC', 'Print the entire folder'); +define('_USE_DATE_IN_SIGNBLOCK', 'Add current date in sign block'); +define('_USE_DATE_IN_SIGNBLOCK_DESC', 'The current date is added in top of sign block (with the town if it wrote in parent entity of application).'); + // ACTIONS define('_REDIRECTION', 'Redirection'); define('_REDIRECTION_DESC', 'Ouvre une modal permettant de choisir un nouvel utilisateur traitant OU de redéfinir le service traitant avec une nouvelle liste de diffusion.'); @@ -280,7 +322,6 @@ define("_CONFIG_AVIS_WORKFLOW_IN_DETAIL", "Recommendation workflow setting from define("_CONFIG_AVIS_WORKFLOW_IN_DETAIL_DESC", "Allows to define the workflow directly from the mail detailed form"); define("_AVIS_ANSWERS", "Give oneself's opinion"); define("_AVIS_ANSWERS_DESC", "Allows to this group to appear in the counsellor's list (recommendation workflow)"); -define("_VIEW_BASKETS", "My baskets"); define("_VIEW_BASKETS_DESC", "My baskets"); define("_UPDATE_CASE", "Cases updates"); define("_JOIN_RES_CASE", "Attach mails to cases"); @@ -298,58 +339,20 @@ define("_PUT_DOC_IN_FILEPLAN", "Classify documents"); define("_PUT_DOC_IN_FILEPLAN_COMMENT", "Classify documents in the organizational file plan"); define("_PERSONNAL_FILEPLAN", "Personal file plan"); - -//FOLDER -define("_SELECT_FOLDER", "Folder selection"); -define("_FOLDER_HISTORY", "Folder's history"); -define("_MODIFY_FOLDER", "Modify folder's index"); -define("_ATTACH_DOC_TO_FOLDER", "Attach a document to a folder"); -define("_DELETE_FOLDER", "Delete a folder"); -define("_FREEZE_FOLDER", "Freeze the folder"); -define("_CLOSE_FOLDER", "Close the folder"); - -//NOTES -define("_NOTES_RESTRICTION", "By default, limit the notes to your department"); -define("_MANAGE_NOTES", "Manage notes"); - -//NOTIFICATIONS -define("_NOTIFICATIONS", "Notifications"); - -//REPORTS -define("_REPORTS","States and editions"); -define("_REPORTS_DESC","States editions"); -define('_GRAPHICS_REPORTS', 'Graphics mode enabled'); - -//SENDMAIL -define("_USE_MAIL_SERVICES", "Use emails services as sender"); -define("_USE_MAIL_SERVICES_DESC", "Use emails services as sender"); - -//TAGS -define("_TAG_DEFAULT", "Tag"); -define("_TAG_VIEW", "View the "._TAGS_DEFAULT." of the documents"); -define("_TAG_VIEW_DESC", "Allows to view "._TAGS_DEFAULT); -define("_CREATE_TAG", "Create "._TAGS_DEFAULT); -define("_CREATE_TAG_DESC", "Allows to create ".strtolower(_TAGS_DEFAULT)." not existing in database"); -define("_ADD_TAG_TO_RES", "Associate the available "._TAGS_DEFAULT." to a document"); -define("_ADD_TAG_TO_RES_DESC", "Allows to add "._TAGS_DEFAULT." to a resource"); -define("_PRIVATE_TAGS", "Associate ".strtolower(_TAGS_DEFAULT)." to the user's entity (Direction level)"); -define("_PRIVATE_TAGS_DESC", "User will only see ".strtolower(_TAGS_DEFAULT)." restricted to user's direction (adding / updating will automatically associate the word to user's direction)."); - -//THESAURUS -define("_THESAURUS_VIEW", "Display the thesaurus in the process pages"); -define("_THESAURUS_VIEW_DESC", "Be able to see the term(s) which are associated to different documents"); -define("_ADD_THESAURUS_TO_RES", "Be able to associate terms to different documents"); -define("_ADD_THESAURUS_TO_RES_DESC", "Allow to use thesaurus 's available terms to refer documents"); - -//VISA -define('_CONFIG_VISA_WORKFLOW', 'Visa workflow setting'); -define('_CONFIG_VISA_WORKFLOW_DESC', 'Allows to set up visa flow which the mail will have to follow'); -define('_CONFIG_VISA_WORKFLOW_IN_DETAIL', 'Visa workflow setting from detailed card'); -define('_VISA_ANSWERS', 'Aim the responses projects'); -define('_VISA_ANSWERS_DESC', 'Allows to aim response projects'); -define('_SIGN_DOCS', 'Sign the documents'); -define('_MODIFY_VISA_IN_SIGNATUREBOOK', 'Modify current visa user from signature book'); -define('_MODIFY_VISA_IN_SIGNATUREBOOK_DESC', 'Useful if signature book is used as a supervision signature book'); -define('_PRINT_FOLDER_DOC', 'Print the entire folder'); -define('_USE_DATE_IN_SIGNBLOCK', 'Add current date in sign block'); -define('_USE_DATE_IN_SIGNBLOCK_DESC', 'The current date is added in top of sign block (with the town if it wrote in parent entity of application).'); \ No newline at end of file +// REPORTS +define('_FOLDER_VIEW_STAT', 'Number of read folders'); +define('_ENTITY_VOL_STAT', 'Mails volume by department'); +define('_ENTITY_VOL_STAT_DESC', 'Mails volume by department'); +define('_RESPONSE_RATE_BY_ENTITIES', 'Taux de réponse par entité'); +define('_RESPONSE_RATE_BY_ENTITIES_DESC', 'Permet d\'afficher le pourcentage de courrier dont une réponse a été effectuée. Cette statistique se base sur le nombre de courriers dont une date de départ a été inscrite (il faut utiliser le champ custom_d1)'); +define('_ENTITY_LATE_MAIL', 'Late mail volume by department'); +define('_ENTITY_PROCESS_DELAY', 'Medium handling time by department'); +define('_USERS_LOGS', 'Access list to the application by agent'); +define('_PROCESS_DELAY_REPORT', 'Average process period by mail type'); +define('_PROCESS_DELAY_REPORT_DESC', 'Average process period by mail type'); +define('_PROCESS_DELAY_GENERIC_EVALUATION_REPORT', 'Handling medium time'); +define('_PROCESS_DELAY_GENERIC_EVALUATION_REPORT_DESC', 'Permet d\'afficher le délai (en jour) de la création jusqu\'à la clôture d\'un courrier.'); +define('_MAIL_TYPOLOGY_REPORT', 'Mails typology by period'); +define('_MAIL_TYPOLOGY_REPORT_DESC', 'Mails typology by period'); +define('_MAIL_VOL_BY_CAT_REPORT', 'Mails volume by category, by period'); +define('_MAIL_VOL_BY_CAT_REPORT_DESC', 'Mails volume by category, by period'); diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php index c4f8916bb06..ff04cfcdcdf 100644 --- a/src/core/lang/lang-fr.php +++ b/src/core/lang/lang-fr.php @@ -11,6 +11,7 @@ * * @author dev@maarch.org */ + define('_ACTION_ADDED', 'Action ajoutée'); define('_ACTION_DELETED', 'Action supprimée'); define('_ACTION_UPDATED', 'Action modifiée'); @@ -41,6 +42,7 @@ define('_DOCUMENT_NOT_FOUND', 'Document introuvable'); define('_ENTITY_CREATION', 'Création entité'); define('_ENTITY_MODIFICATION', 'Modification entité'); define('_ENTITY_SUPPRESSION', 'Suppression entité'); +define('_ID', 'Identifiant'); define('_ID_TO_DISPLAY', 'res_id'); define('_INVALID_CLAUSE', 'Clause non valide'); define('_INVALID_REQUEST', 'Requête non valide'); @@ -102,64 +104,10 @@ define('_REGISTERED_MAIL', 'Courrier AR'); define('_COURIER', 'Coursier'); define('_NUMERIC_PACKAGE', 'Pli numérique'); define('_OTHER', 'Autre'); - -//BEGIN ALEX -define('_ID', 'Identifiant'); -define('_REDIRECT_TO_ACTION', 'Rediriger vers une action'); -define('_ADMIN', 'Administration'); -define('_ADV_SEARCH_MLB', 'Rechercher'); -define('_INDEXING_MLB', 'Enregistrer un courrier/doc'); -define('_SEARCH_CONTACTS', 'Rechercher un contact'); -define('_PARAM_MLB_DOCTYPES', 'Paramétrage des types de document '); -define('_PARAM_MLB_DOCTYPES_DESC', 'Paramétrage des types de document '); -define('_WELCOME_TEXT_LOAD', "Chargement texte page d'accueil"); -define('_QUICKLAUNCH', 'Raccourcis'); -define('_MY_CONTACTS', 'Créer des contacts depuis indexation/qualification'); -define('_MY_CONTACTS_MENU', 'Mes contacts'); -define('_CREATE_CONTACTS', 'Tous les contacts'); -define('_UPDATE_CONTACTS', 'Mise à jour contact depuis indexation/qualification'); -define('_VIEW_TECHNICAL_INFORMATIONS', 'Voir les informations techniques'); -define('_VIEW_DOC_HISTORY', "Voir l'historique des actions sur le document"); -define('_VIEW_FULL_HISTORY', "Voir l'historique complet du document"); -define('_VIEW_FULL_HISTORY_DESC', "Consulter l'historique complet des événements relatifs à l'utilisation de la GED Maarch."); -define('_DELETE_DOCUMENT_IN_DETAIL', 'Supprimer un document dans la fiche détaillée'); -define('_EDIT_DOCUMENT_IN_DETAIL', 'Modifier un document dans la fiche détaillée'); -define('_EDIT_DOCUMENT_IN_DETAIL_DESC', 'Edit a document in detail page. Il will also depend on status setting (Index modification)'); -define('_PUT_DOC_ON_VALIDATION_FROM_DETAILS', 'Envoyer le document en validation depuis la page détails'); -define('_LOAD_STATUSES_SESSION', 'Chargement des status en session'); -define('_PARAM_AVAILABLE_STATUS_ON_GROUP_BASKETS', "Paramétrage des status d'indexation"); -define('_ADD_LINKS', 'Ajouter des liaisons'); -define('_PRINT_DETAILS_SERVICE', 'Imprimer la fiche de liaison depuis la fiche détail'); -define('_PRINT_DOC_DETAILS_FROM_LIST', 'Imprimer les fiches de liaison depuis les listes de résultats'); -define('_ATTACHMENTS_COMMENT', 'Gestion des pièces jointes'); -define('_BASKETS_COMMENT', 'Bannettes'); -define('_CASES_COMMENT', 'Affaires'); -define('_ENTITIES_COMMENT', 'Entités'); -define('_FILEPLAN_COMMENT', 'Plan de classement organisationnel'); -define('_FOLDERS_COMMENT', 'Dossiers'); -define('_FULL_TEXT', 'Plein texte'); -define('_NOTES_COMMENT', 'Notes'); -define('_NOTIFICATIONS_COMMENT', 'Notifications'); -define('_TEMPLATES_COMMENT', 'Modèles de document'); -define('_REPORTS_COMMENT', 'Statistiques'); -define('_LIFE_CYCLE_COMMENT', 'Gestion du cycle de vie'); -define('_CONTENT_MANAGEMENT_COMMENT', 'Gestion des Versions de document'); -define('_TAGS_COMMENT', 'Mots-clés'); -define('_SENDMAIL_COMMENT', 'Envoi de courriels'); -define('_THUMBNAILS_COMMENT', 'Module des miniatures'); -define('_VISA_WORKFLOW_COMMENT', 'Gestion du circuit de visa'); -define('_AVIS_WORKFLOW_COMMENT', "Gestion du circuit d'avis"); -define('_THESAURUS_COMMENT', 'Gestion du thesaurus'); -define('_THESAURUS_COMMENT', 'Thesaurus management'); -define('_EXPORT_SEDA_COMMENT', 'Export'); -define('_CONVERT_COMMENT', 'Module de conversions'); -define('_VIEW_BASKETS', 'Mes bannettes'); -define('_PRINT_SEPS', 'Impression des séparateurs'); -define('_FILEPLAN_SHORT', 'Plan de classement'); -define('_CREATE_FOLDER', 'Créer un dossier'); -define('_FOLDER_SEARCH', 'Rechercher un dossier'); -define('_VIEW_FOLDER_TREE', 'Consulter un dossier'); -define('_SAVE_NUMERIC_PACKAGE', 'Enregistrer un pli numérique'); +define('_NOTIFICATION_ALREADY_EXIST', 'Notification déjà existante'); +define('_WRONG_PSW', 'Le mot de passe actuel n\'est pas correct'); +define('_MAX_SIZE_UPLOAD_REACHED', 'Taille maximum de fichier dépassée'); +define('_PATH_OF_DOCSERVER_UNAPPROACHABLE', 'Chemin Docserver inaccessible'); // LISTS define('_DOCUMENTS_LIST_WITH_ATTACHMENTS', 'Liste avec filtres et réponses'); @@ -217,6 +165,99 @@ define('_ADMIN_NOTIFICATIONS_DESC', "Créer et gérer des notifications aux util define('_TEMPLATES', 'Modèles de documents'); define('_ADMIN_TEMPLATES_DESC', "Gérer les modèles utilisés pour les pièces jointes, les notifications, la génération de courriers, l'envoi de courriels et les notes"); +//SERVICES +define('_REDIRECT_TO_ACTION', 'Rediriger vers une action'); +define('_ADMIN', 'Administration'); +define('_ADV_SEARCH_MLB', 'Rechercher'); +define('_INDEXING_MLB', 'Enregistrer un courrier/doc'); +define('_SEARCH_CONTACTS', 'Rechercher un contact'); +define('_PARAM_MLB_DOCTYPES', 'Paramétrage des types de document '); +define('_PARAM_MLB_DOCTYPES_DESC', 'Paramétrage des types de document '); +define('_WELCOME_TEXT_LOAD', "Chargement texte page d'accueil"); +define('_QUICKLAUNCH', 'Raccourcis'); +define('_MY_CONTACTS', 'Créer des contacts depuis indexation/qualification'); +define('_MY_CONTACTS_MENU', 'Mes contacts'); +define('_CREATE_CONTACTS', 'Tous les contacts'); +define('_UPDATE_CONTACTS', 'Mise à jour contact depuis indexation/qualification'); +define('_VIEW_TECHNICAL_INFORMATIONS', 'Voir les informations techniques'); +define('_VIEW_DOC_HISTORY', "Voir l'historique des actions sur le document"); +define('_VIEW_FULL_HISTORY', "Voir l'historique complet du document"); +define('_VIEW_FULL_HISTORY_DESC', "Consulter l'historique complet des événements relatifs à l'utilisation de la GED Maarch."); +define('_DELETE_DOCUMENT_IN_DETAIL', 'Supprimer un document dans la fiche détaillée'); +define('_EDIT_DOCUMENT_IN_DETAIL', 'Modifier un document dans la fiche détaillée'); +define('_EDIT_DOCUMENT_IN_DETAIL_DESC', 'Edit a document in detail page. Il will also depend on status setting (Index modification)'); +define('_PUT_DOC_ON_VALIDATION_FROM_DETAILS', 'Envoyer le document en validation depuis la page détails'); +define('_LOAD_STATUSES_SESSION', 'Chargement des status en session'); +define('_PARAM_AVAILABLE_STATUS_ON_GROUP_BASKETS', "Paramétrage des status d'indexation"); +define('_ADD_LINKS', 'Ajouter des liaisons'); +define('_PRINT_DETAILS_SERVICE', 'Imprimer la fiche de liaison depuis la fiche détail'); +define('_PRINT_DOC_DETAILS_FROM_LIST', 'Imprimer les fiches de liaison depuis les listes de résultats'); +define('_ATTACHMENTS_COMMENT', 'Gestion des pièces jointes'); +define('_BASKETS_COMMENT', 'Bannettes'); +define('_CASES_COMMENT', 'Affaires'); +define('_ENTITIES_COMMENT', 'Entités'); +define('_FILEPLAN_COMMENT', 'Plan de classement organisationnel'); +define('_FOLDERS_COMMENT', 'Dossiers'); +define('_FULL_TEXT', 'Plein texte'); +define('_NOTES_COMMENT', 'Notes'); +define('_NOTIFICATIONS_COMMENT', 'Notifications'); +define('_TEMPLATES_COMMENT', 'Modèles de document'); +define('_REPORTS_COMMENT', 'Statistiques'); +define('_LIFE_CYCLE_COMMENT', 'Gestion du cycle de vie'); +define('_CONTENT_MANAGEMENT_COMMENT', 'Gestion des Versions de document'); +define('_TAGS_COMMENT', 'Mots-clés'); +define('_SENDMAIL_COMMENT', 'Envoi de courriels'); +define('_THUMBNAILS_COMMENT', 'Module des miniatures'); +define('_VISA_WORKFLOW_COMMENT', 'Gestion du circuit de visa'); +define('_AVIS_WORKFLOW_COMMENT', "Gestion du circuit d'avis"); +define('_THESAURUS_COMMENT', 'Gestion du thesaurus'); +define('_EXPORT_SEDA_COMMENT', 'Export'); +define('_CONVERT_COMMENT', 'Module de conversions'); +define('_VIEW_BASKETS', 'Mes bannettes'); +define('_PRINT_SEPS', 'Impression des séparateurs'); +define('_FILEPLAN_SHORT', 'Plan de classement'); +define('_CREATE_FOLDER', 'Créer un dossier'); +define('_FOLDER_SEARCH', 'Rechercher un dossier'); +define('_VIEW_FOLDER_TREE', 'Consulter un dossier'); +define('_SAVE_NUMERIC_PACKAGE', 'Enregistrer un pli numérique'); +define("_SELECT_FOLDER", "Sélection Dossier"); +define("_FOLDER_HISTORY", "Historique dossier"); +define("_MODIFY_FOLDER", "Modifier les index d'un dossier"); +define("_ATTACH_DOC_TO_FOLDER", "Rattacher un document à un dossier"); +define("_DELETE_FOLDER", "Supprimer un dossier"); +define("_FREEZE_FOLDER", "Geler le dossier"); +define("_CLOSE_FOLDER", "Clôturer le dossier"); +define("_NOTES_RESTRICTION", "Restreindre par défaut les notes à votre entité"); +define("_MANAGE_NOTES", "Gérer les notes"); +define('_REPORTS_DESC', 'Editions des états'); +define('_GRAPHICS_REPORTS', "Activer l'affichage graphique"); +define("_USE_MAIL_SERVICES", "Utiliser les courriels de ses services en tant qu'expéditeur"); +define("_USE_MAIL_SERVICES_DESC", "Utiliser les courriels de ses services en tant qu'expéditeur"); +define("_TAG_DEFAULT", "Mot-clé"); +define("_TAG_VIEW", "Voir les Mots-clé des documents"); +define("_TAG_VIEW_DESC", "Permet d'afficher le champ Mot-clé depuis les pages d'actions et fiche détaillée."); +define("_CREATE_TAG", "Créer des Mots-clé depuis les pages d'actions"); +define("_CREATE_TAG_DESC", "Permet d'enregistrer à la volée des Mots-clé inexistants dans la base de données"); +define("_ADD_TAG_TO_RES", "Associer des Mots-clé disponibles pour un document"); +define("_ADD_TAG_TO_RES_DESC", "Permet d'associer des Mots-clé à un document grâce au champ Mot-clé depuis les pages d'actions et fiche détaillée"); +define("_PRIVATE_TAGS", "Lier les Mots-clé à l'entité de l'utilisateur (Niveau direction)"); +define("_PRIVATE_TAGS_DESC", "L'utilisateur ne verra que les Mots-clé qui ont été restreints à sa direction (l'ajout / modification associera le mot clé automatiquement à sa direction)."); +define("_THESAURUS_VIEW", "Afficher le thésaurus dans les pages de traitement"); +define("_THESAURUS_VIEW_DESC", "Permet de voir le(s) terme(s) qui sont associés aux différents documents"); +define("_ADD_THESAURUS_TO_RES", "Pouvoir associer des termes aux différents documents"); +define("_ADD_THESAURUS_TO_RES_DESC", "Permet de pouvoir utiliser les termes disponibles du thésaurus afin de référencer les documents"); +define('_CONFIG_VISA_WORKFLOW', 'Configuration du circuit de visa'); +define('_CONFIG_VISA_WORKFLOW_DESC', 'Permet de configurer le circuit de visa que devra prendre le courrier'); +define('_CONFIG_VISA_WORKFLOW_IN_DETAIL', 'Configuration du circuit de visa depuis la fiche détaillée'); +define('_VISA_ANSWERS', 'Viser les projets de réponse'); +define('_VISA_ANSWERS_DESC', 'Permet de viser les projets de réponse'); +define('_SIGN_DOCS', 'Signer les documents'); +define('_MODIFY_VISA_IN_SIGNATUREBOOK', 'Modifier le viseur en cours depuis le parapheur'); +define('_MODIFY_VISA_IN_SIGNATUREBOOK_DESC', 'Utile si le parahpeur sert en tant que parapheur de supervision'); +define('_PRINT_FOLDER_DOC', 'Imprimer le dossier complet'); +define('_USE_DATE_IN_SIGNBLOCK', 'Inclure la date dans la griffe de signature'); +define('_USE_DATE_IN_SIGNBLOCK_DESC', "La date de signature aparaîtra en haut de la griffe de signature (avec la ville si celle-ci a été inscrite dans le service racine de l'application)."); + // ACTIONS define('_REDIRECTION', 'Rediriger'); define('_REDIRECTION_DESC', 'Ouvre une modal permettant de choisir un nouvel utilisateur traitant OU de redéfinir le service traitant avec une nouvelle liste de diffusion.'); @@ -281,7 +322,6 @@ define("_CONFIG_AVIS_WORKFLOW_IN_DETAIL", "Configuration du circuit d'avis depui define("_CONFIG_AVIS_WORKFLOW_IN_DETAIL_DESC", "Permet de définir le circuit directement depuis la fiche détaillée du courrier"); define("_AVIS_ANSWERS", "Donner son avis"); define("_AVIS_ANSWERS_DESC", "Permet à ce groupe d'apparaître dans la liste des personnes Conseillers (circuit d'avis)"); -define("_VIEW_BASKETS", "Mes bannettes"); define("_VIEW_BASKETS_DESC", "Mes bannettes"); define("_UPDATE_CASE", "Mise à jour d'affaires"); define("_JOIN_RES_CASE", "Attacher des courriers aux affaires"); @@ -298,58 +338,20 @@ define("_PUT_DOC_IN_FILEPLAN", "Classer des documents"); define("_PUT_DOC_IN_FILEPLAN_COMMENT", "Classer des documents dans le plan de classement organisationnel"); define("_PERSONNAL_FILEPLAN", "Plan de classement personnel"); - -//FOLDER -define("_SELECT_FOLDER", "Sélection Dossier"); -define("_FOLDER_HISTORY", "Historique dossier"); -define("_MODIFY_FOLDER", "Modifier les index d'un dossier"); -define("_ATTACH_DOC_TO_FOLDER", "Rattacher un document à un dossier"); -define("_DELETE_FOLDER", "Supprimer un dossier"); -define("_FREEZE_FOLDER", "Geler le dossier"); -define("_CLOSE_FOLDER", "Clôturer le dossier"); - -//NOTES -define("_NOTES_RESTRICTION", "Restreindre par défaut les notes à votre entité"); -define("_MANAGE_NOTES", "Gérer les notes"); - -//NOTIFICATIONS -define("_NOTIFICATIONS", "Notifications"); - -//REPORTS -define('_REPORTS', 'Statistiques'); -define('_REPORTS_DESC', 'Editions des états'); -define('_GRAPHICS_REPORTS', "Activer l'affichage graphique"); - -//SENDMAIL -define("_USE_MAIL_SERVICES", "Utiliser les courriels de ses services en tant qu'expéditeur"); -define("_USE_MAIL_SERVICES_DESC", "Utiliser les courriels de ses services en tant qu'expéditeur"); - -//TAGS -define("_TAG_DEFAULT", "Mot-clé"); -define("_TAG_VIEW", "Voir les ".strtolower(_TAGS_DEFAULT)." des documents"); -define("_TAG_VIEW_DESC", "Permet d'afficher le champ ".strtolower(_TAGS_DEFAULT)." depuis les pages d'actions et fiche détaillée."); -define("_CREATE_TAG", "Créer des ".strtolower(_TAGS_DEFAULT)." depuis les pages d'actions"); -define("_CREATE_TAG_DESC", "Permet d'enregistrer à la volée des ".strtolower(_TAGS_DEFAULT)." inexistants dans la base de données"); -define("_ADD_TAG_TO_RES", "Associer des ".strtolower(_TAGS_DEFAULT)." disponibles pour un document"); -define("_ADD_TAG_TO_RES_DESC", "Permet d'associer des ".strtolower(_TAGS_DEFAULT)." à un document grâce au champ ".strtolower(_TAGS_DEFAULT)." depuis les pages d'actions et fiche détaillée"); -define("_PRIVATE_TAGS", "Lier les ".strtolower(_TAGS_DEFAULT)." à l'entité de l'utilisateur (Niveau direction)"); -define("_PRIVATE_TAGS_DESC", "L'utilisateur ne verra que les ".strtolower(_TAGS_DEFAULT)." qui ont été restreints à sa direction (l'ajout / modification associera le mot clé automatiquement à sa direction)."); - -//THESAURUS -define("_THESAURUS_VIEW", "Afficher le thésaurus dans les pages de traitement"); -define("_THESAURUS_VIEW_DESC", "Permet de voir le(s) terme(s) qui sont associés aux différents documents"); -define("_ADD_THESAURUS_TO_RES", "Pouvoir associer des termes aux différents documents"); -define("_ADD_THESAURUS_TO_RES_DESC", "Permet de pouvoir utiliser les termes disponibles du thésaurus afin de référencer les documents"); - -//VISA -define('_CONFIG_VISA_WORKFLOW', 'Configuration du circuit de visa'); -define('_CONFIG_VISA_WORKFLOW_DESC', 'Permet de configurer le circuit de visa que devra prendre le courrier'); -define('_CONFIG_VISA_WORKFLOW_IN_DETAIL', 'Configuration du circuit de visa depuis la fiche détaillée'); -define('_VISA_ANSWERS', 'Viser les projets de réponse'); -define('_VISA_ANSWERS_DESC', 'Permet de viser les projets de réponse'); -define('_SIGN_DOCS', 'Signer les documents'); -define('_MODIFY_VISA_IN_SIGNATUREBOOK', 'Modifier le viseur en cours depuis le parapheur'); -define('_MODIFY_VISA_IN_SIGNATUREBOOK_DESC', 'Utile si le parahpeur sert en tant que parapheur de supervision'); -define('_PRINT_FOLDER_DOC', 'Imprimer le dossier complet'); -define('_USE_DATE_IN_SIGNBLOCK', 'Inclure la date dans la griffe de signature'); -define('_USE_DATE_IN_SIGNBLOCK_DESC', "La date de signature aparaîtra en haut de la griffe de signature (avec la ville si celle-ci a été inscrite dans le service racine de l'application)."); \ No newline at end of file +// REPORTS +define('_FOLDER_VIEW_STAT', 'Nombre de dossiers consultés'); +define('_ENTITY_VOL_STAT', 'Volume des courriers par entité'); +define('_ENTITY_VOL_STAT_DESC', 'Permet d\'afficher le nombre de courriers enregistrés par service.'); +define('_RESPONSE_RATE_BY_ENTITIES', 'Taux de réponse par entité'); +define('_RESPONSE_RATE_BY_ENTITIES_DESC', 'Permet d\'afficher le pourcentage de courrier dont une réponse a été effectuée. Cette statistique se base sur le nombre de courriers dont une date de départ a été inscrite (il faut utiliser le champ custom_d1)'); +define('_ENTITY_LATE_MAIL', 'Volume de courriers en retard par entité'); +define('_ENTITY_PROCESS_DELAY', 'Délai moyen de traitement par entité'); +define('_USERS_LOGS', 'Liste des accès à l\'application par agent'); +define('_PROCESS_DELAY_REPORT', 'Délai moyen de traitement par typologie'); +define('_PROCESS_DELAY_REPORT_DESC', 'Permet d\'afficher le délai (en jour) de la création jusqu\'à la clôture d\'un courrier.'); +define('_PROCESS_DELAY_GENERIC_EVALUATION_REPORT', 'Délai moyen de traitement par période'); +define('_PROCESS_DELAY_GENERIC_EVALUATION_REPORT_DESC', 'Permet d\'afficher le délai (en jour) de la création jusqu\'à la clôture d\'un courrier.'); +define('_MAIL_TYPOLOGY_REPORT', 'Volume de courriers par typologie'); +define('_MAIL_TYPOLOGY_REPORT_DESC', 'Permet d\'afficher le nombre de courriers enregistrés par type de document.'); +define('_MAIL_VOL_BY_CAT_REPORT', 'Volume de courriers par catégorie'); +define('_MAIL_VOL_BY_CAT_REPORT_DESC', 'Permet d\'afficher le nombre de courriers enregistrés par catégorie (arrivé, départ, etc.).'); diff --git a/src/core/models/ValidatorModel.php b/src/core/models/ValidatorModel.php index e48cebd8611..03b28cc8129 100755 --- a/src/core/models/ValidatorModel.php +++ b/src/core/models/ValidatorModel.php @@ -10,7 +10,6 @@ /** * @brief Validator Model * @author dev@maarch.org -* @ingroup core */ namespace SrcCore\models; -- GitLab