Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Модули Вопрос по ходу написания модуля

Вопрос по ходу написания модуля


     17.05.2014    Модули    933

вопрос
В общем пробую себя в написании модулей, идея такова : добавил в таблицу _posts новое поле artists, нужно по значению этого поля сделать выборку. На данном этапе я сам запрос сделал, подключил шаблон (shortstory) и тут наткнулся на проблему: как верно подключить show.short.php в модуль что бы не писать опять весь код для вывода тегов в шаблоне. Вот что я накодил (наговнокодил):
<?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, -31 ) );
define( 'ENGINE_DIR', ROOT_DIR . '/engine' );

include ENGINE_DIR.'/modules/show.short.php';

$art = ( isset( $_GET['art'] ) ) ? $_GET['art'] : FALSE;
$art = trim( urldecode( $art ) );

$db->query( "SELECT * FROM " . PREFIX . "_post WHERE category regexp '[[:<:]](" . $art . ")[[:>:]]'" );
$tpl->load_template( 'shortstory.tpl' );
    while ( $row = $db->get_row() )
    {

        $tpl->set( '{title}', $row['title'] );
       print_r ($full_link);
            $tpl->set( '[full-link]', "<a href=\"" . $full_link . "\">" );
            
            $tpl->set( '[/full-link]', "</a>" );
        $list = $tpl->result['list'];

$tpl->set( '{list}', $list );

$tpl->compile( 'content' );
    }
?>

P.S: Не обращайте внимание что в примере выборка делается с поля category, потом поправлю)

Ответа пока нет


Комментарии пользователей (5)

yackers
34

51 | 49

yackers - 17 мая 2014 14:04 - Юзер

Взгляни как подключается show.short.php в файле engine/modules/favorites.php и сделай по аналогии.

shadow6630
6

131 | 55

shadow6630 - 17 мая 2014 14:53 - Юзер

Большое спасибо за наводку, ща посмотрю!

shadow6630
6

131 | 55

shadow6630 - 17 мая 2014 16:32 - Юзер

Пробовал так
<?php

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

@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, -31 ) );
define( 'ENGINE_DIR', ROOT_DIR . '/engine' );

$art = ( isset( $_GET['art'] ) ) ? $_GET['art'] : FALSE;
$art = trim( urldecode( $art ) );

$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE category regexp '[[:<:]](" . $art . ")[[:>:]]' ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$sql_count = "SELECT * FROM " . PREFIX . "_post WHERE category regexp '[[:<:]](" . $art . ")[[:>:]]'";

require (ENGINE_DIR . '/modules/show.short.php');

$tpl->result['content'];
?>
но ничего не выводит, $sql_select и $sql_count я так понимаю передают запросы в show.short.php, но почему-то он не выполняется.

lutskboy
3

550 | 103

lutskboy - 17 мая 2014 17:57 - Юзер

вроде там еще это нужно
$allow_active_news = TRUE;

shadow6630
6

131 | 55

shadow6630 - 17 мая 2014 18:09 - Юзер

Цитата: lutskboy
вроде там еще это нужно
$allow_active_news = TRUE;

Точно, а я не придал значения этой переменной

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

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