Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 1
miniiduran Сообщение 31/01/2010 13:11 Копия темы
Перенос сложного самописного сайта на 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;
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"