public static function image($name, $settings = array()) { self::initSettings(); $settings += self::$settings; $content = self::loadCMS($name); if (empty($content)) { $content = array('class' => '', 'content' => !empty($settings['default']) ? $settings['default'] : '', 'url' => !empty($settings['defaultUrl']) ? $settings['defaultUrl'] : ''); } if (!empty($content['content']) && empty($content['url'])) { // Needs a file prefix for rendering. $handler = FileManager::getFileHandler(!empty($settings['file_handler']) ? $settings['file_handler'] : '', $settings['location']); $content['url'] = $handler->getWebURL($content['content']); } $forced_classes = !empty($settings['class']) ? $settings['class'] : ''; $added_classes = !empty($content['class']) ? $content['class'] : ''; if (!empty($settings['class'])) { $content['class'] .= ' ' . $settings['class']; } if (ClientUser::getInstance()->isAdmin()) { JS::add('/js/ckfinder/ckfinder.js', false); JS::set('token', Session::getInstance()->getToken()); // TODO: This will need extra slashes if using the File handler. JS::set('cms.basepath', $settings['location']); $fh = FileManager::getFileHandler($settings['file_handler'], $settings['location']); JS::set('cms.baseUrl', $fh->getWebURL('')); JS::startup('lightning.cms.initImage();'); return '<a href="" class="button" onclick="javascript:lightning.cms.editImage(\'' . $name . '\'); return false;">Change</a>' . '<a href="" class="button" onclick="javascript:lightning.cms.saveImage(\'' . $name . '\'); return false;">Save</a>' . '<input type="text" id="cms_' . $name . '_class" class="imagesCSS" name="' . $forced_classes . '" value="' . $added_classes . '" />' . '<img src="' . $content['url'] . '" id="cms_' . $name . '" class="' . $content['class'] . '" />'; } else { return '<img src="' . $content['url'] . '" class="' . $content['class'] . '" />'; } }
protected function getFileHandler($field) { return FileManager::getFileHandler(empty($field['file_handler']) ? '' : $field['file_handler'], $field['location']); }