• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Вывод аватара в модуле блока последних комментариев

Статус
В этой теме нельзя размещать новые ответы.

FORMAT

Профессор
Регистрация
9 Май 2008
Сообщения
210
Реакции
45
Привет. Есть модуль последних комментариев 2.1 by ko1yan
Необходимо выводить в этом блоке ещё и аватар автора комментария, например через $avatar, а если аватара нет, то вывод картинки noavatar.

В таблице с комментариями для автора нашёл, на мой взгляд, только ключи user_id и autor

Известно, что в DLE аватарам в дирректории присваивается название foto_(id пользователя), но расширение всё равно разное, и не у всех стоит аватар

Ну или в крайнем случае, помогите сделать с дополнительным запросом в users.

Было бы просто шикарно если ещё добавть кеширование к модулю в одну минуту.

Я в PHP 0,01))

Спасибо за помощь, ниже привёл сам код модуля.
PHP:
<?php
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

//------------------------------------
// Настройки модуля
//------------------------------------
/* Количество выводимых комментарий */
define ("LIMITCOMM", "10");
/* Количество символов в названии новости */
define ("LIMITTITL", "55");
/* Показывать всплывающее окно в тексом комментария - (yes / no) */
define ("SHOWHITHB", "yes");
//------------------------------------
// /Настройки модуля
//------------------------------------

$sql = $db->query("SELECT comments.post_id, comments.is_register, comments.text, comments.autor, comments.email, post.id, post.date as newsdate, post.title, post.category, post.alt_name, post.flag FROM " . PREFIX . "_comments as comments, " . PREFIX . "_post as post WHERE post.id=comments.post_id ORDER BY comments.date DESC LIMIT 0,".LIMITCOMM);

while($row = $db->get_row($sql)) {
	
	$row['date'] = strtotime($row['date']);
	$row['newsdate'] = strtotime($row['newsdate']);
	$row['date'] = strtotime($row['date']);
	
	if (strlen($row['title']) > LIMITTITL)
	$title = substr ($row['title'], 0, LIMITTITL)." ...";
	else
	$title = $row['title'];

if (strlen($row['text']) > 300)
$text = htmlspecialchars( stripslashes( substr ($row['text'], 0, 300).".." ) );

if (!$row['is_register'] == "1") {
if($row['email'] != ""){
 if( preg_match("/^[\.A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $row['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:") {
$email = explode("@", $row['email'], 2);
$autor = "<script>var em0 = '$email[0]'; document.write('<a href=\"mailto:' + em0 + '@$email[1]\">".$row['autor']."</a>');</script>";
} else {
$autor = "<a $url_target href=\"$mail_or_url".$row[email]."\">".$row['autor']."</a>"; }
} else { $autor = $row['autor']; }
} else {
if ($config['allow_alt_url'] == "yes") {
$autor = "<a href=\"".$config['http_home_url']."user/".urlencode($row['autor'])."/\">".$row['autor']."</a>";
} else {
$autor = "<a href=\"$PHP_SELF?subaction=userinfo&amp;user=".urlencode($row['autor'])."\">".$row['autor']."</a>"; } }



		$row['date'] = strtotime($row['date']);
		$row['category'] = intval($row['category']);

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

			if ($row['flag']) {

				if ($row['category']) {

					$full_link = $config['http_home_url'].get_url($row['category'])."/".$row['id']."-".$row['alt_name'].".html";

				} else {

					$full_link = $config['http_home_url'].$row['id']."-".$row['alt_name'].".html";

				}

			} else {

				$full_link = $config['http_home_url'].date('Y/m/d/', $row['newsdate']).$row['alt_name'].".html";
			}

		} else {

			$full_link = $config['http_home_url']."index.php?newsid=".$row['id'];

		}		

$post = "<a href=\"".$full_link."#comment\">".stripslashes($title)."</a>";
		

	$text = htmlspecialchars(stripslashes($row['text']));
if (SHOWHITHB == "yes") {
$box = "onMouseover=\"showhint('<b>Комментарий</b>:</b><br />{$text}', this, event, '200px')\"";
}

$lcomm .= "<div {$box}><div onmouseover=\"this.className='lastcomm_over';\" onmouseout=\"this.className='lastcomm';\" class=\"lastcomm\">Автор: {$autor}, в новости:<br />{$post}</div></div>"; }

$lastcommb= "<script type=\"text/javascript\" src=\"".$config['http_home_url']."engine/skins/default.js\"></script>".$lcomm."";
?>
 
опс, уже разобрался методом тыка, вобщем если кому нужно

запрос исправил на
PHP:
$sql = $db->query("SELECT comments.post_id, comments.is_register, comments.text, comments.autor, comments.user_id,  comments.email, users.foto, users.user_id, post.id, post.date as newsdate, post.title, post.category, post.alt_name, post.flag, users.foto FROM " . PREFIX . "_comments as comments, " . PREFIX . "_users as users, " . PREFIX . "_post as post WHERE post.id=comments.post_id and users.user_id=comments.user_id ORDER BY comments.date DESC LIMIT 0,".LIMITCOMM."");

после
PHP:
if ($config['allow_alt_url'] == "yes") {
$autor = "<a href=\"".$config['http_home_url']."user/".urlencode($row['autor'])."/\">".$row['autor']."</a>";
} else {
$autor = "<a href=\"$PHP_SELF?subaction=userinfo&amp;user=".urlencode($row['autor'])."\">".$row['autor']."</a>"; } }

вставил это
PHP:
if ($row['foto']) {
$avatar = "<img src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" alt=\"\" width=\"24\" height=\"24\" />";
} else {
$avatar = "<img src=\"".$config['http_home_url']."templates/".$config['skin']."/dleimages/noavatar.png\" alt=\"\" width=\"24\" height=\"24\" />";}

и наконец тут
PHP:
$lcomm .= "<div {$box}><div onmouseover=\"this.className='lastcomm_over';\" onmouseout=\"this.className='lastcomm';\" class=\"lastcomm\">Автор: {$autor}, в новости:<br />{$post}</div></div>"; }

на своё усмотрение вставить {$avatar}, например после Автор:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху