Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как подключить модуль в содержание статической страницы?

Как подключить модуль в содержание статической страницы?


     02.08.2015    Общие вопросы, Общие вопросы по PHP, Хаки, Ламерские вопросы    3690

вопрос
Подскажите ув. вебмастера, есть у меня модуль, который в main.tpl подключается кодом
{include file="engine/modules/модуль/index.php"}

Я создал статическую страницу, в содержании отметил что содержание это Исходный текст HTML без фильтрации и изменений. Подскажите как мне в содержание этой страницы подключить этот модуль.
Пробую таким кодом, но увы не работает

<?PHP
require_once ENGINE_DIR . '/modules/модуль/index.php';
?>

Ответил: Sander


Читайте мануалы в архиве с модулем.
Там написано как сделать вывод чата на отдельной статической странице.
Так же там написано почему возникает mysql ошибка и как этого избежать.
Чтобы исправить аватарки - скачайте модуль заново и замените файлы.

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

ravchik
Юзер

ravchik - 2 августа 2015 16:16 -

попробуйте код
[static=name]{include file="engine/modules/модуль/index.php"}[/static]
вставить в шаблон static.tpl

DomiTori
Юзер

DomiTori - 2 августа 2015 16:31 -

хм, получаю такую ошибку
Error Number: 1064
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

ravchik
Юзер

ravchik - 2 августа 2015 16:34 -

хм, синтаксическая ошибка в запросе.
в строке подключения модуля никаких запросов нет, видимо ошибка в самом модуле.

DomiTori
Юзер

DomiTori - 2 августа 2015 16:38 -

странно то, что модуль от профессионала и подключая в мэйне кодом
{include file="engine/modules/модуль/index.php"}

всё работает гуд, без ошибок. часть кода

$ava = array();
    $foto_class = "";
    if($lc_config['allow_ava']){
        $ava[0] = ", u.foto";
        $ava[1] = " LEFT JOIN ".USERPREFIX."_users u ON c.name=u.name";
        $foto_class = " lc_chat_li_foto";
    }
    $where = "WHERE page_id='{$page_id}'";
    if(!$lc_config['allow_page_id'] OR $page_id=='all') $where = "";
    $rows = $db->super_query("SELECT c.* {$ava[0]} FROM light_chat c {$ava[1]} {$where} ORDER by date DESC LIMIT {$cstart},{$lc_config['limit']}",true);
    $list = "";


ссылается именно на строчку
$rows = $db->super_query("SELECT c.* {$ava[0]} FROM light_chat c {$ava[1]} {$where} ORDER by date DESC LIMIT {$cstart},{$lc_config['limit']}",true);

ravchik
Юзер

ravchik - 2 августа 2015 16:40 -

попробуйте тогда подключить код
[static=name]{include file="engine/modules/модуль/index.php"}[/static]
в main.tpl под тегом {content}

ScreN
Юзер

ScreN - 2 августа 2015 16:54 -

Ну и аватарка. Я чуть монитору не втащил.

DomiTori
Юзер

DomiTori - 2 августа 2015 16:44 -

таже самая ошибка. странно это. попробую удалить ту часть кода
перестал работать. вобщем да, эта часть кода имеет ошибку. она отвечает за вывод аватарки пользователя. проверив заметил что загруженная и сохраненная аватарка не работает, при просмотре куда ссылается картинка вижу
http://сайт.com/uploads/fotos/http:/сайт.com/uploads/fotos/foto_1.gif

подскажите тогда как исправить это.
вот участок выводящий аву
if($foto_class){
            if($row['foto']) $foto = "/uploads/fotos/" . $row['foto'];
            else $foto = "/templates/".$config['skin']."/dleimages/noavatar.png";
            $foto = <<<HTML
    <a {$go_page} {$user_link} class="lc_chat_li_foto_block" title="Открыть профиль"><img src="{$foto}" alt="" /></a>

LazyDev
PHP-developer

LazyDev - 2 августа 2015 16:55 -

DomiTori, потому что на DLE >= 10.5 изменился тип хранения аватарки в ячейке, теперь там полная ссылка идет

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

DomiTori
Юзер

DomiTori - 2 августа 2015 16:58 -

Gameer,
уже посмотрел, как изменить эту строчку, подскажи пожалуйста
if($row['foto']) $foto = "/uploads/fotos/" . $row['foto'];

так не работает
if($row['foto']) $foto = "" . $row['foto'];

и так тоже
if($row['foto']) $foto = . $row['foto'];

LazyDev
PHP-developer

LazyDev - 2 августа 2015 17:00 -

DomiTori,
if($row['foto']) $foto = $row['foto'];
так не ?

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

DomiTori
Юзер

DomiTori - 2 августа 2015 17:07 -

Gameer,
спасибо, так работает, только теперь у пользователя который зарегистрировался с вконтакте не отображается ава. до этого у него отображалась, а у обычного пользователя нет
Смотрю на этот код и думаю как его подставить сюда
if( $row['foto'] ) {
            
            if (strpos($row['foto'], "//") === 0) $avatar = "http:".$row['foto']; else $avatar = $row['foto'];

            $avatar = @parse_url ( $avatar );

            if( $avatar['host'] ) {
                
                $tpl->set( '{foto}', $row['foto'] );
                
            } else $tpl->set( '{foto}', $config['http_home_url'] . "uploads/fotos/" . $row['foto'] );

FastFud
Юзер

FastFud - 2 августа 2015 17:46 -

А разве
$where = "WHERE page_id='{$page_id}'"; и 
ORDER by date
не должно быт так
WHERE c.page_id='{$page_id}'"; и 
ORDER by c.date
?

Sander
PHP-developer

Sander - 2 августа 2015 18:39 -

Если бы в таблице dle_users были колонки page_id и date, то да, нужно было бы c.*

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

Telegram: @sandev
Skype: Sander8804

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

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

наверх