|
0 Всего найдено: 1
miniiduran
Сообщение
31/01/2010 13:11
Копия темы
0
Перенос сложного самописного сайта на Joomla 1.5 Очень разумно осуществлять такой перевод постепенно и иметь на любом этапе проекта работающую версию сайта. Этого трудно достичь, если создать новый сайт на Joomla, а потом пытаться переносить туда кусками текущий программный код самописного движка. Однако можно пойти другим путём: оставить текущий код сайта работающим и встроить в него Joomla 1.5 в качестве дополнительной библиотеки и админки. Таким образом, в любой момент времени будет работать почти 100% функциональности текущего сайта, и в то же время мы сможем постепенно замещать самописный программный код стандартным кодом Joomla. Дополнительно мы сразу получим работающую админку Joomla, которой постепенно будем передавать функции управления текущим сайтом. Также мы сможем устанавливать в этой админке стандартные расширения Joomla: компоненты, модули, плагины и подключать их к нашему самописному сайту. Как встроить Joomla 1.5 в самописный движок? Ниже инструкция в общих чертах. В каждом проекте есть свои тонкости, инструкция лишь показывает принцип интеграции, но бездумное копирование один-в-один вряд ли приведёт к успеху. 1) Находим индексный файл самописного движка и добавляем там код для запуска Joomla: define( '_JEXEC', 1 ); define('JPATH_BASE', dirname(__FILE__) ); define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); $mainframe =& JFactory::getApplication('site'); $mainframe->initialise(); 2) Что делать, если у самописного движка нет единого индексного файла? Это нестрашно, можно создать его настройкой Apache и mod_rewrite: DirectoryIndex index.php RewriteEngine On RewriteBase / RewriteRule ^(photo|photoadmin)/(.+\.php)$ index.php?j15-path=$1/$2 [QSA,L] $path = JRequest::getVar ("j15-path", null); if ($path) { require_once (JPATH_ROOT . DS . $path); } 3) В нужном месте индексного файла даём команды для запуска системных плагинов Joomla: $mainframe->triggerEvent('onAfterInitialise'); $mainframe->triggerEvent('onAfterRoute'); $mainframe->triggerEvent('onAfterDispatch'); 4) Как отобразить модуль Joomla на странице самописного сайта? $document = &JFactory::getDocument(); $renderer = $document->loadRenderer('module'); $params = new JParameter(''); $contents = ''; foreach (JModuleHelper::getModules($position) as $mod) { $contents .= $renderer->render($mod, $params); } echo $contents; 5) Как выполнить контентный плагин Joomla для статьи самописного сайта? JPluginHelper::importPlugin('content'); $params = new JParameter(''); $dispatcher =& JDispatcher::getInstance(); $article =& JTable::getInstance('content'); $article->text = $text; $dispatcher->trigger('onPrepareContent', array(&$article, &$params, 0)); echo $article->text; 6) Как отобразить компонент Joomla на странице самописного сайта? $document = &JFactory::getDocument(); $renderer = $document->loadRenderer('component'); $params = new JParameter(''); $contents = $renderer->render("com_content", $params); echo $contents; |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |