+4.25
Рейтинг
11.40
Сила

Антон

Вопрос про грамотный роутинг!

Итак, я снова ударился в изучение уже новой версии LS и пишу некоторые плагины.
И вот возник такой вопрос по роутингу.
Буду очень благодарен за подсказки.

Например, в конфиге я указал такую конструкцию

Config::Set('router.page.countries', 'PluginGeo_ActionCountry');


таким образом все что будет в браузере набрано domain.com/countries/ пойдет в экшн ActionCountry
урлы будут вида /countries/Ukraine/ или /countries/Ukraine/Kiev/ и так далее.

Можно ли как-то прописать так, чтобы /countries/Ukraine/ шло в экш ActionCountry
а /countries/Ukraine/Kiev/ в ActionCity а /countries/Ukraine/Kiev/Hotels/ в ActionHotel и так далее.

И еще, в экшене ActionCountry я написал так

protected function RegisterEvent()
    {        
        $this->AddEventPreg('/^[\w\-\_]*$/i','actions');       
    }


но когда я пытаюсь сделать вот так:

print_r($this->GetParams())


то при адресах вида /countries/ и /countries/Belarus/ ничего не выдает, пустой массив т.е. НО зато когда есть урл вида /countries/Belarus/Minsk то в него попадает уже Minsk и так далее, а как мне собственно получить все вхождения в урл )

есть вариант такой

$sUrlFull=join('/',$this->GetParams());
        if ($sUrlFull!='') {
            $sUrlFull=$this->sCurrentEvent.'/'.$sUrlFull;
        } else {
            $sUrlFull=$this->sCurrentEvent;
        }


но он не очень красивый мне кажется.

Спасибо всем отозвавшимся )

Ajax запрос к экшину плагина.

Если я делаю запрос через $.load то получаю ответ. А функция ls.ajaxForm по тому же урлу (именно при изменении урла) выдает ошибку. Даю запрос на site.my/mainpreview/upload-mainpreview/ физически файл находится /plugins/mainpreview/classes/actions/ActionMain.class.php
Консоль дебага выдает следующее:
"parsererror" 
SyntaxError
arguments: Array[1]
get message: function () { [native code] }
get stack: function () { [native code] }
set message: function () { [native code] }
set stack: function () { [native code] }
type: "unexpected_token"
__proto__: Error
arguments: undefined
constructor: function SyntaxError() { [native code] }
name: "SyntaxError"
stack: undefined
type: undefined
__proto__: SetUpError.d

плагин FirePHP для разработчиков плагинов



Решил поделиться маленьким плагином для облегчения разработчикам жизни и помощи в отладке плагинов. Плагин может заменить стандартный вывод var_dump или HackerConsole.

позволяет выводить в любом месте лог php переменной например так:
$var = array('10','20');
PluginFirephp::GetLog($var);


Перед использованием плагина необходимо установить дополнения Firefox:
1. Firebug
2. FirePHP (https://addons.mozilla.org/ru/firefox/addon/firephp/)

UPD:
Для Chrome необходимые расширения можно найти тут:
chrome.google.com/webstore/search/firephp?hl=ru
gran тестировал расширение FeverPHP, оно работает.


Читать дальше →

По поводу сбора конфиденциальной информации LS.

Для начала преамбула.
Мы начали разработку сайта на livestreet. Работаем с этой CMS в первый раз. И по этому мы начали изучать саму CMS. Второй день изучения и возникло несколько неприятных моментов в плане безопасности движка и самого сайта.

Читать дальше →

Боевой курс новичка или "всем новеньким - сюда", часть 3 для ЛС 1.0

Я считаю что мы можем снова дружной волной взаимопомощи ударить по насущным вопросам и проблемам с ЛС 1.0 для того чтобы помочь жаждущим. Предлагаю действовать так же как мы составили предыдущие два ФАКа: каждый пишет в комментарии лаконичный вопрос-ответ на определенную тему касающуюся ЛС 1.0 и потом этот текст я перенесу в топик.

Читать дальше →

Разработка плагина (модуля) для livestreet 1.0

Доброго времени.
Сверстал шаблон, адаптировал под живую улицу версии 1.
осталось мелочь… написать плагин
посмотрел
тут
тут
тут
тут

Читать дальше →

Инвайты в 1.0?

Привет, никак не пойму как в 1.0 сгенерировать инвайты? В 0.51 спомощью плагина AceAdminPannel это делал в site.ru/admin/users/invites/ начал потихоньку осваивать 1.0 но застопорился на этой проблеме. В довесок не могли бы вы подсказать как в 1.0. сделать доступным генерацию инвайтов определённым юзерам, если такое возможно? Использую стандартный шаблон.

P.S. искал, но про 1.0 с инвайтами ничего не нашёл.

Update:


Чтобы включить инайты в 1.0 — отредактируйте фаил /config/config.local.php нужно изменить в строке $config['general']['reg']['invite'] = false;

значение false на true. После этого станет доступно меню инвайты в настройках профиля админа и будет иметь адрес site.ru/settings/invite/

Подскажите пожалуста:

1)Как сделать доступным генерацию инвайтов определённым юзерам?

2)Как можно сгенерировать n — инвайтов, как это делалось через плагин aceadminpannel? generategenerated

Рекомендация к использованию: Наследование шаблонов

На примере будущего jQuery-шаблона для ПриветСочи.ру решил выложить мини-инструкцию использования наследования шаблонов, сильно сокращающий количество часто повторяющегося Smarty-кода.

Коротко о файлах в примере (ссылка на архив внизу):

  • topic.prototype.tpl — прототип топика, содержащий всю повторяющуюся разметку. Использованы вложенные конструкции типа
    {block name=...}
  • topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl — файлы, наследующие и заменяющие/дописывающие некоторые блоки прототипа топика (topic.prototype.tpl)
  • topic.social.tpl — включение с кодом кнопочек публикации в разные соц-сети.


Коротко о содержании файлов:

Посмотрев файлы примера, не сложно заметить, что файлы topic_*.tpl содержат:
  1. в начале каждого файла наличиствует код
    {extends file=topic.prototype.tpl}
  2. минимум специфической разметки, обрамленной в конструкции
    {block name=... флаг}
    — это замены и дополнения блоков. Флаг может либо отсутствовать (что означает полную замену содержимого блока), либо принимать принимать значения:
    • append — дописывает в конец содержимое блока к наследуемому блоку.
    • prepend — дописывает в начало содержимое блока к наследуемому блоку.
    • hide — скрывает блок (насколько я понял, если добавить в блок прототипа, то по умолчанию блок будет скрыт).
    • nocache — запрещает кеширование содержания блока (а это вообще актуально для LS?).


Документация


ZIP-архив с примером

Боевой курс новичка или "всем новеньким - сюда", часть 2

все, там место кончилось.
Продолжение FAQ для новичков, первую часть можно прочесть здесь.

Читать дальше →