[3.2] Topic Description

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
PintPont
phpBB 2.0.0
Сообщения: 247
Зарегистрирован: 05.01.2018 22:20
Благодарил (а): 51 раз
Поблагодарили: 2 раза

[3.2] Topic Description

Сообщение PintPont » 03.07.2018 15:13

Описание проблемы: Изменение настроек
Используемые стили: Green style
Ссылка на конференцию: http://nashauk.ru/index.php
Использовался ли поиск для решения проблемы: Да
Если да, то какие запросы вы использовали: По нозванию расширения
Доброго всем часа. Как можно сделать чтобы в этом окошке изначально был написан текст а при нажатии туда исчезал (для пояснения что туда ввести)
И как поменять цвет шрифта
Страница на phpBB.com:тут

Отправлено спустя 49 минут 56 секунд:
И еще как можно правильно поменять размер окошка и сделать его таким же как и заголовок. Пробывал менял, но в смартфонах появляется полоса рокрутки страницы вправо :shock:

Аватара пользователя
Evangelion
phpBB 2.0.3
Сообщения: 370
Зарегистрирован: 15.12.2011 0:25
Благодарил (а): 69 раз
Поблагодарили: 98 раз

Re: [3.2] Topic Description

Сообщение Evangelion » 28.09.2018 1:26

PintPont писал(а):
03.07.2018 16:03
И еще как можно правильно поменять размер окошка и сделать его таким же как и заголовок. Пробывал менял, но в смартфонах появляется полоса рокрутки страницы вправо
В файле: .../ext/rmcgirr83/topicdescription/styles/prosilver/template/topic_description.html
Найти: rows="5" и заменить на rows="1"
Далее в файле: .../styles/название_стиля/theme/forms.css (примерно 136 строка)
Найти:

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

dd textarea {
    width: 85%;
}
Заменить на:

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

dd textarea {
    width: auto;
}
http://gorlovka-forum.h1n.ru Форум города Горловка

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 171 раз
Поблагодарили: 62 раза

Re: [3.2] Topic Description

Сообщение Beer » 21.06.2019 9:55

PintPont, ниже вариант с placeholder для тебя.
У Topic Description нет настроек прав доступа, поэтому все как обычно: юзеры-лузеры фигачат тута всякую хрень... :evil:
Это topic_description.html с условием вывода только админу и модераторам:

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

<!-- IF U_ACP or U_MCP -->
<!-- IF S_DESC_TOPIC -->
		<dl style="clear: left;" title="Не обязательно, но можно и дать">
			<dt><label for="topic_desc" class="topic_desc">{L_TOPIC_DESC}{L_COLON}</label></dt>
			<dd><textarea placeholder="Не обязательно, но можно и дать. Учти - это не название темы! В случае совпадения - автоудаление." name="topic_desc" id="topic_desc" rows="3" cols="45" maxlength="180">{TOPIC_DESC}</textarea></dd>
		</dl>
<!-- ENDIF -->
<!-- ENDIF -->
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 171 раз
Поблагодарили: 62 раза

Re: [3.2] Topic Description

Сообщение Beer » 07.07.2019 12:54

Данные расширения хранятся phpbb_topics.topic_desc.
Хочу добавить свое поле topic_beer (MediumInt) в таблицу phpbb_topics (заполнять буду SQL запросом), и получить из него данные. Как я понимаю (т.е. в этом совсем не понимаю) - получение данных делает listener.php

Можно конечно сделать копию расширения, заменив topic_desc на topic_beer - но это будет еще один запрос к БД, т.е. правильнее все же наверное добавить поле к уже имеющемуся запросу. Но в listener.php разбегаются глаза :shock: Может кто помочь?

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

<?php

namespace rmcgirr83\topicdescription\event;

/**
* @ignore
*/
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
	private $topic_desc = '';

	/** @var \phpbb\auth\auth */
	protected $auth;

	/** @var \phpbb\request\request */
	protected $request;

	/** @var \phpbb\template\template */
	protected $template;

	/** @var \phpbb\user */
	protected $user;

	/**
	* Constructor
	*
	* @param \phpbb\auth\auth					$auth				Auth object
	* @param \phpbb\request\request				$request			Request object
	* @param \phpbb\template\template           $template       	Template object
	* @param \phpbb\user                        $user           	User object
	* @access public
	*/
	public function __construct(
			\phpbb\auth\auth $auth,
			\phpbb\request\request $request,
			\phpbb\template\template $template,
			\phpbb\user $user)
	{
		$this->auth = $auth;
		$this->request = $request;
		$this->template = $template;
		$this->user = $user;
	}

	/**
	* Assign functions defined in this class to event listeners in the core
	*
	* @return array
	* @static
	* @access public
	*/
	static public function getSubscribedEvents()
	{
		return array(
			'core.permissions'						=> 'add_permission',
			'core.posting_modify_template_vars'		=> 'topic_data_topic_desc',
			'core.posting_modify_submission_errors'		=> 'topic_desc_add_to_post_data',
			'core.posting_modify_submit_post_before'		=> 'topic_desc_add',
			'core.posting_modify_message_text'		=> 'modify_message_text',
			'core.submit_post_modify_sql_data'		=> 'submit_post_modify_sql_data',
			'core.viewtopic_modify_page_title'		=> 'topic_desc_add_viewtopic',
			'core.viewforum_modify_topicrow'		=> 'modify_topicrow',
			'core.search_modify_tpl_ary'			=> 'search_modify_tpl_ary',
			'core.mcp_view_forum_modify_topicrow'	=> 'modify_topicrow',
		);
	}

	/**
	* Add administrative permissions to manage forums
	*
	* @param object $event The event object
	* @return null
	* @access public
	*/
	public function add_permission($event)
	{
		$permissions = $event['permissions'];
		$permissions['f_topic_desc'] = array('lang' => 'ACL_F_TOPIC_DESC', 'cat' => 'post');
		$event['permissions'] = $permissions;
	}

	public function topic_data_topic_desc($event)
	{
		$mode = $event['mode'];
		$post_data = $event['post_data'];
		$page_data = $event['page_data'];
		$post_data['topic_desc'] = (!empty($post_data['topic_desc'])) ? $post_data['topic_desc'] : '';
		if ($this->auth->acl_get('f_topic_desc', $event['forum_id']) && ($mode == 'post' || ($mode == 'edit' && $post_data['topic_first_post_id'] == $post_data['post_id'])))
		{
			$this->user->add_lang_ext('rmcgirr83/topicdescription', 'common');
			$page_data['TOPIC_DESC'] = $this->request->variable('topic_desc', $post_data['topic_desc'], true);
			$page_data['S_DESC_TOPIC'] = true;
		}

		$event['page_data']	= $page_data;
	}

	public function topic_desc_add_to_post_data($event)
	{
		if ($this->auth->acl_get('f_topic_desc', $event['forum_id']))
		{
			$event['post_data'] = array_merge($event['post_data'], array(
				'topic_desc'	=> $this->request->variable('topic_desc', '', true),
			));
		}
	}

	public function topic_desc_add($event)
	{
		$event['data'] = array_merge($event['data'], array(
			'topic_desc'	=> $event['post_data']['topic_desc'],
		));
	}

	public function modify_message_text($event)
	{
		$event['post_data'] = array_merge($event['post_data'], array(
			'topic_desc'	=> $this->request->variable('topic_desc', $event['post_data']['topic_desc'], true),
		));
	}

	public function submit_post_modify_sql_data($event)
	{
		$mode = $event['post_mode'];
		$topic_desc = $event['data']['topic_desc'];
		$data_sql = $event['sql_data'];
		if (in_array($mode, array('post', 'edit_topic', 'edit_first_post')))
		{
			$data_sql[TOPICS_TABLE]['sql']['topic_desc'] = $topic_desc;
		}
		$event['sql_data'] = $data_sql;
	}

	public function topic_desc_add_viewtopic($event)
	{
		$topic_data = $event['topic_data'];
		$this->template->assign_var('TOPIC_DESC',censor_text($topic_data['topic_desc']));
	}

	public function modify_topicrow($event)
	{
		$row = $event['row'];
		if (!empty($row['topic_desc']))
		{
			$topic_row = $event['topic_row'];
			$topic_row['TOPIC_DESC'] = censor_text($row['topic_desc']);
			$event['topic_row'] = $topic_row;
		}
	}

	public function search_modify_tpl_ary($event)
	{
		$row = $event['row'];
		if ($event['show_results'] == 'topics' && !empty($row['topic_desc']))
		{
			$tpl_array = $event['tpl_ary'];
			$tpl_array['TOPIC_DESC'] = censor_text($row['topic_desc']);
			$event['tpl_ary'] = $tpl_array;
		}
	}
}
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 2787
Зарегистрирован: 19.03.2009 17:43
Благодарил (а): 23 раза
Поблагодарили: 999 раз

Re: [3.2] Topic Description

Сообщение Nekstati » 07.07.2019 13:56

Beer, если данные из поля нужно только получать (не сохранять), вам нужно модифицировать эти две функции в listener.php:

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

    	public function topic_desc_add_viewtopic($event)
    	{
    		$topic_data = $event['topic_data'];
    		$this->template->assign_var('TOPIC_DESC',censor_text($topic_data['topic_desc']));
			// Новая строка
    		$this->template->assign_var('TOPIC_BEER',censor_text($topic_data['topic_beer']));
    	}
     
    	public function modify_topicrow($event)
    	{
    		$row = $event['row'];
    		if (!empty($row['topic_desc']))
    		{
    			$topic_row = $event['topic_row'];
    			$topic_row['TOPIC_DESC'] = censor_text($row['topic_desc']);
				// Новая строка
    			$topic_row['TOPIC_BEER'] = censor_text($row['topic_beer']);
    			$event['topic_row'] = $topic_row;
    		}
    	}
Далее откройте эти файлы:
ext\rmcgirr83\topicdescription\styles\prosilver\template\event\viewtopic_topic_title_after.html
ext\rmcgirr83\topicdescription\styles\prosilver\template\event\topiclist_row_topic_title_after.html
и добавьте туда TOPIC_BEER по аналогии с TOPIC_DESC:
topiclist_row_topic_title_after.html 

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

<!-- IF searchresults.TOPIC_DESC --><div>{searchresults.TOPIC_DESC}</div><!-- ELSEIF topicrow.TOPIC_DESC --><div>{topicrow.TOPIC_DESC}</div><!-- ENDIF -->

<!-- IF topicrow.TOPIC_BEER --><div>{topicrow.TOPIC_BEER}</div><!-- ENDIF -->
viewtopic_topic_title_after.html 

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

<!-- IF TOPIC_DESC --><p>{TOPIC_DESC}</p><!-- ENDIF -->

<!-- IF TOPIC_BEER --><p>{TOPIC_BEER}</p><!-- ENDIF -->

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 171 раз
Поблагодарили: 62 раза

Re: [3.2] Topic Description

Сообщение Beer » 07.07.2019 15:29

Nekstati, офигенно! Я 3 дня смотрел на код пытаясь вникнуть :shock:
Большой сенкс! Снимаю шляпу...
Получилось все!
Сконвертировался с SMF2 в phpBB3.2

Вернуться в «Поддержка расширений для phpBB»