Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Аватар автора в новостях

Аватар автора в новостях


     25.08.2011    аватарка, новости    Все вопросы » Хаки    8699

вопрос
Видел когда то хак, который выводит аватарку автора в полной новости, кто подскажет как вывести аватар и в краткую новость...

Ответил: ПафНутиЙ


Сразу хочу сказать, что это плюс 1 запрос в новость, если не смущает, то:
  1. Открываем файлы:
    /engine/modules/show.short.php
    /engine/modules/show.full.php
    /engine/modules/show.custom.php
    во всех файлах находим:
    $tpl->set( '{login}', $row['autor'] );

    и ниже добавляем:
    $avatar = $db->get_row($db->query("SELECT foto FROM ".PREFIX."_users WHERE name='".$row['autor']."'"));
                if($avatar['foto'])
                    $tpl->set('{avatar}', $config['http_home_url']."uploads/fotos/".$avatar['foto']);
                else
                    $tpl->set('{avatar}', "{THEME}/images/noavatar.png");

  2. В шаблоны краткой, полной и custom новостей вставляем:
    <img src="{avatar}" alt="{login}"/>

  3. В CSS дописываем нужный свойства.
  4. Всё.

14 комментариев

Sander
Эксперт

Sander - 25 августа 2011 13:25 -

Лучше не:
$avatar = $db->get_row($db->query("SELECT foto FROM ".PREFIX."_users WHERE name='".$row['autor']."'"));
А:
$avatar = $db->super_query("SELECT foto FROM ".PREFIX."_users WHERE name='{$row['autor']}'");

Но! Для каждой новости будет делаться отдельный запрос!

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

ПафНутиЙ
Админ

ПафНутиЙ - 25 августа 2011 13:54 -

А почему лучше?

Каков вопрос - таков и ответ. Просто помните об этом.

DatiX
Юзер

DatiX - 25 августа 2011 20:16 -

спасибо парни!!

maxbeat
Местный

maxbeat - 20 октября 2011 04:37 -

А около аватара возможно вставить тег О себе из профиля пользователя? fullstory.tpl

Yurets
Юзер

Yurets - 6 ноября 2012 12:59 -

У меня тоже возникла потребности вывести Инфо с поля автора "О себе", исходя из того тчо в php я полный 0, случайно нашел этот запрос от ПафНутия и немного подправил:

/engine/modules/show.full.php

после - $tpl->set( '{login}', $row['autor'] );

вставляем:

$avtor_info = $db->get_row($db->query("SELECT info FROM ".PREFIX."_users WHERE name='".$row['autor']."'"));
if($avtor_info['info'])
$tpl->set('{avtor_info}', $avtor_info['info']);
else
$tpl->set('{avtor_info}', "Информация отсутствует");

В шаблоне fullstory.tpl выводим в нужном месте тегом:
{avtor_info}

p. s. надеюсь мне когда-то тоже тупо напишут несколько строк кода, вместо того чтобы отправлять в поиск по сайтам ))

vipartem
Юзер

vipartem - 8 июня 2015 20:14 -

У меня вопрос: Как выводить не логин, а полное имя. Вставки одного {fullname} в код шаблона не достаточно. Подскажите?

sanderart
Юзер

sanderart - 12 октября 2015 14:23 -

Заметил, что в DLE 10.5 актуально уже так
$tpl->set('{avatar}', .$avatar['foto']);

sanderart
Юзер

sanderart - 12 октября 2015 15:55 -

Вернее, так:
$tpl->set('{avatar}', $avatar['foto']);

(Предыдущий коммент удалить можно)

zikwal
Юзер

zikwal - 23 октября 2015 02:44 -

По началу не понял о чем ты, но пока сам не допедрил не сделал :-)
Вот такой код, нужно вставлять!

$avatar = $db->get_row($db->query("SELECT foto FROM ".PREFIX."_users WHERE name='".$row['autor']."'"));
            if($avatar['foto'])
                $tpl->set('{avatar}', $avatar['foto']);
            else
                $tpl->set('{avatar}', "{THEME}/dleimages/noavatar.png");

rytis.arkusauskas
Юзер

rytis.arkusauskas - 12 ноября 2015 11:23 -

a кaк Gravatar?

banbanan
Юзер

banbanan - 18 декабря 2015 11:36 -

а как сделать так чтоб был виден статус пользователя?
когда вставляю этот код то ничего не пишет и не показывает


if (($row['lastdate'] + 1200) > $_TIME) {
        
        $tpl->set('[online]', "");
        $tpl->set('[/online]', "");
        $tpl->set_block("'\\[offline\\](.*?)\\[/offline\\]'si", "");
        
    } else {
        $tpl->set('[offline]', "");
        $tpl->set('[/offline]', "");
        $tpl->set_block("'\\[online\\](.*?)\\[/online\\]'si", "");
    }

stasex11
Юзер

stasex11 - 7 ноября 2016 12:44 -

на dle 11.1 не работает

atola
Юзер

atola - 18 мая 2017 16:36 -

В DE 11.3

$tpl->set('{avatar}', $avatar['foto']); - уже не работает.

Кто-нибудь, знает решение?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх