Вы не зашли.
Страницы 1
очередной раз приветствую всех плагинописателей ngcms
такой вот вопрос нарисовался:
имеется плагин, который на своей странице выводит определенную информацию
инфа естественно зависит от того, какие значения передаются в данный плагин...
вот небольшой пример
if (isset($_GET['type'])){
$get_type = $_GET['type'];
if ($get_type == '0'){
$adstype_select = 'AND xfields_adstype <> ';
$adstype_select .= db_squote();
}else{
$adstype_select = 'AND xfields_adstype = ';
$adstype_select .= db_squote($arr_type[$get_type]);
}
$result_post_type = $arr_type[$get_type];
}
имеется определенный интервал допустимых значений, в данном случае для переменной $get_type
в данном случае, если $_GET['type'] отсутствует - выполняю определенное условие, что имхо не совсем правильно, ибо приходится изобретать велосипеды
а хотелось бы выдать посетителю стандартную 404 от движка... соответственно, если $_GET['type'] "не помещается" в допустимый интервал тоже нужно выдать 404
т.е. сам вопрос - существует ли стандартная функция для 404 которую можно вызвать из плагина?
в других плагинах похоже что нету, либо она не используется - попробуйте к примеру вместо сайт.ком/plugin/tags/tag/?tag=блаблабла ввести сайт.ком/plugin/tags/tag/?bag=блаблабла
зы
доки по написанию плагинов не изменились со времен самой первой эн-джи... было бы больше документации - думаю что подобные вопросы просто бы не возникали, и хорошим примером является вордпресс, для которого ежедневно пишутся сотни плагинов
Изменено t3s (2011-06-26 15:26:46)
Проекты любой сложности. Качественно. Дорого.
Не в сети
Есть функция: error404()
зы
доки по написанию плагинов не изменились со времен самой первой эн-джи... было бы больше документации - думаю что подобные вопросы просто бы не возникали
Если есть какие то вопросы можешь связаться со мной и уже по твоим вопрос могу обновить документацию...
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
Есть функция: error404()
спасибо
а как ее заставить работать в пределах шаблона? чтоб не на белом листе, а в шаблоне сайта? в настройках сайта Реакция на неизвестный URL стоит "Внутри шаблона" - на плагины это не распространяется?
Если есть какие то вопросы можешь связаться со мной и уже по твоим вопрос могу обновить документацию...
вопросы возникают по мере написания чего-то нового... как правило того, с чем никто раньше не сталкивался - и когда "подсмотр" у других плагинов не дает результата получаются вопросы...
форум потому и предпочтителен той же аськи - если аналогичный вопрос возникнет еще у кого-то то будет уже готовый ответ
вордпресс приводил в пример лишь потому как у них очень толково сделаны доки - все доступные для сторонних разработчиков функции расставлены по полочкам, разжеваны и обильно снабжены примерами - т.е. любой человек, который знает чем отличается константа от переменной сможет за 20 минут написать свой плагин
если все же планируется обновление документации - можно отсюда взять пару вопросов отсюда http://ngcms.ru/forum/viewtopic.php?id=555
вот еще вдогонку нарисовался вопрос...
не так актуально поскольку сделал по своему, но все же узелок на будущее - для пагинации насколько я понимаю тоже должна быть встроенная функция?
если да, то как в нее передавать нужные мне значения?
если вернуться к примеру выше, то должно быть не просто ?page=2 a ?page=2&type=2
Проекты любой сложности. Качественно. Дорого.
Не в сети
чет не нашел ни на wiki.ngcms.ru/ ни на ngcms.ru/readme/docs/
да и как говорил, уже сделал по-своему... так что это было скорее пожелание а не вопрос
а если вернуться к теме - все-таки как заставить плагин показывать нужную мне 404? или это не предусмотрено?
Проекты любой сложности. Качественно. Дорого.
Не в сети
http://ngcms.ru/docs/draft/docs/plugins … index.html
error404() работает в трех режимах в зависимости от настроек в админ-панели:
Если установлен режим "Внутри шаблона", то это то, что тебе нужно.
Можно написать свой обработчик, например такой (шаблон 404.my.tpl).
function my_error404(){
global $config, $tpl, $template, $SYSTEM_FLAGS, $lang;
@header('HTTP/1.1 404 Not found');
$tpl->template('404.my', tpl_site);
$tpl->vars('404.my', array());
$template['vars']['mainblock'] = $tpl->show('404.my');
$SYSTEM_FLAGS['info']['title']['group'] = $lang['404.title'];
}
Не в сети
вот еще вдогонку нарисовался вопрос...
не так актуально поскольку сделал по своему, но все же узелок на будущее - для пагинации насколько я понимаю тоже должна быть встроенная функция?
если да, то как в нее передавать нужные мне значения?если вернуться к примеру выше, то должно быть не просто ?page=2 a ?page=2&type=2
Для этого есть функция: generateLink('core', 'plugin', array(), array());
Для твоего примера:
generateLink('core', 'plugin', array('plugin' => 'НАЗВАНИЕ_ТВОЕГО ПЛАГИНА', 'handler' => 'ПЕРЕДАВАЕМАЯ_КОМАНДА'), array(page' => '2'));
или
generateLink('core', 'plugin', array('plugin' => 'НАЗВАНИЕ_ТВОЕГО ПЛАГИНА', 'handler' => 'ПЕРЕДАВАЕМАЯ_КОМАНДА'), array('page' => '2', 'type' => '2'));
Есть ещё две функции, но они уже для чпу и расписывать не буду...
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
Страницы 1