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

Тема в разделе "DLE", создана пользователем FORMAT, 9 мар 2009.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. FORMAT

    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'], 0LIMITTITL)." ...";
        else
        
    $title $row['title'];

    if (
    strlen($row['text']) > 300)
    $text htmlspecialcharsstripslashessubstr ($row['text'], 0300).".." ) );

    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."";
    ?>
     
  2. FORMAT

    FORMAT

    Регистр.:
    9 май 2008
    Сообщения:
    210
    Симпатии:
    45
    опс, уже разобрался методом тыка, вобщем если кому нужно

    запрос исправил на
    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}, например после Автор:
     
    Sam_XTL нравится это.
Статус темы:
Закрыта.