Quick reply for phpBB3 - Быстрый ответ

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Quick reply for phpBB3 - Быстрый ответ

Сообщение rxu »

Мод быстрого ответа для phpBB3.

Возможности: быстрый ответ, быстрые темы. Управляется при помощи отдельного модуля в администраторском разделе (закладка Общие).

После установки обязателен запуск установочного скрипта install.php, которым, в том числе, будет включено отображение формы быстрого ответа для всех зарегистрированных пользователей.
Внимание: Не рекомендуется использовать установочный скрипт из пакета поставки мода версии 1.6.7. Вместо этого используйте исправленные версии install.php и uninstall.php.

Внимание: при обновлении с предыдущей версии не нужно запускать установочный скрипт install.php, если это не оговорено специально.

Внимание: инструкция по редактированию файла includes/functions_user.php для версии phpBB 3.0.6 изменилась:

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

OPEN
includes/functions_user.php

FIND
      'user_options'      => 230271,

REPLACE WITH
      'user_options'      => 232319,
О проблеме прокрутки страницы темы вниз к форме быстрого ответа.
Проявляется в Internet Explorer.
Фикс от прокрутки страницы вниз к форме быстрого ответа здесь, новая версия - здесь.
Вариант фикса от пользователя VEG - здесь.
Ещё один фикс от наших иностранных товарищей тут.

По вопросу появления формы быстрого ответа вверху, или двух форм на странице одновременно:
Проявляется, как правило, в стиле subsilver2 и других, созданных на его основе. Причиной является неправильное выполнение инструкции по установке. Добавление строки

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

<!-- IF QUICK_REPLY --><!-- INCLUDE quick_reply.html --><!-- ENDIF -->
необходимо производить только один раз и только после второго вхождения (в нижней части страницы) блока

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

			<td class="gensmall" width="100%" align="{S_CONTENT_FLOW_END}" nowrap="nowrap"><!-- INCLUDE pagination.html --></td>
		<!-- ENDIF -->
	</tr>
	</table>
Открытие формы БО по клику на ссылке "Цитата" с одновременной вставкой цитируемого текста: Quick reply for phpBB3 - Быстрый ответ

Дополнительно от Поручика:
Как поставить форму быстрого ответа на стиль subsilver2?

Ответ: скачать мод, разархивировать, разуть глаза, обратить внимание на папку templates.


Аддон добавления кнопки быстрого ответа во вложении. Возможное решение проблемы с отображением кнопки от пользователя Амб - здесь.

Дополнительно от Rayden:
Несколько косметических доработок для prosilver
Re: Доработка Quick reply for phpBB3 (rxu)

Дополнительно от Alek$:
Доработка встроенного быстрого ответа для версий 3.0.6 и выше.

Дополнительно от Борис Бердичевский:
поправки к моду БО для корректного отображения вида CAPTCHA для версий 3.0.6 и выше.
-----------------------------
Быстрый ответ для гостей
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось владимир1983 09.01.2014 15:09, всего редактировалось 25 раз.
Причина: Добавление ссылки на поправки к моду БО для корректного отображения вида CAPTCHA
Изображение
dimetrius
phpBB 1.4.0
Сообщения: 34
Стаж: 15 лет 7 месяцев
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение dimetrius »

Файл quick_reply.php с языковыми переменными лежит в

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

./language/ru/mods/quick_reply.php
Содержание точно такое же, только вверху ещё несколько строк, вот полный вариант, со всеми комментариями.

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

<?php
/** 
*
* posting [Russian]
*
* @package language
* @version $Id: quick_reply.php,v 1.6.6 2008/03/10 16:39:58 rxu Exp $
* @copyright (c) 2005 phpBB Group 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

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

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

// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine

$lang = array_merge($lang, array(
	'QUICK_POST'				=> 'Быстрая тема',
	'QUICK_REPLY'				=> 'Быстрый ответ',
	'ACP_QUICK_REPLY_EXPLAIN'	=> 'Здесь вы можете настроить желаемый вид и функции быстрого ответа в темах. Вы можете включить/отключить быстрый ответ, а также управлять отображением смайликов, формой добавления вложений и т.п.',
	'QUOTE_TEXT'				=> 'Выделите текст в сообщении',
	'QUICK_REPLY_DISPLAY'		=> 'Показывать панель быстрого ответа в темах',
	'QUICK_POST_DISPLAY'		=> 'Показывать панель быстрого создания тем в форумах',
	
// Блок администраторского раздела
	'ALLOW_QUICK_REPLY'					=> 'Разрешить быстрый ответ',
	'ALLOW_QUICK_REPLY_EXPLAIN'			=> 'Пользователи смогут отправлять сообщения на странице просмотра темы.',
	'ALLOW_QUICK_REPLY_REG'				=> 'Зарегистрированным пользователям',
	'ALLOW_QUICK_REPLY_ALL'				=> 'Всем',
	'ALLOW_QUICK_REPLY_NONE'			=> 'Нет',
	'ALLOW_REPLY_ICONS'					=> 'Значки сообщений/тем',
	'ALLOW_REPLY_CHECKBOXES'			=> 'Чекбоксы',
	'ALLOW_REPLY_ATTACHBOX'				=> 'Вложение файлов',
	'ALLOW_REPLY_SMILIES'				=> 'Смайлики',
	'ALLOW_QUICK_POST'					=> 'Разрешить быстрые темы',
	'ALLOW_QUICK_POST_EXPLAIN'			=> 'Пользователи смогут начинать новые темы на странице просмотра форума.',
	
// Блок установки
	'INSTALLED'							=> 'Мод быстрого ответа успешно <strong>установлен</strong>.',
	'NO_FILES_MODIFIED'					=> 'Вы не внесли изменения в файлы в соответствии с инструкцией по установке мода.',
	'NOT_INSTALLED'						=> 'На вашей конференции не был установлен данный мод быстрого ответа.',
	'UNINSTALLED'						=> 'Мод быстрого ответа успешно <strong>удалён</strong> из базы данных.',
));

?>
При этом везде нормально всё переведено, но именно в этом месте проблема.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение Пчелкин »

Проверяйте внимательно правку файлов includes/ucp/ucp_prefs.php и styles/ваш/template/ucp_prefs_view.html
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
dimetrius
phpBB 1.4.0
Сообщения: 34
Стаж: 15 лет 7 месяцев
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение dimetrius »

Внимательно проверил эти файлы, всё строго соответствует мануалу по установке.
Причём устанавливал я изначально по всем шагам для prosilver, а потом и для subsilver2, так вот такая история творится в обоих шаблонах.

Google говорит что это не первая такая ситуация, вот допустим у людей было, не знаю исправили, или нет, нет желания регистрироваться.
http://www.hpforum.ru/viewtopic.php?f=57&t=11859
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение Пчелкин »

Дайте оба файла....хотя зачем...все пять кешов обновляли?
1. пройдите по всем форумам, отключите стандартный быстрый ответ во всех.
2. это
Внимание: Не рекомендуется использовать установочный скрипт из пакета поставки мода версии 1.6.7. Вместо этого используйте исправленные версии install.php и uninstall.php.
здесь Quick reply for phpBB3 - Быстрый ответ читали?
3. это
Внимание: инструкция по редактированию файла includes/functions_user.php для версии phpBB 3.0.6 изменилась:
там же видели?
4. 1024 к своей цифре прибавили?
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
R3mbrant
phpBB 1.2.1
Сообщения: 26
Стаж: 17 лет 10 месяцев
Благодарил (а): 4 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение R3mbrant »

Месадж бокс не выравнен по профилю пользователя.
Мелочь конечно, можно и самому руками довести, но все же.
Изображение
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение Пчелкин »

А при леворуком стиле смайлы налево что-ли перетаскивать надо? Я не стал. Минипрофили слева, смайлы остались справа.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
R3mbrant
phpBB 1.2.1
Сообщения: 26
Стаж: 17 лет 10 месяцев
Благодарил (а): 4 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение R3mbrant »

Пчелкин писал(а):А при леворуком стиле смайлы налево что-ли перетаскивать надо? Я не стал. Минипрофили слева, смайлы остались справа.
Ну по большому счету да, надо перетаскивать. Иначе не опрятно, имхо.

Добавлено спустя 41 минуту 25 секунд:
Вот, может кому пригодится.

Выравнивание формы ответа по минипрофилю (prosilver).

Открываем styles\prosilver\theme\forms.css
Ищем:

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

/* Main message box */
#message-box {
	width: 80%;
}
Заменяем на:

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

/* Main message box */
#message-box {
	width: 78%;
}
Ищем:

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

/* Emoticons panel */
#smiley-box {
	width: 18%;
	float: right;
}
Заменяем на:

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

/* Emoticons panel */
#smiley-box {
	width: 21%;
	float: right;
}
dimetrius
phpBB 1.4.0
Сообщения: 34
Стаж: 15 лет 7 месяцев
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение dimetrius »

Пчелкин писал(а):Дайте оба файла....хотя зачем...все пять кешов обновляли?
1. пройдите по всем форумам, отключите стандартный быстрый ответ во всех.
2. это
Внимание: Не рекомендуется использовать установочный скрипт из пакета поставки мода версии 1.6.7. Вместо этого используйте исправленные версии install.php и uninstall.php.
здесь Quick reply for phpBB3 - Быстрый ответ читали?
3. это
Внимание: инструкция по редактированию файла includes/functions_user.php для версии phpBB 3.0.6 изменилась:
там же видели?
4. 1024 к своей цифре прибавили?
Кэши шаблонов, на главной странице админки сбрасывал.

1. Сделано сразу, т.к. отображался и стандартный БО и от нашего мода.
2. Удалил старым скриптом, установил новым.
3. Это тоже почти сразу исправил, стоит 232319
4. Не понял, куда добавлять? Если к 232319, то попробовал, не помогло.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение Пчелкин »

dimetrius
осталось на файлы взглянуть ...на оба....

Добавлено спустя 6 минут 18 секунд:
R3mbrant
Скопировал в "хранилище советов"
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
dimetrius
phpBB 1.4.0
Сообщения: 34
Стаж: 15 лет 7 месяцев
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение dimetrius »

Да, конечно. Вот они.
includes/ucp/ucp_prefs.php

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

<?php
/**
*
* @package ucp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

/**
* ucp_prefs
* Changing user preferences
* @package ucp
*/
class ucp_prefs
{
	var $u_action;

	function main($id, $mode)
	{
		global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;

		$submit = (isset($_POST['submit'])) ? true : false;
		$error = $data = array();
		$s_hidden_fields = '';

		switch ($mode)
		{
			case 'personal':
				add_form_key('ucp_prefs_personal');
				$data = array(
					'notifymethod'	=> request_var('notifymethod', $user->data['user_notify_type']),
					'dateformat'	=> request_var('dateformat', $user->data['user_dateformat'], true),
					'lang'			=> basename(request_var('lang', $user->data['user_lang'])),
					'style'			=> request_var('style', (int) $user->data['user_style']),
					'tz'			=> request_var('tz', (float) $user->data['user_timezone']),

					'dst'			=> request_var('dst', (bool) $user->data['user_dst']),
					'viewemail'		=> request_var('viewemail', (bool) $user->data['user_allow_viewemail']),
					'massemail'		=> request_var('massemail', (bool) $user->data['user_allow_massemail']),
					'hideonline'	=> request_var('hideonline', (bool) !$user->data['user_allow_viewonline']),
					'notifypm'		=> request_var('notifypm', (bool) $user->data['user_notify_pm']),
					'popuppm'		=> request_var('popuppm', (bool) $user->optionget('popuppm')),
					'allowpm'		=> request_var('allowpm', (bool) $user->data['user_allow_pm']),
					'allowthankspm'	=> request_var('allowthankspm', (bool) $user->data['user_allow_thanks_pm']),
					'allowthanksemail'	=> request_var('allowthanksemail', (bool) $user->data['user_allow_thanks_email']),
				);

				if ($data['notifymethod'] == NOTIFY_IM && (!$config['jab_enable'] || !$user->data['user_jabber'] || !@extension_loaded('xml')))
				{
					// Jabber isnt enabled, or no jabber field filled in. Update the users table to be sure its correct.
					$data['notifymethod'] = NOTIFY_BOTH;
				}

				if ($submit)
				{
					$data['style'] = ($config['override_user_style']) ? $config['default_style'] : $data['style'];

					$error = validate_data($data, array(
						'dateformat'	=> array('string', false, 1, 30),
						'lang'			=> array('match', false, '#^[a-z0-9_\-]{2,}$#i'),
						'tz'			=> array('num', false, -14, 14),
					));

					if (!check_form_key('ucp_prefs_personal'))
					{
						$error[] = 'FORM_INVALID';
					}

					if (!sizeof($error))
					{
						$user->optionset('popuppm', $data['popuppm']);

						$sql_ary = array(
							'user_allow_pm'			=> $data['allowpm'],
							'user_allow_thanks_pm'	=> $data['allowthankspm'],
							'user_allow_thanks_email'=> $data['allowthanksemail'],
							'user_allow_viewemail'	=> $data['viewemail'],
							'user_allow_massemail'	=> $data['massemail'],
							'user_allow_viewonline'	=> ($auth->acl_get('u_hideonline')) ? !$data['hideonline'] : $user->data['user_allow_viewonline'],
							'user_notify_type'		=> $data['notifymethod'],
							'user_notify_pm'		=> $data['notifypm'],
							'user_options'			=> $user->data['user_options'],

							'user_dst'				=> $data['dst'],
							'user_dateformat'		=> $data['dateformat'],
							'user_lang'				=> $data['lang'],
							'user_timezone'			=> $data['tz'],
							'user_style'			=> $data['style'],
						);

						$sql = 'UPDATE ' . USERS_TABLE . '
							SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
							WHERE user_id = ' . $user->data['user_id'];
						$db->sql_query($sql);

						meta_refresh(3, $this->u_action);
						$message = $user->lang['PREFERENCES_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
						trigger_error($message);
					}

					// Replace "error" strings with their real, localised form
					$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
				}

				$dateformat_options = '';

				foreach ($user->lang['dateformats'] as $format => $null)
				{
					$dateformat_options .= '<option value="' . $format . '"' . (($format == $data['dateformat']) ? ' selected="selected"' : '') . '>';
					$dateformat_options .= $user->format_date(time(), $format, false) . ((strpos($format, '|') !== false) ? $user->lang['VARIANT_DATE_SEPARATOR'] . $user->format_date(time(), $format, true) : '');
					$dateformat_options .= '</option>';
				}

				$s_custom = false;

				$dateformat_options .= '<option value="custom"';
				if (!isset($user->lang['dateformats'][$data['dateformat']]))
				{
					$dateformat_options .= ' selected="selected"';
					$s_custom = true;
				}
				$dateformat_options .= '>' . $user->lang['CUSTOM_DATEFORMAT'] . '</option>';

				$template->assign_vars(array(
					'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '',

					'S_NOTIFY_EMAIL'	=> ($data['notifymethod'] == NOTIFY_EMAIL) ? true : false,
					'S_NOTIFY_IM'		=> ($data['notifymethod'] == NOTIFY_IM) ? true : false,
					'S_NOTIFY_BOTH'		=> ($data['notifymethod'] == NOTIFY_BOTH) ? true : false,
					'S_VIEW_EMAIL'		=> $data['viewemail'],
					'S_MASS_EMAIL'		=> $data['massemail'],
					'S_ALLOW_PM'		=> $data['allowpm'],
					'S_ALLOW_THANKS_PM'	=> $data['allowthankspm'],
					'S_ALLOW_THANKS_EMAIL'=> $data['allowthanksemail'],
					'S_HIDE_ONLINE'		=> $data['hideonline'],
					'S_NOTIFY_PM'		=> $data['notifypm'],
					'S_POPUP_PM'		=> $data['popuppm'],
					'S_DST'				=> $data['dst'],

					'DATE_FORMAT'			=> $data['dateformat'],
					'A_DATE_FORMAT'			=> addslashes($data['dateformat']),
					'S_DATEFORMAT_OPTIONS'	=> $dateformat_options,
					'S_CUSTOM_DATEFORMAT'	=> $s_custom,
					'DEFAULT_DATEFORMAT'	=> $config['default_dateformat'],
					'A_DEFAULT_DATEFORMAT'	=> addslashes($config['default_dateformat']),

					'S_LANG_OPTIONS'		=> language_select($data['lang']),
					'S_STYLE_OPTIONS'		=> ($config['override_user_style']) ? '' : style_select($data['style']),
					'S_TZ_OPTIONS'			=> tz_select($data['tz'], true),
					'S_CAN_HIDE_ONLINE'		=> ($auth->acl_get('u_hideonline')) ? true : false,
					'S_SELECT_NOTIFY'		=> ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false)
				);

			break;

			case 'view':

				add_form_key('ucp_prefs_view');

				$data = array(
					'topic_sk'		=> request_var('topic_sk', (!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't'),
					'topic_sd'		=> request_var('topic_sd', (!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd'),
					'topic_st'		=> request_var('topic_st', (!empty($user->data['user_topic_show_days'])) ? $user->data['user_topic_show_days'] : 0),

					'post_sk'		=> request_var('post_sk', (!empty($user->data['user_post_sortby_type'])) ? $user->data['user_post_sortby_type'] : 't'),
					'post_sd'		=> request_var('post_sd', (!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'a'),
					'post_st'		=> request_var('post_st', (!empty($user->data['user_post_show_days'])) ? $user->data['user_post_show_days'] : 0),

					'images'		=> request_var('images', (bool) $user->optionget('viewimg')),
					'flash'			=> request_var('flash', (bool) $user->optionget('viewflash')),
					'smilies'		=> request_var('smilies', (bool) $user->optionget('viewsmilies')),
					'sigs'			=> request_var('sigs', (bool) $user->optionget('viewsigs')),
					'avatars'		=> request_var('avatars', (bool) $user->optionget('viewavatars')),
					'wordcensor'	=> request_var('wordcensor', (bool) $user->optionget('viewcensors')),
					'quickreply'	=> request_var('quickreply', (bool) $user->optionget('viewquickreply')),
					'quickpost'		=> request_var('quickpost', (bool) $user->optionget('viewquickpost')),
				);

				if ($submit)
				{
					$error = validate_data($data, array(
						'topic_sk'	=> array('string', false, 1, 1),
						'topic_sd'	=> array('string', false, 1, 1),
						'post_sk'	=> array('string', false, 1, 1),
						'post_sd'	=> array('string', false, 1, 1),
					));

					if (!check_form_key('ucp_prefs_view'))
					{
						$error[] = 'FORM_INVALID';
					}

					if (!sizeof($error))
					{
						$user->optionset('viewimg', $data['images']);
						$user->optionset('viewflash', $data['flash']);
						$user->optionset('viewsmilies', $data['smilies']);
						$user->optionset('viewsigs', $data['sigs']);
						$user->optionset('viewavatars', $data['avatars']);
						$user->optionset('viewquickreply', $data['quickreply']);
						$user->optionset('viewquickpost', $data['quickpost']);

						if ($auth->acl_get('u_chgcensors'))
						{
							$user->optionset('viewcensors', $data['wordcensor']);
						}

						$sql_ary = array(
							'user_options'				=> $user->data['user_options'],
							'user_topic_sortby_type'	=> $data['topic_sk'],
							'user_post_sortby_type'		=> $data['post_sk'],
							'user_topic_sortby_dir'		=> $data['topic_sd'],
							'user_post_sortby_dir'		=> $data['post_sd'],

							'user_topic_show_days'	=> $data['topic_st'],
							'user_post_show_days'	=> $data['post_st'],
						);

						$sql = 'UPDATE ' . USERS_TABLE . '
							SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
							WHERE user_id = ' . $user->data['user_id'];
						$db->sql_query($sql);

						meta_refresh(3, $this->u_action);
						$message = $user->lang['PREFERENCES_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
						trigger_error($message);
					}

					// Replace "error" strings with their real, localised form
					$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
				}

				$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']);

				// Topic ordering options
				$limit_topic_days = array(0 => $user->lang['ALL_TOPICS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);

				$sort_by_topic_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 'r' => $user->lang['REPLIES'], 's' => $user->lang['SUBJECT'], 'v' => $user->lang['VIEWS']);
				$sort_by_topic_sql = array('a' => 't.topic_first_poster_name', 't' => 't.topic_last_post_time', 'r' => 't.topic_replies', 's' => 't.topic_title', 'v' => 't.topic_views');

				// Post ordering options
				$limit_post_days = array(0 => $user->lang['ALL_POSTS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);

				$sort_by_post_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 's' => $user->lang['SUBJECT']);
				$sort_by_post_sql = array('a' => 'u.username_clean', 't' => 'p.post_id', 's' => 'p.post_subject');

				$_options = array('topic', 'post');
				foreach ($_options as $sort_option)
				{
					${'s_limit_' . $sort_option . '_days'} = '<select name="' . $sort_option . '_st">';
					foreach (${'limit_' . $sort_option . '_days'} as $day => $text)
					{
						$selected = ($data[$sort_option . '_st'] == $day) ? ' selected="selected"' : '';
						${'s_limit_' . $sort_option . '_days'} .= '<option value="' . $day . '"' . $selected . '>' . $text . '</option>';
					}
					${'s_limit_' . $sort_option . '_days'} .= '</select>';

					${'s_sort_' . $sort_option . '_key'} = '<select name="' . $sort_option . '_sk">';
					foreach (${'sort_by_' . $sort_option . '_text'} as $key => $text)
					{
						$selected = ($data[$sort_option . '_sk'] == $key) ? ' selected="selected"' : '';
						${'s_sort_' . $sort_option . '_key'} .= '<option value="' . $key . '"' . $selected . '>' . $text . '</option>';
					}
					${'s_sort_' . $sort_option . '_key'} .= '</select>';

					${'s_sort_' . $sort_option . '_dir'} = '<select name="' . $sort_option . '_sd">';
					foreach ($sort_dir_text as $key => $value)
					{
						$selected = ($data[$sort_option . '_sd'] == $key) ? ' selected="selected"' : '';
						${'s_sort_' . $sort_option . '_dir'} .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>';
					}
					${'s_sort_' . $sort_option . '_dir'} .= '</select>';
				}

				$template->assign_vars(array(
					'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '',

					'S_IMAGES'			=> $data['images'],
					'S_FLASH'			=> $data['flash'],
					'S_SMILIES'			=> $data['smilies'],
					'S_SIGS'			=> $data['sigs'],
					'S_AVATARS'			=> $data['avatars'],
					'S_DISABLE_CENSORS'	=> $data['wordcensor'],
					'S_QUICKREPLY'		=> $data['quickreply'],
					'QUICK_REPLY'		=> ($config['allow_quick_reply']) ? true : false,
					'S_QUICKPOST'		=> $data['quickpost'],
					'QUICK_POST'		=> ($config['allow_quick_post']) ? true : false,
					'S_CHANGE_CENSORS'		=> ($auth->acl_get('u_chgcensors') && $config['allow_nocensors']) ? true : false,
					'S_TOPIC_SORT_DAYS'		=> $s_limit_topic_days,
					'S_TOPIC_SORT_KEY'		=> $s_sort_topic_key,
					'S_TOPIC_SORT_DIR'		=> $s_sort_topic_dir,
					'S_POST_SORT_DAYS'		=> $s_limit_post_days,
					'S_POST_SORT_KEY'		=> $s_sort_post_key,
					'S_POST_SORT_DIR'		=> $s_sort_post_dir)
				);

			break;

			case 'post':

				$data = array(
					'bbcode'	=> request_var('bbcode', $user->optionget('bbcode')),
					'smilies'	=> request_var('smilies', $user->optionget('smilies')),
					'sig'		=> request_var('sig', $user->optionget('attachsig')),
					'notify'	=> request_var('notify', (bool) $user->data['user_notify']),
				);
				add_form_key('ucp_prefs_post');

				if ($submit)
				{
					if (check_form_key('ucp_prefs_post'))
					{
						$user->optionset('bbcode', $data['bbcode']);
						$user->optionset('smilies', $data['smilies']);
						$user->optionset('attachsig', $data['sig']);

						$sql_ary = array(
							'user_options'	=> $user->data['user_options'],
							'user_notify'	=> $data['notify'],
						);

						$sql = 'UPDATE ' . USERS_TABLE . '
							SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
							WHERE user_id = ' . $user->data['user_id'];
						$db->sql_query($sql);

						$msg = $user->lang['PREFERENCES_UPDATED'];
					}
					else
					{
						$msg = $user->lang['FORM_INVALID'];
					}
					meta_refresh(3, $this->u_action);
					$message = $msg . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
					trigger_error($message);
				}

				$template->assign_vars(array(
					'S_BBCODE'	=> $data['bbcode'],
					'S_SMILIES'	=> $data['smilies'],
					'S_SIG'		=> $data['sig'],
					'S_NOTIFY'	=> $data['notify'])
				);
			break;
		}

		$template->assign_vars(array(
			'L_TITLE'			=> $user->lang['UCP_PREFS_' . strtoupper($mode)],

			'S_HIDDEN_FIELDS'	=> $s_hidden_fields,
			'S_UCP_ACTION'		=> $this->u_action)
		);

		$this->tpl_name = 'ucp_prefs_' . $mode;
		$this->page_title = 'UCP_PREFS_' . strtoupper($mode);
	}
}

?>
styles/prosilver/template/ucp_prefs_view.html

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

<!-- INCLUDE ucp_header.html -->

<form id="ucp" method="post" action="{S_UCP_ACTION}"{S_FORM_ENCTYPE}>

<h2>{L_TITLE}</h2>

<div class="panel">
	<div class="inner"><span class="corners-top"><span></span></span>

		<fieldset>
		<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF -->
		<dl>
			<dt><label for="images1">{L_VIEW_IMAGES}:</label></dt>
			<dd>
				<label for="images1"><input type="radio" name="images" id="images1" value="1"<!-- IF S_IMAGES --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
				<label for="images0"><input type="radio" name="images" id="images0" value="0"<!-- IF not S_IMAGES --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
			</dd>
		</dl>
		<dl>
			<dt><label for="flash0">{L_VIEW_FLASH}:</label></dt>
			<dd>
				<label for="flash1"><input type="radio" name="flash" id="flash1" value="1"<!-- IF S_FLASH --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
				<label for="flash0"><input type="radio" name="flash" id="flash0" value="0"<!-- IF not S_FLASH --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
			</dd>
		</dl>
		<dl>
			<dt><label for="smilies1">{L_VIEW_SMILIES}:</label></dt>
			<dd>
				<label for="smilies1"><input type="radio" name="smilies" id="smilies1" value="1"<!-- IF S_SMILIES --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
				<label for="smilies0"><input type="radio" name="smilies" id="smilies0" value="0"<!-- IF not S_SMILIES --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
			</dd>
		</dl>
		<dl>
			<dt><label for="sigs1">{L_VIEW_SIGS}:</label></dt>
			<dd>
				<label for="sigs1"><input type="radio" name="sigs" id="sigs1" value="1"<!-- IF S_SIGS --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
				<label for="sigs0"><input type="radio" name="sigs" id="sigs0" value="0"<!-- IF not S_SIGS --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
			</dd>
		</dl>
		<dl>
			<dt><label for="avatars1">{L_VIEW_AVATARS}:</label></dt>
			<dd>
				<label for="avatars1"><input type="radio" name="avatars" id="avatars1" value="1"<!-- IF S_AVATARS --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
				<label for="avatars0"><input type="radio" name="avatars" id="avatars0" value="0"<!-- IF not S_AVATARS --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
			</dd>
		</dl>
		<!-- IF QUICK_REPLY -->
		<dl>
			<dt><label for="quickreply1">{L_QUICK_REPLY_DISPLAY}:</label></dt>
			<dd>
				<label for="quickreply1"><input type="radio" name="quickreply" id="quickreply1" value="1"<!-- IF S_QUICKREPLY --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
				<label for="quickreply0"><input type="radio" name="quickreply" id="quickreply0" value="0"<!-- IF not S_QUICKREPLY --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
			</dd>
		</dl>
		<!-- ENDIF -->
		<!-- IF QUICK_POST -->
		<dl>
			<dt><label for="quickpost1">{L_QUICK_POST_DISPLAY}:</label></dt>
			<dd>
				<label for="quickpost1"><input type="radio" name="quickpost" id="quickpost1" value="1"<!-- IF S_QUICKPOST --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
				<label for="quickpost0"><input type="radio" name="quickpost" id="quickpost0" value="0"<!-- IF not S_QUICKPOST --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
			</dd>
		</dl>
		<!-- ENDIF -->
		<!-- IF S_CHANGE_CENSORS -->
			<dl>
				<dt><label for="wordcensor1">{L_DISABLE_CENSORS}:</label></dt>
				<dd>
					<label for="wordcensor1"><input type="radio" name="wordcensor" id="wordcensor1" value="1"<!-- IF S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /> {L_YES}</label> 
					<label for="wordcensor0"><input type="radio" name="wordcensor" id="wordcensor0" value="0"<!-- IF not S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
				</dd>
			</dl>
		<!-- ENDIF -->
		<hr />
		<dl>
			<dt><label>{L_VIEW_TOPICS_DAYS}:</label></dt>
			<dd>{S_TOPIC_SORT_DAYS}</dd>
		</dl>
		<dl>
			<dt><label>{L_VIEW_TOPICS_KEY}:</label></dt>
			<dd>{S_TOPIC_SORT_KEY}</dd>
		</dl>
		<dl>
			<dt><label>{L_VIEW_TOPICS_DIR}:</label></dt>
			<dd>{S_TOPIC_SORT_DIR}</dd>
		</dl>
		<hr />
		<dl>
			<dt><label>{L_VIEW_POSTS_DAYS}:</label></dt>
			<dd>{S_POST_SORT_DAYS}</dd>
		</dl>
		<dl>
			<dt><label>{L_VIEW_POSTS_KEY}:</label></dt>
			<dd>{S_POST_SORT_KEY}</dd>
		</dl>
		<dl>
			<dt><label>{L_VIEW_POSTS_DIR}:</label></dt>
			<dd>{S_POST_SORT_DIR}</dd>
		</dl>
		</fieldset>

	<span class="corners-bottom"><span></span></span></div>
</div>

<fieldset class="submit-buttons">
	{S_HIDDEN_FIELDS}<input type="reset" value="{L_RESET}" name="reset" class="button2" />&nbsp; 
	<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
	{S_FORM_TOKEN}
</fieldset>
</form>

<!-- INCLUDE ucp_footer.html -->
styles/subsilver2/template/ucp_prefs_view.html

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

<!-- INCLUDE ucp_header.html -->

<table class="tablebg" width="100%" cellspacing="1">
<tr>
	<th colspan="2" valign="middle">{L_TITLE}</th>
</tr>
<!-- IF ERROR -->
	<tr>
		<td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
	</tr>
<!-- ENDIF -->
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_IMAGES}:</b></td>
	<td class="row2"><input type="radio" class="radio" name="images" value="1"<!-- IF S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="images" value="0"<!-- IF not S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_FLASH}:</b></td>
	<td class="row2"><input type="radio" class="radio" name="flash" value="1"<!-- IF S_FLASH --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="flash" value="0"<!-- IF not S_FLASH --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_SMILIES}:</b></td>
	<td class="row2"><input type="radio" class="radio" name="smilies" value="1"<!-- IF S_SMILIES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="smilies" value="0"<!-- IF not S_SMILIES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_SIGS}:</b></td>
	<td class="row2"><input type="radio" class="radio" name="sigs" value="1"<!-- IF S_SIGS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="sigs" value="0"<!-- IF not S_SIGS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_AVATARS}:</b></td>
	<td class="row2"><input type="radio" class="radio" name="avatars" value="1"<!-- IF S_AVATARS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="avatars" value="0"<!-- IF not S_AVATARS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr>
<!-- IF QUICK_REPLY -->
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_QUICK_REPLY_DISPLAY}:</b></td>
	<td class="row2"><input type="radio" class="radio" name="quickreply" value="1"<!-- IF S_QUICKREPLY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="quickreply" value="0"<!-- IF not S_QUICKREPLY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr>
<!-- ENDIF -->
<!-- IF QUICK_POST -->
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_QUICK_POST_DISPLAY}:</b></td>
	<td class="row2"><input type="radio" class="radio" name="quickpost" value="1"<!-- IF S_QUICKPOST --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="quickpost" value="0"<!-- IF not S_QUICKPOST --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr>
<!-- ENDIF -->
<!-- IF S_CHANGE_CENSORS -->
	<tr>
		<td class="row1" width="50%"><b class="genmed">{L_DISABLE_CENSORS}:</b></td>
		<td class="row2"><input type="radio" class="radio" name="wordcensor" value="1"<!-- IF S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="wordcensor" value="0"<!-- IF not S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
	</tr>
<!-- ENDIF -->
<tr>
	<td colspan="2" class="spacer"></td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_DAYS}:</b></td>
	<td class="row2">{S_TOPIC_SORT_DAYS}</td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_KEY}:</b></td>
	<td class="row2">{S_TOPIC_SORT_KEY}</td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_DIR}:</b></td>
	<td class="row2">{S_TOPIC_SORT_DIR}</td>
</tr>
<tr>
	<td colspan="2" class="spacer"></td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_DAYS}:</b></td>
	<td class="row2">{S_POST_SORT_DAYS}</td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_KEY}:</b></td>
	<td class="row2">{S_POST_SORT_KEY}</td>
</tr>
<tr>
	<td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_DIR}:</b></td>
	<td class="row2">{S_POST_SORT_DIR}</td>
</tr>
<tr>
	<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
</tr>
</table>

<!-- INCLUDE ucp_footer.html -->
Напоминаю, такое происходит в обоих шаблона.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение Пчелкин »

Такие большие портянки надо выкладывать вложениями в архивах..дома посмотрю.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение Пчелкин »

Все с вашими файлами окей.
Но я понял в чем косяк...
Вы инструкцию мода с language/en/acp/common.php не сделали с файлом
language/ru/acp/common.php....едрен батон.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
dimetrius
phpBB 1.4.0
Сообщения: 34
Стаж: 15 лет 7 месяцев
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение dimetrius »

Пчелкин, да в том то и дело что и в английском и в русском common.php всё прописано :(
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение Пчелкин »

Дикий совет (совсем дикий) ! Скопируйте строки русификатора из файла quick_reply.php в коммон , что в папке с русиком форума..не забудьте сохранить коммон в UTF8 без BOM...

Добавлено спустя 50 секунд:
dimetrius писал(а):в английском и в русском
Что-то верится с трудом.
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
dimetrius
phpBB 1.4.0
Сообщения: 34
Стаж: 15 лет 7 месяцев
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Quick reply for phpBB3 - Быстрый ответ

Сообщение dimetrius »

Пчелкин, я не спорю что зелёный ещё в phpbb, но в моей адекватности не нужно сомневаться :)

Скопировал из
./language/ru/mods/quick_reply.php
строки

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

	'QUICK_REPLY_DISPLAY'		=> 'Показывать панель быстрого ответа в темах',
	'QUICK_POST_DISPLAY'		=> 'Показывать панель быстрого создания тем в форумах',
Вставил в
./language/ru/acp/common.php

Не помогло.
Надоело задавать вопросы и ничего не делать самому, вставил не переведённые строки, в файл
./language/ru/ucp.php
Сразу появился перевод нужных строк. Так что я хз с чем это связано, т.к. с phpbb только начинаю дружбу, пока ещё не разобрался кто кого и где должен подключать, но выход найден.

Вернуться в «Анонсы и поддержка модов для phpBB 3.0.x»