UserTopics

Обсуждение новой системы расширения функциональности phpBB 4.0-dev, разработки новых расширений.
Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Ваши темы

Сообщение Alecto »

добавление ссылки на темы пользователя в минипрофиль:
viewtopic_body_contact_fields_before.html

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

<dd class="profile-posts">
	<strong>Темы пользователя: </strong>
	<a href="./search.php?author_id={postrow.POSTER_ID}&sr=topics&sf=firstpost">найти</a>
</dd>
Отправлено спустя 1 минуту 5 секунд:
в навигаторе, быстрые ссылки:
navbar_header_quick_links_before.html

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

<!-- IF S_REGISTERED_USER -->
	<li class="small-icon icon-search-self">
		<a role="menuitem" href="./search.php?search_id=egosearch&sr=topics&sf=firstpost">Ваши темы</a>
	</li>
<!-- ENDIF -->
Отправлено спустя 1 минуту 46 секунд:
с профилем возникли проблемы.
сделал так:
memberlist_view_user_statistics_after.html

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

<!-- IF S_REGISTERED_USER -->
	<li class="small-icon icon-search-self">
		<a role="menuitem" href="./search.php?search_id=egosearch&sr=topics&sf=firstpost">Ваши темы</a>
	</li>
<!-- ENDIF -->
но, надо вместо egosearch ставить идентификатор, иначе получается поиск собственных тем из любого профиля.
можно ли в шаблоне профиля получить идентификатор пользователя, которому принадлежит просматриваемый профиль?

Аватара пользователя
Татьяна5
Сообщения: 570
Зарегистрирован: 02 фев 2014, 15:05

Ваши темы

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

Alecto писал(а):QR_BBPOST <strong>Темы пользователя: </strong>
Русского текста в шаблоне быть не должно. Создавайте слушатель и подключайте языковой файл

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Ваши темы

Сообщение Alecto »

Татьяна5 писал(а):QR_BBPOST Создавайте слушатель и подключайте языковой файл
это я сделаю, пока не могу разобраться, как получить айди профиля.

Аватара пользователя
Татьяна5
Сообщения: 570
Зарегистрирован: 02 фев 2014, 15:05

Ваши темы

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

Или через js и регулярки из текущего адреса, или вывести новую переменную в шаблон через слушатель

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Ваши темы

Сообщение Alecto »

буду пробовать через слушатель.

с языком...
сделал language--ru---my.php

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

<?php
/**
*
* my [Russian]
*
* @package language quickreply
* @copyright (c) 2013 Alecto
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

if (empty($lang) || !is_array($lang))
{
	$lang = array();
}

$lang = array_merge($lang, array(
	'MY_SEARCH_TOPICS'					=> '111111',
));
event---listener.php

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

<?php
/**
*
* @package myextension
* @copyright (c) 2014 Nickname
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

namespace alecto\My\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
	/**
	* Assign functions defined in this class to event listeners in the core
	*
	* @return array
	* @static
	* @access public
	*/
	public function load_language_on_setup($event)
	{
		$lang_set_ext = $event['lang_set_ext'];
		$lang_set_ext[] = array(
			'ext_name' => 'alecto/My',
			'lang_set' => 'my',
		);
		$event['lang_set_ext'] = $lang_set_ext;
	}
}
в шаблон вставляю

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

{L_MY_SEARCH_TOPICS}
не работает, отображается MY_SEARCH_TOPICS

делал по аналогии с БО.
простите, в данной области не силен, сам не разберусь.


Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Ваши темы

Сообщение Alecto »

да. выкинул метод не разобравшись.
почитал, починил.

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

<?php
/**
*
* @package myextension
* @copyright (c) 2014 Nickname
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

namespace alecto\My\event;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
	/**
	* Assign functions defined in this class to event listeners in the core
	*
	* @return array
	* @static
	* @access public
	*/

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

	public function load_language_on_setup($event)
	{
		$lang_set_ext = $event['lang_set_ext'];
		$lang_set_ext[] = array(
			'ext_name' => 'alecto/My',
			'lang_set' => 'my',
		);
		$event['lang_set_ext'] = $lang_set_ext;
	}
}
все равно не работает (

Отправлено спустя 10 минут 48 секунд:
ура!
думал, конфиг не нужен.
добавил, настроил - заработало.
спасибо Татьяна!

Аватара пользователя
Татьяна5
Сообщения: 570
Зарегистрирован: 02 фев 2014, 15:05

Ваши темы

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

Класс listener в config/services.yml объявлен?

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Ваши темы

Сообщение Alecto »

Татьяна5 писал(а):QR_BBPOST объявлен?
наверно да, я по болванке делал и по примеру вашего БО

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

services:
    alecto.My.listener:
        class: alecto\My\event\listener
        tags:
            - { name: event.listener }
Татьяна5 писал(а):QR_BBPOST или вывести новую переменную в шаблон через слушатель
научите, как это сделать? а то я с этим вообще никогда не сталкивался.

Аватара пользователя
Татьяна5
Сообщения: 570
Зарегистрирован: 02 фев 2014, 15:05

Ваши темы

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

Вывести - по аналогии с уже выведенными (для примера $template->assign_vars(array( ... в практически любом файле), а из какого события её вытащить уже надо искать

Ответить