Nekroviktor 5 Опубликовано: 20 мая 2011 Рассказать Опубликовано: 20 мая 2011 (изменено) Сайт zudemon.ru Всё бы не чего, да подскажите что не так. engine/modules/friends/friends.class.php По разному добавлял код и всё ровно ошибка, скажите как правильно его вставить. Указал на переменную вывода авы: {if ($row['foto'] !== "")$avatar = "{$config['http_home_url']}uploads/fotos/{$row['foto']}"; else $avatar = "{$config['http_home_url']}templates/{$config['skin']}/images/noavatar.png"; $tpl->set('{avatar}', $avatar); Перед выводом ника друга ставил: <img src="{avatar}" style="border:1px solid #EAEAEA; padding:2px; width:60px; "> Благодарю за внимание. Вот сам friends.class.php <?php /* ===================================================== DataLife Engine - by SoftNews Media Group ----------------------------------------------------- Доработка и адаптация: eXteRnaL ICQ: 395951912 ----------------------------------------------------- Copyright (c) 2004,2007 SoftNews Media Group ===================================================== Данный код защищен авторскими правами ===================================================== */ final class Friends extends db { private $chpu; private $self_path; private $member_id; private $is_logged; private $is_friend = false; private $user_name; public $err = false; private $lng; function __construct($sys_conf, $member_id, $is_logged, $lng){ $this->user_name = urldecode($_REQUEST['user']); if ($this->user_name == $member_id['name'] || !$is_logged) $this->is_friend = true; $this->member_id = $member_id; $this->is_logged = $is_logged; $this->chpu = $sys_conf['allow_alt_url']; if ($this->chpu == 'yes') $this->self_path = $sys_conf['http_home_url']."friends/"; else $this->self_path = $sys_conf['http_home_url']."?do=friends"; $this->engine_path = $sys_conf['http_home_url']; $this->lng = $lng; } public function GetList() { $fr_link = array(); $result = $this->query("SELECT u.name, f.friend_id FROM ".PREFIX."_users_friends f, ".PREFIX."_users u WHERE f.user_id = (SELECT user_id FROM ".PREFIX."_users WHERE name = '{$this->user_name}') AND f.approve = 1 AND u.user_id = f.friend_id ORDER BY u.name"); while ($row = $this->get_row($result)){ if (!$this->is_friend && $row['name'] == $this->member_id['name']) $this->is_friend = true; if ($this->user_name != $this->member_id['name'] || !$this->is_logged) $del_link = ""; else { $fr_key = base64_encode($row['friend_id'].'#no#'.$this->member_id['user_id']); if ($this->chpu == 'yes') $del_link = " <a href='{$this->self_path}delete/$fr_key' style='color:red'>(X)</a>"; else $del_link = " <a href='{$this->self_path}&op=delete&key=$fr_key' style='color:red'>(X)</a>"; } $l_name = urlencode($row['name']); if ($this->chpu == 'yes') $fr_link[] = "<a href='{$this->engine_path}user/$l_name/'>$row[name]</a>".$del_link; else $fr_link[] = "<a href='{$this->engine_path}?subaction=userinfo&user=$l_name'>$row[name]</a>".$del_link; } $this->free($result); return implode(", ", $fr_link); } public function Profile($tpl){ $tpl->set("{friends}", $this->GetList()); if (!$this->is_friend){ $key = base64_encode($this->member_id['user_id'].'#'.$this->user_name); if ($this->chpu == "yes") $inv_link = $this->self_path."invite/$key"; else $inv_link = $this->self_path."&op=invite&key=".$key; $tpl->set('[invfriend]', "{foto}<a href='$inv_link'>"); $tpl->set('[/invfriend]', '</a>'); } else $tpl->set_block("'\\[invfriend\\](.*?)\\[/invfriend\\]'si",""); } public function Invite($config){ $ex = explode('#', base64_decode($_REQUEST['key'])); $friend_id = intval($ex[0]); $to_user = $this->safesql($ex[1]); $to_userid = $this->super_query("SELECT user_id FROM ".PREFIX."_users WHERE name = '$to_user' LIMIT 1"); if ($this->is_friend || $this->member_id['name'] == $to_user) { $this->err = $this->lng['no_access']; return; } $row = $this->super_query("SELECT approve FROM ".PREFIX."_users_friends WHERE friend_id = '$friend_id' AND user_id = '{$to_userid['user_id']}' LIMIT 1"); if ($row) { if ($row['approve'] == 1) $this->err = $this->lng['is_friend']; else $this->err = $this->lng['friend_send']; return; } $subject = $this->lng['friend_subj']; $aprove = base64_encode($this->member_id['user_id']."#yes#".$to_userid['user_id']); $notaprove = base64_encode($this->member_id['user_id']."#no#".$to_userid['user_id']); $result = $this->query("SELECT template, name FROM ".PREFIX."_email WHERE name IN ('frnd_mail', 'frnd_pm') LIMIT 2"); $lname = urlencode($this->member_id['name']); if ($this->chpu == "yes") { $from_link = "<a href='{$this->engine_path}user/$lname/'>{$this->member_id['name']}</a>"; $aprove_lnk = $this->self_path."approve/$aprove"; $noaprove_lnk = $this->self_path."approve/$notaprove"; } else { $aprove_lnk = $this->self_path."&op=approve&key=$aprove"; $noaprove_lnk = $this->self_path."&op=approve&key=$notaprove"; $from_link = "<a href='{$this->engine_path}?subaction=userinfo&user=$lname'>{$this->member_id['name']}</a>"; } while ($tpl = $this->get_row($result)){ $mail_find = array('{%username_to%}','{%username%}','{%site%}','{%aprove%}','{%notaprove%}'); $mail_replace = array($to_user, $from_link, $this->engine_path, $aprove_lnk, $noaprove_lnk); $tpl['template'] = stripcslashes($tpl['template']); $tpl['template'] = str_replace($mail_find, $mail_replace, $tpl['template']); if($tpl['name'] == 'frnd_mail'){ $tpl['template'] = str_replace($mail_find, $mail_replace, str_replace("\n","<br />",$tpl['template'])); $mail = new dle_mail ($config); $mail->html_mail = true; $mail->send ($config['admin_mail'], $subject, $tpl['template']); } elseif($tpl['name'] == 'frnd_pm') { $tpl['template'] = $this->safesql($tpl['template']); $time = time(); $this->query("INSERT INTO ".PREFIX."_pm (subj, text, user, user_from, date, pm_read, folder) VALUES ('$subject', '$tpl[template]',{$to_userid['user_id']}, '{$this->member_id['name']}', '$time', 'no', 'inbox')"); $this->query("UPDATE ".PREFIX."_users SET pm_all = pm_all + 1, pm_unread = pm_unread + 1 WHERE user_id = {$to_userid['user_id']}"); } } $this->query("INSERT INTO ".PREFIX."_users_friends VALUES ('{$to_userid['user_id']}', '$friend_id', NOW(), 0, 0)"); $this->query("INSERT INTO ".PREFIX."_users_friends VALUES ('$friend_id', '{$to_userid['user_id']}', NOW(), 0, 0)"); $this->free(); $this->err = $this->lng['friend_send']; } public function Aprove(){ $ex = explode('#', base64_decode($_REQUEST['key'])); $to_userid = intval($ex[2]); $from_userid = intval($ex[0]); $status = $ex[1]; $row = $this->super_query("SELECT approve FROM ".PREFIX."_users_friends WHERE user_id = '$to_userid' AND friend_id = '$from_userid' LIMIT 1"); if (($this->is_friend || $row['approve'] == 1) && $status != 'no'){ $this->err = $this->lng['err_act']; return ; } if ($status == 'no' && $this->member_id['user_id'] == $to_userid){ $this->query("DELETE FROM ".PREFIX."_users_friends WHERE user_id = '$to_userid' AND friend_id = '$from_userid'"); $this->query("DELETE FROM ".PREFIX."_users_friends WHERE user_id = '$from_userid' AND friend_id = '$to_userid'"); } else { $this->query("UPDATE ".PREFIX."_users_friends SET approve = 1 WHERE user_id = '$to_userid' AND friend_id = '$from_userid'"); $this->query("UPDATE ".PREFIX."_users_friends SET approve = 1 WHERE user_id = '$from_userid' AND friend_id = '$to_userid'"); } $this->free(); if (($to_userid / 100) < 1) $fldr = 1; else $fldr = floor($to_userid / 100) * 100; @unlink(ENGINE_DIR."/uploads/userpage/$fldr/$to_userid/cache/pp_friends.tmp"); if (($from_userid / 100) < 1) $fldr = 1; else $fldr = floor($from_userid / 100) * 100; @unlink(ENGINE_DIR."/uploads/userpage/$fldr/$from_userid/cache/pp_friends.tmp"); $this->err = $this->lng['friend_act']; } } ?> Изменено 20 мая 2011 пользователем Nekroviktor Цитата Ссылка на сообщение Поделиться на других сайтах
Nekroviktor 5 Опубликовано: 21 мая 2011 Рассказать Опубликовано: 21 мая 2011 Автор Класс. Огромное спасибо, просо низкий поклон. Все так проявили полёт творческой мысли.. Цитата Ссылка на сообщение Поделиться на других сайтах
monarh 1 Опубликовано: 22 мая 2011 Рассказать Опубликовано: 22 мая 2011 Там надо запрос делать к юзеру и выводить аву.. На сколько мне помнится - в базе модуля хранится уже готовый ник, а не ID пользователя... Ответ: сделать запрос и вывод. Цитата Ссылка на сообщение Поделиться на других сайтах
Nekroviktor 5 Опубликовано: 24 мая 2011 Рассказать Опубликовано: 24 мая 2011 Автор Я так понимаю, что в dle_users_friends: У нас имеиться: user_id, friend_id, date, approve и porder Необходимо добавить: Поле foto Тип задать VARCHAR Ну а указать как в friends.class.php функцию вывода?? Цитата Ссылка на сообщение Поделиться на других сайтах
demon165 8 Опубликовано: 24 мая 2011 Рассказать Опубликовано: 24 мая 2011 а не проще ли взять конструкцию из файла profile.php самого движка? впринципе сама константа отвечающая за вывод фотки: if( $row['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $row['foto'] )) ) $tpl->set( '{foto}', $config['http_home_url'] . "uploads/fotos/" . $row['foto'] ); else $tpl->set( '{foto}', "{THEME}/images/noavatar.png" );ну и собственно отредактируй под себя его,в нужные запросы своего файла добавь только переменную чтоб отображало и тег твой заработает Цитата Ссылка на сообщение Поделиться на других сайтах
Nekroviktor 5 Опубликовано: 24 мая 2011 Рассказать Опубликовано: 24 мая 2011 (изменено) Автор да не получаеться у меня... всё! запутался. Изменено 24 мая 2011 пользователем Nekroviktor Цитата Ссылка на сообщение Поделиться на других сайтах
demon165 8 Опубликовано: 28 мая 2011 Рассказать Опубликовано: 28 мая 2011 скинь мне свою аську или контакт в ЛС буду по свободнее помогу Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.