BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.
Аватара пользователя
PPK
Администратор
Благодарил (а): 74 раза
Поблагодарили: 1499 раз
Сообщения: 9553
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

13 сен 2011, 13:27

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

Возможности дополнительных полей: однострочные либо многострочные поля, поля с выпадающим списком с возможностью вставки в поле значения из списка, отделение полей новой строкой либо произвольным символом/текстом/картинкой, отображение подсказки (примера заполнения) для полей, создание нескольких одинаковых (одноимённых) полей, заключение поля и/или группы одинаковых (одноимённых) полей в бб-коды, вставка значений дополнительных полей до или после текста сообщения.

Подробное описание и примеры: viewtopic.php?f=26&t=1083, Re: Вывод дополнительных полей в названии торрента. (Post by PPK #2186)
BB3AddFields.zip
Скачать архив, распаковать, заменить файлы форума файлами из директории /root/

В phpmyadmin выполнить:

если mysql версии 4.1.3 или выше

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

ALTER TABLE `phpbb_forums` ADD `forum_addfields` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
иначе

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

ALTER TABLE `phpbb_forums` ADD `forum_addfields` varchar(255) binary NOT NULL DEFAULT '';
/posting.php перед

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

if (!$post_data)
{
	if (!($mode == 'post' || $mode == 'bump' || $mode == 'reply'))
	{
добавить

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

$user->add_lang('mods/ppkbb3cker_addfields');
$array_addfields=get_forum_addfields(@$post_data['forum_addfields']);
после

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

if ($submit || $preview || $refresh)
{
добавить

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

	if($array_addfields && ($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_post_id'])))
	{
		include_once($phpbb_root_path.'tracker/include/posting_addfields_add1.'.$phpEx);
		include_once($phpbb_root_path.'tracker/include/posting_addfields_add2.'.$phpEx);
	}
перед

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

// Build custom bbcodes array
display_custom_bbcodes();
добавить

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

if($array_addfields && ($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_post_id'])))
{
	include_once($phpbb_root_path.'tracker/include/posting_addfields_add2.'.$phpEx);
}
/includes/functions.php после

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

// Common global functions
добавить

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

function get_forum_addfields($line)
{
	$lines=array();

	if($line)
	{
		$lines=explode(' ', $line);
		$lines=array_map('trim', $lines);
	}

	return $lines;
}
/includes/acp/acp_forums.php после

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

						'forum_password_confirm'=> request_var('forum_password_confirm', '', true),
						'forum_password_unset'	=> request_var('forum_password_unset', false),
добавить

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

						'forum_addfields'	=> request_var('forum_addfields', ''),
перед

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

						$forum_perm_from = request_var('forum_perm_from', 0);
						$cache->destroy('sql', FORUMS_TABLE);
добавить

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

						$forum_addfields_from = request_var('forum_addfields_from', 0);

						// Copy addfields?
						if ($forum_addfields_from && !empty($forum_addfields_from) && $forum_addfields_from != $forum_data['forum_id'])
						{

							$sql = 'SELECT forum_addfields
								FROM ' . FORUMS_TABLE . '
								WHERE forum_id = ' . $forum_addfields_from;
							$result = $db->sql_query($sql);

							$cp_addfields=$db->sql_fetchrow($result);
							$db->sql_freeresult($result);

							$sql = 'UPDATE ' . FORUMS_TABLE . "
								SET forum_addfields='{$cp_addfields['forum_addfields']}'
								WHERE forum_id = " . $forum_data['forum_id'];
							$result = $db->sql_query($sql);
						}
после

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

							'forum_password'		=> '',
							'forum_password_confirm'=> '',
добавить

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

							'forum_addfields' => '',
перед

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

				$template->assign_vars(array(
					'S_EDIT_FORUM'		=> true,
					'S_ERROR'			=> (sizeof($errors)) ? true : false,
добавить

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

				$user->add_lang('mods/ppkbb3cker_addfields');
				$forum_addfields_help='';
				foreach($user->lang['TRACKER_FORUM_ADDFIELDS'] as $k=>$v)
				{
					$forum_addfields_help.="<b>$v</b> - $k ";
				}
после

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

					'S_ENABLE_QUICK_REPLY'		=> ($forum_data['forum_flags'] & FORUM_FLAG_QUICK_REPLY) ? true : false,
					'S_CAN_COPY_PERMISSIONS'	=> ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false,
добавить

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

					'FORUM_ADDFIELDS_HELP'=>$forum_addfields_help,
					'FORUM_ADDFIELDS_PLAIN'=> $forum_data['forum_addfields'],
/language/ru/posting.php перед
добавить

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

	'TRACKER_ADDFIELDS'	=> 'Дополнительные поля',
	'TRACKER_ADDFIELDS_EXAMPLE'	=> 'Пример',
/language/ru/acp/forums.php перед
добавить

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

	'FORUM_ADDFIELDS'						=> 'Дополнительные поля для форума',
	'FORUM_ADDFIELDS_EXPLAIN'						=> 'Отображаются при добавлении нового торрента, указываются через пробел, допустимые поля:',
	'COPY_ADDFIELDS'=> 'Копировать дополнительные поля форума из',
	'COPY_ADDFIELDS_EXPLAIN'=> 'Если вы выбрали копирование дополнительных полей, форуму будут присвоены те же дополнительные поля, что и выбранному здесь. Все ранее установленные дополнительные поля к этому форуму будут при этом заменены. Если форум не выбран, будут сохранены текущие дополнительные поля.',
	'NO_ADDFIELDS'=> 'Не копировать дополнительные поля',
/adm/styles/acp_forums.html перед

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

	<!-- IF S_CAN_COPY_PERMISSIONS -->
		<dl>
добавить

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

	<dl>
		<dt><label for="forum_addfields">{L_FORUM_ADDFIELDS}:</label><br /><span>{L_FORUM_ADDFIELDS_EXPLAIN}<br />{FORUM_ADDFIELDS_HELP}</span></dt>
		<dd><textarea id="forum_addfields" name="forum_addfields" rows="4" cols="30">{FORUM_ADDFIELDS_PLAIN}</textarea></dd>
	</dl>
	<dl>
		<dt><label for="forum_addfields_from">{L_COPY_ADDFIELDS}:</label><br /><span>{L_COPY_ADDFIELDS_EXPLAIN}</span></dt>
		<dd><select id="forum_addfields_from" name="forum_addfields_from"><option value="0">{L_NO_ADDFIELDS}</option>{S_FORUM_OPTIONS}</select></dd>
	</dl>
/styles/prosilver/template/posting_editor.html после

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

				<!-- IF S_SHOW_POLL_BOX || S_POLL_DELETE --><li id="poll-panel-tab"><a href="#tabs" onclick="subPanels('poll-panel'); return false;"><span>{L_ADD_POLL}</span></a></li><!-- ENDIF -->
добавить

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

				<!-- IF FORUM_ADDFIELDS --><li id="addfields-panel-tab"><a href="#tabs" onclick="subPanels('addfields-panel'); return false;"><span>{L_TRACKER_ADDFIELDS}</span></a></li><!-- ENDIF -->
/styles/prosilver/template/posting_buttons.html после

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

var panels = new Array('options-panel', 'attach-panel', 'poll-panel'
добавить

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

<!-- IF FORUM_ADDFIELDS -->, 'addfields-panel'<!-- ENDIF -->
/styles/prosilver/template/posting_layout.html перед

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

<!-- IF S_SHOW_ATTACH_BOX --><!-- INCLUDE posting_attach_body.html --><!-- ENDIF -->
добавить

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

<!-- IF FORUM_ADDFIELDS -->
<div class="panel bg3" id="addfields-panel">
	<div class="inner"><span class="corners-top"><span></span></span>

	<fieldset class="fields2">
	<dl style="clear: left;">
		<dt><b>{L_TRACKER_ADDFIELDS}</b>:</dt>
		<dd>&nbsp;</dd>
	</dl>
		<!-- BEGIN addfields_option -->
			<dl>
				<dt><b>{addfields_option.ADDFIELDS_NAME}</b>:</dt>
				<dd>{addfields_option.ADDFIELDS_VALUE}</dd>
			</dl>
		<!-- END addfields_option -->
	</fieldset>

	<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->
/styles/subsilver2/template/posting_body.html перед

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

<tr>
	<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}
добавить

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

<!-- IF FORUM_ADDFIELDS -->
<tr>
	<th colspan="2" class="row1"><span>{L_TRACKER_ADDFIELDS}</span></th>
</tr>

<tr>
	<td class="row1"><b>{L_TRACKER_ADDFIELDS}</b>:</td>
	<td class="row2">&nbsp;</td>
</tr>
<!-- BEGIN addfields_option -->
	<tr>
		<td class="row1"><b>{addfields_option.ADDFIELDS_NAME}</b>:</td>
		<td class="row2">{addfields_option.ADDFIELDS_VALUE}</td>
	</tr>
<!-- END addfields_option -->
<!-- ENDIF -->
Результат, скриншоты, адм. раздел:


создание новой темы


предпросмотр сообщения:


отображение сообщения:


редактирование темы:


--
Для пользователей ppkBB3cker - НЕ нужно устанавливать данный мод в трекер, он уже там установлен.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
oz
ozim
Сообщения: 12
Зарегистрирован: 15 фев 2011, 00:55
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

10 ноя 2011, 13:16

все сделал - полей нету..

Добавлено спустя 57 минут 55 секунд:
или этот мод только для трекера?... на обычном форуме не выходит.
Аватара пользователя
zzipper
Благодарил (а): 12 раз
Поблагодарили: 10 раз
Сообщения: 427
Зарегистрирован: 20 окт 2009, 14:15
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

10 ноя 2011, 14:20

ozim, а вы их создали?
Аватара пользователя
PPK
Администратор
Благодарил (а): 74 раза
Поблагодарили: 1499 раз
Сообщения: 9553
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

10 ноя 2011, 15:19

ozim писал(а):или этот мод только для трекера?... на обычном форуме не выходит.
нет, это мод для форума, неважно есть там трекер или нет.
oz
ozim
Сообщения: 12
Зарегистрирован: 15 фев 2011, 00:55
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

10 ноя 2011, 16:03

Создал поля в форуме, почистил кэш - нет полей..

Добавлено спустя 13 минут 32 секунды:
в третий раз переустановил мод - бесполезно..

Добавлено спустя 4 минуты 59 секунд:
ха, в коде нашел

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

<div id="addfields-panel" class="panel bg3" [b]style="display: none;[/b]">
с чего это оно?

Добавлено спустя 6 минут 46 секунд:
это в фаербаге такой вывод.
Аватара пользователя
PPK
Администратор
Благодарил (а): 74 раза
Поблагодарили: 1499 раз
Сообщения: 9553
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

10 ноя 2011, 16:36

переделанные файлы форума сюда или в ЛС.
oz
ozim
Сообщения: 12
Зарегистрирован: 15 фев 2011, 00:55
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

10 ноя 2011, 16:50

Я сделал финт ушами - перенес поля в другое место, в принципе мне там и удобнее - сразу после название темы. Файлы таки дать?

Добавлено спустя 1 час 56 минут 16 секунд:
А как можно сделать, чтобы после создания темы, ее название формировалось из названия + данные одного из полей? в мое случае, в одном поле пишется имя автора книги, хочется чтобы название было что то вроде : книга / автор
Заранее спасибо!
Аватара пользователя
zzipper
Благодарил (а): 12 раз
Поблагодарили: 10 раз
Сообщения: 427
Зарегистрирован: 20 окт 2009, 14:15
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

11 ноя 2011, 08:26

ozim писал(а):название формировалось из названия
вотафак? о_О
Аватара пользователя
PPK
Администратор
Благодарил (а): 74 раза
Поблагодарили: 1499 раз
Сообщения: 9553
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

11 ноя 2011, 11:06

ozim писал(а):А как можно сделать, чтобы после создания темы, ее название формировалось из названия + данные одного из полей? в мое случае, в одном поле пишется имя автора книги, хочется чтобы название было что то вроде : книга / автор
Заранее спасибо!
пример тут Re: Вывод дополнительных полей в названии торрента. (Post by PPK #2186)
de
demon201984
Поблагодарили: 1 раз
Сообщения: 3
Зарегистрирован: 28 дек 2011, 11:06
Сообщение

Re: BB3AddFields - мод шаблонов дополнительных полей для форума phpBB3

28 дек 2011, 11:47

А можно ли настроить поиск по дополнительным полям в режиме расширенного поиска? а также возможность поиска по дополнительным полям (возможность их использования как метки темы), т.е. перед заголовком темы вставляем дополнительное поле и используем ее для поиска (при клике переходим к поиску подобных тем с этой меткой)?

Вернуться в «Минимоды и хаки для phpBB3»