Пример #1
0
 public function doAction()
 {
     try {
         $out = '';
         $cName = $this->doorGets->controllerNameNow();
         // Init langue
         $lgActuel = $this->doorGets->getLangueTradution();
         $moduleInfos = $this->doorGets->moduleInfos($this->doorGets->Uri, $lgActuel);
         $User = $this->doorGets->user;
         // Check if is content modo
         $is_modo = in_array($moduleInfos['id'], $User['liste_module_modo']) ? true : false;
         // Check if is module modo
         in_array('module', $User['liste_module_interne']) && in_array('module_' . $moduleInfos['type'], $User['liste_module_interne']) ? $is_modules_modo = true : ($is_modules_modo = false);
         // check if user can edit content
         $user_can_edit = in_array($moduleInfos['id'], $User['liste_module_edit']) ? true : false;
         // check if user can delete content
         $user_can_delete = in_array($moduleInfos['id'], $User['liste_module_delete']) ? true : false;
         // Init url redirection
         $redirectUrl = './?controller=module' . $moduleInfos['type'] . '&uri=' . $this->doorGets->Uri . '&lg=' . $lgActuel;
         // get Content for edit / delete
         $params = $this->doorGets->Params();
         if (array_key_exists('id', $params['GET'])) {
             $id = $params['GET']['id'];
             $isContent = $this->doorGets->dbQS($id, $this->doorGets->Table);
             if (!empty($isContent)) {
                 if ($lgGroupe = @unserialize($isContent['groupe_traduction'])) {
                     $idLgGroupe = $lgGroupe[$lgActuel];
                     $isContentTraduction = $this->doorGets->dbQS($idLgGroupe, $this->doorGets->Table . '_traduction');
                     if (!empty($isContentTraduction)) {
                         $isContent = array_merge($isContent, $isContentTraduction);
                     }
                     // test if user can edit content
                     if ($isContent['id_user'] !== $this->doorGets->user['id'] && !in_array($isContent['id_groupe'], $this->doorGets->user['liste_enfant_modo'])) {
                         FlashInfo::set($this->doorGets->__("Vous n'avez pas les droits pour afficher ce contenu"), "error");
                         $this->doorGets->_redirect($redirectUrl);
                     }
                 }
             }
         }
         $champsNonObligatoire = array('');
         $messageSuccess = $this->doorGets->__("Vos informations ont bien été mises à jour");
         switch ($this->Action) {
             case 'add':
                 $this->doorGets->checkMode();
                 if (!empty($this->doorGets->Form->i)) {
                     $cResultsInt = $this->doorGets->getCountTable($this->doorGets->Table);
                     // gestion des champs vide
                     foreach ($this->doorGets->Form->i as $k => $v) {
                         if (!in_array($k, $champsNonObligatoire) && empty($v)) {
                             $this->doorGets->Form->e[$cName . '_add_' . $k] = 'ok';
                         }
                     }
                     $var = $this->doorGets->Form->i['url'];
                     $varUrl = filter_var($var, FILTER_VALIDATE_URL);
                     if (empty($varUrl)) {
                         $this->doorGets->Form->e[$cName . '_add_url'] = 'ok';
                     }
                     // validation si aucune erreur
                     if (empty($this->doorGets->Form->e)) {
                         if (!array_key_exists('active', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['active'] = 0;
                         }
                         //
                         $data['pseudo'] = $User['pseudo'];
                         $data['id_user'] = $this->doorGets->user['id'];
                         $data['id_groupe'] = $this->doorGets->user['groupe'];
                         $data['ordre'] = $cResultsInt + 1;
                         $data['active'] = !$is_modo ? 3 : $this->doorGets->Form->i['active'];
                         $data['date_creation'] = time();
                         $idContent = $this->doorGets->dbQI($data, $this->doorGets->Table);
                         //
                         foreach ($this->doorGets->getAllLanguages() as $k => $v) {
                             $dataNext = array('image' => $this->doorGets->Form->i['image'], 'titre' => $this->doorGets->Form->i['titre'], 'description' => $this->doorGets->Form->i['description'], 'url' => $this->doorGets->Form->i['url']);
                             $dataNext['date_modification'] = $data['date_creation'];
                             $dataNext['id_content'] = $idContent;
                             $dataNext['langue'] = $k;
                             $idTraduction[$k] = $this->doorGets->dbQI($dataNext, $this->doorGets->Table . '_traduction');
                         }
                         // Copy image to real path
                         $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['image']);
                         $dataModification['groupe_traduction'] = serialize($idTraduction);
                         $this->doorGets->dbQU($idContent, $dataModification, $this->doorGets->Table);
                         // Tracker
                         $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                         $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($dataNext['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($idContent)->setAction($this->Action)->setDate(time())->save();
                         if (!$is_modo) {
                             $moderation = new ModerationEntity(null, $this->doorGets);
                             $moderation->setIdContent($idContent)->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('partner')->setAction($this->Action)->setLangue($lgActuel)->setDateCreation(time())->save();
                             $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                             $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
                         }
                         $this->doorGets->successHeaderResponse($messageSuccess, $redirectUrl);
                     }
                     $this->doorGets->errorHeaderResponse($this->doorGets->__("Veuillez remplir correctement le formulaire"), $this->doorGets->Form->e);
                 }
                 break;
             case 'edit':
                 if (!empty($this->doorGets->Form->i)) {
                     $this->doorGets->checkMode();
                     $listToCategories = '';
                     // gestion des champs vide
                     foreach ($this->doorGets->Form->i as $k => $v) {
                         if (!in_array($k, $champsNonObligatoire) && $k !== 'image' && empty($v)) {
                             $this->doorGets->Form->e[$cName . '_edit_' . $k] = 'ok';
                         }
                     }
                     if (empty($this->doorGets->Form->i['image'])) {
                         $this->doorGets->Form->i['image'] = $isContent['image'];
                     }
                     if (empty($this->doorGets->Form->e)) {
                         // Copy image to real path
                         $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['image']);
                         $dataContenu['active'] = !$is_modo ? 3 : $this->doorGets->Form->i['active'];
                         $dataTraduction = array('image' => $this->doorGets->Form->i['image'], 'titre' => $this->doorGets->Form->i['titre'], 'description' => $this->doorGets->Form->i['description'], 'url' => $this->doorGets->Form->i['url']);
                         $dataVersion = $dataTraduction;
                         $dataVersion['active'] = $this->doorGets->Form->i['active'];
                         $this->saveLastContentVersion($isContent['id_content'], $dataVersion);
                         // Tracker
                         $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                         $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($dataTraduction['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($isContent['id_content'])->setAction($this->Action)->setDate(time())->save();
                         if (!$is_modo) {
                             $moderation = new ModerationEntity(null, $this->doorGets);
                             $moderation->setIdContent($isContent['id_content'])->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('blog')->setAction($this->Action)->setLangue($lgActuel)->setDateCreation(time())->save();
                             $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                             $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
                         } else {
                             $uri_module = $this->doorGets->Uri;
                             $id_content = $isContent['id_content'];
                             $this->doorGets->dbQL("\n                                    DELETE FROM _moderation \n                                    WHERE id_content = '{$id_content}' \n                                    AND uri_module = '{$uri_module}'\n                                    LIMIT 1000\n                                ");
                             $uriNotification = $dataContenu['active'] === '2' ? $moduleInfos['uri_notification_user_success'] : $moduleInfos['uri_notification_user_error'];
                             $this->doorGets->sendEmailNotificationToUser($uriNotification, $isContent['id_user']);
                         }
                         // Update Data
                         $this->doorGets->dbQU($isContent['id_content'], $dataContenu, $this->doorGets->Table);
                         $this->doorGets->dbQU($isContent['id'], $dataTraduction, $this->doorGets->Table . '_traduction');
                         $this->doorGets->successHeaderResponse($messageSuccess);
                     }
                     $this->doorGets->errorHeaderResponse($this->doorGets->__("Veuillez remplir correctement le formulaire"), $this->doorGets->Form->e);
                 }
                 break;
             case 'delete':
                 if (!empty($this->doorGets->Form->i)) {
                     $this->doorGets->checkMode();
                     if (empty($this->doorGets->Form->e)) {
                         $lgGroupe = unserialize($isContent['groupe_traduction']);
                         foreach ($lgGroupe as $v) {
                             @$this->doorGets->dbQD($v, $this->doorGets->Table . '_traduction');
                         }
                         @unlink(BASE . 'data/' . $this->doorGets->getRealUri($this->doorGets->Uri) . '/' . $isContent['image']);
                         $this->doorGets->dbQD($isContent['id_content'], $this->doorGets->Table);
                         $this->doorGets->dbQL("DELETE FROM _dg_comments WHERE uri_module = '" . $this->doorGets->Uri . "' AND uri_content = '" . $isContent['id_content'] . "' ");
                         $this->doorGets->dbQL("UPDATE " . $this->doorGets->Table . " SET ordre = ordre - 1 WHERE ordre > " . $isContent['ordre'] . " ");
                         // Tracker
                         $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                         $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($isContent['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($isContent['id_content'])->setAction($this->Action)->setDate(time())->save();
                         FlashInfo::set($this->doorGets->__("Les données sont supprimées"));
                         $this->doorGets->_redirect($redirectUrl);
                     }
                 }
                 break;
         }
     } catch (Exception $e) {
     }
 }
Пример #2
0
 public function doAction()
 {
     try {
         $out = '';
         $cName = $this->doorGets->controllerNameNow();
         // Init langue
         $lgActuel = $this->doorGets->getLangueTradution();
         $moduleInfos = $this->doorGets->moduleInfos($this->doorGets->Uri, $lgActuel);
         $User = $this->doorGets->user;
         // Init url redirection
         $redirectUrl = './?controller=module' . $moduleInfos['type'] . '&uri=' . $this->doorGets->Uri . '&lg=' . $lgActuel;
         // Check if is content modo
         $is_modo = in_array($moduleInfos['id'], $User['liste_module_modo']) ? true : false;
         // Check if is module modo
         in_array('module', $User['liste_module_interne']) && in_array('module_' . $moduleInfos['type'], $User['liste_module_interne']) ? $is_modules_modo = true : ($is_modules_modo = false);
         // check if user can edit content
         $user_can_edit = in_array($moduleInfos['id'], $User['liste_module_edit']) ? true : false;
         // check if user can delete content
         $user_can_delete = in_array($moduleInfos['id'], $User['liste_module_delete']) ? true : false;
         // Init count total contents
         $countContents = 0;
         $arrForCountSearchQuery[] = array('key' => "id_user", 'type' => '=', 'value' => $User['id']);
         $countContents = $this->doorGets->getCountTable($this->doorGets->Table, $arrForCountSearchQuery);
         // Check limit to add content
         $isLimited = 0;
         if (array_key_exists($moduleInfos['id'], $User['liste_module_limit']) && $User['liste_module_limit'] !== '0') {
             $isLimited = (int) $User['liste_module_limit'][$moduleInfos['id']];
         }
         // get Content for edit / delete
         $params = $this->doorGets->Params();
         if (array_key_exists('id', $params['GET'])) {
             $id = $params['GET']['id'];
             $isContent = $this->doorGets->dbQS($id, $this->doorGets->Table);
             if (!empty($isContent)) {
                 if ($lgGroupe = @unserialize($isContent['groupe_traduction'])) {
                     $idLgGroupe = $lgGroupe[$lgActuel];
                     $isContentTraduction = $this->doorGets->dbQS($idLgGroupe, $this->doorGets->Table . '_traduction');
                     if (!empty($isContentTraduction)) {
                         $isContent = array_merge($isContent, $isContentTraduction);
                     }
                     // test if user can edit content
                     if ($isContent['id_user'] !== $this->doorGets->user['id'] && !in_array($isContent['id_groupe'], $this->doorGets->user['liste_enfant_modo'])) {
                         FlashInfo::set($this->doorGets->__("Vous n'avez pas les droits pour afficher ce contenu"), "error");
                         $this->doorGets->_redirect($redirectUrl);
                     }
                 }
             }
         }
         $champsNonObligatoire = array('article_tinymce', 'meta_titre', 'meta_description', 'meta_keys', 'sendto', 'id_disqus', 'image_gallery', 'meta_facebook_titre', 'meta_facebook_description', 'meta_facebook_image', 'meta_twitter_titre', 'meta_twitter_description', 'meta_twitter_image', 'meta_twitter_player', 'tags');
         $messageSuccess = $this->doorGets->__("Vos informations ont bien été mises à jour");
         switch ($this->Action) {
             case 'add':
                 if (!empty($this->doorGets->Form->i)) {
                     $this->doorGets->checkMode();
                     $cResultsInt = $this->doorGets->getCountTable($this->doorGets->Table);
                     $listToCategories = '';
                     // gestion des champs vide
                     foreach ($this->doorGets->Form->i as $k => $v) {
                         if (!in_array($k, $champsNonObligatoire) && empty($v)) {
                             $this->doorGets->Form->e[$cName . '_add_' . $k] = 'ok';
                         }
                         $iCat = explode('_', $k);
                         if (!empty($iCat) && $iCat[0] === 'categories' && is_numeric($iCat[1])) {
                             $listToCategories .= '#' . $iCat[1] . ',';
                             unset($this->doorGets->Form->i[$k]);
                         }
                     }
                     if (empty($this->doorGets->Form->e)) {
                         $image_gallery = $this->doorGets->Form->i['image_gallery'];
                         // Copy images gallery to real path
                         $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $image_gallery);
                     }
                     // validation si aucune erreur
                     if (empty($this->doorGets->Form->e)) {
                         if (!array_key_exists('active', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['active'] = 3;
                         }
                         if (!array_key_exists('author_badge', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['author_badge'] = $is_modo ? 0 : $moduleInfos['author_badge'];
                         }
                         if (!array_key_exists('comments', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['comments'] = 0;
                         }
                         if (!array_key_exists('partage', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['partage'] = 0;
                         }
                         if (!array_key_exists('facebook', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['facebook'] = 0;
                         }
                         if (!array_key_exists('disqus', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['disqus'] = 0;
                         }
                         if (!array_key_exists('in_rss', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['in_rss'] = 0;
                         }
                         //
                         $data['pseudo'] = $User['pseudo'];
                         $data['author_badge'] = $this->doorGets->Form->i['author_badge'];
                         $data['id_user'] = $this->doorGets->user['id'];
                         $data['id_groupe'] = $this->doorGets->user['groupe'];
                         $data['categorie'] = $listToCategories;
                         $data['ordre'] = $cResultsInt + 1;
                         $data['active'] = $this->doorGets->Form->i['active'];
                         if (!$is_modo) {
                             $data['active'] = 3;
                         }
                         $data['comments'] = $this->doorGets->Form->i['comments'];
                         $data['partage'] = $this->doorGets->Form->i['partage'];
                         $data['facebook'] = $this->doorGets->Form->i['facebook'];
                         $data['disqus'] = $this->doorGets->Form->i['disqus'];
                         $data['in_rss'] = $this->doorGets->Form->i['in_rss'];
                         $data['date_creation'] = time();
                         $idContent = $this->doorGets->dbQI($data, $this->doorGets->Table);
                         $titre = $this->doorGets->Form->i['titre'];
                         foreach ($this->doorGets->getAllLanguages() as $k => $v) {
                             $dataNext = array('titre' => $titre, 'uri' => $this->doorGets->Form->i['uri'], 'article_tinymce' => $this->doorGets->Form->i['article_tinymce'], 'meta_titre' => $this->doorGets->Form->i['meta_titre'], 'meta_description' => $this->doorGets->Form->i['meta_description'], 'meta_keys' => $this->doorGets->Form->i['meta_keys'], 'image' => $this->doorGets->Form->i['image'], 'image_gallery' => $image_gallery, 'tags' => $this->doorGets->Form->i['tags'], 'meta_facebook_type' => $this->doorGets->Form->i['meta_facebook_type'], 'meta_facebook_titre' => $this->doorGets->Form->i['meta_facebook_titre'], 'meta_facebook_description' => $this->doorGets->Form->i['meta_facebook_description'], 'meta_facebook_image' => $this->doorGets->Form->i['meta_facebook_image'], 'meta_twitter_type' => $this->doorGets->Form->i['meta_twitter_type'], 'meta_twitter_titre' => $this->doorGets->Form->i['meta_twitter_titre'], 'meta_twitter_description' => $this->doorGets->Form->i['meta_twitter_description'], 'meta_twitter_image' => $this->doorGets->Form->i['meta_twitter_image'], 'meta_twitter_player' => $this->doorGets->Form->i['meta_twitter_player']);
                             $dataNext['categorie'] = $listToCategories;
                             $dataNext['date_modification'] = $data['date_creation'];
                             $dataNext['id_content'] = $idContent;
                             $dataNext['langue'] = $k;
                             $dataNext['uri'] = $this->doorGets->Form->i['uri'] . '-' . $idContent . '-' . $k;
                             $idTraduction[$k] = $this->doorGets->dbQI($dataNext, $this->doorGets->Table . '_traduction');
                         }
                         $dataModification['groupe_traduction'] = serialize($idTraduction);
                         $this->doorGets->dbQU($idContent, $dataModification, $this->doorGets->Table);
                         // Tracker
                         $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                         $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($dataNext['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($idContent)->setAction($this->Action)->setDate(time())->save();
                         if (!$is_modo) {
                             $moderation = new ModerationEntity(null, $this->doorGets);
                             $moderation->setIdContent($idContent)->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('image')->setAction($this->Action)->setLangue($lgActuel)->setDateCreation(time())->save();
                             $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                             $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
                         }
                         $dataModification['groupe_traduction'] = serialize($idTraduction);
                         $this->doorGets->dbQU($idContent, $dataModification, $this->doorGets->Table);
                         // Copy image to real path
                         $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['image']);
                         // Copy image to real path
                         $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['meta_facebook_image']);
                         $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['meta_twitter_image']);
                         $this->doorGets->successHeaderResponse($messageSuccess, $redirectUrl . '&action=edit&id=' . $idContent);
                     }
                     $this->doorGets->errorHeaderResponse($this->doorGets->__("Veuillez remplir correctement le formulaire"), $this->doorGets->Form->e);
                 }
                 break;
             case 'edit':
                 if (!empty($this->doorGets->Form->i) && $user_can_edit) {
                     $this->doorGets->checkMode();
                     $listToCategories = '';
                     // gestion des champs vide
                     foreach ($this->doorGets->Form->i as $k => $v) {
                         if (!in_array($k, $champsNonObligatoire) && empty($v)) {
                             $this->doorGets->Form->e[$cName . '_edit_' . $k] = 'ok';
                         }
                         $iCat = explode('_', $k);
                         if (!empty($iCat) && $iCat[0] === 'categories' && is_numeric($iCat[1])) {
                             $listToCategories .= '#' . $iCat[1] . ',';
                             unset($this->doorGets->Form->i[$k]);
                         }
                     }
                     if (empty($this->doorGets->Form->e)) {
                         $image_gallery = $this->doorGets->Form->i['image_gallery'];
                         // Copy images gallery to real path
                         $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $image_gallery);
                     }
                     if (empty($this->doorGets->Form->e)) {
                         if (!array_key_exists('active', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['active'] = $isContent['active'];
                         }
                         if (!array_key_exists('author_badge', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['author_badge'] = $is_modo ? 0 : $isContent['author_badge'];
                         }
                         if (!array_key_exists('comments', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['comments'] = $is_modo ? 0 : $isContent['comments'];
                         }
                         if (!array_key_exists('partage', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['partage'] = $is_modo ? 0 : $isContent['partage'];
                         }
                         if (!array_key_exists('facebook', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['facebook'] = $is_modo ? 0 : $isContent['facebook'];
                         }
                         if (!array_key_exists('disqus', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['disqus'] = $is_modo ? 0 : $isContent['disqus'];
                         }
                         if (!array_key_exists('in_rss', $this->doorGets->Form->i)) {
                             $this->doorGets->Form->i['in_rss'] = $is_modo ? 0 : $isContent['in_rss'];
                         }
                         $image = $isContent['image'];
                         if (!empty($this->doorGets->Form->i['image'])) {
                             $image = $this->doorGets->Form->i['image'];
                             // Copy image to real path
                             $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['image']);
                         }
                         $imageFacebook = $isContent['meta_facebook_image'];
                         if (!empty($this->doorGets->Form->i['meta_facebook_image'])) {
                             $imageFacebook = $this->doorGets->Form->i['meta_facebook_image'];
                             // Copy image to real path
                             $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['meta_facebook_image']);
                         }
                         $imageTwitter = $isContent['meta_twitter_image'];
                         if (!empty($this->doorGets->Form->i['meta_twitter_image'])) {
                             $imageTwitter = $this->doorGets->Form->i['meta_twitter_image'];
                             // Copy image to real path
                             $this->doorGets->copyFileToRealPath($this->doorGets->Uri, $this->doorGets->Form->i['meta_twitter_image']);
                         }
                         $dataContenu['categorie'] = $listToCategories;
                         $dataContenu['author_badge'] = $this->doorGets->Form->i['author_badge'];
                         $dataContenu['active'] = $this->doorGets->Form->i['active'];
                         if (!$is_modo) {
                             $dataContenu['active'] = 3;
                         }
                         $dataContenu['comments'] = $this->doorGets->Form->i['comments'];
                         $dataContenu['partage'] = $this->doorGets->Form->i['partage'];
                         $dataContenu['facebook'] = $this->doorGets->Form->i['facebook'];
                         $dataContenu['disqus'] = $this->doorGets->Form->i['disqus'];
                         $dataContenu['in_rss'] = $this->doorGets->Form->i['in_rss'];
                         $dataTraduction = array('titre' => $this->doorGets->Form->i['titre'], 'uri' => $this->doorGets->Form->i['uri'], 'article_tinymce' => $this->doorGets->Form->i['article_tinymce'], 'meta_titre' => $this->doorGets->Form->i['meta_titre'], 'meta_description' => $this->doorGets->Form->i['meta_description'], 'meta_keys' => $this->doorGets->Form->i['meta_keys'], 'categorie' => $listToCategories, 'image' => $image, 'image_gallery' => $image_gallery, 'tags' => $this->doorGets->Form->i['tags'], 'meta_facebook_type' => $this->doorGets->Form->i['meta_facebook_type'], 'meta_facebook_titre' => $this->doorGets->Form->i['meta_facebook_titre'], 'meta_facebook_description' => $this->doorGets->Form->i['meta_facebook_description'], 'meta_facebook_image' => $imageFacebook, 'meta_twitter_type' => $this->doorGets->Form->i['meta_twitter_type'], 'meta_twitter_titre' => $this->doorGets->Form->i['meta_twitter_titre'], 'meta_twitter_description' => $this->doorGets->Form->i['meta_twitter_description'], 'meta_twitter_image' => $imageTwitter, 'meta_twitter_player' => $this->doorGets->Form->i['meta_twitter_player'], 'date_modification' => time());
                         $dataVersion = $dataTraduction;
                         $this->saveLastContentVersion($isContent['id_content'], $dataVersion);
                         // Tracker
                         $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                         $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($dataTraduction['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($isContent['id_content'])->setAction($this->Action)->setDate(time())->save();
                         if (!$is_modo) {
                             $moderation = new ModerationEntity(null, $this->doorGets);
                             $moderation->setIdContent($isContent['id_content'])->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('image')->setAction($this->Action)->setLangue($lgActuel)->setDateCreation(time())->save();
                             $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                             $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
                         } else {
                             $uri_module = $this->doorGets->Uri;
                             $id_content = $isContent['id_content'];
                             $this->doorGets->dbQL("\n                                    DELETE FROM _moderation \n                                    WHERE id_content = '{$id_content}' \n                                    AND uri_module = '{$uri_module}'\n                                    LIMIT 1000\n                                ");
                             $uriNotification = $dataContenu['active'] === '2' ? $moduleInfos['uri_notification_user_success'] : $moduleInfos['uri_notification_user_error'];
                             $this->doorGets->sendEmailNotificationToUser($uriNotification, $isContent['id_user']);
                         }
                         // Update Data
                         $this->doorGets->dbQU($isContent['id_content'], $dataContenu, $this->doorGets->Table);
                         $this->doorGets->dbQU($isContent['id'], $dataTraduction, $this->doorGets->Table . '_traduction');
                         $this->doorGets->successHeaderResponse($messageSuccess);
                     }
                     $this->doorGets->errorHeaderResponse($this->doorGets->__("Veuillez remplir correctement le formulaire"), $this->doorGets->Form->e);
                 }
                 break;
             case 'delete':
                 if (!empty($this->doorGets->Form->i) && $user_can_delete) {
                     $this->doorGets->checkMode();
                     if (empty($this->doorGets->Form->e)) {
                         $lgGroupe = unserialize($isContent['groupe_traduction']);
                         foreach ($lgGroupe as $v) {
                             @$this->doorGets->dbQD($v, $this->doorGets->Table . '_traduction');
                         }
                         @unlink(BASE . 'data/' . $this->doorGets->getRealUri($this->doorGets->Uri) . '/' . $isContent['image']);
                         $this->doorGets->dbQD($isContent['id_content'], $this->doorGets->Table);
                         $this->doorGets->dbQL("DELETE FROM _dg_comments WHERE uri_module = '" . $this->doorGets->Uri . "' AND uri_content = '" . $isContent['id_content'] . "' ");
                         $this->doorGets->dbQL("UPDATE " . $this->doorGets->Table . " SET ordre = ordre - 1 WHERE ordre > " . $isContent['ordre'] . " ");
                         //$this->doorGets->clearDBCache();
                         // Tracker
                         $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                         $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($isContent['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($isContent['id_content'])->setAction($this->Action)->setDate(time())->save();
                         $this->doorGets->successHeaderResponse($this->doorGets->__("Les données sont supprimées"), $redirectUrl);
                     }
                 }
                 break;
         }
     } catch (Exception $e) {
         // echo $e->getMessage();
         // exit();
     }
 }
Пример #3
0
 public function doAction()
 {
     $out = '';
     $this->doorGets->Table = '_dg_onepage';
     $User = $this->doorGets->user;
     // Init langue
     $lgActuel = $this->doorGets->getLangueTradution();
     $moduleInfos = $this->doorGets->moduleInfos($this->doorGets->Uri, $lgActuel);
     // Check if is content modo
     $is_modo = in_array($moduleInfos['id'], $User['liste_module_modo']) ? true : false;
     // Check if is module modo
     in_array('module', $User['liste_module_interne']) && in_array('module_' . $moduleInfos['type'], $User['liste_module_interne']) ? $is_modules_modo = true : ($is_modules_modo = false);
     // check if user can edit content
     $user_can_edit = in_array($moduleInfos['id'], $User['liste_module_edit']) ? true : false;
     // check if user can delete content
     $user_can_delete = in_array($moduleInfos['id'], $User['liste_module_delete']) ? true : false;
     // Init url redirection
     $redirectUrl = './?controller=module' . $moduleInfos['type'] . '&uri=' . $this->doorGets->Uri . '&lg=' . $lgActuel;
     // get Content for edit / delete
     $params = $this->doorGets->Params();
     if (array_key_exists('uri', $params['GET'])) {
         $uri = $params['GET']['uri'];
         $isContent = $this->doorGets->dbQS($uri, $this->doorGets->Table, 'uri');
         if (!empty($isContent)) {
             if ($lgGroupe = @unserialize($isContent['groupe_traduction'])) {
                 $idLgGroupe = $lgGroupe[$lgActuel];
                 $isContentTraduction = $this->doorGets->dbQS($idLgGroupe, $this->doorGets->Table . '_traduction');
                 if (!empty($isContentTraduction)) {
                     $isContent = array_merge($isContent, $isContentTraduction);
                 }
             }
         }
     }
     $messageSuccess = $this->doorGets->__("Vos informations ont bien été mises à jour");
     $champsNonObligatoire = array('description', 'backimage_', 'backcolor_', 'height_');
     $removeInt = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_tinymce');
     if (!empty($this->doorGets->Form->i)) {
         $this->doorGets->checkMode();
         $countPages = 0;
         // gestion des champs vide
         foreach ($this->doorGets->Form->i as $k => $v) {
             $rKey = str_replace($removeInt, '', $k);
             if (!in_array($rKey, $champsNonObligatoire) && empty($v)) {
                 $this->doorGets->Form->e[$this->doorGets->controllerNameNow() . '_edit_' . $k] = 'ok';
             }
             $valTitle = substr($k, 0, 5);
             if ($valTitle === 'title') {
                 $countPages++;
             }
         }
         $article = array();
         for ($i = 0; $i < $countPages + 1; $i++) {
             $z = $i + 1;
             if (array_key_exists('title_' . $z, $this->doorGets->Form->i)) {
                 $pos = $this->doorGets->Form->i['position_' . $z];
                 $article[$pos]['position'] = $this->doorGets->Form->i['position_' . $z];
                 $article[$pos]['title'] = $this->doorGets->Form->i['title_' . $z];
                 $article[$pos]['page'] = $this->doorGets->Form->i['page_' . $z . '_tinymce'];
                 $article[$pos]['marqueur'] = $this->doorGets->Form->i['marqueur_' . $z];
                 $article[$pos]['backcolor'] = $this->doorGets->Form->i['backcolor_' . $z];
                 $article[$pos]['backimage'] = $this->doorGets->Form->i['backimage_' . $z];
                 $article[$pos]['opacity'] = $this->doorGets->Form->i['opacity_' . $z];
                 $article[$pos]['height'] = $this->doorGets->Form->i['height_' . $z];
                 $article[$pos]['showinmenu'] = $this->doorGets->Form->i['showinmenu_' . $z];
             }
         }
         ksort($article);
         if (empty($this->doorGets->Form->e)) {
             $dataTraduction = array('menu_position' => 'top', 'backimage_fixe' => $this->doorGets->Form->i['backimage_fixe'], 'article_tinymce' => base64_encode(serialize($article)), 'date_modification' => time());
             $dataVersion = $dataTraduction;
             $this->saveLastContentVersion($isContent['id_content'], $dataVersion);
             $this->doorGets->dbQU($isContent['id'], $dataTraduction, $this->doorGets->Table . '_traduction');
             $usersTracking = new UsersTrackEntity(null, $this->doorGets);
             $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($this->doorGets->Uri)->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($isContent['id_content'])->setAction('edit')->setDate(time())->save();
             if (!$is_modo) {
                 $moderation = new ModerationEntity(null, $this->doorGets);
                 $moderation->setIdContent($isContent['id_content'])->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('page')->setAction('edit')->setLangue($lgActuel)->setDateCreation(time())->save();
                 $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                 $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
             }
             $this->doorGets->successHeaderResponse($messageSuccess, $redirectUrl);
         }
         $this->doorGets->errorHeaderResponse($this->doorGets->__("Veuillez remplir correctement le formulaire"), $this->doorGets->Form->e);
     }
 }
Пример #4
0
 public function doAction()
 {
     $out = '';
     $id = 0;
     // if (!$this->doorGets->getIsUserLogged()) {
     //     $this->doorGets->_errorJson("Access Token required");
     // }
     $cName = $this->doorGets->controllerNameNow();
     $User = $this->doorGets->user;
     $uri = $this->doorGets->Uri;
     // Init langue
     $lgActuel = $this->doorGets->getLangueTradution();
     $moduleInfos = $this->doorGets->moduleInfos($this->doorGets->Uri, $lgActuel);
     if (!empty($User)) {
         // Init url redirection
         $redirectUrl = './?controller=module' . $moduleInfos['type'] . '&uri=' . $this->doorGets->Uri . '&lg=' . $lgActuel;
         // Check if is content modo
         $is_modo = in_array($moduleInfos['id'], $User['liste_module_modo']) ? true : false;
         // Check if is module modo
         in_array('module', $User['liste_module_interne']) && in_array('module_' . $moduleInfos['type'], $User['liste_module_interne']) ? $is_modules_modo = true : ($is_modules_modo = false);
         // check if user can edit content
         $user_can_edit = in_array($moduleInfos['id'], $User['liste_module_edit']) ? true : false;
         // check if user can delete content
         $user_can_delete = in_array($moduleInfos['id'], $User['liste_module_delete']) ? true : false;
         // Init count total contents
         $countContents = 0;
         $arrForCountSearchQuery[] = array('key' => "id_user", 'type' => '=', 'value' => $User['id']);
         $countContents = $this->doorGets->getCountTable($this->doorGets->Table, $arrForCountSearchQuery);
         // Check limit to add content
         $isLimited = 0;
         if (array_key_exists($moduleInfos['id'], $User['liste_module_limit']) && $User['liste_module_limit'] !== '0') {
             $isLimited = (int) $User['liste_module_limit'][$moduleInfos['id']];
         }
         // get Content for edit / delete
         $params = $this->doorGets->Params();
         if (array_key_exists('id', $params['GET'])) {
             $id = $params['GET']['id'];
             $isContent = $this->doorGets->dbQS($id, $this->doorGets->Table);
             if (!empty($isContent)) {
                 if ($lgGroupe = @unserialize($isContent['groupe_traduction'])) {
                     $idLgGroupe = $lgGroupe[$lgActuel];
                     $isContentTraduction = $this->doorGets->dbQS($idLgGroupe, $this->doorGets->Table . '_traduction');
                     if (!empty($isContentTraduction)) {
                         $this->isContent = $isContent = array_merge($isContent, $isContentTraduction);
                     }
                 }
                 // test if user can edit content
                 if ($isContent['id_user'] !== $User['id'] && !in_array($isContent['id_groupe'], $User['liste_enfant_modo'])) {
                     $this->doorGets->_errorJson($this->doorGets->__("Vous n'avez pas les droits pour afficher ce contenu"));
                 }
             }
         }
     }
     $messageSuccess = $this->doorGets->__("Vos informations ont bien été mises à jour");
     $messageError = $this->doorGets->__("Veuillez remplir correctement le formulaire");
     switch ($this->doorGets->requestMethod) {
         case 'POST':
             if (empty($this->isContent)) {
                 // to do
                 $formData = $this->getFormDataFromParams();
                 $listToCategories = '';
                 if (empty($formData['error'])) {
                     $formData['success']['active'] = 2;
                     $keyToCheck = array('meta_titre', 'meta_description', 'meta_keys', 'meta_facebook_type', 'meta_facebook_titre', 'meta_facebook_description', 'meta_facebook_image', 'meta_twitter_type', 'meta_twitter_titre', 'meta_twitter_description', 'meta_twitter_image', 'meta_twitter_player');
                     foreach ($keyToCheck as $key) {
                         $formData['success'][$key] = array_key_exists($key, $formData['success']) ? $formData['success'][$key] : '';
                     }
                     $cResultsInt = $this->doorGets->getCountTable($this->doorGets->Table);
                     $data['pseudo'] = $User['pseudo'];
                     $data['id_user'] = $User['id'];
                     $data['id_groupe'] = $User['groupe'];
                     $data['ordre'] = $cResultsInt + 1;
                     $data['active'] = $is_modo ? $formData['success']['active'] : 3;
                     $data['categorie'] = $listToCategories;
                     $data['date_creation'] = time();
                     $idContent = $this->doorGets->dbQI($data, $this->doorGets->Table);
                     //var_dump($formData);
                     $formData['success']['image'] = $this->doorGets->_moveUploadImage($_FILES, 'image', $uri);
                     if ($formData['success']['image'] === false) {
                         $this->doorGets->_errorJson($messageError);
                     }
                     $isExistUri = $this->doorGets->checkIfUriExist($formData['success']['uri'], '_m_' . $uri . '_traduction', $lgActuel);
                     if ($isExistUri) {
                         $this->doorGets->_errorJson("Uri field is not valid");
                     }
                     foreach ($this->doorGets->getAllLanguages() as $k => $v) {
                         $dataTraduction = array('titre' => $formData['success']['title'], 'uri' => $formData['success']['uri'], 'article_tinymce' => $formData['success']['article_tinymce'], 'meta_titre' => $formData['success']['meta_titre'], 'meta_description' => $formData['success']['meta_description'], 'meta_keys' => $formData['success']['meta_keys'], 'image' => $formData['success']['image']);
                         foreach ($keyToCheck as $key) {
                             $dataTraduction[$key] = $formData['success'][$key];
                         }
                         $dataTraduction['categorie'] = $listToCategories;
                         $dataTraduction['date_modification'] = $data['date_creation'];
                         $dataTraduction['id_content'] = $idContent;
                         $dataTraduction['langue'] = $k;
                         $dataTraduction['uri'] = $formData['success']['uri'] . '-' . $k;
                         $idTraduction[$k] = $this->doorGets->dbQI($dataTraduction, $this->doorGets->Table . '_traduction');
                     }
                     $dataModification['groupe_traduction'] = serialize($idTraduction);
                     $this->doorGets->dbQU($idContent, $dataModification, $this->doorGets->Table);
                     // Tracker
                     $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                     $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer('API')->setIdUser($User['id'])->setTitle($dataTraduction['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($idContent)->setAction('add')->setDate(time())->save();
                     if (!$is_modo) {
                         $moderation = new ModerationEntity(null, $this->doorGets);
                         $moderation->setIdContent($idContent)->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('blog')->setAction('add')->setLangue($lgActuel)->setDateCreation(time())->save();
                         $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                         $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
                     }
                     $this->doorGets->_successJson($messageSuccess);
                 } else {
                     $this->doorGets->_errorJson($messageError, $formData['error']);
                 }
             }
             break;
         case 'PUT':
         case 'PATCH':
             if (!empty($this->isContent)) {
                 // to do
                 $formData = $this->getFormDataFromParams('PUT');
                 $listToCategories = '';
                 if (empty($formData['error'])) {
                     $formData['success']['active'] = array_key_exists('active', $formData['success']) ? $formData['success']['active'] : 2;
                     $keyToCheck = array('title', 'article_tinymce', 'categorie', 'uri', 'image', 'meta_titre', 'meta_description', 'meta_keys', 'meta_facebook_type', 'meta_facebook_titre', 'meta_facebook_description', 'meta_facebook_image', 'meta_twitter_type', 'meta_twitter_titre', 'meta_twitter_description', 'meta_twitter_image', 'meta_twitter_player');
                     foreach ($keyToCheck as $key) {
                         if ($key === 'title') {
                             $formData['success']['titre'] = array_key_exists($key, $formData['success']) ? $formData['success'][$key] : $isContent['titre'];
                             unset($formData['success'][$key]);
                         } else {
                             $formData['success'][$key] = array_key_exists($key, $formData['success']) ? $formData['success'][$key] : $isContent[$key];
                         }
                     }
                     $cResultsInt = $this->doorGets->getCountTable($this->doorGets->Table);
                     $dataContenu['active'] = $is_modo ? $formData['success']['active'] : 3;
                     //var_dump($formData);
                     //$formData['success']['image'] = $this->doorGets->_moveUploadImage($_FILES,'image',$uri);
                     if ($formData['success']['image'] === false) {
                         $this->doorGets->_errorJson("File error: image");
                     }
                     $dataContenu['active'] = $formData['success']['active'];
                     if (!$is_modo) {
                         $dataContenu['active'] = 3;
                     }
                     $image = $isContent['image'];
                     if (!empty($formData['success']['image'])) {
                         $image = $formData['success']['image'];
                     }
                     $dataTraduction = array('image' => $image, 'categorie' => $listToCategories, 'date_modification' => time());
                     foreach ($keyToCheck as $key) {
                         $key = $key === 'title' ? 'titre' : $key;
                         $dataTraduction[$key] = $formData['success'][$key];
                     }
                     $dataVersion = $dataTraduction;
                     unset($dataTraduction['active']);
                     $this->saveLastContentVersion($isContent['id_content'], $dataVersion);
                     // Tracker
                     $usersTracking = new UsersTrackEntity(null, $this->doorGets);
                     $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer('API')->setIdUser($User['id'])->setTitle($dataTraduction['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($isContent['id_content'])->setAction('edit')->setDate(time())->save();
                     if (!$is_modo) {
                         $moderation = new ModerationEntity(null, $this->doorGets);
                         $moderation->setIdContent($isContent['id_content'])->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('blog')->setAction('edit')->setLangue($lgActuel)->setDateCreation(time())->save();
                         $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                         $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
                     } else {
                         $uri_module = $this->doorGets->Uri;
                         $id_content = $isContent['id_content'];
                         $this->doorGets->dbQL("\n                                DELETE FROM _moderation \n                                WHERE id_content = '{$id_content}' \n                                AND uri_module = '{$uri_module}'\n                                LIMIT 1000\n                            ");
                         $uriNotification = $dataContenu['active'] === '2' ? $moduleInfos['uri_notification_user_success'] : $moduleInfos['uri_notification_user_error'];
                         $this->doorGets->sendEmailNotificationToUser($uriNotification, $isContent['id_user']);
                     }
                     // Update Data
                     $this->doorGets->dbQU($isContent['id_content'], $dataContenu, $this->doorGets->Table);
                     $this->doorGets->dbQU($isContent['id'], $dataTraduction, $this->doorGets->Table . '_traduction');
                     //var_dump($dataTraduction);
                     $this->doorGets->_successJson($formData['success']);
                 } else {
                     $this->doorGets->_errorJson("Fields errors", $formData['error']);
                 }
             }
             break;
         case 'DELETE':
             if (!$is_modules_modo) {
                 $this->doorGets->_errorJson("Not authorized to delete");
             }
             if (!empty($this->isContent)) {
                 $this->doorGets->dbQD($isContent['id'], $this->doorGets->Table);
                 $this->doorGets->dbQD($isContent['id_content'], $this->doorGets->Table . '_traduction', 'id_content', '=', '');
                 $this->doorGets->dbQD($isContent['id_content'], $this->doorGets->Table . '_version', 'id_content', '=', '');
                 $this->doorGets->_successJson("{$id} deleted");
             }
             break;
     }
     return $out;
 }
Пример #5
0
 public function doAction()
 {
     $out = '';
     $this->doorGets->Table = '_dg_page';
     $User = $this->doorGets->user;
     // Init langue
     $lgActuel = $this->doorGets->getLangueTradution();
     $moduleInfos = $this->doorGets->moduleInfos($this->doorGets->Uri, $lgActuel);
     // Check if is content modo
     in_array($moduleInfos['id'], $User['liste_module_modo']) ? $is_modo = true : ($is_modo = false);
     // Check if is module modo
     in_array('module', $User['liste_module_interne']) && in_array('module_' . $moduleInfos['type'], $User['liste_module_interne']) ? $is_modules_modo = true : ($is_modules_modo = false);
     // check if user can edit content
     in_array($moduleInfos['id'], $User['liste_module_edit']) ? $user_can_edit = true : ($user_can_edit = false);
     // check if user can delete content
     in_array($moduleInfos['id'], $User['liste_module_delete']) ? $user_can_delete = true : ($user_can_delete = false);
     // Init url redirection
     $redirectUrl = './?controller=module' . $moduleInfos['type'] . '&uri=' . $this->doorGets->Uri . '&lg=' . $lgActuel;
     // get Content for edit / delete
     $params = $this->doorGets->Params();
     if (array_key_exists('uri', $params['GET'])) {
         $uri = $params['GET']['uri'];
         $isContent = $this->doorGets->dbQS($uri, $this->doorGets->Table, 'uri');
         if (!empty($isContent)) {
             if ($lgGroupe = @unserialize($isContent['groupe_traduction'])) {
                 $idLgGroupe = $lgGroupe[$lgActuel];
                 $isContentTraduction = $this->doorGets->dbQS($idLgGroupe, $this->doorGets->Table . '_traduction');
                 if (!empty($isContentTraduction)) {
                     $isContent = array_merge($isContent, $isContentTraduction);
                 }
             }
         }
     }
     $messageSuccess = $this->doorGets->__("Vos informations ont bien été mises à jour");
     $champsNonObligatoire = array('description', 'image', 'meta_titre', 'meta_description', 'meta_keys', 'sendto', 'id_disqus', 'meta_facebook_titre', 'meta_facebook_description', 'meta_facebook_image', 'meta_twitter_titre', 'meta_twitter_description', 'meta_twitter_image', 'meta_twitter_player');
     if (!empty($this->doorGets->Form->i)) {
         $this->doorGets->checkMode();
         // gestion des champs vide
         foreach ($this->doorGets->Form->i as $k => $v) {
             if (!in_array($k, $champsNonObligatoire) && empty($v)) {
                 $this->doorGets->Form->e[$this->doorGets->controllerNameNow() . '_edit_' . $k] = 'ok';
             }
         }
         if (empty($this->doorGets->Form->e)) {
             if (!array_key_exists('comments', $this->doorGets->Form->i)) {
                 $this->doorGets->Form->i['comments'] = $is_modo ? 0 : $isContent['comments'];
             }
             if (!array_key_exists('partage', $this->doorGets->Form->i)) {
                 $this->doorGets->Form->i['partage'] = $is_modo ? 0 : $isContent['partage'];
             }
             if (!array_key_exists('mailsender', $this->doorGets->Form->i)) {
                 $this->doorGets->Form->i['mailsender'] = $is_modo ? 0 : $isContent['mailsender'];
             }
             if (!array_key_exists('facebook', $this->doorGets->Form->i)) {
                 $this->doorGets->Form->i['facebook'] = $is_modo ? 0 : $isContent['facebook'];
             }
             if (!array_key_exists('disqus', $this->doorGets->Form->i)) {
                 $this->doorGets->Form->i['disqus'] = $is_modo ? 0 : $isContent['disqus'];
             }
             if (!array_key_exists('in_rss', $this->doorGets->Form->i)) {
                 $this->doorGets->Form->i['in_rss'] = $is_modo ? 0 : $isContent['in_rss'];
             }
             if (!array_key_exists('active', $this->doorGets->Form->i)) {
                 $this->doorGets->Form->i['active'] = $isContent['active'];
             }
             $dataContenu['active'] = !$is_modo ? 3 : $this->doorGets->Form->i['active'];
             $dataContenu['comments'] = $this->doorGets->Form->i['comments'];
             $dataContenu['partage'] = $this->doorGets->Form->i['partage'];
             $dataContenu['mailsender'] = $this->doorGets->Form->i['mailsender'];
             $dataContenu['facebook'] = $this->doorGets->Form->i['facebook'];
             $dataContenu['disqus'] = $this->doorGets->Form->i['disqus'];
             $dataContenu['in_rss'] = $this->doorGets->Form->i['in_rss'];
             $dataTraduction = array('titre' => $this->doorGets->Form->i['titre'], 'article_tinymce' => $this->doorGets->Form->i['article_tinymce'], 'meta_titre' => $this->doorGets->Form->i['meta_titre'], 'meta_description' => $this->doorGets->Form->i['meta_description'], 'meta_keys' => $this->doorGets->Form->i['meta_keys'], 'meta_facebook_type' => $this->doorGets->Form->i['meta_facebook_type'], 'meta_facebook_titre' => $this->doorGets->Form->i['meta_facebook_titre'], 'meta_facebook_description' => $this->doorGets->Form->i['meta_facebook_description'], 'meta_facebook_image' => $this->doorGets->Form->i['meta_facebook_image'], 'meta_twitter_type' => $this->doorGets->Form->i['meta_twitter_type'], 'meta_twitter_titre' => $this->doorGets->Form->i['meta_twitter_titre'], 'meta_twitter_description' => $this->doorGets->Form->i['meta_twitter_description'], 'meta_twitter_image' => $this->doorGets->Form->i['meta_twitter_image'], 'meta_twitter_player' => $this->doorGets->Form->i['meta_twitter_player'], 'date_modification' => time());
             $dataVersion = $dataTraduction;
             $dataVersion['active'] = $dataContenu['active'];
             $this->saveLastContentVersion($isContent['id_content'], $dataVersion);
             // Update Data
             $this->doorGets->dbQU($isContent['id_content'], $dataContenu, $this->doorGets->Table);
             $this->doorGets->dbQU($isContent['id'], $dataTraduction, $this->doorGets->Table . '_traduction');
             $usersTracking = new UsersTrackEntity(null, $this->doorGets);
             $usersTracking->setIdSession(session_id())->setIpUser($_SERVER['REMOTE_ADDR'])->setUrlPage($_SERVER['REQUEST_URI'])->setUrlReferer($_SERVER['HTTP_REFERER'])->setIdUser($User['id'])->setTitle($dataTraduction['titre'])->setIdGroupe($User['groupe'])->setLangue($lgActuel)->setUriModule($this->doorGets->Uri)->setIdContent($isContent['id_content'])->setAction('edit')->setDate(time())->save();
             if (!$is_modo) {
                 $moderation = new ModerationEntity(null, $this->doorGets);
                 $moderation->setIdContent($isContent['id_content'])->setIdUser($User['id'])->setPseudo($User['pseudo'])->setIdGroupe($User['groupe'])->setUriModule($this->doorGets->Uri)->setTypeModule('page')->setAction('edit')->setLangue($lgActuel)->setDateCreation(time())->save();
                 $this->doorGets->sendEmailNotificationToGroupe($moduleInfos['uri_notification_moderator'], $moduleInfos['id']);
                 $messageSuccess = $this->doorGets->__("Votre contenu est en cours de modération");
             }
             $this->doorGets->successHeaderResponse($messageSuccess, $redirectUrl);
         }
         $this->doorGets->errorHeaderResponse($this->doorGets->__("Veuillez remplir correctement le formulaire"), $this->doorGets->Form->e);
     }
 }