123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- {"label":"Action","syntax":"php"}
- <?php
- global $_,$conf;
- switch($_['action']){
- /** {{ENTITY}} **/
- //Récuperation d'une liste de {{entity}}
- case '{{plugin}}_{{entity}}_search':
- Action::write(function(&$response){
- global $myUser,$_;
- if(!$myUser->can('{{plugin}}','read')) throw new Exception("Permissions insuffisantes",403);
- require_once(__DIR__.SLASH.'{{Entity}}.class.php');{{:links}}
- require_once(__DIR__.SLASH.'{{value.entity}}.class.php');{{/:links}}
- {{~! Recherche non avancée}}
- // OPTIONS DE RECHERCHE, A ACTIVER POUR UNE RECHERCHE AVANCEE
- $query = 'SELECT * FROM '.{{Entity}}::tableName().' WHERE 1';
- $data = array();
- //Recherche simple
- if(!empty($_['filters']['keyword'])){
- $query .= ' AND label LIKE ?';
- $data[] = '%'.$_['filters']['keyword'].'%';
- }
- //Recherche avancée
- if(isset($_['filters']['advanced'])) filter_secure_query($_['filters']['advanced'],array('label'),$query,$data);
- //Tri des colonnes
- if(isset($_['sort'])) sort_secure_query($_['sort'],array('label'),$query,$data);
- //Pagination
- $response['pagination'] = {{Entity}}::paginate(2,(!empty($_['page'])?$_['page']:0),$query,$data);
- ${{entity}}s = {{Entity}}::staticQuery($query,$data,true,{{linksCount}});
- {{/~}}
- {{~ Recherche non avancée}}
- ${{entity}}s = {{Entity}}::loadAll();
- {{/~}}
- foreach(${{entity}}s as ${{entity}}){
- $row = ${{entity}}->toArray();{{:links}}
- $row['{{value.key}}'] = ${{entity}}->join('{{value.key}}')->toArray();{{/:links}}
- $response['rows'][] = $row;
- }
- });
- break;
-
- //Ajout ou modification d'élément {{entity}}
- case '{{plugin}}_{{entity}}_save':
- Action::write(function(&$response){
- global $myUser,$_;
- if(!$myUser->can('{{plugin}}','edit')) throw new Exception("Permissions insuffisantes",403);
- require_once(__DIR__.SLASH.'{{Entity}}.class.php');
- $item = {{Entity}}::provide();{{:fields}}
- $item->{{value.key}} = $_['{{value.key}}'];{{/:fields}}
- $item->save();
- });
- break;
-
- {{~ Formulaire dans le tableau de liste }}//Récuperation ou edition d'élément {{entity}}
- case '{{plugin}}_{{entity}}_edit':
- Action::write(function(&$response){
- global $myUser,$_;
- if(!$myUser->can('{{plugin}}','edit')) throw new Exception("Permissions insuffisantes",403);
- require_once(__DIR__.SLASH.'{{Entity}}.class.php');{{:links}}
- require_once(__DIR__.SLASH.'{{value.entity}}.class.php');{{/:links}}
- $response = {{Entity}}::getById($_['id'],{{linksCount}});
- });
- break;{{/~}}
- //Suppression d'élement {{entity}}
- case '{{plugin}}_{{entity}}_delete':
- Action::write(function(&$response){
- global $myUser,$_;
- if(!$myUser->can('{{plugin}}','delete')) throw new Exception("Permissions insuffisantes",403);
- require_once(__DIR__.SLASH.'{{Entity}}.class.php');
- {{~! Suppression logique}}{{Entity}}::deleteById($_['id']);{{/~}}
- {{~ Suppression logique}}$item = {{Entity}}::getById($_['id']);
- $item->state = {{Entity}}::INACTIVE;
- $item->save();{{/~}}
- });
- break;
- {{~! Pas de page réglages }}
- //Sauvegarde des configurations de {{plugin}}
- case '{{plugin}}_setting_save':
- Action::write(function(&$response){
- global $myUser,$_,$conf;
- if(!$myUser->can('{{plugin}}','configure')) throw new Exception("Permissions insuffisantes",403);
- foreach(Configuration::setting('{{plugin}}') as $key=>$value){
- if(!is_array($value)) continue;
- $allowed[] = $key;
- }
- foreach ($_['fields'] as $key => $value) {
- if(in_array($key, $allowed))
- $conf->put($key,$value);
- }
- });
- break;
- {{/~}}
- {{~ Widget de dashboard }}
- case '{{plugin}}_widget_load':
- global $myUser;
- require_once(__DIR__.SLASH.'..'.SLASH.'dashboard'.SLASH.'DashboardWidget.class.php');
- $widget = DashboardWidget::current();
- $widget->title = 'Widget {{Plugin}}';
- ob_start();
- //Décommenter après avoir créé widget.php
- //require_once(__DIR__.SLASH.'widget.php');
- //$widget->content = ob_get_clean();
- $widget->content = 'Widget non développé';
- echo json_encode($widget);
- break;
- {{/~}}
- }
- ?>
|