1 (15.09.2014 15:25 отредактировано nik222333444)

Тема: Отображение шаблона

Как сделать, чтобы посетители видели шаблон profile_popup, как профиль, а владелец профиля userinfo?
userinfo:

<div class="newfull">
<h5>Пользователь: {usertitle}</h5>
    <div class="userinfo">
        <div class="lcol">
            <div class="avatar"><img src="{foto}" alt=""/><div class="rateui">{rate}</div></div>
            <ul class="reset">
                <li class="clr">{email}</li>
                [not-group=5]<li>{pm}</li>[/not-group]
            </ul>
        </div>
        <div class="rcol">
            <ul>
                <li><span class="grey">Полное имя:</span> <b>{fullname}</b></li>
                <li><span class="grey">Группа:</span> {status} [time_limit]&nbsp;В группе до: {time_limit}[/time_limit]</li>
                <li><span class="grey">ICQ:</span> <b>{icq}</b></li>
            </ul>
            <ul class="ussep">
                <li><span class="grey">Количество публикаций:</span> <b>{news-num}</b> [{news}][rss]<b style="vertical-align: middle; margin-left: 5px;"><i class="fa fa-rss"></i></b>[/rss]</li>
                <li><span class="grey">Количество комментариев:</span> <b>{comm-num}</b> [{comments}]</li>
                <li><span class="grey">Дата регистрации:</span> <b>{registration}</b></li>
                <li><span class="grey">Последнее посещение:</span> <b>{lastdate}</b></li>
                <li><span class="grey">Статус:</span> [online]<img src="{THEME}/images/online.png" style="vertical-align: middle;" title="Пользователь Онлайн" alt="Пользователь Онлайн" />[/online][offline]<img src="{THEME}/images/offline.png" style="vertical-align: middle;" title="Пользователь offline" alt="Пользователь offline" />[/offline]</li>
            </ul>
            <ul class="ussep">
                <li><span class="grey">Место жительства:</span> {land}</li>
                <li><span class="grey">Немного о себе:</span> {info}</li>
            </ul>
            <span class="small">[not-logged] <b class="btn btn-success">{edituser}</b>[/not-logged]</span>
        </div>
        <div class="clr"></div>
    </div>
</div>
<br />
[not-logged]
<div id="options" style="display:none;">
    <br /><br />
    <div class="newfull">
    <h5>Редактирование профиля</h5>
        <table class="tableform">
                <tr>
                    <td class="label">Ваше Имя:</td>
                    <td><input type="text" name="fullname" value="{fullname}" class="f_input" /></td>
                </tr>
                <tr>
                    <td class="label">Ваш E-Mail:</td>
                    <td><input type="text" name="email" value="{editmail}" class="f_input" /><br />
                    <div class="checkbox">{hidemail}</div>
                    <div class="checkbox"><input type="checkbox" id="subscribe" name="subscribe" value="1" /> <label for="subscribe">Отписаться от подписанных новостей</label></div></td>
                </tr>
                <tr>
                    <td class="label">Место жительства:</td>
                    <td><input type="text" name="land" value="{land}" class="f_input" /></td>
                </tr>
                <tr>
                    <td class="label">Список игнорируемых:</td>
                    <td>{ignore-list}</td>
                </tr>
                <tr>
                    <td class="label">Номер ICQ:</td>
                    <td><input type="text" name="icq" value="{icq}" class="f_input" /></td>
                </tr>
                <tr>
                    <td class="label">Старый пароль:</td>
                    <td><input type="password" name="altpass" class="f_input" /></td>
                </tr>
                <tr>
                    <td class="label">Новый пароль:</td>
                    <td><input type="password" name="password1" class="f_input" /></td>
                </tr>
                <tr>
                    <td class="label">Повторите:</td>
                    <td><input type="password" name="password2" class="f_input" /></td>
                </tr>
                <tr>
                    <td class="label" valign="top">Блокировка по IP:<br />Ваш IP: {ip}</td>
                    <td>
                    <div><textarea name="allowed_ip" style="width:98%;" rows="5" class="f_textarea">{allowed-ip}</textarea></div>
                    <div>
                        <span class="small pink">
                        * Внимание! Будьте бдительны при изменении данной настройки.
                        Доступ к Вашему аккаунту будет доступен только с того IP-адреса или подсети, который Вы укажете.
                        Вы можете указать несколько IP адресов, по одному адресу на каждую строчку.
                        <br />
                        Пример: 192.48.25.71 или 129.42.*.*</span>
                    </div>
                    </td>
                </tr>
                <tr>
                    <td class="label">Аватар:</td>
                    <td>Загрузить с комьютера: <input type="file" name="image" class="f_input" /><br /><br />
                    Сервис <a href="http://www.gravatar.com/" target="_blank">Gravatar</a>: <input type="text" name="gravatar" value="{gravatar}" class="f_input" /> (Укажите E-mail на данном сервисе)
                    <br /><br /><div class="checkbox"><input type="checkbox" name="del_foto" id="del_foto" value="yes" /> <label for="del_foto">Удалить аватар</label></div>
                    </td>
                </tr>
                <tr>
                    <td class="label">О себе:</td>
                    <td><textarea name="info" style="width:98%;" rows="5" class="f_textarea">{editinfo}</textarea></td>
                </tr>
                <tr>
                    <td class="label">Подпись:</td>
                    <td><textarea name="signature" style="width:98%;" rows="5" class="f_textarea">{editsignature}</textarea></td>
                </tr>
                {xfields}
            </table>
                <input class="btn btn-primary" type="submit" name="submit" value="Отправить" />
                <input name="submit" type="hidden" id="submit" value="submit" />
    </div>
    <br />
</div>
[/not-logged]

profile_popup:

<div class="userinfo">
        <div class="lcol">
            <div class="avatar" style="margin: 0;"><img src="{foto}" alt=""/></div>
        </div>
        <div class="rcol">
            <ul class="reset">
                <li>Полное имя: <b>{fullname}</b></li>
                <li>Группа: {status}</li>
                <li>Дата посещения: <b>{lastdate}</b></li>
                <li>Cтатус: [online]<img src="{THEME}/images/online.png" style="vertical-align: middle;" title="Пользователь Онлайн" alt="Пользователь Онлайн" />[/online][offline]<img src="{THEME}/images/offline.png" style="vertical-align: middle;" title="Пользователь offline" alt="Пользователь offline" />[/offline]</li>
                <li>Дата регистрации: <b>{registration}</b></li>
                <li>Публикаций: <b>{news-num}</b> [ {news} ]</li>
                <li>Комментариев: <b>{comm-num}</b> [ {comments} ]</li>
            </ul>
        </div>
        <div class="clr"></div>
</div>

Re: Отображение шаблона

nik222333444, Почитай документацию к движку.
Отдельно шаблоны выбрать не получится, но регулировать выводимую информацию между группами посетителей - запросто.

3 (17.09.2014 21:28 отредактировано svetlana)

Re: Отображение шаблона

Стандартно никак, но можно сделать так

открываем profile.php
ищем

$tpl->load_template( 'userinfo.tpl' );

меняем на

if ($member_id['name'] == $user) {
$tpl->load_template( 'userinfo.tpl' );
}
else
{
$tpl->load_template( 'profile_popup.tpl' );
}

Используем smile
Я бы создала копию profile_popup.tpl и вписала бы его вместо стандартного.

4

Re: Отображение шаблона

Спасибо

Добавлено: 19.09.2014 21:21

Я не нашел

$tpl->load_template( 'userinfo.tpl' );

Я в правильном месте искал?

<?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 http://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004,2014 SoftNews Media Group
=====================================================
 Данный код защищен авторскими правами
=====================================================
 Файл: profile.php
-----------------------------------------------------
 Назначение: Профиль пользователя
=====================================================
*/

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );

define( 'DATALIFEENGINE', true );
define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -12 ) );
define( 'ENGINE_DIR', ROOT_DIR . '/engine' );

include ENGINE_DIR . '/data/config.php';

if( $config['http_home_url'] == "" ) {
    
    $config['http_home_url'] = explode( "engine/ajax/profile.php", $_SERVER['PHP_SELF'] );
    $config['http_home_url'] = reset( $config['http_home_url'] );
    $config['http_home_url'] = "http://" . $_SERVER['HTTP_HOST'] . $config['http_home_url'];

}

require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';

dle_session();

require_once ENGINE_DIR . '/classes/templates.class.php';

$_REQUEST['skin'] = trim(totranslit($_REQUEST['skin'], false, false));
$_TIME = time () + ($config['date_adjust'] * 60);

if( $_REQUEST['skin'] == "" OR !@is_dir( ROOT_DIR . '/templates/' . $_REQUEST['skin'] ) ) {
    die( "Hacking attempt!" );
}

//################# Определение групп пользователей
$user_group = get_vars( "usergroup" );

if( ! $user_group ) {
    $user_group = array ();
    
    $db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
    
    while ( $row = $db->get_row() ) {
        
        $user_group[$row['id']] = array ();
        
        foreach ( $row as $key => $value ) {
            $user_group[$row['id']][$key] = stripslashes($value);
        }
    
    }
    set_vars( "usergroup", $user_group );
    $db->free();
}

if( $config["lang_" . $_REQUEST['skin']] ) {

    if ( file_exists( ROOT_DIR . '/language/' . $config["lang_" . $_REQUEST['skin']] . '/website.lng' ) ) {    
        @include_once (ROOT_DIR . '/language/' . $config["lang_" . $_REQUEST['skin']] . '/website.lng');
    } else die("Language file not found");

} else {
    
    @include_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng';

}
$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];

require_once ENGINE_DIR . '/modules/sitelogin.php';

if( ! $is_logged ) {
    $member_id['user_group'] = 5;
}


$tpl = new dle_template( );
$tpl->dir = ROOT_DIR . '/templates/' . $_REQUEST['skin'];
define( 'TEMPLATE_DIR', $tpl->dir );
$PHP_SELF = $config['http_home_url'] . "index.php";

if (isset ( $_GET['name'] )) $name = @$db->safesql ( strip_tags ( urldecode ( $_GET['name'] ) ) ); else $name = '';

if (!$name ) die("Hacking attempt!");

if( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $name ) ) die("Not allowed user name!");

$row = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE name = '{$name}'" );

@header( "Content-type: text/html; charset=" . $config['charset'] );

if (!$row['user_id']) {

echo "<div id='dleprofilepopup' title='{$lang['all_err_1']}' style='display:none'><br />{$lang['news_err_26']}</div>";

} else {

$tpl->load_template( 'profile_popup.tpl' );

if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false ) {

    $xfields = xfieldsload( true );
    $xfieldsdata = xfieldsdataload( $row['xfields'] );
                
    foreach ( $xfields as $value ) {
        $preg_safe_name = preg_quote( $value[0], "'" );
                    
        if( $value[5] != 1 or $member_id['user_group'] == 1 or ($is_logged and $row['is_register'] and $member_id['name'] == $row['name']) ) {

            if( empty( $xfieldsdata[$value[0]] ) ) {

                $tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
                $tpl->copy_template = str_replace( "[xfnotgiven_{$preg_safe_name}]", "", $tpl->copy_template );
                $tpl->copy_template = str_replace( "[/xfnotgiven_{$preg_safe_name}]", "", $tpl->copy_template );

            } else {
                $tpl->copy_template = preg_replace( "'\\[xfnotgiven_{$preg_safe_name}\\](.*?)\\[/xfnotgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
                $tpl->copy_template = str_replace( "[xfgiven_{$preg_safe_name}]", "", $tpl->copy_template );
                $tpl->copy_template = str_replace( "[/xfgiven_{$preg_safe_name}]", "", $tpl->copy_template );
            }

            $tpl->copy_template = preg_replace( "'\\[xfvalue_{$preg_safe_name}\\]'i", stripslashes( $xfieldsdata[$value[0]] ), $tpl->copy_template );

        } else {

            $tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
            $tpl->copy_template = preg_replace( "'\\[xfvalue_{$preg_safe_name}\\]'i", "", $tpl->copy_template );
            $tpl->copy_template = preg_replace( "'\\[xfnotgiven_{$preg_safe_name}\\](.*?)\\[/xfnotgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );

        }
    }
}

if ( count(explode("@", $row['foto'])) == 2 ) {

    $tpl->set( '{foto}', 'http://www.gravatar.com/avatar/' . md5(trim($row['foto'])) . '?s=' . intval($user_group[$row['user_group']]['max_foto']) );    

} else {
    
    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}/dleimages/noavatar.png" );

}

if( $row['banned'] == 'yes' ) $user_group[$row['user_group']]['group_name'] = $lang['user_ban'];

$tpl->set( '{status}',  $user_group[$row['user_group']]['group_prefix'].$user_group[$row['user_group']]['group_name'].$user_group[$row['user_group']]['group_suffix'] );
$tpl->set( '{registration}', langdate( "j F Y H:i", $row['reg_date'] ) );
$tpl->set( '{lastdate}', langdate( "j F Y H:i", $row['lastdate'] ) );

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", "" );
}

if( $row['fullname'] ) {
    $tpl->set( '[fullname]', "" );
    $tpl->set( '[/fullname]', "" );
    $tpl->set( '{fullname}', stripslashes( $row['fullname'] ) );
    $tpl->set_block( "'\\[not-fullname\\](.*?)\\[/not-fullname\\]'si", "" );
} else {
    $tpl->set_block( "'\\[fullname\\](.*?)\\[/fullname\\]'si", "" );
    $tpl->set( '{fullname}', "" );
    $tpl->set( '[not-fullname]', "" );
    $tpl->set( '[/not-fullname]', "" );
}

if( $row['icq'] ) {
    $tpl->set( '[icq]', "" );
    $tpl->set( '[/icq]', "" );
    $tpl->set( '{icq}', stripslashes( $row['icq'] ) );
    $tpl->set_block( "'\\[not-icq\\](.*?)\\[/not-icq\\]'si", "" );
} else {
    $tpl->set_block( "'\\[icq\\](.*?)\\[/icq\\]'si", "" );
    $tpl->set( '{icq}', "" );
    $tpl->set( '[not-icq]', "" );
    $tpl->set( '[/not-icq]', "" );
}

if( $row['land'] ) {
    $tpl->set( '[land]', "" );
    $tpl->set( '[/land]', "" );
    $tpl->set( '{land}', stripslashes( $row['land'] ) );
    $tpl->set_block( "'\\[not-land\\](.*?)\\[/not-land\\]'si", "" );
} else {
    $tpl->set_block( "'\\[land\\](.*?)\\[/land\\]'si", "" );
    $tpl->set( '{land}', "" );
    $tpl->set( '[not-land]', "" );
    $tpl->set( '[/not-land]', "" );
}

if( $row['info'] ) {
    $tpl->set( '[info]', "" );
    $tpl->set( '[/info]', "" );
    $tpl->set( '{info}', stripslashes( $row['info'] ) );
    $tpl->set_block( "'\\[not-info\\](.*?)\\[/not-info\\]'si", "" );    
} else {
    $tpl->set_block( "'\\[info\\](.*?)\\[/info\\]'si", "" );
    $tpl->set( '{info}', "" );
    $tpl->set( '[not-info]', "" );
    $tpl->set( '[/not-info]', "" );
}

$tpl->set( '{rate}', userrating( $row['user_id'] ) );

if( $row['signature'] and $user_group[$row['user_group']]['allow_signature'] ) {
        
    $tpl->set_block( "'\\[signature\\](.*?)\\[/signature\\]'si", "\\1" );
    $tpl->set( '{signature}', stripslashes( $row['signature'] ) );
    
} else {
        
    $tpl->set_block( "'\\[signature\\](.*?)\\[/signature\\]'si", "" );
    
}

if( $user_group[$row['user_group']]['icon'] ) $tpl->set( '{group-icon}', "<img src=\"" . $user_group[$row['user_group']]['icon'] . "\" border=\"0\" />" );
else $tpl->set( '{group-icon}', "" );

if( $row['news_num'] ) {
        
    if( $config['allow_alt_url'] ) {
            
        $tpl->set( '{news}', "<a href=\"" . $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/news/" . "\">" . $lang['all_user_news'] . "</a>" );
        $tpl->set( '[rss]', "<a href=\"" . $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/rss.xml" . "\" title=\"" . $lang['rss_user'] . "\">" );
        $tpl->set( '[/rss]', "</a>" );        

    } else {
            
        $tpl->set( '{news}', "<a href=\"" . $PHP_SELF . "?subaction=allnews&amp;user=" . urlencode( $row['name'] ) . "\">" . $lang['all_user_news'] . "</a>" );
        $tpl->set( '[rss]', "<a href=\"engine/rss.php?subaction=allnews&amp;user=" . urlencode( $row['name'] ) . "\" title=\"" . $lang['rss_user'] . "\">" );
        $tpl->set( '[/rss]', "</a>" );

    }

    $tpl->set( '{news-num}', $row['news_num'] );
    $tpl->set( '[news-num]', "" );
    $tpl->set( '[/news-num]', "" );
    $tpl->set_block( "'\\[not-news-num\\](.*?)\\[/not-news-num\\]'si", "" );

} else {
        
    $tpl->set( '{news}', $lang['all_user_news'] );
    $tpl->set_block( "'\\[rss\\](.*?)\\[/rss\\]'si", "" );
    $tpl->set( '{news-num}', 0 );
    $tpl->set_block( "'\\[news-num\\](.*?)\\[/news-num\\]'si", "" );
    $tpl->set( '[not-news-num]', "" );
    $tpl->set( '[/not-news-num]', "" );
}

if( $row['comm_num'] ) {
        
    $tpl->set( '{comments}', "<a href=\"$PHP_SELF?do=lastcomments&amp;userid=" . $row['user_id'] . "\">" . $lang['last_comm'] . "</a>" );

    $tpl->set( '[comm-num]', "" );
    $tpl->set( '[/comm-num]', "" );
    $tpl->set( '{comm-num}', $row['comm_num'] );
    $tpl->set_block( "'\\[not-comm-num\\](.*?)\\[/not-comm-num\\]'si", "" );
    
} else {
        
    $tpl->set( '{comments}', $lang['last_comm'] );
    $tpl->set( '{comm-num}', 0 );
    $tpl->set_block( "'\\[comm-num\\](.*?)\\[/comm-num\\]'si", "" );
    $tpl->set( '[not-comm-num]', "" );
    $tpl->set( '[/not-comm-num]', "" );    
}

$tpl->compile( 'content' );

$tpl->result['content'] = str_replace( '{THEME}', $config['http_home_url'] . 'templates/' . $_REQUEST['skin'], $tpl->result['content'] );

echo "<div id='dleprofilepopup' title='{$lang['p_user']} {$row['name']}' style='display:none'>{$tpl->result['content']}</div>";

}
?>

5

Re: Отображение шаблона

Почти в правильном, но все же стоит поискать тут - /engine/modules/profile.php