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

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


AVol

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

пара страниц назад и там есть корректный блок для 2.2.2.

я так и не понял куда в ipclass.php засовывать код

/*/ -- Thanks (by AVol) - Begin -- /*/
	if ($this->ipsclass->vars['thanks_mod_enable'])
	{
		if ($this->ipsclass->vars['thanks_history_enable'])
		{
			$member['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: <a href='{$this->ipsclass->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" . 
				$member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}</a><br />";
		}
		else
		{
			$member['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: " . $member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}<br />";
		}
	}
	else
	{
		$member['thanks_point'] = "";
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/

Подскажите плиз

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

на память после

//-----------------------------------------

// Group image

//-----------------------------------------

 

токо уберите из текста

->ipsclass

Изменено пользователем Мышелофф
Ссылка на комментарий
Поделиться на других сайтах

на память после
//-----------------------------------------

// Group image

//-----------------------------------------

 

токо уберите из текста

->ipsclass

у меня в ipclasses.php вообще нет

//-----------------------------------------

// Group image

//-----------------------------------------

куда вставлять тогда?

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

Ставил данный мод на версию 2.1.7 и вот возникла следующай проблема:

Когда просматриваешь профиль пользователя то пишет правильно "Спасибо сказали: 2 раз(а)" а в самой теме под аватором выводит "Спасибо сказали: раз(а)" т.е. без цифры.

В чем может быть проблема? проверял повторно несколько раз на правильность вставки всех файлов по инструкции

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

Все это хорошо. Для 2.1.7 и 2.2.2 мод работал прекрасно. проблема возникла 2.3.1. Кто ставил данный мод для версии 2.3.1 большая просьбы выложить корректную инструкцию :D От меня и пользователей человеческое спасибо.
Ссылка на комментарий
Поделиться на других сайтах

Поставить этот мод под 2.3.1. не удалось не смотря на то, что часть кода, отсутствующую в topics.php, нашёл в ipclass.php и дописал туда... Результат нулевой...
Ссылка на комментарий
Поделиться на других сайтах

Поставить этот мод под 2.3.1. не удалось не смотря на то, что часть кода, отсутствующую в topics.php, нашёл в ipclass.php и дописал туда... Результат нулевой...

Аналогично.

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

Господа! Всего страницу назад было http://www.ibresource.ru/forums/index.php?...st&p=275970

разве так сложно найти $member['message_icon']

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

для 2.2.2

 

==================================== Start ======================================

######################################################################
Загрузка дополнительных файлов на сервер:
======================================================================
Загружаем файл thanks.php в sources/action_public/
======================================================================
Загружаем thanks.gif в каталог с вашим стилем (style_images/*/)
======================================================================
Загружаем файл lang_thanks.php во все папки существующие в cache/lang_cache/
(например: /cache/lang_cache/ru/)
======================================================================

######################################################################
Импорт настроек:
======================================================================
ACP -> TOOLS & SETTINGS -> View All General Settings -> Import an XML settings file
Админцентр -> НАСТРОЙКИ -> Все основные настройки -> Импорт системных настроек (XML)
======================================================================
Загружаем XML с настройками (ipb_settings_thanks.xml).
======================================================================

######################################################################
Выполнение SQL-запросов ("ibf_" заменить на свой префикс!):
======================================================================
Для таблицы members:
----------------------------------------------------------------------
ALTER TABLE `ibf_members` ADD (thanks_point int( 11 ) NOT NULL default '0');
----------------------------------------------------------------------
Для таблицы posts:
----------------------------------------------------------------------
ALTER TABLE `ibf_posts` add (post_thanks text );
======================================================================

######################################################################
./index.php
======================================================================
Найти:
----------------------------------------------------------------------
			 "reg"		=> array( "register"		   , 'register'	 , array() ),
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
			 /*/ -- Thanks (by AVol) - Begin -- /*/
			 "thanks"	 => array( "thanks"			 , 'thanks'	   , array() ),
			 /*/ -- Thanks (by AVol) -  End  -- /*/
======================================================================

######################################################################
./sources/action_public/topics.php
======================================================================
Найти:
----------------------------------------------------------------------
	$row['edit_button']   = $this->edit_button($row['pid'], $poster, $row['post_date']);
----------------------------------------------------------------------
Добавить Выше:
----------------------------------------------------------------------
	/*/ -- Thanks (by AVol) - Begin -- /*/
	if ($this->ipsclass->vars['thanks_mod_enable'])
	{
		$member_thanks = explode(',',$row['post_thanks']);

		if (   ( in_array($this->topic['forum_id'], explode(',',$this->ipsclass->vars['thanks_forums'])) or (!$this->ipsclass->vars['thanks_forum_lim']) )
			and ( in_array($this->ipsclass->member['mgroup'], explode(',',$this->ipsclass->vars['thanks_from_groups'])) or (!$this->ipsclass->vars['thanks_from_grp_lim']) )
			and ( in_array($poster['mgroup'], explode(',',$this->ipsclass->vars['thanks_to_groups'])) or (!$this->ipsclass->vars['thanks_to_grp_lim']) )
			and ($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 (   ( in_array($this->ipsclass->member['mgroup'], explode(',',$this->ipsclass->vars['thanks_view_groups'])) or (!$this->ipsclass->vars['thanks_view_grp_lim']) )
			and ( (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='{$this->ipsclass->base_url}showuser={$who_thanks['id']}' target='_blank'>" . $who_thanks['members_display_name'] . "</a>" . ', ';
			}
			$row['who_thanks'] = "<br /><br /><div class=\"thin\"><I>{$this->ipsclass->lang['thx_thanks_told']}:</I><div class=\"signature\">" . $show_thanks . "</div></div>";
		}
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/
======================================================================
Найти:
----------------------------------------------------------------------
	$member['message_icon']  = $this->ipsclass->compiled_templates['skin_topic']->member_icon_msg( $member['id'] );
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
	/*/ -- Thanks (by AVol) - Begin -- /*/
	if ($this->ipsclass->vars['thanks_mod_enable'])
	{
		if ($this->ipsclass->vars['thanks_history_enable'])
		{
			$member['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: <a href='{$this->ipsclass->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" . 
				$member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}</a><br />";
		}
		else
		{
			$member['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: " . $member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}<br />";
		}
	}
	else
	{
		$member['thanks_point'] = "";
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/
======================================================================

######################################################################
./sources/action_public/profile.php
======================================================================
Найти:
----------------------------------------------------------------------
	$info['msn_name']			 = $member['msnname']	? $member['msnname']	: $this->ipsclass->lang['no_info'];
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
	$info['thanks_point']		 = $member['thanks_point'];
======================================================================
Найти:
----------------------------------------------------------------------
	$info['posts'] = $this->ipsclass->do_number_format($info['posts']);
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
	/*/ -- Thanks (by AVol) - Begin -- /*/
	if ($this->ipsclass->vars['thanks_mod_enable'])
	{
		if ($this->ipsclass->vars['thanks_history_enable'])
		{
			$info['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: <a href='{$this->ipsclass->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" . 
				$member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}</a><br />";
		}
		else
		{
			$info['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: " . $member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}<br />";
		}
	}
	else
	{
		$info['thanks_point'] = "";
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/
======================================================================

######################################################################
./sources/action_public/memberlist.php
======================================================================
Найти:
----------------------------------------------------------------------
	$the_sort_key = array( 'members_display_name'	=> 'sort_by_name',
						   'posts'   => 'sort_by_posts',
						   'joined'  => 'sort_by_joined',
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
						   /*/ -- Thanks (by AVol) - Begin -- /*/
						   'thanks_point' => 'thx_thanks_told_count',
						   /*/ -- Thanks (by AVol) -  End  -- /*/
======================================================================

######################################################################
./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
======================================================================

######################################################################
./sources/sql/mysql_queries.php
======================================================================
Найти:
----------------------------------------------------------------------
function topics_get_posts_with_join( $a )
{
	# topics.php

	return "SELECT p.*,
			m.id,m.name,m.mgroup,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title,m.hide_email, m.warn_level, m.warn_lastwarn,
			me.msnname,me.aim_name,me.icq_number,me.signature, me.website,me.yahoo,me.location, me.avatar_location, me.avatar_type, me.avatar_size, m.members_display_name,
			pc.*
----------------------------------------------------------------------
Добавить После:
----------------------------------------------------------------------
,m.thanks_point
======================================================================

######################################################################
Редактирование языков
./cache/lang_cache/*/lang_topic.php
./cache/lang_cache/*/lang_profile.php
======================================================================
Найти:
----------------------------------------------------------------------
$lang = array (
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
'thx_thanks_told' => "Спасибо сказали",
'thx_thanks_told_suf' => "раз(а)",
/*/ -- Thanks (by AVol) -  End  -- /*/
======================================================================

######################################################################
./cache/lang_cache/*/lang_mlist.php
======================================================================
Найти:
----------------------------------------------------------------------
$lang = array (
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
/*/ -- Thanks (by AVol) - Begin -- /*/
'thx_thanks_told_count' => "Кол-во благодарностей",
/*/ -- Thanks (by AVol) -  End  -- /*/
======================================================================

######################################################################
Правка шаблонов. Выполнять следует для всех установленных скинов!
Admin CP -> LOOK & FEEL -> * -> Edit Template HTML
Админцентр -> ВНЕШНИЙ ВИД -> * -> Изменить HTML фрагменты
======================================================================
 skin_topic (Просмотр темы/Topic View) -> RenderRow
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
{$author['member_number']}<br />
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
{$author['thanks_point']}
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
{$post['signature']}
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
{$post['who_thanks']}
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
{$post['report_link']}
----------------------------------------------------------------------
Добавить После:
----------------------------------------------------------------------
{$post['thanks_button']}
----------------------------------------------------------------------
======================================================================
 skin_profile (Просмотр профиля/Profile View) -> show_profile
----------------------------------------------------------------------
Найти:
----------------------------------------------------------------------
<!--{WARN_LEVEL}-->
----------------------------------------------------------------------
Добавить Ниже:
----------------------------------------------------------------------
<br/ >{$info['thanks_point']}
----------------------------------------------------------------------
======================================================================

----------------------------------------------------------------------
======================================================================
 Добавить шаблон/Add Template Bit
----------------------------------------------------------------------
Название фрагмента шаблона / New Template Bit Name :
----------------------------------------------------------------------
button_thanks
----------------------------------------------------------------------
Входящие переменные / New Template Bit Incoming Data Variables :
----------------------------------------------------------------------
$post
----------------------------------------------------------------------
Группа для фрагмента / New Template Bit Group :
----------------------------------------------------------------------
skin_topic
----------------------------------------------------------------------
Тело шаблона :
----------------------------------------------------------------------
<a href="{$this->ipsclass->base_url}act=thanks&type=add&f={$this->ipsclass->input['f']}&t={$this->ipsclass->input['t']}&pid={$post}" title="Спасибо"><img src='style_images/<#IMG_DIR#>/thanks.gif' border='0'  alt='Спасибо' /></a>
======================================================================


==================================== Всё ======================================================

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

При нажатии на ссылку "Раз", то есть при попытке просмотра истории, выводится ошибка вида "Fatal error: Maximum execution time of 30 seconds exceeded in /.../sources/action_public/thanks.php on line 196"

 

Ссылка вида site.ru/ipb.html?act=thanks&type=history&mid=1498

 

Помогите, пожалуйста, в чем может быть причина?

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

Ответы, которые я нашел - про установку CHMOD и обновление кэша - не помогли.. не могли бы Вы дать ссылку на решение проблемы? Пожалуйста :D
Ссылка на комментарий
Поделиться на других сайтах

Установил на 2.3.1.

Все работает нормально, не считая таких багов

1. При нажатии на кнопочку спасибо пишет "Вы ошиблись при наборе URL в браузере. Вероятнее всего, сервер пытается найти файл z:/home/mysite.ru/www/2.3//{ipb.script_url}act=thanks&type=add&f={ipb.input[f]}&t={ipb.input[t]}&pid=6479, которого не существует." ----- УЖЕ РЕШИЛ!!!

2. Не отображает количество сказаных "Спасибо" возли "Пользователь №:"

 

Что мне зделать, чтобы это все устранить? :D

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

Спасибо))) Уже все решил самостоятельно. Кому нужно под 2.3.1 Ставим все по стандарту, и изменяем то что ниже.

Чтобы решить первое, вместо

<a href="{ipb.script_url}act=thanks&type=add&f={ipb.input[f]}&t={ipb.input[t]}&pid={$post}" title="Thanks"><img src='style_images/<#IMG_DIR#>/thanks.gif' border='0'  alt='Thanks' /></a>

СТАВИМ!!!

<a href="index.php?act=thanks&type=add&f={$this->ipsclass->input[f]}&t={$this->ipsclass->input[t]}&pid={$post}" title="Thanks"><img src='style_images/<#IMG_DIR#>/thanks.gif' border='0'  alt='Thanks' /></a>

Чтобы решить второе, вместо

/*/ -- Thanks (by AVol) - Begin -- /*/
	if ($this->ipsclass->vars['thanks_mod_enable'])
	{
		if ($this->ipsclass->vars['thanks_history_enable'])
		{
			$member['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: <a href='{$this->ipsclass->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" . 
				$member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}</a><br />";
		}
		else
		{
			$member['thanks_point'] = "{$this->ipsclass->lang['thx_thanks_told']}: " . $member['thanks_point'] . " {$this->ipsclass->lang['thx_thanks_told_suf']}<br />";
		}
	}
	else
	{
		$member['thanks_point'] = "";
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/

 

СТАВИМ!!!

/*/ -- Thanks (by AVol) - Begin -- /*/
		if ($this->vars['thanks_mod_enable'])
		{
			if ($this->vars['thanks_history_enable'])
			{
				$member['thanks_point'] = "{$this->lang['thx_thanks_told']}: <a href='{$this->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" . 
					$member['thanks_point'] . " {$this->lang['thx_thanks_told_suf']}</a><br />";
			}
			else
			{
				$member['thanks_point'] = "{$this->lang['thx_thanks_told']}: " . $member['thanks_point'] . " {$this->lang['thx_thanks_told_suf']}<br />";
			}
		}
		else
		{
			$member['thanks_point'] = "";
		}
		/*/ -- Thanks (by AVol) -  End  -- /*/

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

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

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

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