Модификация ACP/MCP + обработка mysql

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Radiocity
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 2 месяца

Модификация ACP/MCP + обработка mysql

Сообщение Radiocity »

Приветствую.

На phpbb 3.0.5 потребовалось добавить возможность вывода ссылки справа от названия подфорума\темы.
С подготовкой стилей проблемы нет. Например, в админку добавил дополнительное поле.

adm\style\acp_forums.html (Строка: 186+)

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

	<fieldset>
		<legend>{L_FORUM_ADS} <span style="color:#ccc !important;">NEW</span></legend>
	<dl>
		<dt><label for="forum_ads">{L_FORUM_ADS}:</label><br /><span>{L_FORUM_ADS_DESC}</span></dt>
		<dd><input class="text medium" type="text" id="forum_ads" name="forum_ads" value="http://" maxlength="255" /></dd>

	</fieldset>
	<div id="forum_cat_options">
Как мне сделать так, чтобы данные сохранялись в базе данных для каждого отдельного подфорума\темы, когда сохраняю изменения в админке?
Как сделать чтобы при отсутствии неообходимого параметра в базе он создавался средствами движка (например, bd/phpbb_forums/forum_ad )?

PS У меня оочень скудные знания по mysql и функционалу phpbb =(
PPS Облазил все исходные коды движка, но найти не смог (по крайней мере не понял) =( =(
Последний раз редактировалось Radiocity 20.05.2010 11:19, всего редактировалось 1 раз.
Аватара пользователя
Radiocity
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 2 месяца

Re: Модификация ACP + обработка mysql

Сообщение Radiocity »

Что? Неужто никто не знает? =(
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Модификация ACP + обработка mysql

Сообщение Палыч »

Radiocity писал(а):от названия подфорума\темы.
Так форума (подфорума, что в принципе одно и то же) или темы? (вот эти понятия весьма отличаются и по коду также).

Для форума:
Radiocity писал(а):С подготовкой стилей проблемы нет.
Вместо

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

 value="http://" 
поставьте

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

value="{FORUM_ADS}"
Radiocity
Добавьте поле (префикс - свой)

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

ALTER TABLE phpbb_forums ADD forum_ads mediumtext NOT NULL;
файл includes/acp/acp_forums.php
найти

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

						'forum_name'			=> utf8_normalize_nfc(request_var('forum_name', '', true)),
добавить после

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

						'forum_ads'				=> utf8_normalize_nfc(request_var('forum_ads', '', true)),
найти

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

							'forum_name'			=> utf8_normalize_nfc(request_var('forum_name', '', true)),
добавить после

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

							'forum_ads'				=> utf8_normalize_nfc(request_var('forum_ads', '', true)),
найти

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

					'FORUM_NAME'				=> $forum_data['forum_name'],
добавить после

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

					'FORUM_ADS'					=> $forum_data['forum_ads'],
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Radiocity
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 2 месяца

Re: Модификация ACP + обработка mysql

Сообщение Radiocity »

Спасибо, большое.

Добавлю, только, что для отображенияв шаблоне через {forumrow.FORUM_ADS}
дописал по строчке в следующую структуру:
include\function_display.php (~283,~425)
$template->assign_block_vars('forumrow', array(
'S_IS_CAT' => true,
'FORUM_ID' => $row['forum_id'],
'FORUM_NAME' => $row['forum_name'],
'FORUM_ADS' => $row['forum_ads'],
В исходном файле данная структура повторяется 2 раза =)
Аватара пользователя
Radiocity
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 2 месяца

Re: Модификация ACP + обработка mysql

Сообщение Radiocity »

Продоложу тему =)
Теперь надо список тем отображать с ссылкой <_<

В include\mcp\mcp_forum.php добавил S_CAN_ADS:

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

'S_CAN_MOVE'			=> $auth->acl_get('m_move', $forum_id),
[b]'S_CAN_ADS'			=> $auth->acl_get('m_ads', $forum_id),[/b]
А в include\mcp\mcp_main.php:

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

		case 'delete_topic':
				$user->add_lang('viewtopic');

				$topic_ids = (!$quickmod) ? request_var('topic_id_list', array(0)) : array(request_var('t', 0));

				if (!sizeof($topic_ids))
				{
					trigger_error('NO_TOPIC_SELECTED');
				}

				mcp_delete_topic($topic_ids);
			break;
			
			case 'set_ads':
				$user->add_lang('viewtopic');

				$topic_ids = (!$quickmod) ? request_var('topic_id_list', array(0)) : array(request_var('t', 0));

				if (!sizeof($topic_ids))
				{
					trigger_error('NO_TOPIC_SELECTED');
				}

				mcp_set_ads($topic_ids);
			break;
Как мне правильно описать функцию mcp_set_ads(), чтобы в окне настройки темы при выборе опции set_ads появлялось окно настроек?))?

Вернуться в «Для авторов (phpBB 3.0.x)»