Я к тому что на уровне смарти тебе всё равно придется узнавать к какому классу у тебя принадлежит oTopic в foreach:)
По этому нужен будет метод, который возвращает название класса объекта. Кстати, уже есть TopicType, я про него забыл. Тока его надо расширить в бд, чего-нибудь сделав с ENUM…
А данные в новые классы грузить надо через хуки… я не совсем понимаю, как у тебя это будет происходит.
1. Вот в topic.class.php у нас появился массив id.
2. Мы подтянули к нему данные для объекта топик в цикле
3. Мы берем эту коллекцию топиков в экшене или блоке и выводим в смарти.
На каком этапе у нас будет создаваться дочерний класс через хук? На этапе 2, в цикле?
Не мог бы ты config.php приспособить для запуска через шел?
Во-первых там нет массива $_SERVER
Так что можно вставить
if (isset($_SERVER['HTTP_HOST']))
define('DIR_WEB_ROOT','http://'.$_SERVER['HTTP_HOST']); // полный WEB адрес сайта
else
define('DIR_WEB_ROOT',""); // тут он нам не нужен
Либо убрать вообще DIR_WEB_ROOT при запуске из консоли
А дальше вместо
$_SERVER['DOCUMENT_ROOT']
Ставить
if (isset($sDirRoot))
define('DIR_SERVER_ROOT',$sDirRoot); // полный путь до сайта в файловой системе
else
define('DIR_SERVER_ROOT',$_SERVER['DOCUMENT_ROOT']."/ls-video"); // полный путь до сайта в файловой системе
с учетом того, что $sDirRoot мы устанавливаем в запускаемом файле…
Либо нужно делить конфигурацию путей и другие константы на разные конфиги…
Макс, а можешь внести некоторые изменения касательно класса oTopic?
Большая часть модулей может быть в виде топиков (топик-видео, топик-холивар, топик-фотоколлаж итп.
Соответственно, чтобы можно было добавлять свои виды топика без изменений, нам нужно:
1. создать сеттер и геттер объекта (например, хуком привязываем фотоколлаж к топику:
2. Потом в списке топиков (в шаблоне) мы можем забирать каждый объект:
{if $oTopic->getExternalDataType()}
{assign var=sIncludeType value=$oTopic->getExternalDataType()}
{assign var=sIncludeFile value="topic."|cat $sIncludeType|cat ".tpl"}
{include file=$sIncludeFile}
{/if}
Соответственно, подружаем модульный шаблон. На странице топика можно вставить такой же код.
Вот собственно и всё..
Хотя и можно свой домен привязать
осталось там же конфиги подгружать по названию модуля, а в LoadConfig() грузить тока autoLoad
Макс, ты тут? чего думаешь?:)
ning и vsevteme.ru
А если нужно кастомайзное решение на приличное кол-во народа, то livestreet идеален.
Правда, нужно составлять мануалы ко всему.
По этому нужен будет метод, который возвращает название класса объекта. Кстати, уже есть TopicType, я про него забыл. Тока его надо расширить в бд, чего-нибудь сделав с ENUM…
А данные в новые классы грузить надо через хуки… я не совсем понимаю, как у тебя это будет происходит.
1. Вот в topic.class.php у нас появился массив id.
2. Мы подтянули к нему данные для объекта топик в цикле
3. Мы берем эту коллекцию топиков в экшене или блоке и выводим в смарти.
На каком этапе у нас будет создаваться дочерний класс через хук? На этапе 2, в цикле?
Не мог бы ты config.php приспособить для запуска через шел?
Во-первых там нет массива $_SERVER
Так что можно вставить
Либо убрать вообще DIR_WEB_ROOT при запуске из консоли
А дальше вместо
Ставить
с учетом того, что $sDirRoot мы устанавливаем в запускаемом файле…
Либо нужно делить конфигурацию путей и другие константы на разные конфиги…
Большая часть модулей может быть в виде топиков (топик-видео, топик-холивар, топик-фотоколлаж итп.
Соответственно, чтобы можно было добавлять свои виды топика без изменений, нам нужно:
1. создать сеттер и геттер объекта (например, хуком привязываем фотоколлаж к топику:
2. Потом в списке топиков (в шаблоне) мы можем забирать каждый объект:
Чтобы вообще всё было понятно…
Готов пожертвовать 500 рублей записавшему.
Чего и всем девелоперам, вносящим изменение во Viewer желаю
Мне просто тоже как раз нужен такой функционал…