public static function pagePropertiesForm($pageId) { $page = new \Ip\Page($pageId); $form = new \Ip\Form(); $form->setEnvironment(\Ip\Form::ENVIRONMENT_ADMIN); $field = new \Ip\Form\Field\Hidden(array('name' => 'aa', 'value' => 'Pages.updatePage')); $form->addField($field); $field = new \Ip\Form\Field\Hidden(array('name' => 'pageId', 'value' => $pageId)); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'title', 'label' => __('Title', 'Ip-admin', false), 'value' => $page->getTitle())); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'urlPath', 'label' => __('URL path', 'Ip-admin', false), 'value' => $page->getUrlPath())); $form->addField($field); $field = new \Ip\Form\Field\Checkbox(array('name' => 'isVisible', 'label' => __('Visible', 'Ip-admin', false), 'value' => $page->isVisible())); $form->addField($field); $layouts = \Ip\Internal\Design\Service::getLayouts(); $options = array(); foreach ($layouts as $layout) { $options[] = array($layout, $layout); } $field = new \Ip\Form\Field\Select(array('name' => 'layout', 'label' => __('Layout', 'Ip-admin', false), 'values' => $options, 'value' => $page->getLayout())); $form->addField($field); $fieldset = new \Ip\Form\Fieldset(__('Seo', 'Ip-admin', false)); $form->addFieldset($fieldset); $field = new \Ip\Form\Field\Text(array('name' => 'metaTitle', 'label' => __('Meta title', 'Ip-admin', false), 'value' => $page->getMetaTitle())); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'keywords', 'label' => __('Keywords', 'Ip-admin', false), 'value' => $page->getKeywords())); $form->addField($field); $field = new \Ip\Form\Field\Textarea(array('name' => 'description', 'label' => __('Description', 'Ip-admin', false), 'value' => $page->getDescription())); $form->addField($field); $fieldset = new \Ip\Form\Fieldset(__('Other', 'Ip-admin', false)); $form->addFieldset($fieldset); $field = new \Ip\Form\Field\Url(array('name' => 'redirectUrl', 'label' => __('Redirect', 'Ip-admin', false), 'value' => $page->getRedirectUrl())); $form->addField($field); $field = new \Ip\Form\Field\Checkbox(array('name' => 'isDisabled', 'label' => __('Disabled', 'Ip-admin', false), 'value' => $page->isDisabled(), 'note' => __('Won\'t be clickable in menu if selected.', 'Ip-admin', false))); $form->addField($field); $field = new \Ip\Form\Field\Checkbox(array('name' => 'isSecured', 'label' => __('Secured', 'Ip-admin', false), 'value' => $page->isSecured(), 'note' => __('Won\'t be accessible to view even knowing the URL.', 'Ip-admin', false))); $form->addField($field); $field = new \Ip\Form\Field\Checkbox(array('name' => 'isBlank', 'label' => __('Open in new window', 'Ip-admin', false), 'value' => $page->isBlank())); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'alias', 'label' => __('Alias (used in code)', 'Ip-admin', false), 'value' => $page->getAlias())); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'createdAt', 'label' => __('Created on', 'Ip-admin', false), 'value' => date('Y-m-d', strtotime($page->getCreatedAt())))); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'updatedAt', 'label' => __('Updated on', 'Ip-admin', false), 'value' => date('Y-m-d', strtotime($page->getUpdatedAt())))); $form->addField($field); $form = ipFilter('ipPagePropertiesForm', $form, array('pageId' => $pageId)); return $form; }
/** * Get theme option. Options can be viewed or set using UI via Theme options dialog box. * @param $name * @param null $default * @return string */ public function getThemeOption($name, $default = null) { $themeService = \Ip\Internal\Design\Service::instance(); return $themeService->getThemeOption($name, $default); }
public function generateHead() { $cacheVersion = $this->getCacheVersion(); $cssFiles = $this->getCss(); $inDesignPreview = false; $data = ipRequest()->getRequest(); if (!empty($data['ipDesign']['pCfg']) || !empty($data['restoreDefault'])) { $inDesignPreview = \Ip\Internal\Design\ConfigModel::instance()->isInPreviewState(); } if ($inDesignPreview) { $themeAssetsUrl = ipThemeUrl(\Ip\Application::ASSETS_DIR . '/'); $designService = \Ip\Internal\Design\Service::instance(); $theme = ipConfig()->theme(); foreach ($cssFiles as &$file) { if (strpos($file['value'], $themeAssetsUrl) === 0) { $pathinfo = pathinfo($file['value']); if ($pathinfo['extension'] == 'css' && $themeAssetsUrl . $pathinfo['basename'] == $file['value']) { $themeFile = \Ip\Application::ASSETS_DIR . '/' . $pathinfo['filename'] . '.less'; if (file_exists(ipThemeFile($themeFile))) { $file['value'] = $designService->getRealTimeUrl($theme, $themeFile); $file['cacheFix'] = false; } } } if ($file['cacheFix']) { $file['value'] .= (strpos($file['value'], '?') !== false ? '&' : '?') . $cacheVersion; } } } else { foreach ($cssFiles as &$file) { if ($file['cacheFix']) { $file['value'] .= (strpos($file['value'], '?') !== false ? '&' : '?') . $cacheVersion; } } } $cssFiles = ipFilter('ipCss', $cssFiles); $response = ipResponse(); $data = array('title' => $response->getTitle(), 'keywords' => $response->getKeywords(), 'description' => $response->getDescription(), 'favicon' => $response->getFavicon(), 'charset' => $response->getCharset(), 'css' => $cssFiles); $head = ipView('Ip/Internal/Config/view/head.php', $data)->render(); $head = ipFilter('ipHead', $head); return $head; }
public function installTheme($themeName) { $themes = $this->getAvailableThemes(); if (!isset($themes[$themeName])) { throw new \Ip\Exception("Theme '" . esc($themeName) . "' does not exist."); } $theme = $themes[$themeName]; ipEvent('ipBeforeThemeInstalled', array('themeName' => $themeName)); \Ip\ServiceLocator::storage()->set('Ip', 'theme', $themeName); $service = Service::instance(); $service->saveWidgetOptions($theme); //write down default theme options $options = $theme->getOptionsAsArray(); foreach ($options as $option) { if (empty($option['name']) || empty($option['default'])) { continue; } $configModel = ConfigModel::instance(); $newValue = $configModel->getConfigValue($themeName, $option['name'], $option['default']); $configModel->setConfigValue($themeName, $option['name'], $newValue); } ipEvent('ipThemeInstalled', array('themeName' => $themeName)); }