означает что плагин one активирован т.к. главный класс существует. Но это не очень красиво. Просто, быстро, эффективно, но «не в духе лс».
2. код:
$plugins = $this->Plugin_GetActivePlugins();
if (in_array('one', $plugins)) {
...;
}
делает тоже самое, но читает xml файлы каждого плагина, получает всю информацию о них (автора, описание и т.п.). В духе лс, но в данной ситуации получает много лишней информации. Долго, затратно по ресурсам.
возвращает только коды активных плагинов. В духе лс, просто, быстро и без обращения к фс (без чтения xml файлов). Данный список уже содержится в ядре и поэтому ресурсы не тратятся.
Для вашей простой проверки подойдет 1 или 3 вариант. Оба быстрые и рабочие, но последний более красив и логичен для движка.
Ожидаю, что в $aResult окажется «ассоциативный» массив, т.е. {$aResult.foo} вернет «bar». Но в результате возвращается массив вида array(0=>'A', 1=>'r', 1=>'r', 1=>'a', 1=>'y', 1=>'(' и так далее.
Хук возвращает строку. В пхп 5.4 вы бы увидели нотис из-за этого.
Помогите, пожалуйста, как корректно передать массив из хука в шаблон?
Зависит от задачи:
1. Сделать просто добавление переменной в шаблон:
$this->Viewer_Assign('VarName', $mData);
и в шаблоне доступно $VarName
или
2. Создать локальную копию вьюера, в неё передать все переменные, обработать шаблон и вернуть хтмл представление для вставки в месте хука:
<?php
//===============================================================
class HookCountInvite extends Hook{
//===============================================================
public function RegisterHook(){
$this->AddHook('init_action','InitAction',__CLASS__,1000);
}
//===============================================================
public function InitAction(){
if($oUserCurrent=$this->User_GetUserCurrent()){
$this->Viewer_Assign('iCountInviteAvailable',$this->User_GetCountInviteAvailable($oUserCurrent));
}
}
//===============================================================
}
?>
Судя по комментариям у многих нет четкого понимания, что это и как это.
Функционал аналогичен текущему на внутренних проектах LS, а именно:
Авторизация работает между LS сайтами одного владельца
У каждого сайта своя БД
Создается дополнительный сайт — passport, со своей единой БД пользователей
Регистрация/авторизация происходит исключительно на passport, далее редирект на нужный сайт
При регистрации создается аккаунт в единой БД и при первом заходе на другой сайт происходит автоматическая регистрация аккаунта на этом сайте
Далее при повторной авторизации на passport происходит автоматическая авторизация на всех сайтах, где есть аккаунт
Логины и емайлы на всех сайтах будут совпадать
Идеальный вариант — запуск всех сайтов сразу с passport'ом
Объединение в одну авторизацию уже действующих разных сайтов влечет за собой процесс объединения БД. Этот процесс не тривиальный и в большинстве случаев потребует ручной работы.
Не пишите вызовы класса Config в конфиге (как в вашем примере)
С какого-то плагина было взято, как пример.
Можно, это обычный пхп файл, на лучше избегать сложных конструкций (это все таки настройка, а не код).
Но ещё смотря какое значение вы будет сравнивать...
Все без сложных конструкций и в одном конфиге. Я уже и не помню зачем мне это надо было, помню вопрос такой был. Хотя… Можно даже и к этому плагину применить:
<?php
//===============================================================
class HookStat extends Hook{
//===============================================================
public function RegisterHook(){
$this->AddHook('init_action','InitAction',__CLASS__,1000);
}
//===============================================================
public function InitAction(){
$this->Viewer_Assign('aStat',$this->User_GetStatUsers());
}
//===============================================================
}
?>
означает что плагин one активирован т.к. главный класс существует. Но это не очень красиво. Просто, быстро, эффективно, но «не в духе лс».
2. код:
делает тоже самое, но читает xml файлы каждого плагина, получает всю информацию о них (автора, описание и т.п.). В духе лс, но в данной ситуации получает много лишней информации. Долго, затратно по ресурсам.
3. код:
возвращает только коды активных плагинов. В духе лс, просто, быстро и без обращения к фс (без чтения xml файлов). Данный список уже содержится в ядре и поэтому ресурсы не тратятся.
Для вашей простой проверки подойдет 1 или 3 вариант. Оба быстрые и рабочие, но последний более красив и логичен для движка.
Зависит от задачи:
1. Сделать просто добавление переменной в шаблон:
и в шаблоне доступно $VarName
или
2. Создать локальную копию вьюера, в неё передать все переменные, обработать шаблон и вернуть хтмл представление для вставки в месте хука:
и на месте хука будет добавлен хтмл код шаблона folder/file.tpl папки шаблонов плагина
Закоментировать
www.php.net/manual/en/function.soundex.php
www.php.net/manual/ru/function.metaphone.php
www.php.net/manual/ru/function.similar-text.php
Ну или прямо в мускул:
dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex
\classes\hooks\HookCountInvite.class.php
Функционал аналогичен текущему на внутренних проектах LS, а именно:
Бесплатный плагин «TOP пользователей»
в файле classes/blocks/BlockUsertop.class.php изменяем
меняем на
в файле config/config.php настраиваем
С какого-то плагина было взято, как пример.
Все без сложных конструкций и в одном конфиге. Я уже и не помню зачем мне это надо было, помню вопрос такой был. Хотя… Можно даже и к этому плагину применить:
В общем, спасибо еще раз!
используйте Config::Get вместо cfg и переменной oConfig
Было бы еще круче совместить микроразметку с определенными «полями». Скажем название продукта, цена, описание, ш*д*в… многое для всех подходит.
Поисковики очень любят хорошо размеченные карточки товаров.
Планируется ли внедрение микроразметки?
строка 722
$aFilter['order']=array('t.topic_rating desc','t.topic_id desc');
заменить на
$aFilter['order']=array('t.topic_count_vote_up desc','t.topic_id desc');
public function GetTopicsNew
замените фильтр на
Для отображения в новых только новых с рейтингом ниже порога главной
после 103 строки добавил
в файле /application/frontend/skin/developer/actions/ActionBlog/add.tpl
в строке 43 поменял тип alphanum на translit
где default.gif — дефолтное изображение в папке images шаблона.