UserTopics

Обсуждение новой системы расширения функциональности phpBB 4.0-dev, разработки новых расширений.
Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Ваши темы

Сообщение Алг »

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

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

		$this->template->assign_vars(array(
			'MY_VARIABLE_STRING'		=> 'bla-bla',
			'MY_VARIABLE_NUMBER'		=> 123,
			));	
проблема в другом.
Alecto писал(а):QR_BBPOST но, надо вместо egosearch ставить идентификатор
откуда это взял? нет такого кода в search.php
набери в адресной строке

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

http://anderson.phpbbguru.net/search.php?search_id=339
получишь ли свои сообщения?

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

Ваши темы

Сообщение Alecto »

Так не получу, надо по другому. Точно так же как из мини профилей. Посмотри, там рабочий код.

Отправлено спустя 1 час 32 минуты 25 секунд:

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

	public function page_header_after($event)
	{
		$this->template->assign_vars(array(
			'PROFILE_USER_ID'	=> XXXXXXXXXXXXXXXXXXXXX,
			        ));	
	}
вставил функцию по аналогии из поиска Алг, как получить айди пользователя вместо XXXXXXXXXXXXXXXXXXXXX?

Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Ваши темы

Сообщение Алг »

сначала покажи, что у тебя в конструкторе написано

Отправлено спустя 3 минуты 48 секунд:
и о каком пользователе речь? о себе любимом или о любом?

Аватара пользователя
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 page_header_after($event)
	{
		$user_id = (int) $member['user_id'];
		$this->template->assign_vars(array(
			'PROFILE_USER_ID'	=> $user_id,
			        ));	
	}


	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;
	}
}
для себя любимого работает egosearch.
речь идет о профиле любого пользователя.
открываешь любой профиль - нужен айди пользователя этого профиля, чтобы построить выборку.

Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Ваши темы

Сообщение Алг »

никто не ругается, только это не конструктор :)
айди пользователя ты должен извлечь из минипрофиля джаваскиптом и передать на сервер любым образом. Или в командную строку подставить "?u=339", или в контроллере, как параметр

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

Ваши темы

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

Алг писал(а):QR_BBPOST извлечь из минипрофиля джаваскиптом
Зачем? Ссылка на профиль /memberlist.php?mode=viewprofile&u=56

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

$this->request->variable('u', 0);
[ref]Alecto[/ref], а __construct'ора в коде нет
Его надо добавить и передать туда template и request

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

Ваши темы

Сообщение Alecto »

так?

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

	public function __construct(\phpbb\template\template $template, \phpbb\request\request $request)
	{
		$this->template = $template;
		$this->request = $request;
	}

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

	public function page_header_after($event)
	{
		$this->template->assign_vars(array(
			'PROFILE_USER_ID'	=> $this->request->variable('u', 0);,
			        ));	
	}
Отправлено спустя 3 минуты 17 секунд:
чтото не то. админка в белый экран вылетать стала.

Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Ваши темы

Сообщение Алг »

Татьяна5 писал(а):QR_BBPOST Ссылка на профиль /memberlist.php?mode=viewprofile&u=56
как я поняла, речь не о профиле, а о минипрофилях
Alecto писал(а):QR_BBPOST чтото не то. админка в белый экран вылетать стала.
то самое. но у тебя в в файле services.yml и в конструкторе кол-во и порядок параметров должны соответствовать

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

Ваши темы

Сообщение Alecto »

Алг писал(а):QR_BBPOST речь не о профиле
о профиле.

Отправлено спустя 3 минуты 4 секунды:
так?

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

services:
    alecto.PrimeUserTopics.listener:
        class: alecto\PrimeUserTopics\event\listener
        arguments:
            - @template
            - @request
         tags:
            - { name: event.listener }
Отправлено спустя 53 секунды:
все равно белый экран в админке после включения.
пайду павешусь.

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

Ваши темы

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

Alecto писал(а):QR_BBPOST белый экран в админке
При разработке модов/расширений обычно включают все возможные отладчики (3 строки в config.php, ini_set('display_errors', 'on'); там же, лог сервера) и смотрят на возникающие ошибки. "Белый экран" это не текст ошибки, по нему ничего сказать невозможно
Alecto писал(а):QR_BBPOST

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

'PROFILE_USER_ID'   => $this->request->variable('u', 0);,
;, - это как?

Ответить