Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2011-06-26 15:25:15

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

стандартная 404 в плагинах

очередной раз приветствую всех плагинописателей ngcms smile

такой вот вопрос нарисовался:

имеется плагин, который на своей странице выводит определенную информацию
инфа естественно зависит от того, какие значения передаются в данный плагин...

вот небольшой пример

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)


Проекты любой сложности. Качественно. Дорого.

Не в сети

#2 2011-06-26 15:41:16

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: стандартная 404 в плагинах

Есть функция: error404()

t3s пишет:

зы
доки по написанию плагинов не изменились со времен самой первой эн-джи... было бы больше документации - думаю что подобные вопросы просто бы не возникали

Если есть какие то вопросы можешь связаться со мной и уже по твоим вопрос могу обновить документацию...

Не в сети

#3 2011-06-26 18:34:34

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: стандартная 404 в плагинах

ROZARD пишет:

Есть функция: error404()

спасибо
а как ее заставить работать в пределах шаблона? чтоб не на белом листе, а в шаблоне сайта? в настройках сайта Реакция на неизвестный URL стоит "Внутри шаблона" - на плагины это не распространяется?

ROZARD пишет:

Если есть какие то вопросы можешь связаться со мной и уже по твоим вопрос могу обновить документацию...

вопросы возникают по мере написания чего-то нового... как правило того, с чем никто раньше не сталкивался - и когда "подсмотр" у других плагинов не дает результата получаются вопросы...
форум потому и предпочтителен той же аськи - если аналогичный вопрос возникнет еще у кого-то то будет уже готовый ответ

вордпресс приводил в пример лишь потому как у них очень толково сделаны доки - все доступные для сторонних разработчиков функции расставлены по полочкам, разжеваны и обильно снабжены примерами - т.е. любой человек, который знает чем отличается константа от переменной сможет за 20 минут написать свой плагин

если все же планируется обновление документации - можно отсюда взять пару вопросов отсюда http://ngcms.ru/forum/viewtopic.php?id=555

вот еще вдогонку нарисовался вопрос...
не так актуально поскольку сделал по своему, но все же узелок на будущее - для пагинации насколько я понимаю тоже должна быть встроенная функция?
если да, то как в нее передавать нужные мне значения?

если вернуться к примеру выше, то должно быть не просто ?page=2 a ?page=2&type=2


Проекты любой сложности. Качественно. Дорого.

Не в сети

#4 2011-06-26 18:41:14

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: стандартная 404 в плагинах

Про пагинацию в документации все есть довольно подробно.

Не в сети

#5 2011-06-26 23:50:23

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: стандартная 404 в плагинах

чет не нашел ни на wiki.ngcms.ru/ ни на ngcms.ru/readme/docs/

да и как говорил, уже сделал по-своему... так что это было скорее пожелание а не вопрос

а если вернуться к теме - все-таки как заставить плагин показывать нужную мне 404? или это не предусмотрено?


Проекты любой сложности. Качественно. Дорого.

Не в сети

#6 2011-06-27 00:07:06

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: стандартная 404 в плагинах

http://ngcms.ru/docs/draft/docs/plugins … index.html

error404() работает в трех режимах в зависимости от настроек в админ-панели:

afed8bed1f567ee06a45f87a6eae2277.png

Если установлен режим "Внутри шаблона", то это то, что тебе нужно.

Можно написать свой обработчик, например такой (шаблон 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'];
}

Не в сети

#7 2011-06-27 10:57:08

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: стандартная 404 в плагинах

t3s пишет:

вот еще вдогонку нарисовался вопрос...
не так актуально поскольку сделал по своему, но все же узелок на будущее - для пагинации насколько я понимаю тоже должна быть встроенная функция?
если да, то как в нее передавать нужные мне значения?

если вернуться к примеру выше, то должно быть не просто ?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'));

Есть ещё две функции, но они уже для чпу и расписывать не буду...

Не в сети

Подвал раздела

Работает на FluxBB