Вы не зашли.
Вот очень мне хочется, чтобы один конкретный плагин выводился в формате сайт.ру/названиеплагина.html
а не сайт.ру/plugin/названиеплагина/
и ещё желательно чтобы параметры передаваемые были как сайт.ру/параметр1/параметр2/названиеплагина.html
как я поняла это задаётся вызовом класса urlLibrary
$ULIB = new urlLibrary();
$ULIB->loadConfig();
if (isset($ULIB->CMD['myplugin']))
unset($ULIB->CMD['myplugin']);
$ULIB->registerCommand('myplugin', $cmd, $params);
??????????????????????????????
$ULIB->saveConfig();
И вот не могу понять что надо писать в качестве $cmd и $params
Не в сети
$ULIB = new urlLibrary();
$ULIB->loadConfig();
[ПРИМЕР]
$ULIB->saveConfig();
[ПРИМЕР]:
$ULIB->registerCommand('news', 'news',
array ('vars' =>
array( 'category' => array('matchRegex' => '.+?', 'descr' => array('russian' => 'Альт. имя категории')),
'catid' => array('matchRegex' => '\d{1,4}', 'descr' => array('russian' => 'ID категории')),
'year' => array('matchRegex' => '\d{4}', 'descr' => array ('russian' => 'Год')),
'month' => array('matchRegex' => '\d{2}', 'descr' => array ('russian' => 'Месяц')),
'day' => array('matchRegex' => '\d{2}', 'descr' => array ('russian' => 'День')),
'page' => array('matchRegex' => '\d{1,4}', 'descr' => array('russian' => 'Страница внутри новости')),
'altname' => array('matchRegex' => '.+?', 'descr' => array('russian' => 'Альт. имя новости')),
'id' => array('matchRegex' => '\d{1,4}', 'descr' => array('russian' => 'ID новости')),
'page' => array('matchRegex' => '\d{1,4}', 'descr' => array('russian' => 'Страница внутри новости')),
),
'descr' => array ('russian' => 'Отображение полной новости'),
)
);
news - [pluginName]
news - [handlerName]
category, catid, year, month, day, page, altname, id, page - соответственно [params]
Не в сети
хм..сделала по образцу, а в админке ругается Warning: Invalid argument supplied for foreach() in /var/www/sibark.ru/engine/actions/rewrite.php on line 38
само название плагина появилось в селекторе для добавления, а действия - нет
Не в сети
KhadeR,
$ULIB = new urlLibrary();
$ULIB->loadConfig();
$ULIB->registerCommand('ticket', 'main',
array ('vars' => array('uid' => array('matchRegex' => '\d+', 'descr' => array('russian' => 'ID пользователя')),
),
'descr' => array ('russian' => 'Заказанные билеты'),
)
);
$ULIB->saveConfig();
Не в сети
н-да.. это какой-то кеш противный - поставила на другой копии движка - заработало нормально... в управлении форматом ссылок..
А при заходе на заданную страницу с фронтенда не работает :-(
Не в сети
Однако надо запрашивать Виталия сделать красивую большую кнопочку в админке "очистить весь кеш" иногда некоторые моменты задалбывают... или возможность отключать всё кеширование во время разработки
Не в сети
Евгений, в том то и проблема что задумка пока не реализовывается, я пока просто тупо пытаюсь сделать чтобы для плагина можно было настроить вид ссылки отличный от стандартного
Не в сети
Однако надо запрашивать Виталия сделать красивую большую кнопочку в админке "очистить весь кеш" иногда некоторые моменты задалбывают... или возможность отключать всё кеширование во время разработки
Именно для этих целей свое время я сделал плагин clear_config
---------------------------
С кешем протормозил. Плагин его не чистит, но если нужно добавлю такую кнопочку (вечером)
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
Да я походу туплю... в общем на данный момент у меня в настройках управления форматом ссылок всё нормально добавляется\отображается, нужные ссылки прописала нормально, они прописали в /conf/urlconf.php ,
а вот c фронтенда при заходе по заданному адресу нужная страница не открывается, " Запрашиваемая вами страница не найдена."
Вроде в каких-то обсуждениях про этот формат ссылок читала что есть разница в какой позиции стоит правило - но не уверена что влияет :-(
Причём если обращаться по прямому адресу - site.ru/plugin/myplugin/param/ - то всё нормально работает
Изменено CyberMama (2010-03-30 16:09:30)
Не в сети
Не в сети
Не в сети
всё нормально с name, это название параметра
действительно заработало если выше core plugin поднять... хотя uprofile аналогично и ниже стоит, это меня и смущало
Не в сети
CyberMama, чтобы понять почему не отрабатывает какой-то URL можно поступить так:
1. открыть index.php
2. найти строчку ~88 (в SVN версии):
$runResult = $UHANDLER->run($systemAccessURL, array('debug' => false));
и заменить 'false' на 'true'
В текущем релизе строчка выглядит почти также и там тоже надо false заменить на true
3. открыть интересующую тебя страницу. сверху страницы пойдёт отладочная информация, в которой будет видно на какой именно шаблон URL'а сработал обработчик.
Не в сети
vitaly, а нет готовой функции, чтобы сразу вставить в нужное место уже заданные ссылки, чтобы пользователю не самому их через управление форматом задавать, чтобы туда они уже вставились и только при необходимости можно было бы их отредактировать. Я посмотрела action rewrite - в конец их добавить вроде бы не особо проблематично, а вот в нужную позиции кажется сложновато
Не в сети
CyberMama, Нет, такой функции и даже если бы она и была, то ее использование было бы проблематично. Объясняю почему, программно добавить ссылку не проблема, а вот установить ее в нужное место уже проблема, так как разработчик не знает какой конкретный набор плагинов установлен у конечного пользователя и как уже настроен его ЧПУ. Так что гораздо проще описать пользователю, что он имеет возможность настраивать ЧПУ для вашего плагина, а в плагине предусмотреть работу без настроенного ЧПУ (на случай если пользователю нет надобности в его настройке).
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети