示例#1
0
 public function generateHtml($revisionId, $widgetId, $data, $skin)
 {
     if (empty($data['serialized'])) {
         $data['serialized'] = '';
     } else {
         parse_str($data['serialized'], $data);
         $data['currentLink'] = $revisionId;
     }
     if (isset($data['data']['menu']['visibility'])) {
         if ($data['data']['menu']['visibility'] == 0) {
             return parent::generateHtml($revisionId, $widgetId, $data, $skin);
         } else {
             if (!empty($revisionId)) {
                 $revision = \Ip\Internal\Revision::getRevision($revisionId);
                 $pageId = $revision['pageId'];
             } else {
                 $pageId = $data['data']['menu']['pageId'];
             }
             if ($data['data']['menu']['visibility'] == 1) {
                 $parentId = Model::getParentId($data['data']['menu']['name']);
                 if ($parentId == $pageId) {
                     return parent::generateHtml($revisionId, $widgetId, $data, $skin);
                 } elseif (Model::checkIfChildren(array($parentId), $pageId)) {
                     return parent::generateHtml($revisionId, $widgetId, $data, $skin);
                 }
             } elseif ($data['data']['menu']['visibility'] == 2) {
                 if ($data['data']['menu']['pageId'] == $pageId) {
                     return parent::generateHtml($revisionId, $widgetId, $data, $skin);
                 }
             }
         }
     }
     return parent::generateHtml($revisionId, $widgetId, array(), $skin);
 }
示例#2
0
 public function save()
 {
     //$form = Helper::createForm($wget='');
     $form = Helper::createForm();
     $postData = ipRequest()->getPost();
     $errors = $form->validate($postData);
     if ($errors) {
         // Validation error
         $status = array('status' => 'error', 'errors' => $errors);
         return new \Ip\Response\Json($status);
     } else {
         // Success
         Model::save(ipRequest()->getPost('language_id'), ipRequest()->getPost('zone_name'), ipRequest()->getPost('user_id'), ipRequest()->getPost('name'), ipRequest()->getPost('email'), ipRequest()->getPost('link'), ipRequest()->getPost('text'), ipRequest()->getPost('ip'), ipRequest()->getPost('approved'), ipRequest()->getPost('session_id'), ipRequest()->getPost('verification_code'), ipRequest()->getPost('active'));
         //get page where this widget sits :)
         $postData = ipRequest()->getPost();
         $vcode = $postData['verification_code'];
         $fullWidgetRecord = \Ip\Internal\Content\Model::getWidgetRecord($postData['wgetId']);
         $pageTitle = '';
         if (isset($fullWidgetRecord['revisionId'])) {
             $revision = \Ip\Internal\Revision::getRevision($fullWidgetRecord['revisionId']);
             if (!empty($revision['pageId'])) {
                 $pageTitle = ipPage($revision['pageId'])->getTitle();
             }
         }
         $stamp = date(__('m/d/Y', 'Comments')) . __(', at ', 'Comments') . date('H:i:s');
         //sending email notification
         Helper::sendMailNotification(trim(ipRequest()->getPost('zone_name')), trim(ipRequest()->getPost('name')), $stamp, trim(ipRequest()->getPost('text')), trim(ipRequest()->getPost('email')), trim($pageTitle), trim($vcode));
         //$actionUrl = ipActionUrl(array('sa' => 'FormExample.showSuccessMessage'));
         //$status = array('redirectUrl' => $actionUrl);
         $status = array('status' => 'ok');
         //success
         return new \Ip\Response\Json($status);
     }
 }
示例#3
0
 public function pageNotFound()
 {
     $content = null;
     $error404Page = ipContent()->getPageByAlias('error404');
     if ($error404Page) {
         $revision = \Ip\Internal\Revision::getPublishedRevision($error404Page->getId());
         $content = \Ip\Internal\Content\Model::generateBlock('main', $revision['revisionId'], 0, 0);
     }
     return new \Ip\Response\PageNotFound($content);
 }
示例#4
0
 public function generateHtml($revisionId, $widgetId, $data, $skin)
 {
     if (empty($data['serialized'])) {
         $data['serialized'] = '';
     } else {
         parse_str($data['serialized'], $data);
         $data['currentLink'] = $revisionId;
     }
     if (empty($data['data']['blog']['place'])) {
         if (!empty($revisionId)) {
             $revision = \Ip\Internal\Revision::getRevision($revisionId);
             $pageId = $revision['pageId'];
         } else {
             $pageId = $data['data']['blog']['pageId'];
         }
     } else {
         $pageId = $data['data']['blog']['place'];
     }
     $data['sourcePageId'] = $pageId;
     //pagination
     if (!empty($data['data']['blog']['pagination']['limit'])) {
         $limit = $data['data']['blog']['pagination']['limit'];
     } else {
         $limit = 10;
     }
     if (!($page = ipRequest()->getQuery('page'))) {
         $page = 1;
     }
     if (!empty($data['data']['blog']['parent'])) {
         $parentCat = true;
     } else {
         $parentCat = false;
     }
     if (!empty($data['data']['blog']['image']['enable'])) {
         $data['imageOptions'] = array('type' => 'center', 'width' => $data['data']['blog']['image']['width'], 'height' => $data['data']['blog']['image']['height'], 'quality' => 80, 'forced' => false);
     }
     if (!empty($data['data']['blog']['options'])) {
         $options = $data['data']['blog']['options'];
     } else {
         $options = array('introlimit' => ipGetOption('AsdBlog.introLimit'), 'allowedtags' => ipGetOption('AsdBlog.allowedTags'), 'blockname' => ipGetOption('AsdBlog.blockName'));
     }
     $data['data']['pages'] = Model::getPages($pageId, $parentCat, array('limit' => $limit, 'page' => $page), $options);
     return parent::generateHtml($revisionId, $widgetId, $data, $skin);
 }
示例#5
0
 /**
  * If in management state and the last revision was published, create a new revision.
  * @ignore
  */
 public function getCurrentRevision()
 {
     if ($this->currentRevision !== null) {
         return $this->currentRevision;
     }
     if (!$this->currentPage) {
         return null;
     }
     $revision = null;
     $pageId = $this->currentPage->getId();
     if (ipRequest()->getQuery('_revision') && ipAdminId()) {
         $revisionId = ipRequest()->getQuery('_revision');
         $revision = \Ip\Internal\Revision::getRevision($revisionId);
         if ($revision['pageId'] != $pageId) {
             $revision = null;
         }
     }
     if (!$revision && ipIsManagementState()) {
         $revision = \Ip\Internal\Revision::getLastRevision($pageId);
         if ($revision['isPublished']) {
             $duplicatedId = \Ip\Internal\Revision::duplicateRevision($revision['revisionId']);
             $revision = \Ip\Internal\Revision::getRevision($duplicatedId);
         }
     }
     if (!$revision) {
         $revision = \Ip\Internal\Revision::getPublishedRevision($this->currentPage->getId());
     }
     $this->currentRevision = $revision;
     return $this->currentRevision;
 }
示例#6
0
 public function savePage()
 {
     if (!isset($_POST['revisionId'])) {
         return $this->_errorAnswer('Missing revisionId POST variable');
     }
     $revisionId = $_POST['revisionId'];
     $publish = !empty($_POST['publish']);
     $revision = \Ip\Internal\Revision::getRevision($revisionId);
     if (!$revision) {
         return $this->_errorAnswer('Can\'t find revision. RevisionId \'' . $revisionId . '\'');
     }
     if ($publish) {
         $pageOptions = array();
         $pageOptions['updatedAt'] = date("Y-m-d");
         $pageOptions['isVisible'] = 1;
         \Ip\Internal\Pages\Model::updatePageProperties($revision['pageId'], $pageOptions);
     }
     \Ip\Internal\Revision::publishRevision($revisionId);
     $newRevisionId = \Ip\Internal\Revision::duplicateRevision($revisionId);
     $page = new \Ip\Page($revision['pageId']);
     $data = array('status' => 'success', 'action' => '_savePageResponse', 'newRevisionId' => $newRevisionId, 'newRevisionUrl' => $page->getLink());
     return new \Ip\Response\Json($data);
 }
示例#7
0
 /**
  * @param int $revisionId
  * @return bool|string
  */
 public static function isRevisionModified($revisionId = null)
 {
     if ($revisionId === null) {
         $currentRevision = ipContent()->getCurrentRevision();
         $revisionId = $currentRevision['revisionId'];
     }
     $currentRevision = \Ip\Internal\Revision::getRevision($revisionId);
     if (!$currentRevision) {
         return false;
     }
     $pageId = $currentRevision['pageId'];
     $publishedRevision = \Ip\Internal\Revision::getPublishedRevision($pageId);
     if (!$publishedRevision) {
         return true;
     }
     if ($publishedRevision['revisionId'] == $currentRevision['revisionId']) {
         return false;
     }
     $currentFingerprint = self::revisionFingerprint($currentRevision['revisionId']);
     $publishedFingerprint = self::revisionFingerprint($publishedRevision['revisionId']);
     $modified = $currentFingerprint != $publishedFingerprint;
     return $modified;
 }
示例#8
0
 public static function ipAdminNavbarCenterElements($elements, $info)
 {
     if (ipContent()->getCurrentPage() && ipAdminPermission('Content')) {
         $revision = \Ip\ServiceLocator::content()->getCurrentRevision();
         $revisions = \Ip\Internal\Revision::getPageRevisions(ipContent()->getCurrentPage()->getId());
         $managementUrls = array();
         $currentPageLink = ipContent()->getCurrentPage()->getLink();
         foreach ($revisions as $value) {
             $managementUrls[] = $currentPageLink . '?_revision=' . $value['revisionId'];
         }
         $data = array('revisions' => $revisions, 'currentRevision' => $revision, 'managementUrls' => $managementUrls, 'isPublished' => !\Ip\Internal\Content\Model::isRevisionModified($revision['revisionId']) && ipContent()->getCurrentPage()->isVisible(), 'isVisible' => ipContent()->getCurrentPage()->isvisible());
         $elements[] = ipView('view/publishButton.php', $data);
     }
     return $elements;
 }
示例#9
0
 /**
  * @param \Ip\Form $form
  * @param array $postData
  * @param array $data
  */
 public function sendEmail($form, $postData, $data)
 {
     $contentData = array();
     $websiteName = ipGetOptionLang('Config.websiteTitle');
     $websiteEmail = ipGetOptionLang('Config.websiteEmail');
     $from = $websiteEmail;
     $files = array();
     foreach ($form->getFields() as $field) {
         if ($field->getType() == \Ip\Form\Field::TYPE_REGULAR) {
             if (!isset($postData[$field->getName()])) {
                 $postData[$field->getName()] = null;
             }
             $title = $field->getLabel();
             $value = $field->getValueAsString($postData, $field->getName());
             $contentData[] = array('fieldClass' => get_class($field), 'title' => $title, 'value' => $value);
         }
         if (get_class($field) == 'Ip\\Form\\Field\\Email') {
             $userFrom = $field->getValueAsString($postData, $field->getName());
             if ($userFrom != '') {
                 $from = $userFrom;
             }
         }
         if (get_class($field) == 'Ip\\Form\\Field\\File') {
             $uploadedFiles = $field->getFiles($postData, $field->getName());
             $originalNames = $field->originalFileNames($postData, $field->getName());
             foreach ($uploadedFiles as $key => $uploadedFile) {
                 $files[] = array($uploadedFile, $originalNames[$key]);
             }
         }
     }
     $content = ipView('helperView/email_content.php', array('values' => $contentData))->render();
     $emailData = array('content' => $content);
     $email = ipEmailTemplate($emailData);
     //get page where this widget sits :)
     $fullWidgetRecord = \Ip\Internal\Content\Model::getWidgetRecord($postData['widgetId']);
     $pageTitle = '';
     if (isset($fullWidgetRecord['revisionId'])) {
         $revision = \Ip\Internal\Revision::getRevision($fullWidgetRecord['revisionId']);
         if (!empty($revision['pageId'])) {
             $pageTitle = ipPage($revision['pageId'])->getTitle();
         }
     }
     $subject = $websiteName . ': ' . $pageTitle;
     $emailQueue = new \Ip\Internal\Email\Module();
     if (!empty($data['sendTo']) && $data['sendTo'] == 'custom') {
         if (empty($data['emails'])) {
             $data['emails'] = '';
         }
         $emailList = preg_split("/[\\s,]+/", $data['emails']);
     } else {
         $emailList = array($websiteEmail);
     }
     foreach ($emailList as $listItem) {
         $emailQueue->addEmail($from, '', $listItem, '', $subject, $email, false, true, $files);
     }
     $emailQueue->send();
 }
示例#10
0
 /**
  * @param int $sourceId
  * @param int $targetId
  */
 private static function _copyWidgets($sourceId, $targetId)
 {
     $oldRevision = \Ip\Internal\Revision::getPublishedRevision($sourceId);
     \Ip\Internal\Revision::duplicateRevision($oldRevision['revisionId'], $targetId, 1);
 }
示例#11
0
 public static function ipCronExecute($info)
 {
     if ($info['firstTimeThisDay'] || $info['test']) {
         if (ipGetOption('Config.removeOldRevisions', 0)) {
             \Ip\Internal\Revision::removeOldRevisions(ipGetOption('Config.removeOldRevisionsDays', 720));
         }
     }
 }