public function init() { // регистрация автолоадера joosAutoloader::init(); // сначала инициализация базовой конфигурации joosConfig::init(); // отправка заголовков joosDocument::header(); return $this; }
/** * Вывод древовидного представления комментариев * * @var $obj Объект комментирования */ public function load_comments_tree($obj) { joosDocument::instance()->add_js_file(JPATH_SITE_APP . '/components/comments/media/js/comments.js'); $obj_option = get_class($obj); $obj_id = $obj->id; $comments_list = modelComments::get_comments($obj_option, $obj_id); // список текущих комментариев self::render_lists($comments_list, $obj); // форма добавления нового комментария self::render_form($obj_option, $obj_id); }
private static function save() { joosCSRF::check_code(1); /** * * Тут код выполнения задачи * */ joosDocument::instance()->set_page_title('Блоги')->add_meta_tag('description', 'Блоги'); joosBreadcrumbs::instance()->add('Блоги'); return array(); }
public function view() { $slug = self::$param['page_name']; $page = new modelPages(); $page->slug = $slug; $page->find() ? null : joosPages::page404(); joosDocument::instance()->set_page_title($page->title)->add_meta_tag('description', $page->meta_description)->add_meta_tag('keywords', $page->meta_keywords)->seo_tag('yandex-vf1', md5(time()))->seo_tag('rating', false); // тэг rating - скрываем joosBreadcrumbs::instance()->add($page->title); // если для текущего действия аквирован счетчик хитов - то обновим его joosHit::add('pages', $page->id, 'view'); // передаём параметры записи и категории в которой находится запись для оформления return array('page' => $page); }
/** * Автоматическое определение и запуск метода действия * @todo добавить сюда события events ДО, ПОСЛЕ и ВМЕСТО выполнения задачи контроллера */ public function run() { $router = $this->router = joosCore::instance()->get_router(); $controller_class_name = 'actions' . ucfirst($router->param('controller')); $controller = new $controller_class_name(); $action = $router->param('action'); JDEBUG ? joosDebug::add($controller_class_name . '->' . $action) : null; if (method_exists($controller_class_name, $action)) { $results = $controller->{$action}(); $page_body = $this->views($results); // главное содержимое - стек вывода компонента - mainbody joosDocument::set_body($page_body); return $this; } else { // в контроллере нет запрашиваемого метода joosPages::page404('Метод не найден'); } }
public static function display($name, $content, $hiddenField, $width, $height, $col, $row, $params) { /** * tiny: только кнопки изменения стиля текста (жирный, наклонный, подчеркнутый, перечеркнутый, subscript, superscript) * compact: тоже, что и tiny + сохранить, отмена/повтор, выравнивание, списки, ссылки, полноэкранный режим * normal: compact + копировать/вставить, цвета, отступы, элементы, изображения * complete: normal + форматирование, размер и стиль шрифта * maxi: complete + таблицы */ $toolbar = isset($params['toolbar']) ? $params['toolbar'] : 'maxi'; $code_on_ready = <<<EOD elRTE.prototype.filter.prototype.replaceTags = false; \$().ready(function() { \$('#{$name}').elrte({ cssClass : 'el-rte', lang : 'ru', height : '{$height}', width: '{$width}', toolbar : '{$toolbar}', fmAllow: true, fmOpen: function(callback) { \$('<div id="finder" />').elfinder({ url : '/ajax.index.php?option=finder', lang : 'ru', view : 'icons', dialog : { width : 900, modal : true, title : 'elFinder - менеджер файлов' }, closeOnEditorCallback : true, editorCallback : callback, places: '', placesFirst : false }) } //cssfiles : ['css/elrte-inner.css'] }); }); EOD; joosDocument::instance()->add_js_code($code_on_ready); return '<div id="finder"></div><textarea name="' . $hiddenField . '" id="' . $hiddenField . '" cols="' . $col . '" rows="' . $row . '" style="width:' . $width . ';height:' . $height . ';">' . $content . '</textarea>'; }
public static function dispatch() { $id = joosRequest::int('id', 0); $page = joosRequest::int('page', false, $_GET); $page = $page ? $page : 0; $id = $id ? $id : $page; $task = joosRequest::param('task', 'index'); $option = joosRequest::param('option', 'site'); $class = 'actionsAdmin' . joosInflector::camelize($option); self::$active_actions_class = $class; self::$option = $option; self::$task = $task; // подключаем js код библиотеки joosDocument::instance()->add_js_file(JPATH_SITE . '/core/libraries/autoadmin/media/js/autoadmin.js'); !JDEBUG ?: joosDebug::add('joosAutoadmin::dispatch() - ' . $class . '::' . $task); // в контроллере можно прописать общие действия необходимые при любых действиях контроллера - они будут вызваны первыми, например подклбчение можделей, скриптов и т.д. method_exists($class, 'action_before') ? call_user_func_array($class . '::action_before', array(self::$task)) : null; $events_name = sprintf('controller.admin.*'); joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name, $class, $task) : null; $events_name = sprintf('controller.admin.%s.*', $class); joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name, $task) : null; $events_name = sprintf('controller.admin.%s.%s', $class, $task); joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name) : null; if (method_exists($class, $task)) { $results = call_user_func_array($class . '::' . $task, array($option, $id, $page, $task)); method_exists($class, 'action_after') ? call_user_func_array($class . '::action_after', array(self::$task)) : null; } elseif (method_exists($class, 'index')) { $results = call_user_func_array($class . '::index', array($option, $id, $page, $task)); method_exists($class, 'action_after') ? call_user_func_array($class . '::action_after', array(self::$task)) : null; } else { throw new joosException('Контроллер :controller, либо требуемая задача :task не найдены.', array(':controller' => $class, ':task' => $task)); } if (is_array($results)) { self::views($results, self::$option, self::$task); } elseif (is_string($results)) { echo $results; } // если контроллер содержит метод вызываемый после окончания работы основного контроллера, то он тоже вызовется method_exists($class, 'action_after') ? call_user_func_array($class . '::action_after', array()) : null; }
public static function add_to_title() { joosDocument::instance()->set_page_title(strip_tags(implode(' › ', self::$breadcrumbs))); }
<?php } ?> <div class="content"> <?php echo joosDocument::body(); ?> </div> <hr> <footer> <p>© Company 2012</p> </footer> </div> <div id="modal-output"></div> <?php joosDocument::instance()->add_js_file(JPATH_SITE . '/media/js/jquery.js', array('first' => true)); if (joosConfig::get('debug_template')) { joosDocument::instance()->add_js_file(JTEMPLATE_LIVE . '/js/lib/less-1.3.0.min.js'); } joosDocument::instance()->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-transition.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-alert.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-modal.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-dropdown.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-scrollspy.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-tab.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-tooltip.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-popover.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-button.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-collapse.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-carousel.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-typeahead.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-typeahead.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/bootstrap/bootstrap-datepicker.js')->add_js_file(JTEMPLATE_LIVE . '/js/plugins/jquery.plugins/jquery.noty.js')->add_js_file(JTEMPLATE_LIVE . '/js/app.js'); echo joosDocument::javascript(); ?> </body> </html>
public static function init() { joosDocument::instance()->add_js_file(JPATH_SITE . '/media/js/jquery.plugins/jquery.insertatcaret.js'); }
/** * @package Core * @copyright Авторские права (C) 2007-2010 Joostina team. Все права защищены. * @license Лицензия http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, или help/license.php * Joostina! - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL * Для получения информации о используемых расширениях и замечаний об авторском праве, смотрите файл help/copyright.php. */ // Установка флага родительского файла define('_JOOS_CORE', 1); // корень файлов панели управления define('JPATH_BASE_ADMIN', __DIR__); require_once dirname(JPATH_BASE_ADMIN) . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'joostina.php'; require_once JPATH_BASE . DS . 'app' . DS . 'bootstrap.php'; require_once JPATH_BASE . DS . 'core' . DS . 'admin.root.php'; joosDocument::header(); // работа с сессиями начинается до создания главного объекта взаимодействия с ядром joosCoreAdmin::start(); // стартуем пользователя joosCoreAdmin::init_user(); if (helperAcl::is_allowed('admin_panel::use')) { echo json_encode(array('code' => 500, 'message' => 'Ошибка прав доступа')); die; } $option = joosRequest::param('option'); ob_start(); // файл обработки Ajax запросов конкретного компонента $file_com = JPATH_BASE . DS . 'app' . DS . 'components' . DS . $option . DS . 'controller.admin.' . $option . '.ajax.php'; // проверяем, какой файл необходимо подключить, данные берутся из пришедшего GET запроса if (file_exists($file_com)) { include_once $file_com;
public function action_before() { parent::action_before(); joosDocument::instance()->add_js_file(JPATH_SITE . '/app/components/news/media/js/admin.news.js'); }
<?php /** * @package Joostina * @copyright Авторские права (C) 2008-2009 Joostina team. Все права защищены. * @license Лицензия http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, или help/license.php * Joostina! - свободное программное обеспечение распространяемое по условиям лицензии GNU/GPL * Для получения информации о используемых расширениях и замечаний об авторском праве, смотрите файл help/copyright.php. */ // запрет прямого доступа defined('_JOOS_CORE') or exit; joosDocument::instance()->add_css(JPATH_SITE . '/components/sitemap/media/css/sitemap.css'); ?> <h1>Карта сайта</h1><?php foreach ($map->nodes as $space => $nodes) { echo '<div class="mapspace space-' . $space . '">'; echo '<ul>'; foreach ($nodes as $node) { echo '<li>' . $node . '</li>'; } echo '</ul>'; echo '</div>'; }
$sysstart = microtime(true); // корень файлов панели управления define('JPATH_BASE_ADMIN', __DIR__); require_once dirname(JPATH_BASE_ADMIN) . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'joostina.php'; require_once JPATH_BASE . DS . 'core' . DS . 'admin.root.php'; joosDocument::header(); // работа с сессиями начинается до создания главного объекта взаимодействия с ядром joosCoreAdmin::start(); // стартуем пользователя joosCoreAdmin::init_user(); if (helperAcl::is_allowed('admin_panel::init') !== true) { joosRoute::redirect(JPATH_SITE_ADMIN, 'В доступе отказано'); } ob_start(); joosAutoadmin::dispatch(); joosDocument::set_body(ob_get_clean()); ob_start(); // начало вывода html // загрузка файла шаблона $template_file = JPATH_BASE . DS . 'app' . DS . 'templates' . DS . JTEMPLATE_ADMIN . DS . 'index.php'; if (file_exists($template_file)) { require_once $template_file; } else { throw new joosException('Файл index.php шаблона :template_name не найден', array(':template_name' => JTEMPLATE_ADMIN)); } // подсчет времени генерации страницы if (JDEBUG) { if (defined('_MEM_USAGE_START')) { $mem_usage = joosFile::convert_size(memory_get_usage() - _MEM_USAGE_START); } else { $mem_usage = 'недоступно';
<?php defined('_JOOS_CORE') or exit; joosDocument::instance()->add_js_file(JPATH_SITE_APP . '/vendors/extra/basket/media/js/basket.js'); ?> <article class="post"> <h1>Товар трам-пам-пам</h1> <div style="text-align: center"><img src="/app/vendors/extra/basket/media/images/nikon.jpg" /></div> <div class="post-text"> <p>Professionally reintermediate premium systems with sticky mindshare. Progressively build dynamic web-readiness before excellent meta-services. Quickly foster prospective deliverables with high standards in models. Completely productivate wireless users vis-a-vis diverse partnerships. Efficiently deliver orthogonal web services via transparent e-markets.</p> <p>Competently aggregate client-centered architectures without 24/365 information. Enthusiastically fabricate focused process improvements without pandemic manufactured products. Competently reinvent interactive bandwidth for visionary technology. Distinctively incentivize efficient intellectual capital through business "outside the box" thinking. Uniquely expedite premium opportunities through end-to-end sources.</p> <p>Assertively initiate timely results via multidisciplinary applications. Dramatically enable distinctive leadership skills rather than premier value. Seamlessly pontificate professional resources before scalable growth strategies. Continually pursue reliable collaboration and idea-sharing before timely total linkage. Credibly revolutionize leveraged process improvements vis-a-vis installed base applications.</p> <p>Uniquely benchmark performance.</p> </div> <a class="btn btn-success joosbasket" data-obj="modelBlogs" data-obj-id="12" href="#"><i class="icon-shopping-cart icon-white"></i> В корзину</a> </article>
public static function init() { joosDocument::instance()->add_css(JPATH_SITE . '/plugins/editors/jwysiwyg/media/css/jquery.wysiwyg.css')->add_js_file(JPATH_SITE . '/plugins/editors/jwysiwyg/media/js/jquery.wysiwyg.js'); }
public function register() { joosDocument::instance()->set_page_title('Регистрация'); joosDocument::$config['seotag'] = false; $validator = UserValidations::registration(); if ($_POST) { self::save_register($validator); } else { return array('user' => new modelUsers(), 'validator' => $validator); } }
public static function head() { $jdocument = self::instance(); $meta = joosDocument::get_data('meta'); $n = count($meta); $description = $keywords = false; for ($i = 0; $i < $n; $i++) { if ($meta[$i][0] == 'keywords') { $keywords = $meta[$i][1]; } else { if ($meta[$i][0] == 'description') { $description = $meta[$i][1]; } } } $description ? null : $jdocument->append_meta_tag('description', joosConfig::get2('info', 'description')); $keywords ? null : $jdocument->append_meta_tag('keywords', joosConfig::get2('info', 'keywords')); if (joosDocument::$config['seotag'] == true) { foreach (self::$seotag as $key => $value) { $value != false ? $jdocument->add_meta_tag($key, $value) : null; } } echo $jdocument->get_head(); // favourites icon if (self::$config['favicon'] == true) { $icon = JPATH_SITE . '/media/favicon.ico?v=2'; echo "\t" . '<link rel="shortcut icon" href="' . $icon . '" />' . "\n\t"; } }
<?php joosModuleAdmin::load_by_name('flash_message'); ?> <div id="component"><?php echo joosDocument::get_body(); ?> </div> </div> <script type="text/javascript"> var _live_site = '<?php echo JPATH_SITE; ?> '; var _option = '<?php echo joosRequest::param('option'); ?> '; var _cur_template = '<?php echo JTEMPLATE_ADMIN; ?> '; </script> <?php echo joosDocument::footer_data(); ?> </body> </html>
public function action_before() { joosDocument::instance()->add_css(JPATH_SITE . '/media/js/jquery.plugins/syntax/jquery.snippet.css')->add_js_file(JPATH_SITE . '/media/js/jquery.plugins/syntax/jquery.snippet.js')->add_js_file(JPATH_SITE . '/app/components/coder/media/js/coder.js'); joosAdminView::set_param('component_title', 'Кодер'); }