Перейти к публикации

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

1171191669_guestbook.gif

Назначение модуля: Данный модуль представляет собой гостевую книгу построенную на принципе комментариев. Возможен вывод сообщений постраницно, защита от спам-ботов и соответственно удобное редактирование и удаление сообщений.

Версия движка: 5.3

Скачать: _http://afs.net.ru/2007/02/11/gostevaja_kniga_v20.html

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

А вот у меня, когда отправляешь сообщение не чего не происходит и не отображается сообщение! Страница перезагружается но сообщения нет! В чем причина?

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

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

Затем в навигации сделать прямую ссылку на новость...

Или тут сложнее структура, чем стандартом реализовать? :D

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

У тя на сайте после авторизации Hacking Attemp или это ты ток на мя сделал?

Не знаю что за вигня вроде все норма работает! Стукни мне в асю

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

Snow Land,

Присоединяюсь к совету...

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

не поддерживает wysiwyg

Пытался доделать... wysiwyg начал отображатся но вот с редактированием и добавлением не получается, может кто поможет?

<?php

/*

=====================================================

 Plugin for DataLife Engine - by ko1yan

-----------------------------------------------------

 email: konohoff@gmail.com  site: www.dangels.net.ru

-----------------------------------------------------

 Copyright (c) 2006,2007 ko1yan

=====================================================

 Данный код защищен авторскими правами

=====================================================

 Файл: guestbook.php

-----------------------------------------------------

 Назначение: Гостевая книга

=====================================================

*/

 if(!defined('DATALIFEENGINE')) {

  die("Hacking attempt! module created by ko1yan");

 }

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

// Удаление сообщения из базы

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

include(ENGINE_DIR.'/inc/parse.class.php');


$parse = new ParseFilter();

$parse->safe_mode = true;


if ($action == "del") {

$db->query("DELETE FROM " . PREFIX . "_guestbook WHERE id = '$id'");

msgbox ($lang['all_info'], "Выбранное сообщение было успешно удалено. <a href=\"/guestbook\">Вернуться назад</a>");

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

// Редактирование сообщения

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

} elseif ($action == "edit") {

$row = $db->super_query("SELECT * FROM " . PREFIX . "_guestbook WHERE id = '$id'");

$tpl->load_template('addmess.tpl');


if ($config['allow_comments_wysiwyg'] == "yes"){

	$tpl->copy_template = "<script language=JavaScript src='".$config['http_home_url']."editor/scripts/innovaeditor.js'></script>\n".$tpl->copy_template;

	include_once ENGINE_DIR.'/editor/comments.php';

	$bb_code = "";

	}

	else include_once ENGINE_DIR.'/modules/bbcode.php';


if ($config['allow_comments_wysiwyg'] != "yes")

		$text = $parse->decodeBBCodes($row['message'], false);

	else

		$text = $parse->decodeBBCodes($row['message'], TRUE, $config['allow_comments_wysiwyg']);


	if ($config['allow_comments_wysiwyg'] != "yes"){

	$tpl->set('[not-wysywyg]',"");

	$tpl->set('[/not-wysywyg]',"");

	} else $tpl->set_block("'\\[not-wysywyg\\].*?\\[/not-wysywyg\\]'si","");


	if ($config['allow_comments_wysiwyg'] == "yes"){

	include_once ENGINE_DIR.'/editor/comments.php';

	$tpl->set('{wysiwyg}',$wysiwyg);

	} else

	{

	$tpl->set('{wysiwyg}','');

	}		


	$tpl->set_block("'\\[not-logged\\].*?\\[/not-logged\\]'si","");

	$tpl->set_block("'\\[sec_code\\](.*?)\\[/sec_code\\]'si","");

	$tpl->set('{sec_code}',"");


	$tpl->set('{smilies}', $smilies_form);

	$tpl->set('{bbcode}',$bb_code);

	$tpl->set('{text}', $text);

	$tpl->set('{title}', 'Редактирование сообщения');

	$tpl->copy_template = "<form  method=\"post\" id=\"dle-comments-form\" enctype=\"multipart/form-data\" action=\"index.php?do=guestbook&proceed=com_update\">".$tpl->copy_template."

<input type=\"hidden\" name=\"subaction\" value=\"addcomment\" />

<input type=\"hidden\" name=\"id\" value=\"$id\" /></form>";

$tpl->copy_template .= "</form>";

$tpl->compile('content');

	$tpl->clear();

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

// Сохранение отредактированого сообщения

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

} elseif ($proceed == "com_update") {

$id = $_POST['id'];


if ($config['allow_comments_wysiwyg'] != "yes")

		$comments = $db->safesql($parse->BB_Parse($parse->process($_POST['comments']), false));

	else{

		$parse->wysiwyg = true;

		$parse->ParseFilter(Array('div', 'a', 'span', 'p', 'br'), Array(), 0, 1);

		$comments = $db->safesql($parse->BB_Parse($parse->process($_POST['comments'])));

	}


$comments	= word_filter($comments);


echo <<<HTML

<META http-equiv="REFRESH" content="3; URL=/?do=guestbook">

HTML;

$result = $db->query("UPDATE " . PREFIX . "_guestbook set message='$message' where id='$id'");

@header("Location: http://".$_SERVER['HTTP_HOST']."/?do=guestbook");


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

// Проверка и добавление в базу

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


} elseif ($proceed == "add") {


if ($_SERVER['HTTP_X_FORWARDED_FOR']) $ip = $db->safesql($_SERVER['HTTP_X_FORWARDED_FOR']); else $ip = $db->safesql($_SERVER['REMOTE_ADDR']);

@set_time_limit(0);


if ($is_logged) {

		$name  = $member_id['name'];

		$mail = $member_id['email'];

		$is_register = "1";

		} else {

	   $name = $db->safesql($parse->process($_POST['name']));

$mail = $db->safesql($parse->process($_POST['mail']));


		$is_register = "0";

		}


$parse->wysiwyg = true;

		$parse->ParseFilter(Array('div', 'a', 'span', 'p', 'br'), Array(), 0, 1);

		$message = $db->safesql($parse->BB_Parse($parse->process($_POST['message'])));



  $sec_code	 = trim($_SESSION['sec_code_session']);

  $sec_code_inp = $db->safesql($parse->process($_POST['reg_sec_code']));

  $date = date ("Y-m-d H:i:s", (time()+$config['date_adjust']*60));


if ($sec_code != $sec_code_inp) {

msgbox ($lang['all_info'], "Неверно указан код безопасности.<br><a href=\"/guestbook\">Вернуться назад</a>");


  } elseif (preg_match("/[\||\'|\"|\!|\$|\@|\&\~\*\+]/",$nameg)) {

	msgbox ($lang['all_info'], "Вы ввели недопустимое имя. <a href=\"/guestbook\">Вернуться назад</a>");


  } elseif (trim($message) == "" or !$message) {

	msgbox ($lang['all_info'], "Извините, но Вы не ввели сообщение. <a href=\"/guestbook\">Вернуться назад</a>");


  } elseif ((!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $mail)) or (empty($mail))) {

	msgbox ($lang['all_info'], "Извините, но Вы ввели неверный E-Mail. <a href=\"/guestbook\">Вернуться назад</a>");


  } else {

  $dupe_url = $db->query("SELECT name FROM ".PREFIX."_users WHERE name = '$nameg'");

  if ($db->num_rows($dupe_url) > 0) {

	msgbox ($lang['all_info'], "Данное имя или e-mail использовать нельзя.<br><a href=\"/guestbook\">Вернуться назад</a>");

  } else {

if ($name == "1") $name = "";

$db->query("INSERT INTO ".PREFIX."_guestbook (name, userid, mail, ip, message, date, is_reg) VALUES ('$nameg$name', '$member_id[user_id]', '$mail', '$ip', '$message', '$date', '$is_register')");

@header("Location: http://".$_SERVER['HTTP_HOST']."/guestbook");

}

}

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

// Форма добавления и просмотр сообщений

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

} else {



	$number = 15;

	if ($cstart < 0) $cstart = 0;


	if ($cstart){

	   $cstart = $cstart - 1;

	   $cstart = $cstart * $number;

	}


	$i = $cstart;

	$s = 0;


$result = $db->query("SELECT id, date, name as gast_name, mail as gast_email, message, ip, is_reg, userid  FROM " . PREFIX . "_guestbook ORDER BY date DESC LIMIT $cstart,$number");



$query_count = "SELECT COUNT(*) as count from " . PREFIX . "_guestbook";

$row_count = $db->super_query($query_count);


while($row = $db->get_array($result)){

$userid = $row['userid'];

$query_users = "SELECT icq, foto, reg_date FROM " . PREFIX . "_users WHERE user_id = '$userid'";

$result_users = $db->super_query($query_users);

$row['name'] = stripslashes($row['gast_name']);

$row['gast_email'] = stripslashes($row['gast_email']);


$i++;$s++;


		if (!$row['is_reg'] OR $row['name'] == '') {

				if($row['gast_email'] != ""){

			if( preg_match("/^[\.A-z0-9_\-]+[DOT][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $row['gast_email'])){ $url_target = "";$mail_or_url = "mailto:"; }

				else{

					$url_target = "target=\"_blank\"";

					$mail_or_url = "";

					if(substr($row[email],0,3) == "www"){ $mail_or_url = "http://"; }

										}


		if ($mail_or_url == "mailto:") {

		$tpl->set('{author}', "<a href=\"mailto:{$row['gast_email']}\">".$row['gast_name']."</a>");

		} else {

		$tpl->set('{author}', "<a $url_target href=\"$mail_or_url".$row[gast_email]."\">".$row['gast_name']."</a>");

		}



					}

										else{ $tpl->set('{author}', $row['gast_name']); }

		}else

		{

		if ($config['allow_alt_url'] == "yes")

		$tpl->set('{author}', "<a href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">".stripslashes($row['name'])."</a>");

		else

		$tpl->set('{author}', "<a href=\"$PHP_SELF?subaction=userinfo&amp;user=".urlencode($row['name'])."\">".stripslashes($row['name'])."</a>");

		}



if ($is_logged AND (($member_id['name'] == $row['name'] AND $row['is_register'] AND $user_group[$member_id['user_group']]['allow_editc']) OR $user_group[$member_id['user_group']]['edit_allc'])){

		$tpl->set('[com-edit]',"<a href=\"".$config['http_home_url']."?do=guestbook&action=edit&id=".$row['id']."\">");

		$tpl->set('[/com-edit]',"</a>");

				$allow_comments_ajax = true;

				}

		else $tpl->set_block("'\\[com-edit\\](.*?)\\[/com-edit\\]'si","");


if ($is_logged AND (($member_id['name'] == $row['name'] AND $row['is_register']  AND $user_group[$member_id['user_group']]['allow_delc']) OR $member_id['user_group'] == '1' OR $user_group[$member_id['user_group']]['del_allc'])){

		$tpl->set('[com-del]',"<a href=\"java script:confirmDelete('".$config['http_home_url']."?do=guestbook&action=del&id=".$row['id']."')\">");

		$tpl->set('[/com-del]',"</a>");

				}

		else $tpl->set_block("'\\[com-del\\](.*?)\\[/com-del\\]'si","");


		if (($user_group[$member_id['user_group']]['allow_addc']) AND $config['allow_comments'] == "yes")

		{

				if (!$row['is_register'] OR $row['name'] == '') $row['name'] = stripslashes($row['gast_name']); else $row['name'] = stripslashes($row['name']);

		$tpl->set('[fast]',"<a onmouseover=\"dle_copy_quote('".str_replace( array(" ", "'"), array("&nbsp;", "&amp;#039;"), $row['name'] )."');\" href=\"#\" onClick=\"dle_ins('".str_replace( array(" ", "'"), array("&nbsp;", "&amp;#039;"), $row['name'] )."'); return false;\"\">");

		$tpl->set('[/fast]',"</a>");

		} else $tpl->set_block("'\\[fast\\](.*?)\\[/fast\\]'si","");


$tpl->set('{comment-id}', $row['id']);

$tpl->set('{date}', $row['date']);


if ($row['is_reg'] AND $result_users['icq']) $tpl->set('{icq}', stripslashes($result_users['icq']));

		else $tpl->set('{icq}', '--');


if ($result_users['foto'])

		$tpl->set('{foto}', $config['http_home_url']."uploads/fotos/".$result_users['foto']);

		else

		$tpl->set('{foto}', "{THEME}/images/noavatar.png");


if ($row['is_reg']) $tpl->set('{registration}', langdate($config['timestamp_active'], $result_users['reg_date']));

		else $tpl->set('{registration}', '--');


$tpl->set('{comment}', stripslashes($row['message']));

if ($is_logged) $tpl->set_block("'\[hide\](.*?)\[/hide\]'si","\\1");

		else $tpl->set_block("'\\[hide\\](.*?)\\[/hide\\]'si","<div class=\"quote\">".$lang['news_regus']."</div>");


if ($is_logged AND $member_id['user_group'] == '1')

		$tpl->set('{ip}', "IP: <a href=\"http://www.nic.ru/whois/?ip={$row['ip']}\" target=\"_blank\">{$row['ip']}</a>");

		else

		$tpl->set('{ip}', '');


$tpl->load_template('mess.tpl');

$tpl->compile('content');

}


   $tpl->load_template('addmess.tpl');



if (($is_logged AND $config_only_registered_comment == "yes") OR ($config_only_registered_comment != "yes"))

		{


	if ($config['allow_comments_wysiwyg'] == "yes"){

	$tpl->copy_template = "<script language=JavaScript src='".$config['http_home_url']."engine/editor/scripts/innovaeditor.js'></script>\n".$tpl->copy_template;

	}

	else {

	include_once ENGINE_DIR.'/modules/bbcode.php';

	}


	if ($config['allow_comments_wysiwyg'] != "yes")

		$text = $parse->decodeBBCodes($row['text'], false);

	else

	$text = $parse->decodeBBCodes($row['text'], TRUE, $config['allow_comments_wysiwyg']);



		if ($config['allow_comments_wysiwyg'] != "yes"){

	$tpl->set('[not-wysywyg]',"");

	$tpl->set('[/not-wysywyg]',"");

	} else $tpl->set_block("'\\[not-wysywyg\\].*?\\[/not-wysywyg\\]'si","");


	if ($config['allow_comments_wysiwyg'] == "yes"){

	include_once ENGINE_DIR.'/editor/comments.php';

	$tpl->set('{wysiwyg}',$wysiwyg);

	} else

	{

	$tpl->set('{wysiwyg}','');

	}



		$tpl->set('{smilies}', $smilies_form);

		$tpl->set('{title}', 'Добавление сообщения');

		$tpl->set('{bbcode}',$bb_code);

		$tpl->set('{text}', '');

	$tpl->set('[sec_code]', '');

	$tpl->set('[/sec_code]', '');

	$tpl->set('{sec_code}',"<img src=\"/engine/modules/antibot.php\"

border=0>");


		if (!$is_logged) {

	$tpl->set('[not-logged]','');

	$tpl->set('[/not-logged]','');

	}

	else $tpl->set_block("'\\[not-logged\\](.*?)\\[/not-logged\\]'si","");



	$tpl->copy_template = "<form  method=\"post\" id=\"dle-comments-form\" enctype=\"multipart/form-data\"><input type=hidden name=do value=guestbook>

<input type=hidden name=proceed value=add>".$tpl->copy_template."

		<input type=\"hidden\" name=\"subaction\" value=\"addcomment\" />

		<input type=\"hidden\" name=\"op\" value=\"post\">";


		$tpl->copy_template .= "</form>";

   }

   $tpl->compile('content');


	$i = $cstart;


	$tpl->load_template('navigation.tpl');

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

	// Previous link

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

	if($cstart > 0){

	  $prev = $cstart / $number;

	  $prev_page = $PHP_SELF."?do=guestbook&cstart=".$prev;

	  $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<a href=\"".$prev_page."\">\\1</a>");


	}else{ $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "\\1"); $no_prev = TRUE; }


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

	// Pages

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

	if($number){

	$count_all = $row_count['count'];


	$pages_count = @ceil($count_all/$number);

	$pages_start_from = 0;

	$pages = "";

	$pages_per_section = 3;

	if($pages_count > 10)

		 {

			for($j = 1; $j <= $pages_per_section; $j++)

			  {

			   if($pages_start_from != $cstart)

				   {

	$pages .= "<a href=\"$PHP_SELF?do=guestbook&cstart=$j\">$j</a> ";

					 }

					   else

						  {

						  $pages .= " [$j] ";

						  }

			  $pages_start_from += $number;

				 }

			 if(((($cstart / $number) + 1) > 1) && ((($cstart / $number) + 1) < $pages_count))

				{

			   $pages   .= ((($cstart / $number) + 1) > ($pages_per_section + 2)) ? '... ' : ' ';

			   $page_min = ((($cstart / $number) + 1) > ($pages_per_section + 1)) ? ($cstart / $number) : ($pages_per_section + 1);

			   $page_max = ((($cstart / $number) + 1) < ($pages_count - ($pages_per_section + 1))) ? (($cstart / $number) + 1) : $pages_count - ($pages_per_section + 1);


			   $pages_start_from = ($page_min - 1) * $number;


					 for($j = $page_min; $j < $page_max + ($pages_per_section - 1); $j++)

						 {

						   if($pages_start_from != $cstart)

										{


	$pages .= "<a href=\"$PHP_SELF?do=guestbook&cstart=$j\">$j</a> ";

									}

									else

									{

										   $pages .= " [$j] ";

									}

								   $pages_start_from += $number;

						  }

						   $pages .= ((($cstart / $number) + 1) < $pages_count - ($pages_per_section + 1)) ? '... ' : ' ';


						}

						else

						{

								$pages .= '... ';

						}


						$pages_start_from = ($pages_count - $pages_per_section) * $number;

						for($j=($pages_count - ($pages_per_section - 1)); $j <= $pages_count; $j++)

						{

								if($pages_start_from != $cstart)

								{


	$pages .= "<a href=\"$PHP_SELF?do=guestbook&cstart=$j\">$j</a> ";

								}

								else

								{

										$pages .= " [$j] ";

								}

								$pages_start_from += $number;

						}


				}

				else

				{

						for($j=1;$j<=$pages_count;$j++)

						{

								if($pages_start_from != $cstart)

								{

	$pages .= "<a href=\"$PHP_SELF?do=guestbook&cstart=$j\">$j</a> ";

								}

								else

								{

										$pages .= " [$j] ";

								}

								$pages_start_from += $number;

						}

				}

				$tpl->set('{pages}', $pages);

		}


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

// Next link

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

	if($number < $count_all and $i < $count_all){


	$next_page = $i / $number + 2;

	  $next = $PHP_SELF."?do=guestbook&cstart=".$next_page;

	$tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<a href=\"".$next."\">\\1</a>");


	}else{

		$tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "\\1"); $no_next = TRUE;

	}


if	(!$no_prev or !$no_next){ $tpl->compile('content'); }

$tpl->clear();

};

?>

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...
  • 11 месяцев спустя...

Ребята помогите тружусь над гостевой книгой ХЗ откуда нарисовались 2 для меня непонятных бага!!!

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

2 если bbcodes именно в коментариях они решили, что горизонтальное положение уже не актуально, и все значки выстраиваются вертикально при том что полоска остается горизонтально.

* ( буквально 3 дня назад купил DLE и пытаюсь отрегулировать под него свой шаблон + модули... )

*СПАСИБО ЗА ПОМОЩЬ*

Да и еще интересный баг только заметил если использую wysywyg то при 0 сообщений в гостевой и врежиме администратора не грузятся панели!

Но стоит добавить хоть одно сообщение и все работает как часы...

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

Я понимаю! я ставилю гостевую книгу версии 2.5 с заточкой под 7.5... ( Все там отлично работает и в наличии остались только выше указанные 2 бага) * (причем баги эти же стали наблюдаться и просто в комментариях на сайте) так что я с этим вопросом в раздел багов побег...

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Есть вопрос, как добавить поле ? допустим город,

а то там мало палей, имя и мыло.

Через дополнительное поле можно ?

-

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

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

Ребята помогите разобраться, как можно сделать форму сообщений что бы она с низу была и что бы последние сообщение оформлялось то же с низу.

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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