Board3 Portal 1.0.x

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
axel13
phpBB 1.4.4
Сообщения: 100
Стаж: 21 год 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Board3 Portal 1.0.x

Сообщение axel13 »

Оффсайт: http://www.board3.de
Скачать (1.0.6): http://www.board3.de/viewtopic.php?f=40&t=3933
Русский перевод (1.0.6): Board3 Portal

Обсуждение Board3 Portal 2.0 в отдельной теме.

----------------------------------------------------
Итак установил этот портал. По функционалу гуд.
Но без бубна не обошлось.
А именно: т.к. установлен SEO мод, то ссылки из новостей имеют следующий вид http://mydomain.ru/forum/post916.html#p916 Решения пока не нашел. Есть у кого мысли по этому поводу?

Переместил portal.php из /forum в root. Работает. НО:
чтобы отображались картинки и часы в портале пришлось переписать все ссылки в styles/prosilver/template/portal/block (в тех блоках, которые с картинками) с <img src="portal/images/member.gif" на <img src="forum/portal/images/member.gif"

Еще в forum/portal/blok/login_box.php заменил

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

'U_PORTAL'				=> append_sid("{$phpbb_root_path}portal.$phpEx"),
на

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

'U_PORTAL'              => append_sid("index.$phpEx"),
(Взято с http://www.board3.de/viewtopic.php?f=10&t=350 )
Сделал русификацию % на 95 (не вся админка, главная потрала вся). Есть конечно ошибки, т.к. рабочая версия.

Посмотреть можно здесь: http://www.lanos.cc

Извиняюсь
Сайт разработчика http://www.board3.de/
скачать: http://www.phpbb.com/community/viewtopi ... 85&start=0

Добавлено спустя 27 минут 1 секунду:
Вот кста когда предупреждение выносите, ссылка на сообщение за которое предупреждение получено, тож имеет вид viewtopic.php?f=20&p=204927#p204927.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Alek$ 14.08.2011 10:36, всего редактировалось 10 раз.
Причина: Обновлены ссылки
Северо-Западный Клуб владельцев автомобилей Chevrolet Lanos, Daewoo Lanos, ZAZ Sens, Doninvest Assol. -=WWW.LANOS.CC=-
betterqn
phpBB 1.4.4
Сообщения: 123
Стаж: 17 лет 1 месяц
Благодарил (а): 25 раз

Re: Board3 Portal

Сообщение betterqn »

Почитав тему, посмотрев порталы пользователей, у многих заметил одинаковую беду:

Если новости в админке блока «Новости» параметр Отображать «Новости»:Да, Компактный режим блока новостей: Нет, то получается следующее, если полистать "архив новостей"

На первой странице мы имеем нормальный вид.
tyt vse normalbno.png
Листаем на вторую страницу:
Новости заканчиваются и начинаются опросы. Видно, сразу что вроде div не закрыт. (только в опере этот глюк заметил)

Это понятно, но куда делись разделители новостей (тонкие синие линии как на первом посте? опять же только в опере их нет...)
tyt vse ploxo.png
template/portal/block/news.html
находим

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

<!-- IF $S_POSTBODY_TOP --></div>
добавляем после Всё, с этим разобрались. А вот почему нет линии - без понятия. Шаблон вообще пальцем не трогал - скачан с сайта разработчика. (Кстати у многих такая беда)

Кто силён в математике? ;)

Методом научного "тыка" выяснилось, что эти синии линии пропадают (в опере) почему-то, если в админке выставлено значение "Максимальная длина содержимого новости: 999", поставил 900 - появились. В мозиле и хроме нормально. :(
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Board3 Portal

Сообщение Nekstati »

Отключайте ББ-коды в новостях либо включите в админке отображение новостей целиком, без обрезания, и всё будет хорошо. Корень зла в некорректной обрезке текста порталом: точка отреза иногда попадает на ББ-код и получается незакрытый тэг. Изменив длину новостей, вы сдвинули эту точку отреза, и тэг закрылся.

В корне проблему можно решить, применив качественную функцию обрезки текста: http://www.phpbb.com/community/viewtopi ... 1&t=670335. Либо сделать так, как это сделано штатно в search.php, на странице «Найти сообщения пользователя»: ББ-коды убираются из текстов функцией strip_bbcode(), если сообщение обрезано, и не убираются, если сообщение отображено целиком. Автор, думаю, вряд ли будет всем этим заморачиваться, ибо доля Оперы на западном рынке пренебрежимо мала. Попробую заняться, когда будет время…

только в опере этот глюк заметил
В мозиле и хроме нормально.
Моё частное мнение по поводу Оперы: этому русскому национальному браузеру давно пора на помойку. «Русскому» — потому что его мировая доля 1,5%, из которых половина приходится на Россию. Единственный смысл его существования — добавление головной боли русским вебмастерам.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Board3 Portal

Сообщение Nekstati »

Обещанное решение проблем с некорректной обрезкой текста в блоках новостей и объявлений. Вариант не идеальный, но вероятность появления незакрытых тэгов и тому подобных HTML-ошибок уменьшается примерно в 10 раз.

Открыть portal/includes/functions.php
Найти

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

		if (($text_length != 0) && (strlen($len_check) > $text_length))
		{
			$message = str_replace(array("\n", "\r"), array('<br />', "\n"), $row['post_text']);
			$message = get_sub_taged_string($message, $row['bbcode_uid'], $maxlen);
			$posts[$i]['striped'] = true;
		}
Заменить на

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

		if (($text_length != 0) && (utf8_strlen($len_check) > $text_length))
		{
			$message = trim_text($row['post_text'], $row['bbcode_uid'], $maxlen);
			$posts[$i]['striped'] = true;
		}
Найти

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

// fetch post for news & announce
Добавить перед

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

	/**
	* BBCode-safe truncating of text
	*
	* Originally from {@link http://www.phpbb.com/community/viewtopic.php?f=71&t=670335}
	* slightly modified to trim at either the first found end line or space by EXreaction.
	*
	* Modified by Chris Smith to trim to a specified number of paragraphs and/or a maximum
	* number of characters, and provide configurable stopping positions. Made some performance
	* improvements as well.
	*
	* Just like phpBB3 this function doesn't support embedding BBCodes in BBCode parameters
	* either except for [quote].
	*
	* @author fberci (http://www.phpbb.com/community/memberlist.php?mode=viewprofile&u=158767)
	* @author EXreaction (http://www.phpbb.com/community/memberlist.php?mode=viewprofile&u=202401)
	* @author Chris Smith <toonarmy@phpbb.com> (http://www.phpbb.com/community/memberlist.php?mode=viewprofile&u=108642)
	* @param string   $text			Text containing BBCode tags to be truncated
	* @param string   $uid			BBCode uid
	* @param int   $max_length		Text length limit
	* @param int   $max_paragraphs   Maximum number of paragraphs permitted
	* @param array   $stops			Characters to stop max length search at
	* @param string   $replacement   Replacment suffix for the removed text
	* @param string   $bitfield		BBCode bitfield (optional)
	* @param bool   $enable_bbcode   Whether BBCode is enabled (true by default)
	* @return string Resulting trimmed text
	*/
	function trim_text($text, $uid, $max_length, $max_paragraphs = 0, $stops = array(' ', "\n"), $replacement = '&hellip;', $bitfield = '', $enable_bbcode = true)
	{
		$orig_text = $text;
		
		if ($enable_bbcode)
		{
			static $custom_bbcodes = array();

			// Get all custom bbcodes
			if (empty($custom_bbcodes))
			{
				global $db;

				$sql = 'SELECT bbcode_id, bbcode_tag, second_pass_match
						FROM ' . BBCODES_TABLE;
				$result = $db->sql_query($sql, 3600);

				while ($row = $db->sql_fetchrow($result))
				{
					// There can be problems only with tags having an argument
					if (substr($row['bbcode_tag'], -1, 1) == '=')
					{
						$custom_bbcodes[$row['bbcode_id']] = array('[' . $row['bbcode_tag'], ':' . $uid . ']', str_replace('$uid', $uid, $row['second_pass_match']));
					}
				}
				$db->sql_freeresult($result);
			}
		}

		$trimmed = false;

		// Paragraph trimming
		if ($max_paragraphs && $max_paragraphs < preg_match_all('#\n\s*\n#m', $text, $matches))
		{
			$find = $matches[0][$max_paragraphs - 1];
			// Grab all the matches preceeding the paragraph to trim at, finds
			// those that match the trim marker, sum them to skip over them.
			$skip = sizeof(array_intersect(array_slice($matches[0], 0, $max_paragraphs - 1), array($find)));
			$pos = 0;

			do
			{
				$pos = utf8_strpos($text, $find, $pos + 1);
				$skip--;
			}
			while ($skip >= 0);

			$text = utf8_substr($text, 0, $pos);

			$trimmed = true;
		}

		// First truncate the text
		if ($max_length && utf8_strlen($text) > $max_length)
		{
			$pos = 0;
			$length = 0;

			if (!is_array($stops[0]))
			{
				$stops = array($stops);
			}

			foreach ($stops as $stop_group)
			{
				if (!is_array($stop_group))
				{
					continue;
				}

				foreach ($stop_group as $k => $v)
				{
					$find = (is_string($v)) ? $v : $k;
					$include = is_bool($v) && $v;

					if (($_pos = utf8_strpos(utf8_substr($text, $max_length), $find)) !== false)
					{
						if ($_pos < $pos || !$pos)
						{
							// This is a better find, it cuts the text shorter
							$pos = $_pos;
							$length = $include ? utf8_strlen($find) : 0;
						}
					}
				}

				if ($pos)
				{
					// Include the length of the search string if requested
					$max_length += $pos + $length;
					break;
				}
			}

			// Trim off spaces, this will miss UTF8 spacers :(
			$text = rtrim(utf8_substr($text, 0, $max_length));

			$trimmed = true;
		}

		// No BBCode or no trimming return
		if (!$enable_bbcode || !$trimmed)
		{
			return $text . ($trimmed ? $replacement : '');
		}

		// Some tags may contain spaces inside the tags themselves.
		// If there is any tag that had been started but not ended
		// cut the string off before it begins.
		$unsafe_tags = array(
			array('<', '>'),
			array('[quote="', "":$uid]"), // 3rd parameter true here too for now
		);

		// If bitfield is given only check for those tags that are surely existing in the text
		if (!empty($bitfield))
		{
			// Get all used tags
			$bitfield = new bitfield($bitfield);

			// isset() provides better performance
			$bbcodes_set = array_flip($bitfield->get_all_set());

			// Add custom BBCodes having a parameter and being used
			// to the array of potential tags that can be cut apart.
			foreach ($custom_bbcodes as $bbcode_id => $bbcode_tag)
			{
				if (isset($bbcodes_set[$bbcode_id]))
				{
					$unsafe_tags[] = $bbcode_tag;
				}
			}
		}
		// Else do the check for all possible tags
		else
		{
			$unsafe_tags = array_merge($unsafe_tags, $custom_bbcodes);
		}

		// @todo Fix this block
		foreach ($unsafe_tags as $tag)
		{
			if (($start_pos = strrpos($text, $tag[0])) > strrpos($text, $tag[1]))
			{
				$text = substr($text, 0, $start_pos);
			}
		}

		$text = $text . $replacement;

		// Get all of the BBCodes the text contains.
		// If it does not contain any than just skip this step.
		// Preg expression is borrowed from strip_bbcode()
		if (preg_match_all("#\[(\/?)([a-z0-9_\*\+\-]+)(?:=(".*"|[^\]]*))?(?::[a-z])?(?:\:$uid)\]#", $text, $matches, PREG_PATTERN_ORDER) != 0)
		{
			$open_tags = array();

			for ($i = 0, $size = sizeof($matches[0]); $i < $size; ++$i)
			{
				$bbcode_name = &$matches[2][$i];
				$opening = ($matches[1][$i] == '/') ? false : true;

				// If a new BBCode is opened add it to the array of open BBCodes
				if ($opening)
				{
					$open_tags[] = array(
						'name' => $bbcode_name,
						'plus' => ($opening && $bbcode_name == 'list' && !empty($matches[3][$i])) ? ':o' : '',
					);
				}
				// If a BBCode is closed remove it from the array of open BBCodes.
				// As always only the last opened open tag can be closed,
				// so we only need to remove the last element of the array.
				else
				{
					array_pop($open_tags);
				}
			}

			// Sort open BBCode tags so the most recently opened will be the first (because it has to be closed first)
			krsort ($open_tags);

			// Close remaining open BBCode tags
			foreach ($open_tags as $tag)
			{
				$text .= '[/' . $tag['name'] . $tag['plus'] . ':' . $uid . ']';
			}
		}

		return $text;
	}
Функция trim_text() взята отсюда, с незначительными изменениями.
betterqn
phpBB 1.4.4
Сообщения: 123
Стаж: 17 лет 1 месяц
Благодарил (а): 25 раз

Re: Board3 Portal

Сообщение betterqn »

Nekstati
В том случае Ббкоды ни при чем. №;%?:;%№% автор сперва заменял в новости все переводы строки на <br>, а потом резал ее до заданной длины, соответственно иногда тэг <br> резался на середине.

p.s. Браузеры не обязаны рендерить некорректный код. Наоборот чрезмерной толерантностью к качеству кода они разбаловали население.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Board3 Portal

Сообщение Nekstati »

Доработка, приведённая в предыдущем посте, исключает незакрытые <br>. Для тестирования я пролистала около 1000 новостей на своём форуме, установив вывод 50 новостей на страницу. Со стандартным кодом — обрезанный <br> попадается практически на каждой странице, иногда по нескольку штук (соответственно, в Опере блоки склеиваются на ≈70% страниц), всего же их попалось около 35 штук. С модифицированным кодом — ни одного обрезанного <br>, блоки склеились только один раз на 1000 новостей (незакрытый div).

Браузеры не обязаны рендерить некорректный код.

Разработчики всех браузеров, кроме одного, думают иначе.
betterqn
phpBB 1.4.4
Сообщения: 123
Стаж: 17 лет 1 месяц
Благодарил (а): 25 раз

Re: Board3 Portal

Сообщение betterqn »

После установки recent topics 1.0.3 на форум, портал вылетает в Fatal error если в настройках портала выбрано Отображать «Свежие темы»: Нет и соответственно portal.php не грузится (форум грузится и показываются recent topics).
Если в настройках портала выбрано Отображать «Свежие темы»: Да, портал грузится, но уже не грузится index.php (форум).

Ошибка одна:

[Sun Aug 15 18:33:19 2010] [error] PHP Fatal error: Cannot redeclare character_limit() in /сайт.ru/www/forum/portal/includes/functions.php on line 349

Добавлено спустя 43 минуты 2 секунды:
Проблема была в том, что уже во встроенном в портал плагине recent уже используется функция character_limit, как и в recent topics (от Райдена), сделал замену на character_limit2.
Последний раз редактировалось betterqn 15.08.2010 16:35, всего редактировалось 1 раз.
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 9 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Re: Board3 Portal

Сообщение nissin »

Уже было в топике поддержка мода recent topics, надо бы собраться и исправить.
Аватара пользователя
hrv
phpBB 1.4.1
Сообщения: 44
Стаж: 16 лет 9 месяцев
Откуда: Якутск
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Board3 Portal

Сообщение hrv »

Уважаемые гуру!
А ктонибудь прикручивал Highslide Attatchment Mod к порталу?
В форуме смотриться все отлично, Highslide Attatchment Mod работает как надо, а вот в портале както не очень, при нажатии на рисунок, открывает эго обновляя страницу.
Помогите плз, куда копать.

Добавлено спустя 1 минуту 27 секунд:
http://gps.ya1.ru для ознакомления с проблеммой, блок "новости".
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Board3 Portal

Сообщение Nekstati »

У вас в overall_header.html подключение Хайслайд-яваскрипта засунуто в условие:

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

<!-- IF SCRIPT_NAME == "viewtopic" or SCRIPT_NAME == "posting" or SCRIPT_NAME == "ucp" or SCRIPT_NAME == "search" -->
Нафиг?
Аватара пользователя
hrv
phpBB 1.4.1
Сообщения: 44
Стаж: 16 лет 9 месяцев
Откуда: Якутск
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Board3 Portal

Сообщение hrv »

Не понял вопроса?

Что нужно поправить?

Добавлено спустя 2 минуты 33 секунды:
Это же в мануале было.

Добавлено спустя 1 минуту 37 секунд:
Хотя нет, его я автомодом ставил и сам инсталл теперь найти немогу.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Board3 Portal

Сообщение Nekstati »

В мануале Highslide Attatchment Mod этого нет. Вероятно, у вас стоит другой Highslide Mod.

Замените указанную строку на <!-- IF not S_IS_BOT -->.
betterqn
phpBB 1.4.4
Сообщения: 123
Стаж: 17 лет 1 месяц
Благодарил (а): 25 раз

Re: Board3 Portal

Сообщение betterqn »

hrv
У меня с Highslide 4.1.8 всё работает нормально на портале, только что специально проверил.

http://www.phpbb3bbcodes.com/viewtopic.php?f=8&t=13
Аватара пользователя
hrv
phpBB 1.4.1
Сообщения: 44
Стаж: 16 лет 9 месяцев
Откуда: Якутск
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Board3 Portal

Сообщение hrv »

Обновился до 4.1.8 все стало нормуль. Только немного меньше функций у этой версии, одно радует, водяного знака производителя больше нет, глаза не мозолит.
Аватара пользователя
hrv
phpBB 1.4.1
Сообщения: 44
Стаж: 16 лет 9 месяцев
Откуда: Якутск
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Board3 Portal

Сообщение hrv »

Люди, а как сделать вывод последнего сообщения на главную, в какую таблицу лезть? или как можно порправить скрипт блоков?
Аватара пользователя
hrv
phpBB 1.4.1
Сообщения: 44
Стаж: 16 лет 9 месяцев
Откуда: Якутск
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Board3 Portal

Сообщение hrv »

Вообще хочу выложить в правый блок последние вложения с определенной ветки, чет пока незнаю как быть.

Добавлено спустя 8 минут 3 секунды:
http://gps.ya1.ru

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