Перейти к публикации

Рекомендованные сообщения

Сайт 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'];

	}

}

?>

Изменено пользователем Nekroviktor
Ссылка на сообщение
Поделиться на других сайтах

Класс. Огромное спасибо, просо низкий поклон.

Все так проявили полёт творческой мысли..

Ссылка на сообщение
Поделиться на других сайтах

Там надо запрос делать к юзеру и выводить аву.. На сколько мне помнится - в базе модуля хранится уже готовый ник, а не ID пользователя...

Ответ: сделать запрос и вывод.

Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю, что в dle_users_friends:

У нас имеиться:

user_id, friend_id, date, approve и porder

Необходимо добавить:

Поле foto

Тип задать VARCHAR

Ну а указать как в friends.class.php функцию вывода??

Ссылка на сообщение
Поделиться на других сайтах

а не проще ли взять конструкцию из файла 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
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...