Маркировка не прочитанных сообщений в forumlist

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
valentin
phpBB 1.4.2
Сообщения: 54
Стаж: 12 лет 2 месяца
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 2 раза
Забанен: Бессрочно

Маркировка не прочитанных сообщений в forumlist

Сообщение valentin »

Здравствуйте!
Есть список форумов, где маркируются мелкими картинками не прочитанные сообщения
Изображение
Там идёт картинка, с анкором, отвечающие строки за это:
includes/functions_display.php

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

$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
Подскажите пожалуйста как сделать эти ссылки не активные для гостей? Может как-то разделить, так как код идёт слитно с картинками этими и названием подфорумов?
Если наши жизненные дорожки с кем-то расходятся, значит, этот человек выполнил свою задачу в нашей жизни, а мы – в его. На их место приходят новые люди, чтобы научить нас чему-то еще.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 12 лет 4 месяца
Благодарил (а): 41 раз
Поблагодарили: 935 раз

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение LavIgor »

valentin, требуется, чтобы гости не могли кликать на подфорумы, но видели их названия?
По умолчанию все форумы считаются прочитанными.
Аватара пользователя
valentin
phpBB 1.4.2
Сообщения: 54
Стаж: 12 лет 2 месяца
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 2 раза
Забанен: Бессрочно

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение valentin »

LavIgor писал(а): valentin, требуется, чтобы гости не могли кликать на подфорумы, но видели их названия?
Чтобы гости могли видеть кликать на подфорумы и видели картинки не прочитанные и прочитанные сообщения, но не могли кликать на эти картинки.
Изображение
Если наши жизненные дорожки с кем-то расходятся, значит, этот человек выполнил свою задачу в нашей жизни, а мы – в его. На их место приходят новые люди, чтобы научить нас чему-то еще.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 12 лет 4 месяца
Благодарил (а): 41 раз
Поблагодарили: 935 раз

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение LavIgor »

valentin,
LavIgor писал(а): По умолчанию все форумы считаются прочитанными.
Если у Вас для гостей форумы маркируются как непрочитанные, отключите запоминание в cookies в настройках конференции.

Отправлено спустя 10 минут 25 секунд:
По поводу самих картинок: это не картинки как таковые, а фон.
https://github.com/phpbb/phpbb/blob/3.0 ... s.css#L390
Нужно менять дизайн (шаблон/стиль), чтобы нельзя было нажимать на картинку.
Аватара пользователя
valentin
phpBB 1.4.2
Сообщения: 54
Стаж: 12 лет 2 месяца
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 2 раза
Забанен: Бессрочно

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение valentin »

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

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

$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
и

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

'<a href="'
делать через условие для гостей.
LavIgor писал(а): Если у Вас для гостей форумы маркируются как непрочитанные, отключите запоминание в cookies в настройках конференции.
Попробую стандартными средствами ;)

Отправлено спустя 46 минут 29 секунд:
Настройки и до этого стояли
Включить маркировку тем на сервере: Нет
Сохранять информацию о статусе «прочитано/не прочитано» в базе данных, а не в cookies.
Если наши жизненные дорожки с кем-то расходятся, значит, этот человек выполнил свою задачу в нашей жизни, а мы – в его. На их место приходят новые люди, чтобы научить нас чему-то еще.
Аватара пользователя
valentin
phpBB 1.4.2
Сообщения: 54
Стаж: 12 лет 2 месяца
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 2 раза
Забанен: Бессрочно

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение valentin »

Не уверен в правильности и точности кода, но если так сделать, работает.
Удалил это:

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

$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
После:

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

		$s_subforums_list = array();
		foreach ($subforums_list as $subforum)
		{
Вставил:

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

	if ($user->data['user_id'] == ANONYMOUS)
	{
		$s_subforums_list[] = '<span href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') .'"></span>';
		$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
	}
	else
  {
	  $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') .'"></a>';
		$s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
	}
	}
и в css

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

span.subforum.read {
 background-image: url("../imageset/subforum.gif");
 background-position: 0 50%;
 background-repeat: no-repeat;
 position: relative;
 white-space: nowrap;
 padding: 0 0 0 8px;
 padding-right: 0px;
 background-position: left;
 position: static;
}
Ещё бы от ботов закрыть :? Есть какие нибудь мысли, как это сделать проще?
Если наши жизненные дорожки с кем-то расходятся, значит, этот человек выполнил свою задачу в нашей жизни, а мы – в его. На их место приходят новые люди, чтобы научить нас чему-то еще.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 12 лет 4 месяца
Благодарил (а): 41 раз
Поблагодарили: 935 раз

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение LavIgor »

valentin, а зачем Вам дубликаты ссылок?
Аватара пользователя
valentin
phpBB 1.4.2
Сообщения: 54
Стаж: 12 лет 2 месяца
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 2 раза
Забанен: Бессрочно

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение valentin »

LavIgor писал(а): valentin, а зачем Вам дубликаты ссылок?
Ну тогда что-то подобное, наверно правильнее будет ...

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

  if ($user->data['user_id'] == ANONYMOUS)
	{ 
	$s_subforums_list[] = '<span href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') .'"></span>';
	}
	else
       {
	  $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') .'"></a>';		
	}
	  $s_subforums_list[] = '<a href="' . $subforum['link'] . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
	}

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

  if ($user->data['user_id'] == ANONYMOUS)
	{ 
Картинка без ссылки для гостей.
	}
	else
       {
Картинка + ссылка на картинке для за логининых.
	}
Постоянная ссылка на подфорумы с названием подфорумов без картинок.
	}
Последний раз редактировалось valentin 17.12.2015 18:00, всего редактировалось 1 раз.
Если наши жизненные дорожки с кем-то расходятся, значит, этот человек выполнил свою задачу в нашей жизни, а мы – в его. На их место приходят новые люди, чтобы научить нас чему-то еще.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 12 лет 4 месяца
Благодарил (а): 41 раз
Поблагодарили: 935 раз

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение LavIgor »

№1
valentin писал(а): $s_subforums_list[] = '<span href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') .'"></span>';
№2
valentin писал(а): $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
И аналогично для зарегистрированных.

По логике у Вас для каждого подфорума должны генерироваться по две картинки, возможно, они просто накладываются друг на друга.

Т.е. в случае с гостями, конечно, способ даёт нужный эффект, но весьма сомнительным способом.

Я лишь написал это в ответ на вопрос о каких-нибудь мыслях.
Аватара пользователя
valentin
phpBB 1.4.2
Сообщения: 54
Стаж: 12 лет 2 месяца
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 2 раза
Забанен: Бессрочно

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение valentin »

В общем конечный вариант, думаю тут уже по другому не как не сделать?

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

    if ($user->data['user_id'] == ANONYMOUS)
	  { 
	   $s_subforums_list[] = '<span class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') .'"> </span>';
	  }
	  else
    {
	   $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') .'"></a>';		
	  }
	   $s_subforums_list[] = '<a href="' . $subforum['link'] . '" title="' . (($subforum['unread']) ? $user->lang['UNREAD_POSTS'] : $user->lang['NO_UNREAD_POSTS']) . '">' . $subforum['name'] . '</a>';
	  }
LavIgor, Не подскажите как сделать чтобы не только от анонимов было скрыто и так же от ботов всех?

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

if ($user->data['user_id'] == ANONYMOUS)
, как и что вписывать, понять не могу
Если наши жизненные дорожки с кем-то расходятся, значит, этот человек выполнил свою задачу в нашей жизни, а мы – в его. На их место приходят новые люди, чтобы научить нас чему-то еще.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 12 лет 4 месяца
Благодарил (а): 41 раз
Поблагодарили: 935 раз

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение LavIgor »

valentin, я всё ещё понять не могу, зачем два раза расширять массив для добавления одной записи.
По поводу ботов, можно проверять через условие !$user->data['is_bot'].
Аватара пользователя
valentin
phpBB 1.4.2
Сообщения: 54
Стаж: 12 лет 2 месяца
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 2 раза
Забанен: Бессрочно

Re: Маркировка не прочитанных сообщений в forumlist

Сообщение valentin »

LavIgor писал(а): valentin, я всё ещё понять не могу, зачем два раза расширять массив для добавления одной записи.
Ну я и обратился чтобы помогли. как это сделать проще.
Если наши жизненные дорожки с кем-то расходятся, значит, этот человек выполнил свою задачу в нашей жизни, а мы – в его. На их место приходят новые люди, чтобы научить нас чему-то еще.

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