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

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


AVol

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

Написано

 Найти:
----------------------------------------------------------------------
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
======================================================================

 

У меня

 

 	# 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

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

зачеркнуто как несущественное.

 

SQL error: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'thanks_point FROM ibf_members WHERE id=4' at line 5SQL error code:

 

Посыпаю голову пеплом... Надо ж было прочитать внимательно, прежде чем предположения строить :D

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

Похоже ошибку нашел, только где это подправить можно???

 

mySQL query error: 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 FROM ibf_members WHERE id=4

SQL error: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'thanks_point FROM ibf_members WHERE id=4' at line 5
SQL error code: 
Date: 22.8.2006, 15:54

 

Ошибка вот:

members_cache, members_disable_pm, ,thanks_point FROM ibf_members WHERE id=4

Сразу 2 запятые стоят

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

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

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

Еще одна описка. (Сразу видно - торопился человек людям добро сделать:)) Я когда thanks.php листал заметил.

Ух... постараюсь исправить и очепятки все... ;) Вынесу наверно всеже все строки в ленг-файл, чтобы можно было все это поправить... :D

 

А если удален пост, за который сказали спасибо, что в истории будет выводиться? Или это спасибо тоже удаляется?

"Спасибо" тоже удаляется, но не отнимается из общего числа "спасиб" участника. Если требуется подправить это количество, можно воспольщоваться функцией "перещет".

 

more19, -=mayday=- - спасибо за разьяснения тем, кто не понял :)

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

Сделал кнопку "СПАСИБО", вроде работает все хорошо, но сказав пользователю "СПАСИБО" у него посты становяться невидемые... т.е. когда пользователь пишет сообщение оно не опубликовываеться до тех пор пока не проверит модератор... Где искать выход? Что может быть. Помогите!!!

Вот уж не могу сказать, что же вы там такое сделали, но мой мод такого эффекта, при нормальной установке, вызвать ну никак не должен был... :D

Да ну это понятно.... что где то напортачил, а вот в каком файле можно определить? Может логически можно догадаться в каком файле напортачено? тот кто разбираеться в таких скриптах, помогите пожайлуста...

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

ИМХО - проще эти несчастные четыре файла достать из бэкапа заранее сделанного и еще раз пройти через файндкопипаст. Точно быстрее будет.

Напортачил как мне кажется в топикс.пхп.

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

http://img478.imageshack.us/img478/6753/help1rs9.jpg

 

Подскажите пожалуйста, как сделать, чтобы вместо знаков вопроса, был свой текст! Где именно я забыл это написать? Заранее спасибо!

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

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

Всё сделал как написано в инструкции!

 

Прив входе в любую тему форума, такая ошибка:

Fatal error: Call to undefined function: button_thanks() in /home2/millsmy/public_html/forum/sources/action_public/topics.php on line 1253

 

Я понимаю, что ошибка в топикс.пхп - но ничё там не нашёл...

Чего делать?

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

Автору огромный респект!!!

И сразу на будущее есть огромная идея, которая зделает фурор модов если получиться объединить такой гибрид! из 3-х модов и так попорядку....

 

1- есть такой мод ibProBattle_v1.2.0 в нем есть функция прибавления капитала (денег) за просмотр, создание и ответ в темах на форуме, что я предлагаю. - Выдрать оттуда этот код отвечающий за эти действия и зделать следующее .....далее...

 

2 - К Кнопочке спасибо приделать привелегию добавления также денежного эквивалента, который будет настраиваться в админке, например Админ нажал на спасибо, пользователю добавили допустим 1000 руб., модератор нажал спасибо - пользователю добавили 500 руб, и пользователь - пользователю по 100 руб. типа того... всё настраиваемо главное приделать этот мод к тому коду денежного надбавления!...далее..

 

ужо фонтастика

 

3 - наконец сделать магазин для 2.1.х версии и совместить его с этими модификациями двумя

 

Я понимаю что это всё выглядит дико, и это будет совершенно модификация безумия, но все эти моды не доделаны и некоторые заброшены (1,3) но блин если удасться это сотворить выйдет поистине офигенная весч.... сорри за кучу текста))... но мы это все обсуждали в целой компании из 38 человек, так как ваш мод супер и подумали что если это всё соединить, но мы не программисты))) воть

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

		//-----------------------------------------
	// Delete button..
	//-----------------------------------------

	if ( $row['pid'] != $this->topic['topic_firstpost'] )
	{
		$row['delete_button'] = $this->delete_button($row['pid'], $poster);
	}


	/*/ -- 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>Спасибо сказали:</I><div class=\"signature\">" . $show_thanks . "</div></div>";
		}
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/



	$row['edit_button']   = $this->edit_button($row['pid'], $poster, $row['post_date']);

	$row['post_date']	 = $this->ipsclass->get_date( $row['post_date'], 'LONG' );

	$row['post_icon']	 = $row['icon_id']
						  ? $this->ipsclass->compiled_templates['skin_topic']->post_icon( $row['icon_id'] )
						  : "";

	$row['ip_address']	= $this->view_ip($row, $poster);

	$row['report_link']   = (($this->ipsclass->vars['disable_reportpost'] != 1) and ( $this->ipsclass->member['id'] ))
						  ? $this->ipsclass->compiled_templates['skin_topic']->report_link($row)
						  : "";

	//-----------------------------------------
	// Siggie stuff
	//-----------------------------------------

	$row['signature'] = "";

//POST WARN
$this->ipsclass->DB->query("SELECT set_warn, warntext, warn_exp FROM ".SQL_PREFIX."member_extra WHERE id = ".$row[author_id]."");

$result = $this->ipsclass->DB->fetch_row();
$ifsetwarn = $result['set_warn'];
$warn = $result['warntext'];
$left = round( ($result['warn_exp'] - mktime())/(60*60*24) );

if ($ifsetwarn==0)
{
if ($poster['signature'] and $this->ipsclass->member['view_sigs'])
{
	if ($row['use_sig'] == 1)
	{
		$this->parser->parse_html  = intval($this->ipsclass->vars['sig_allow_html']);
		$this->parser->parse_nl2br = 1;

		$row['signature'] = $this->ipsclass->compiled_templates['skin_global']->signature_separator( $this->parser->pre_display_parse($poster['signature']) );
	}
}
}
elseif ($ifsetwarn==1)
{
	$wtext = "<font color=red><b>Предупреждение пользователю[!]</b><br /><b>Причина:</b> $warn</font><br />
	<font color=red><b>Осталось дней:</b> $left</font>";
	$row['signature'] = $this->ipsclass->compiled_templates['skin_global']->signature_separator( $this->parser->pre_display_parse($wtext) );
}


	//-----------------------------------------
	// Fix up the membername so it links to the members profile
	//-----------------------------------------

	if ( $poster['id'] )
	{
		$poster['members_display_name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['members_display_name']}</a>";
	}

	//-----------------------------------------
	// Parse HTML tag on the fly
	//-----------------------------------------

	$this->parser->parse_html  = ( $this->forum['use_html'] and $this->ipsclass->cache['group_cache'][ $poster['mgroup'] ]['g_dohtml'] and $row['post_htmlstate'] ) ? 1 : 0;
	$this->parser->parse_nl2br = $row['post_htmlstate'] == 2 ? 1 : 0;

	$row['post'] = $this->parser->pre_display_parse( $row['post'] );
	$this->parser->hiddenConv( $row['post'] );

	//-----------------------------------------
	// A bit hackish - but there are lots of <br> => <br /> changes to make
	//-----------------------------------------

	//$row['post']	  = str_replace( "<br>", "<br />", $row['post'] );
	//$row['signature'] = str_replace( "<br>", "<br />", $row['signature'] );

	//-----------------------------------------
	// Post number
	//-----------------------------------------

	if ( $this->topic_view_mode == 'linearplus' and $this->topic['topic_firstpost'] == $row['pid'])
	{
		$row['post_count'] = 1;

		if ( ! $this->first )
		{
			$this->post_count++;
		}
	}
	else
	{
		$this->post_count++;

		$row['post_count'] = intval($this->ipsclass->input['st']) + $this->post_count;
	}

	$row['forum_id'] = $this->topic['forum_id'];

	return array( 'row' => $row, 'poster' => $poster );
}

/*-------------------------------------------------------------------------*/
// Parse the member info
/*-------------------------------------------------------------------------*/

function parse_member( $member=array() )
{
	$member['avatar'] = $this->ipsclass->get_avatar( $member['avatar_location'], $this->ipsclass->member['view_avs'], $member['avatar_size'], $member['avatar_type'] );

// Start default avatar hack by The Perfect Page

	if($member['avatar']=='') {
		$member['avatar']="<img src=\"style_images/<#IMG_DIR#>/noavatar.gif\" width=\"77\" height=\"77\">";}

// End default avatar hack by The Perfect Page

	$pips = 0;

	foreach($this->mem_titles as $k => $v)
	{
		if ($member['posts'] >= $v['POSTS'])
		{
			if (!$member['title'])
			{
				$member['title'] = $this->mem_titles[ $k ]['TITLE'];
			}

			$pips = $v['PIPS'];
			break;
		}
	}

	if ( $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_icon'] )
	{
		$member['member_rank_img'] = $this->ipsclass->compiled_templates['skin_topic']->member_rank_img($this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_icon']);
	}
	else if ( $pips )
	{
		if ( is_numeric( $pips ) )
		{
			for ($i = 1; $i <= $pips; ++$i)
			{
				$member['member_rank_img'] .= "<{A_STAR}>";
			}
		}
		else
		{
			$member['member_rank_img'] = $this->ipsclass->compiled_templates['skin_topic']->member_rank_img( 'style_images/<#IMG_DIR#>/folder_team_icons/'.$pips );
		}
	}

	$member['member_joined'] = $this->ipsclass->compiled_templates['skin_topic']->member_joined( $this->ipsclass->get_date( $member['joined'], 'JOINED' ) );

	$member['member_group']  = $this->ipsclass->compiled_templates['skin_topic']->member_group( $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_title'] );

	$member['member_posts']  = $this->ipsclass->compiled_templates['skin_topic']->member_posts( $this->ipsclass->do_number_format($member['posts']) );

	$member['member_number'] = $this->ipsclass->compiled_templates['skin_topic']->member_number( $this->ipsclass->do_number_format($member['id']) );

	$member['profile_icon']  = $this->ipsclass->compiled_templates['skin_topic']->member_icon_profile( $member['id'] );

	$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'] = "Спасибо сказали: <a href='{$this->ipsclass->base_url}act=thanks&type=history&mid={$member['id']}' target='_blank'>" . $member['thanks_point'] . " раз(а)</a><br />";
		}
		else
		{
			$member['thanks_point'] = "Спасибо сказали: " . $member['thanks_point'] . " раз(а)<br />";
		}
	}
	else
	{
		$member['thanks_point'] = "";
	}
	/*/ -- Thanks (by AVol) -  End  -- /*/



	if ($member['location'])
	{
		$member['member_location']  = $this->ipsclass->compiled_templates['skin_topic']->member_location( $member['location'] );
	}

	if (! $member['hide_email'])
	{
		$member['email_icon'] = $this->ipsclass->compiled_templates['skin_topic']->member_icon_email( $member['id'] );
	}

	if ( $member['id'] )
	{
		$member['addresscard'] = $this->ipsclass->compiled_templates['skin_topic']->member_icon_vcard( $member['id'] );
	}

Мне кажется проблема в шаблонах, не видит созданный шаблон button_thanks. Может это быть из-за включёного safe mod??

 

Вот. :D

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

Просьба к автору сделать топ юзеров по благодарностям !

Типа ссылки на список юзеров и сколько у кого благодарностей !

Пасибо :D

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

Опс, действительно это из-за safe mod'a - всё исправил сам.

 

Такой косяк обнаружил:

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

Чё делать?

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

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

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

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

 

Обнавление с версии 2.0.0 элементарное - заменить thanks.php новым, и залить lang_thanks.php в кэш языка. ;)

 

 

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

Чё делать?

Это нада будет поправить. Взял на заметку :)

 

Просьба к автору сделать топ юзеров по благодарностям !

Сделаю общий лист типа топа благодарности, предположительно, в следующае версии... :)

 

И сразу на будущее есть огромная идея, которая зделает фурор модов если получиться объединить такой гибрид! из 3-х модов и так попорядку....

 

1- есть такой мод ibProBattle_v1.2.0 в нем есть функция прибавления капитала (денег) за просмотр, создание и ответ в темах на форуме, что я предлагаю. - Выдрать оттуда этот код отвечающий за эти действия и зделать следующее .....далее...

 

2 - К Кнопочке спасибо приделать привелегию добавления также денежного эквивалента, который будет настраиваться в админке, например Админ нажал на спасибо, пользователю добавили допустим 1000 руб., модератор нажал спасибо - пользователю добавили 500 руб, и пользователь - пользователю по 100 руб. типа того... всё настраиваемо главное приделать этот мод к тому коду денежного надбавления!...далее..

 

ужо фонтастика

 

3 - наконец сделать магазин для 2.1.х версии и совместить его с этими модификациями двумя

Ну можно будет попробовать что-нибуть подобное сделать, но только когда остальное будет работать без глюков... :D

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

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

Гм.. ниче не поменялось. Все так же видят. И пользователи и гости.

 

ADD

Кстати о птичках. Получил я сегодня новое спасибо и понял чего не хватает. Построение истории идет по дате поста. А спасибу получил за пост от 08 августа... :D

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

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

Гм.. ниче не поменялось. Все так же видят. И пользователи и гости.

 

ADD

Кстати о птичках. Получил я сегодня новое спасибо и понял чего не хватает. Построение истории идет по дате поста. А спасибу получил за пост от 08 августа... :D

Точно? У меня проверяется именно на доступ пользователя к просмотру форумов... Должно работать.

 

Сортировать по дате, когда это "спасибо" сказанно? но для этого нужно поле в базе данных, где эту дату хранить и как тогда быть с совместимостью?

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

Точно. Зашел гостем в соседнем броузере. У меня в истории спасиб в темах из закрытых разделов хватает. Следом зашел тестовым юзверем - та же фигня. Файл - залился и новый. 16896 от 24.08.06 18:48 Сейчас еще раз перезалью.

 

Если помнишь - я вообще был против этой истории. Я и сейчас не за :D

Просто отметил чего не хватает. А будет оно или не будет - меня не беспокоит. А совместимость кстати все равно умрет как мне кажется.. с этими деньгами и пр.

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

Точно. Зашел гостем в соседнем броузере. У меня в истории спасиб в темах из закрытых разделов хватает. Следом зашел тестовым юзверем - та же фигня. Файл - залился и новый. 16896 от 24.08.06 18:48 Сейчас еще раз перезалью.

Возможно... Я, конечно, тестировал, но не наживом форуме, а на локалхосте, которые искусственно забивал... Возможно что что-то и не учел... :)

Если помнишь - я вообще был против этой истории. Я и сейчас не за :D

Просто отметил чего не хватает. А будет оно или не будет - меня не беспокоит. А совместимость кстати все равно умрет как мне кажется.. с этими деньгами и пр.

Ну незнаю - до этих денег и прочего еще дожить нада ;) Может и не умрет, если делать ее опционально-отдельно (мод к моду :) ).

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

А что закрывал для проверки? форум или раздел?

Хм... раздел...

Так... я уже начал глупасти писать ;)

Но проблема может быть действительно именно в этом! Спасибо - нада будет это дело потестить - видимо недостаточно покавырялся с тем, как там все работает... :D

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

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

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

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