Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Расширения - это просто!

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 11 месяцев
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Расширения - это просто!

Сообщение xisp »

Татьяна5 писал(а):$('#username_logged_in li.icon-logout a')
Прощай пользователи без яваскрипта, прощай производительность на мобильных.
phpBBex
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12454
Стаж: 12 лет 9 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2482 раза

Re: Расширения - это просто!

Сообщение Татьяна5 »

xisp писал(а):Прощай пользователи без яваскрипта
У пользователей без js расширение, написанное полностью на js, не заработает, и вместо него останется стандартный функционал форума (чего не было при изменении кода модами на 3.0). Так что "прощай" это к 3.0 относится, а не к 3.1
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 11 месяцев
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Расширения - это просто!

Сообщение xisp »

Татьяна5 писал(а):У пользователей без js расширение, написанное полностью на js, не заработает,
А ежели частично? Вот половину вёрстки добавят через событие, половину- яваскриптом. С выключенным яваскриптом выйдет каша.
phpBBex
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12454
Стаж: 12 лет 9 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2482 раза

Re: Расширения - это просто!

Сообщение Татьяна5 »

xisp писал(а):А ежели частично?
А это уже вопрос к авторам расширений. Код, который должен работать без js, должен и добавляться без него
Аватара пользователя
angst66
phpBB 3.0.0 RC1
Сообщения: 1472
Стаж: 12 лет 4 месяца
Благодарил (а): 48 раз
Поблагодарили: 71 раз

Re: Расширения - это просто!

Сообщение angst66 »

Не знаю, где точнее задать вопрос. Некоторые расширения добавляют свои страницы. И если в 3.0x мы могли внести правку в viewonline.php , чтобы при просмотре "Кто сейчас на конференции" видеть, что кто то просматривает эту самую новую страницу из мода, то на 3.1 мы просто видим "Главная страница". Уважаемые создатели расширений, возможно ли решать эту проблему с помощью расширений? (возможно было бы спросить как то попроще)
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12454
Стаж: 12 лет 9 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2482 раза

Re: Расширения - это просто!

Сообщение Татьяна5 »

angst66, да, есть событие core.viewonline_overwrite_location
Аватара пользователя
Webliberty
phpBB 2.0.5
Сообщения: 472
Стаж: 12 лет 4 месяца
Благодарил (а): 136 раз
Поблагодарили: 63 раза

Re: Расширения - это просто!

Сообщение Webliberty »

Добрый вечер! Помогите пожалуйста разобраться, где ошибка. Делаю расширение, чтобы сделать редирект со страниц &viev=next и &viev=previous.

Для примера, редирект с такой страницы: viewtopic.php?f=1&t=1&view=previous на такую: viewtopic.php?f=1&t=1
Подобные страницы заблокированы в роботсе, но Гугл их все равно обрабатывает и хранит в индексе с сообщением о том что содержимое страницы заблокировано в файле роботс. Почему тогда он их хранит если заблокировано не понятно.

В viewtopic.php есть строки U_VIEW_OLDER_TOPIC и U_VIEW_NEWER_TOPIC (как раз previous - предыдущая тема, next - следующая тема соответственно). Сделал вот такое переопределение по аналогии с каноническими, но на странице в браузере возникает предупреждение о циклической переадресации и страница не открывается.... Сам код:

Код: Выделить всё

<?php
namespace webliberty\nextprev\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class listener implements EventSubscriberInterface
{
	protected $template;
	protected $php_ext;
	public function __construct(\phpbb\template\template $template, $php_ext)
	{
		$this->template = $template;
		$this->php_ext = $php_ext;
	}

	static public function getSubscribedEvents()
	{
		return array(
			'core.viewtopic_get_post_data' => 'get_post_data',
		);
	}

	public function get_post_data($event)
	{
		$forum_id = $event['forum_id'];
		$topic_id = $event['topic_id'];
		$this->template->assign_vars(array(
		'U_VIEW_OLDER_TOPIC'	=> redirect(append_sid("viewtopic.$this->php_ext", "f=$forum_id&t=$topic_id")),
		'U_VIEW_NEWER_TOPIC'	=> redirect(append_sid("viewtopic.$this->php_ext", "f=$forum_id&t=$topic_id")),
		));
	}
}
?>
Мой форум на phpBB 3.3.8 (начинал с phpBB 3.0.9)
Подпись заверена нотариусом :P
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 10 лет
Благодарил (а): 41 раз
Поблагодарили: 831 раз

Re: Расширения - это просто!

Сообщение LavIgor »

seodirection писал(а):Добрый вечер! Помогите пожалуйста разобраться, где ошибка. Делаю расширение, чтобы сделать редирект со страниц &viev=next и &viev=previous.

Для примера, редирект с такой страницы: viewtopic.php?f=1&t=1&view=previous на такую: viewtopic.php?f=1&t=1

Код: Выделить всё

<?php
		'U_VIEW_OLDER_TOPIC'	=> redirect(append_sid("viewtopic.$this->php_ext", "f=$forum_id&t=$topic_id")),
		'U_VIEW_NEWER_TOPIC'	=> redirect(append_sid("viewtopic.$this->php_ext", "f=$forum_id&t=$topic_id")),

?>
Это неправильно. Зачем вы редирект добавили?
Уберите редирект, и всё заработает. Но при этом добавьте обёртку с проверкой на то, является ли пользователь ботом, иначе обычные пользователи будут испытывать трудности.

Ужасно неудобно здесь, что у последнего сообщения нет кнопки "Цитата".
Я привык править цитируемые сообщения, а не слать их полностью, отчего убрали кнопку.
Уже несколько раз отослал благодарности вместо цитаты.

Думаю, нужна просто кнопка в личном разделе "Показывать ссылку Цитата в последнем сообщении темы". Те люди, кто делал полное цитирование при ненадобности (по незнанию того, что цитату нужно сокращать), вряд ли станут искать, где вернуть эту кнопку.
Аватара пользователя
Webliberty
phpBB 2.0.5
Сообщения: 472
Стаж: 12 лет 4 месяца
Благодарил (а): 136 раз
Поблагодарили: 63 раза

Re: Расширения - это просто!

Сообщение Webliberty »

LavIgor писал(а):Это неправильно. Зачем вы редирект добавили?
Если убираю редирект, то вообще ничего не происходит, как было так и остается
Мой форум на phpBB 3.3.8 (начинал с phpBB 3.0.9)
Подпись заверена нотариусом :P
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 10 лет
Благодарил (а): 41 раз
Поблагодарили: 831 раз

Re: Расширения - это просто!

Сообщение LavIgor »

Вам нужен редирект со страниц по ссылкам или чтобы эти ссылки на странице менялись (чтобы роботы по ним попадали на ту же страницу)?
Аватара пользователя
Webliberty
phpBB 2.0.5
Сообщения: 472
Стаж: 12 лет 4 месяца
Благодарил (а): 136 раз
Поблагодарили: 63 раза

Re: Расширения - это просто!

Сообщение Webliberty »

Мне нужен редирект со страницы с параметром view=previous на страницу без этого параметра. Как для пользователей так и для роботов. В ветке 3.1 вообще нет ссылок ведущих на такие страницы (даже в исходном коде страницы), в 3.0.х были вот и нашел их робот. Но сейчас то это зачем.

Можно вообще сделать чтобы при переходе на такие страницы сервер 404 ответ давал, тогда уж 100% страницы выпали бы из индекса, но не знаю как сделать. На phpbb.com спросил как сделать редирект с помощью htaccess - никто не ответил.
Мой форум на phpBB 3.3.8 (начинал с phpBB 3.0.9)
Подпись заверена нотариусом :P
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 10 лет
Благодарил (а): 41 раз
Поблагодарили: 831 раз

Re: Расширения - это просто!

Сообщение LavIgor »

seodirection писал(а):Мне нужен редирект со страницы с параметром view=previous на страницу без этого параметра. Как для пользователей так и для роботов. В ветке 3.1 вообще нет ссылок ведущих на такие страницы (даже в исходном коде страницы), в 3.0.х были вот и нашел их робот. Но сейчас то это зачем.
Тогда Вы можете проверить GET-параметр view на соответствие previous или next.
И только при этом соответствии делать редирект на отдельной строке.
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет 1 месяц
Благодарил (а): 57 раз
Поблагодарили: 625 раз

Re: Расширения - это просто!

Сообщение Anvar »

seodirection,
Сделай редирект с помощью .htaccess и замени свою функцию, что-бы заменить адреса на страницах.

Код: Выделить всё

	public function get_post_data($event)
	{
		$forum_id = $event['forum_id'];
		$topic_id = $event['topic_id'];
		$this->template->assign_vars(array(
			'U_VIEW_OLDER_TOPIC'	=> append_sid("{$this->phpbb_root_path}viewtopic.$this->php_ext", "f=$forum_id&t=$topic_id"),
			'U_VIEW_NEWER_TOPIC'	=> append_sid("{$this->phpbb_root_path}viewtopic.$this->php_ext", "f=$forum_id&t=$topic_id"),
		));
	}
Аватара пользователя
Webliberty
phpBB 2.0.5
Сообщения: 472
Стаж: 12 лет 4 месяца
Благодарил (а): 136 раз
Поблагодарили: 63 раза

Re: Расширения - это просто!

Сообщение Webliberty »

Anvar, так нужно что-то одно наверно, если редирект в .htaccess сделать, то зачем расширение это, какую функцию выполняет? Попробовал заменить функцию и снова циклическая переадресация. Совсем запутался. Я редирект не знаю как сделать такой, гугл тоже не знает :) Поэтому и начал копать в сторону расширения этого...
Мой форум на phpBB 3.3.8 (начинал с phpBB 3.0.9)
Подпись заверена нотариусом :P
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

Re: Расширения - это просто!

Сообщение rxu »

seodirection, LavIgor дает правильный совет. Переменные шаблона тут в принципе не нужны, нужна проверка параметра и вызов в зависимости от этого redirect. Только не передавайте redirect в шаблон, достаточно просто вызова этой функции.
Изображение

Вернуться в «Для разработчиков»