Что нового

Вместо ника, имя и фамилия

  • Автор темы Автор темы tabik
  • Дата начала Дата начала
T

tabik

Гость
Всем привет, как сделать так, что-бы вместо ника, в комментариях и в новостях отображалось имя?Dle 9.7
 
tabik,Добавить одно доп. поле, но опять же будут ли люди писать свои инициалы
 
tabik,Поставить в нужном месте: {fullname} и все =)
 
Цитата: AlexVerb{fullname}Тогда у гостей не буден виден ник)
 
 Делаем вывод имени и фамилии вместо никаХак для DLE: @Делаем вывод имени и фамилии вместо ника@ (Эксклюзив для Skripters.biz!)Версия DLE: проверялось на 9.7Автор: AlexVerb ICQ: 64877773 Email: pnzvad@ya.ru Сначала сделаем отображение в новостях:1. КРАТКАЯ НОВОСТЬ:Открываем файл /engine/modules/show.short.php, находим в нём:$tpl->set( '{login}', $row['autor'] );НИЖЕ вставляем:/* -------------- Вывод имени и фамилии вместо ника (by AlexVerb) -------------- */    $sqlr = $db->query( "SELECT * FROM " . USERPREFIX . "_users WHERE name = '". $row['autor']. "'" );        $frow = $db->get_row($sqlr);        if ($frow['fullname'] == "") $fullname = $row['autor']; else $fullname = $frow['fullname'];        $tpl->set( '{fullname}', $fullname );/* -------------- Вывод имени и фамилии вместо ника (by AlexVerb) -------------- */2. ПОЛНАЯ НОВОСТЬ:Открываем файл /engine/modules/show.full.php, находим в нём:if( !$row['approve'] ) $allow_comments = false;НИЖЕ вставляем:/* -------------- Вывод имени и фамилии вместо ника (by AlexVerb) -------------- */    $sqlr = $db->query( "SELECT * FROM " . USERPREFIX . "_users WHERE name = '". $row['autor']. "'" );        $frow = $db->get_row($sqlr);        if ($frow['fullname'] == "") $fullname = $row['autor']; else $fullname = $frow['fullname'];        $tpl->set( '{fullname}', $fullname );/* -------------- Вывод имени и фамилии вместо ника (by AlexVerb) -------------- */3. Если вам нужно отображение и в комментариях, открываем файл /engine/modules/comments.php, находим в нём (если вам не нужно отображение в комментариях, переходим сразу к 4му шагу):$row['date'] = strtotime( $row['date'] );НИЖЕ вставляем:/* -------------- Вывод имени и фамилии вместо ника (by AlexVerb) -------------- */    $sqlr = $db->query( "SELECT * FROM " . USERPREFIX . "_users WHERE name = '". $row['autor']. "'" );        $frow = $db->get_row($sqlr);        if ($frow['fullname'] == "") $fullname = $row['autor']; else $fullname = $frow['fullname'];        $tpl->set( '{fullname}', $fullname );/* -------------- Вывод имени и фамилии вместо ника (by AlexVerb) -------------- */4. Дабы это всё работало, нужно выставить тег {fullname} ВМЕСТО прежнего тега {author} в файлах shortstory.tpl, fullstory.tpl, comments.tpl.Спасибо за внимание! (Отмечу также то, что это мой первый пробный хак для DLE, поэтому если что не так - просьба строго не судить).
 
А что мешает сделать так дабы не было геморроя с тем есть ли у автора fullname или нет        if ($frow['fullname'] == "") $fullname = $row['autor']; else $fullname = $frow['fullname'];Если fullname не заполнен - выводим name
 
Radar,мать вашу, у меня так было сделано потом, забыл здесь изменить ))
 
AlexVerb, нашу не надо.А вообще как по мне так надо было менять существующий тег, а не добавлять новый с отдельным запросом.
 
Radar,Да ет я так к слову, не в обиду )Как было ясно, так и писал )
 
Например эту задачу на скорую руку я бы решил следующим образом на примере show.short.php:в /engine/engine.phpЭто (примерно 487 строка)$sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, votes, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];заменил бы на это$sql_select = "SELECT " . PREFIX . "_post.id, " . PREFIX . "_post.autor, " . PREFIX . "_post.date, " . PREFIX . "_post.short_story, SUBSTRING(" . PREFIX . "_post.full_story, 1, 15) as full_story, " . PREFIX . "_post.xfields, " . PREFIX . "_post.title, " . PREFIX . "_post.category, " . PREFIX . "_post.alt_name, " . PREFIX . "_post.comm_num, " . PREFIX . "_post.allow_comm, " . PREFIX . "_post.allow_rate, " . PREFIX . "_post.fixed, " . PREFIX . "_post.rating, " . PREFIX . "_post.vote_num, " . PREFIX . "_post.news_read, " . PREFIX . "_post.votes, " . PREFIX . "_post.flag, " . PREFIX . "_post.editdate, " . PREFIX . "_post.editor, " . PREFIX . "_post.reason, " . PREFIX . "_post.view_edit, " . PREFIX . "_post.tags, " . PREFIX . "_users.* FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_users.name = " . PREFIX . "_post.autor WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];а в /engine/modules/show.short.phpЭто (примерно 309 строка)$tpl->set( '{author}', "<a onclick=\\"ShowProfile('" . urlencode( $row['autor'] ) . "', '" . $go_page . "', '" . $user_group[$member_id['user_group']]['admin_editusers'] . "'); return false;\\" href=\\"" . $go_page . "\\">" . $row['autor'] . "</a>" );заменил бы на это        if ($row['fullname'] == "") $news_author = $row['autor']; else $news_author = $row['fullname'];        $tpl->set( '{author}', "<a onclick=\\"ShowProfile('" . urlencode( $row['autor'] ) . "', '" . $go_page . "', '" . $user_group[$member_id['user_group']]['admin_editusers'] . "'); return false;\\" href=\\"" . $go_page . "\\">" . $news_author . "</a>" );и никаких лишних строк и новых тегов
 
Radar,Я опубликовал, заказчик взял то, что ему нужно было.
 
А как сделать вывод фотографии из профиля, в полную новость?
 
Верх