Перейти к контенту

[2.1.x]Thanks mod (кнопка "Спасибо")


AVol

Рекомендуемые сообщения

Название: Thanks mod (кнопка "Спасибо")

Добавил: AVol

Добавлен: 15 Авг 2006

Обновлен: 03 Сен 2006

Категория: IP.Board 2.1.x

 

Мод "Спасибо"

by AVol

Базируется (уже довольно слабо) на моде "Thanks" by Unlovelt

Version: 2.0.4

 

Мод добавляет возможность зарегистрированным пользователям сказать "спасибо" за ЛЮБОЙ пост другого пользователя (не требует никаких тегов hide и т.д.).

Т.к. мод основан на моде от Unlovelt и использует тот же принцип хранения в базе, он является полностью совместимым с его базой.

 

Изменения в 1.0.2:

- Исправленна ошибка, в результате которой в списке сказавших "спасибо" отображался еще и автор поста.

- Гости тоже могут видеть список сказавших "спасибо".

- Небольшое "косметическое" изменение в thanks.php.

 

Изменения в 1.0.3:

- Исправленн редирект обратно на пост, за который сказанно "спасибо".

- Исправленна ссылка на профиль сказавшего "спасибо".

 

Изменения в 1.1.0:

- Добавленны настройки в Админцентре.

- Возможность включения/отключения мода.

- Возможность ограничения по форумам.

- возможность ограничения по группам.

 

Изменения в 2.0.0:

- Просмотр истории благодарностей.

- Функции правки благорарностей.

- Функция пересчета благодарностей.

- Дополнительные настройки в админцентре.

 

Изменения в 2.0.2:

- Добавленна проверка прав на просмотр сообщений из темы.

- Добавлен отдельный языковой файл.

 

Изменения в 2.0.4:

- При проверке прав теперь учитываются права форума-прародителя.

- Права проверяются как на просмотр, так и на чтение.

- Добавленна поддержка тега скрытого текста от Vic'er.

- Добавлен просмотр благодарностей в списке пользователей с возможностью сортировки по ней.

- Добавленна возможность просмотра количества благодарностей в профиле (спасибо -=mayday=-).

- Добавленные отдельные языковые строки для просмотра темы, профиля и списка пользователей.

 

Нажмите здесь, чтобы скачать файл

Ссылка на комментарий
Поделиться на других сайтах

more19, все шишки модераторам - я его сюда несколько дней назад закинул ;)

 

Kamikadze1, тута и общий счетчик "спасиб", сказанных пользователю, и в сообщении, за которое сказанно "спасибо", появляется внизу список тех, кто это "спасибо" сказал. :D

Ссылка на комментарий
Поделиться на других сайтах

Демо-версии нет, а вот скриншот сделал по-быстрому ;)

 

 

Внес небольшие изменения и исправления:

- Исправленна ошибка, в результате которой в списке сказавших "спасибо" отображался еще и автор поста (бага, кстати, не моя :) - она досталась по-наследству - не заметил сначала этого - там для простоты условия авдор также "запихивался" в список сказавших "спасибо"...).

- Гости тоже могут видеть список сказавших "спасибо" (подумал, что хуже от этого не будет :) ).

- Небольшое "косметическое" изменение в thanks.php (ну сделал еще отдельную мессагу для наглецов, решивших сказать "спасибо" самим-себе :) ).

 

 

Для исправления первых двух пунктов у уже установленной версии, достаточно поменять кусок в ./sources/action_public/topics.php, который там первым добавляем. Т.е., вместо:

 

		/*/ -- Thanks (by AVol) - Begin -- /*/
	$member_thanks = explode(',',$row['post_thanks']);
	$member_thanks[] = $row['author_id'];

	if ($this->ipsclass->member['id'])
	{
		if (!in_array($this->ipsclass->member['id'],$member_thanks))
		{
			$row['thanks_button'] = $this->ipsclass->compiled_templates['skin_topic']->button_thanks($row['pid'] );
		}
		if ( (count($member_thanks) > 0) && ($member_thanks[0] != "") )
		{
			$in_thanks = (count($member_thanks)==2) ? $row['post_thanks'] : implode(',',$member_thanks);

			$this->ipsclass->DB->simple_construct( array( 'select' => '`id`, `members_display_name`', 'from' => 'members', 'where' => '`id` IN (' . $in_thanks . ')', 'order' => '`members_display_name` ASC') );
			$this->ipsclass->DB->simple_exec();

			while($who_thanks = $this->ipsclass->DB->fetch_row())
			{
				$show_thanks .= "<a href='?showuser={$who_thanks['id']}'>" . $who_thanks['members_display_name'] . "</a>" . ', ';
			}
			$row['who_thanks'] = "<br /><br /><div class=\"thin\"><I>Спасибо сказали:</I><div class=\"signature\">" . $show_thanks . "</div></div>";
		}
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/

вставить:

		/*/ -- Thanks (by AVol) - Begin -- /*/
	$member_thanks = explode(',',$row['post_thanks']);

	if ($this->ipsclass->member['id'])
	{
		if ( (!in_array($this->ipsclass->member['id'],$member_thanks)) and ($this->ipsclass->member['id'] != $row['author_id']) )
		{
			$row['thanks_button'] = $this->ipsclass->compiled_templates['skin_topic']->button_thanks($row['pid'] );
		}
	}

	if ( (count($member_thanks) > 0) && ($member_thanks[0] != "") )
	{
		$in_thanks = (count($member_thanks)==2) ? $row['post_thanks'] : implode(',',$member_thanks);

		$this->ipsclass->DB->simple_construct( array( 'select' => '`id`, `members_display_name`', 'from' => 'members', 'where' => '`id` IN (' . $in_thanks . ')', 'order' => '`members_display_name` ASC') );
		$this->ipsclass->DB->simple_exec();

		while($who_thanks = $this->ipsclass->DB->fetch_row())
		{
			$show_thanks .= "<a href='?showuser={$who_thanks['id']}'>" . $who_thanks['members_display_name'] . "</a>" . ', ';
		}
		$row['who_thanks'] = "<br /><br /><div class=\"thin\"><I>Спасибо сказали:</I><div class=\"signature\">" . $show_thanks . "</div></div>";
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/

 

ну а для третьего пункта достаточно просто заменить файл ./sources/action_public/ thanks.php файлом из архива.

:D

Ссылка на комментарий
Поделиться на других сайтах

Убрать багу с именем автора можно по другому .

А AVol'у - респект :D .

./sources/action_public/topics.php

Найти :

while($who_thanks = $this->ipsclass->DB->fetch_row())
		{
			$show_thanks .= "<a href='?showuser={$who_thanks['id']}'>" . $who_thanks['members_display_name'] . "</a>" . ', ';
		}

Заменить :

while($who_thanks = $this->ipsclass->DB->fetch_row())
			{
				if($who_thanks['id'] == $row['author_id']) {
				$show_thanks .= "";
				} else {
				$show_thanks .= "<a href='?showuser={$who_thanks['id']}'>" . $who_thanks['members_display_name'] . "</a>" . ', ';
				}
			}

Ссылка на комментарий
Поделиться на других сайтах

обновил?

Ну понятное дело - обновил архив :D

 

Убрать багу с именем автора можно по другому .

Ну по моему правильнее именно вообще не включать id автора в массив сказавших "спасибо" ;) Таким образом строчкой:

if ( (!in_array($this->ipsclass->member['id'],$member_thanks)) and ($this->ipsclass->member['id'] != $row['author_id']) )

все и решается... :) При выводе списка его id уже никак не должна фигурировать...

Ссылка на комментарий
Поделиться на других сайтах

Биг 10x. Просто и эффективно.

В качестве пожелания - включение отключение в админке, наличие/отсутсвие в отдельных форумах по выбору (опять же в админке).

Ссылка на комментарий
Поделиться на других сайтах

Биг 10x. Просто и эффективно.

В качестве пожелания - включение отключение в админке, наличие/отсутсвие в отдельных форумах по выбору (опять же в админке).

Хм... ну, думаю, такую темку действительно неплохо было бы сделать. Наверное, скоро сделаю... :D

  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

в многостраничке после спасибы на первую бросает.

у себя сделал через showtopic={$topic_id}&view=getnewpost. Мне так показалось удобнее.

Ссылка на комментарий
Поделиться на других сайтах

в многостраничке после спасибы на первую бросает.

у себя сделал через showtopic={$topic_id}&view=getnewpost. Мне так показалось удобнее.

Спасибо - проверю. ;)

 

Как сделать что-бы в посте ники раскрашивались в цвет группы форума ?

Не - это нада именно дополнительный запрос делать в базу. :D

Ссылка на комментарий
Поделиться на других сайтах

./sources/classes/class_session.php
======================================================================
Найти:
----------------------------------------------------------------------
		$this->ipsclass->DB->build_query( array( 'select' => "id, name, mgroup, member_login_key, email, restrict_post, view_sigs, view_avs, view_pop, view_img, auto_track,
															  mod_posts, language, skin, new_msg, show_popup, msg_total, time_offset, posts, joined, last_post, subs_pkg_chosen,
															  ignored_users, login_anonymous, last_visit, last_activity, dst_in_use, view_prefs, org_perm_id, mgroup_others, temp_ban, sub_end,
															  has_blog, members_markers, members_editor_choice, members_auto_dst, members_display_name, members_created_remote,
															  members_cache, members_disable_pm
----------------------------------------------------------------------
Добавить После:
----------------------------------------------------------------------
,thanks_point

 

нельзя добавить!!! если добавляю...пишет ошибку и в админку не попасть...убираю админка работает..есть другое предложение замены????

Ссылка на комментарий
Поделиться на других сайтах

есть другое предложение замены????

ага - заменить руки на менее кривые :D

все проверенно - если правильно делать, то будет работать.

тут добавлять нада именно после members_disable_pm и не символом позже!!!

Ссылка на комментарий
Поделиться на других сайтах

has_blog, members_markers, members_editor_choice, members_auto_dst, members_display_name, members_created_remote,

 

members_cache, members_disable_pm",

'from' => 'members',

 

Вот кусок моего фрагмента!!! Без добавки вроде все отлично работает но нету статистики в пользователе...тоесть скоко раз сказали ему спасибо(( ..а так работает...

 

members_disable_pm" ,thanks_point, - я правильно понял??

Ссылка на комментарий
Поделиться на других сайтах

Поставил мод спасиб очень хороший мне понравился...

есть пару вопросов :D

У всех у кого я спрашивал работет нормально всё, но вот есть один root admin у которого пропала кнопка "пожаловаться", а кнопки спасибо так и не видно.... вот вот скрин посмотрите http://d.foto.radikal.ru/0608/e5985325d6af.jpg

 

и ещё одно модно ли сделать так что бы нажимая на количестно спасибок (в данном случае на 4) "Спасибо сказали: 4 раз(а)" и открывалось новое окно и там м поазывалось кто кому за что нажал спасибо и ссылки на эти тему ? ;) було бы не плохо :)

Ссылка на комментарий
Поделиться на других сайтах

members_disable_pm" ,thanks_point, - я правильно понял??

Нет ну я четко же сказал - НЕ СИМВОЛОМ ПОЗЖЕ!!!

так должно быть:

members_cache, members_disable_pm,thanks_point",

ДО КАВЫЧЕК!!! Неужели так трудно понять, чот они там не случайно не написанны?

 

Моставил мод спасиб очень хороший мне понравился...

есть пару вопросов :D

У всех у кого я спрашивал работет нормально всё, но вот есть один root admin у которого пропала кнопка "пожаловаться", а кнопки спасибо так и не видно.... вот вот скрин посмотрите http://d.foto.radikal.ru/0608/e5985325d6af.jpg

 

и ещё одно модно ли сделать так что бы нажимая на количестно спасибок (в данном случае на 4) "Спасибо сказали: 4 раз(а)" и открывалось новое окно и там м поазывалось кто кому за что нажал спасибо и ссылки на эти тему ? ;) було бы не плохо :)

Пропасть могло, если криво отредактирован шаблон. Из инструкции:

----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
{$post['report_link']}
----------------------------------------------------------------------
Добавить После:
----------------------------------------------------------------------
{$post['thanks_button']}
=======================================

Здесь именно и добавляется кнопка "Спасибо" после кнопки "Жалоба".

 

На счет списка - нада подумать будет... :)

Ссылка на комментарий
Поделиться на других сайтах

спасиюо за мод...всё отлично работает и даже так как я показал..кавычки не играют роли!!! поставил все после кавычек..все работает окейно... сенкс за мод... а вот предложение насчет того кто сказал спасибо неплохое чтобы можно было контролировать нажатия, а то пользователи бывают блондинистые и тыкают везде на спасибо!
Ссылка на комментарий
Поделиться на других сайтах

Помогите плиз я в php слабо ещё разбираюсь.

так вот суть проблемы на картинке

http://sextalk.com.ru/files/pic/43861675044e37ff.gif

Хм... Мой недосмотр - извеняюсь. Нужно вместо такого (при правки вайла topics.php):

				$show_thanks .= "<a href='?showuser={$who_thanks['id']}'>" . $who_thanks['members_display_name'] . "</a>" . ', ';

написать:

				$show_thanks .= "<a href='{$this->ipsclass->base_url}showuser={$who_thanks['id']}'>" . $who_thanks['members_display_name'] . "</a>" . ', ';

Пока архив не обновляю, обновлю, когда внесу другие изменения.

Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.