User Blog Mod: доработки

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

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

Re: User Blog Mod: доработки

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

В глобальных модерских правах это есть...но работает на все блоги...абидна...
Автору и писал...тишина...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 15 лет 4 месяца
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Забанен: Бессрочно

Re: User Blog Mod: доработки

Сообщение deadromeo »

Sheer поставил вашу доработку - User Blog Mod: доработки , все работает, но есть пара вопросов
1) Дебаг ругается

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

Undefined variable: phpbb_root_path
Undefined variable: phpEx
На строку из includes/functions.php

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

include($phpbb_root_path . 'blog/includes/constants.php' . $phpEx);
Думал что там php лишнее, убрал, но дебаг сыпнул новыми ошибками изза этого :( Может есть какие решения или это только у меня так ?

2) Возможно ли уменьшить количество запросов от этого дополнения к БД ? Опять такие по дебагу выходит прирост около 40 запросов :(
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: User Blog Mod: доработки

Сообщение Alecto »

выручайте, встраивал быстрый ответ (похоже вот этот Quick Reply phpBB 3.0.6 доработка встроенного быстрого ответ) в блоги: кнопку быстрая цитата и подстановку имени пользователя в форму быстрого ответа.
до обновления все работало.
после обновления с версии 1.014 до 1.015 имена пользователей перестали подставляться.
цитирование происходит, теги теги для имени подставляется, но только без имен.

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

быстрое цитирование - имени нет
[quote=""]меня пятый с конца кадр порадова[/quote]

подстановка имени - тег вставляется, имени нет
[b][/b]
quick_reply.html и view_blog.html
оставил от старой версии, поскольку там изменения минимальны по сравнению с новой и не критичны.

на в темах форума все работает правильно. куда еще смотреть?

Добавлено спустя 22 минуты 38 секунд:
сорри. разобрался своими силами, недосмотрел, что быстрый ответ от некстати требует правки blog_data.php, которй был заменен.
после добавки строки и очистки кэша все заработало.
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 16 лет 5 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз

Re: User Blog Mod: доработки

Сообщение HAMMER663 »

deadromeo
перед

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

include($phpbb_root_path . 'blog/includes/constants.php' . $phpEx);
добавьте

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

global $phpbb_root_path, $phpEx;
deadromeo
phpBB 2.0.0
Сообщения: 237
Стаж: 15 лет 4 месяца
Благодарил (а): 28 раз
Поблагодарили: 41 раз
Забанен: Бессрочно

Re: User Blog Mod: доработки

Сообщение deadromeo »

HAMMER663, большое спасибо, выручили, так и знал что решение где то рядом.
Я бы посоветовал тогда Sheer малехо поменять инструкцию по установке дополнения, касательно правок includes/functions.php, код

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

function get_complete_blog_tracking($blog_id, $topic_ids, $global_announce_list = false)
{
	global $config, $user, $db;
	include($phpbb_root_path . 'blog/includes/constants.php' . $phpEx);
	$last_read = array();

	if (!is_array($topic_ids))
	{
		$topic_ids = array($topic_ids);
	}

	$sql = 'SELECT blog_reply_id, mark_time
		FROM ' . BLOGS_REPLY_TRACKS_TABLE . "
		WHERE user_id = {$user->data['user_id']}
			AND " . $db->sql_in_set('blog_reply_id', $topic_ids);
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$last_read[$row['blog_reply_id']] = $row['mark_time'];
	}
	$db->sql_freeresult($result);

	$topic_ids = array_diff($topic_ids, array_keys($last_read));

	if (sizeof($topic_ids))
		{
			$sql = 'SELECT blog_id, mark_time
				FROM ' . BLOGS_TRACKS_TABLE . "
				WHERE user_id = {$user->data['user_id']}
					AND blog_id " .
					(($global_announce_list && sizeof($global_announce_list)) ? "IN (0, $blog_id)" : "= $blog_id");
			$result = $db->sql_query($sql);

			$mark_time = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$mark_time[$row['blog_id']] = $row['mark_time'];
			}
			$db->sql_freeresult($result);

			$user_lastmark = (isset($mark_time[$blog_id])) ? $mark_time[$blog_id] : $user->data['user_last_blog_mark'];

			foreach ($topic_ids as $blog_reply_id)
			{
				if ($global_announce_list && isset($global_announce_list[$blog_reply_id]))
				{
					$last_read[$blog_reply_id] = (isset($mark_time[0])) ? $mark_time[0] : $user_lastmark;
				}
				else
				{
					$last_read[$blog_reply_id] = $user_lastmark;
				}
			}
		}

	return $last_read;
}

function markread_blog_post($mode, $blog_id = false, $blog_reply_id = false, $post_time = 0, $user_id = 0)
{
	global $db, $user, $config;

	if ($blog_id === false)
	{
		return;
	}

	if ($config['load_db_lastread'] && $user->data['is_registered'])
	{
		$sql = 'UPDATE ' . BLOGS_REPLY_TRACKS_TABLE . '
			SET mark_time = ' . (($post_time) ? $post_time : time()) . "
			WHERE user_id = {$user->data['user_id']}
				AND blog_reply_id = $blog_reply_id";
		$db->sql_query($sql);

		// insert row
		if (!$db->sql_affectedrows())
		{
			$db->sql_return_on_error(true);

			$sql_ary = array(
				'user_id'		=> (int) $user->data['user_id'],
				'blog_reply_id'	=> (int) $blog_reply_id,
				'blog_id'		=> (int) $blog_id,
				'mark_time'		=> ($post_time) ? (int) $post_time : time(),
			);

			$db->sql_query('INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
			$sql = 'INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
           			$db->sql_return_on_error(false);
		}
	}
	return;
}
Следует заменить на

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

function get_complete_blog_tracking($blog_id, $topic_ids, $global_announce_list = false)
{
	global $config, $user, $db, $phpbb_root_path, $phpEx;
	include($phpbb_root_path . 'blog/includes/constants.' . $phpEx);
	$last_read = array();

	if (!is_array($topic_ids))
	{
		$topic_ids = array($topic_ids);
	}

	$sql = 'SELECT blog_reply_id, mark_time
		FROM ' . BLOGS_REPLY_TRACKS_TABLE . "
		WHERE user_id = {$user->data['user_id']}
			AND " . $db->sql_in_set('blog_reply_id', $topic_ids);
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$last_read[$row['blog_reply_id']] = $row['mark_time'];
	}
	$db->sql_freeresult($result);

	$topic_ids = array_diff($topic_ids, array_keys($last_read));

	if (sizeof($topic_ids))
		{
			$sql = 'SELECT blog_id, mark_time
				FROM ' . BLOGS_TRACKS_TABLE . "
				WHERE user_id = {$user->data['user_id']}
					AND blog_id " .
					(($global_announce_list && sizeof($global_announce_list)) ? "IN (0, $blog_id)" : "= $blog_id");
			$result = $db->sql_query($sql);

			$mark_time = array();
			while ($row = $db->sql_fetchrow($result))
			{
				$mark_time[$row['blog_id']] = $row['mark_time'];
			}
			$db->sql_freeresult($result);

			$user_lastmark = (isset($mark_time[$blog_id])) ? $mark_time[$blog_id] : $user->data['user_last_blog_mark'];

			foreach ($topic_ids as $blog_reply_id)
			{
				if ($global_announce_list && isset($global_announce_list[$blog_reply_id]))
				{
					$last_read[$blog_reply_id] = (isset($mark_time[0])) ? $mark_time[0] : $user_lastmark;
				}
				else
				{
					$last_read[$blog_reply_id] = $user_lastmark;
				}
			}
		}

	return $last_read;
}

function markread_blog_post($mode, $blog_id = false, $blog_reply_id = false, $post_time = 0, $user_id = 0)
{
	global $db, $user, $config;

	if ($blog_id === false)
	{
		return;
	}

	if ($config['load_db_lastread'] && $user->data['is_registered'])
	{
		$sql = 'UPDATE ' . BLOGS_REPLY_TRACKS_TABLE . '
			SET mark_time = ' . (($post_time) ? $post_time : time()) . "
			WHERE user_id = {$user->data['user_id']}
				AND blog_reply_id = $blog_reply_id";
		$db->sql_query($sql);

		// insert row
		if (!$db->sql_affectedrows())
		{
			$db->sql_return_on_error(true);

			$sql_ary = array(
				'user_id'		=> (int) $user->data['user_id'],
				'blog_reply_id'	=> (int) $blog_reply_id,
				'blog_id'		=> (int) $blog_id,
				'mark_time'		=> ($post_time) ? (int) $post_time : time(),
			);

			$db->sql_query('INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
			$sql = 'INSERT INTO ' . BLOGS_REPLY_TRACKS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
           			$db->sql_return_on_error(false);
		}
	}
	return;
}
Разница всего лишь в 3-4 строке, зато дебаг не ругается ;)
Мои расширения: TopicLinks, TopicDesc, BannedUser, AllowedExt, NumPosts, PMRead, GoogleTranslator, BoardStartDate, CountDownBB, VKWigets, TimeHeader.
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 15 лет 7 месяцев
Благодарил (а): 101 раз
Поблагодарили: 79 раз

Re: User Blog Mod: доработки

Сообщение Slash »

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

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

[phpBB Debug] PHP Notice: in file [ROOT]/portal/block/top10_blogs.php on line 46: Undefined index: NEW_BLOG
[phpBB Debug] PHP Notice: in file [ROOT]/portal/block/top10_blogs.php on line 46: Undefined index: NEW_BLOG
[phpBB Debug] PHP Notice: in file [ROOT]/portal/block/top10_blogs.php on line 46: Undefined index: NEW_BLOG
[phpBB Debug] PHP Notice: in file [ROOT]/portal/block/top10_blogs.php on line 46: Undefined index: NEW_BLOG
[phpBB Debug] PHP Notice: in file [ROOT]/portal/block/top10_blogs.php on line 46: Undefined index: NEW_BLOG
Я так понял, что это гдето в языковом файле в папке /en/, но конкретно где не понял...

А вот, но если пользователь в группе Зарегистрированые пользователи, то дебаг молчит.
Подскажите где определить этот индекс. Спасибо.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: User Blog Mod: доработки

Сообщение Sheer »

language/en/common.php
Вставить что-то вроде

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

'NEW_BLOG'          => 'New Blog', 
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 15 лет 7 месяцев
Благодарил (а): 101 раз
Поблагодарили: 79 раз

Re: User Blog Mod: доработки

Сообщение Slash »

Ок! Спасибо, работает!
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 15 лет 7 месяцев
Благодарил (а): 101 раз
Поблагодарили: 79 раз

Re: User Blog Mod: доработки

Сообщение Slash »

Хоть убейти. Все файлы перелапатил, а где переменную изменить не нашел: User Blog Mod: доработки может кто знает где она находится?
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Re: User Blog Mod: доработки

Сообщение МайскийЖук »

1. Убейте.

2. Перелопатил.

Открываем файл /language/ru/common.php. Ищем следующее:

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

	'USERNAME'				=> 'Имя пользователя',
	'USERNAMES'				=> 'Имена пользователей',
	'USER_AVATAR'			=> 'Аватара пользователя',
Любовь и боль, покой и бой я как любой несу с собой…
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 15 лет 7 месяцев
Благодарил (а): 101 раз
Поблагодарили: 79 раз

Re: User Blog Mod: доработки

Сообщение Slash »

Спасибо за урок русского языка, уже мозги кипят и правописание подводид (а, всегда подводит).
Это я уже делал, результат ноль... Переменная в шаблоне написана неправельно, без L_, я хочу исправить, а где не знаю.
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

User Blog Mod: доработки

Сообщение МайскийЖук »

«На хрена козе боян?» © народный.

Что мешает «в лоб» прописать эти слова в файле шаблона?
Любовь и боль, покой и бой я как любой несу с собой…
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 15 лет 7 месяцев
Благодарил (а): 101 раз
Поблагодарили: 79 раз

Re: User Blog Mod: доработки

Сообщение Slash »

Raisin писал(а):

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

<img src="./download/file.php?avatar=1489_1328772925.png" width="70" height="70" alt="USER_AVATAR" />
Тоесть переменная USER_AVATAR не переводится, прописывал перевод в языковой файл для блога common.php:

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

	'USER_AVATAR'                   => 'Аватар пользователя',
результат нечего не дал... Хотел тупо удалить фрагмент: alt="USER_AVATAR" из left_menu.html, но там код аватара такой:

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

                    <!-- IF AVATAR -->
                        {AVATAR}<br />
                    <!-- ENDIF -->
P.S. не только у меня так, я посмотрел у других пользователей блоги, то же самое.
И как это изменить:

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

                    <!-- IF AVATAR -->
                        {AVATAR}<br />
                    <!-- ENDIF -->
? Я бы не задавал такой банальный вопрос, былоб всё так просто...
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 16 лет 5 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз

Re: User Blog Mod: доработки

Сообщение HAMMER663 »

Raisin ищи где прописана переменная AVATAR в файлах блога.
future
phpBB 1.4.4
Сообщения: 183
Стаж: 14 лет 6 месяцев
Благодарил (а): 39 раз
Поблагодарили: 1 раз

Re: User Blog Mod: доработки

Сообщение future »

Решил тоже заменить на красивую кнопочку - "Создать запись" в Блоге.
Делал, как здесь: User Blog Mod: доработки
Но, кнопка не появилась. Укажите, если не сложно, где косяк? Кеш чистил и обновлял картинки.
Файлы я разбил на Old и New.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Вот как природа это все вот шурум-бурум устроила: Ртом торт есть можно, а тортом рот, - нельзя! Чудеса!

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