Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Пишу модуль, Подскажите с выводом в полной новости и профиле.

Пишу модуль, Подскажите с выводом в полной новости и профиле.


     07.04.2014    Общие вопросы по PHP    1355

вопрос
Доброго времени суток!
Уважаемые PRO и все кто пишет модули для dle.

Изучаю php уже как месяц, пишу свои модули. ну или стараюсь так сказать =)
И так, что я изучил за это время:
Как написать простой модуль, и вывести его на статической странице ( /index.php?do=mymod или mymod.html) кому как удобнее.
Так же изучил класс для работы с БД
Принципы написания и работы админки (админку тоже написал)

После всего проделанного хочу продвинуться дальше. И как всегда не обошлось без проблем. У меня возникла пара-тройка вопросов касательно dle. И вот хотелось бы обратиться к Вам за помощью, а именно:

Вывод в полной новости (тегами не инклудом)
Вывод в профиле (тегами не инклудом)

Буду очень благодарен тем кто мне поможет!
Заранее спасибо Вам =)

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


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

Kolya groza morey
30

301 | 95

Kolya groza morey - 7 апреля 2014 12:46 - Юзер

Вывод в полной новости (тегами не инклудом)
Вывод в профиле (тегами не инклудом)

Лучше иклудом, если тегами нужно править файлі движка, а это вызовет лишние проблемы при обновлении.

Aleksey-Nyaka
30

234 | 32

Aleksey-Nyaka - 7 апреля 2014 12:48 - Юзер

Знаю что инклудом проще. Но хотелось бы тегами. потому что для модулей муду делать отдельные шаблоны оформления)

dj-avtosh
39

1479 | 390

dj-avtosh - 7 апреля 2014 13:11 - шашлычник

А как понять тегами не инклудом?

skype: elhan.isaev

Aleksey-Nyaka
30

234 | 32

Aleksey-Nyaka - 7 апреля 2014 13:15 - Юзер

Инклудом: {include file="engine/modules/characters/characters.php"}

Тегом: {characters}

dj-avtosh
39

1479 | 390

dj-avtosh - 7 апреля 2014 13:30 - шашлычник

Это совсем разные сущности.

skype: elhan.isaev

Aleksey-Nyaka
30

234 | 32

Aleksey-Nyaka - 7 апреля 2014 13:32 - Юзер

Цитата: dj-avtosh
Это совсем разные сущности.

Знаю, вот и прошу помощи в данном вопросе.

rashpil
33

232 | 182

rashpil - 7 апреля 2014 14:52 - Эксперт

Тогда не слушай эту ню про обновления и мол движок править придётся, на данном этапе позволительно опустить заботу об этом. Если хочешь вывести контент на отдельной страничке, то в engine.php подключай свой этот модуль. Вся информация со страницы (центральной колонки) выгружается в тег {content}. И структурируешь код соответствующим образом, вызывая шаблон: $tpl->load_template('my_module.tpl'); (Обычно ставится перед перед формированием контента, но не принципиально). Заполняешь теги (теги в шаблоне) информацией из модуля и в конце запускаешь компиляцию ($tpl->compile('content');)

Aleksey-Nyaka
30

234 | 32

Aleksey-Nyaka - 7 апреля 2014 15:05 - Юзер

rashpil,
Спасибо!

По поводу компиляции.
/* Подгружаем шаблон */
$tpl->load_template('character.tpl');
$tpl->set('{txt}', $txt);
$tpl->set('{detail_txt}', $txt_detail);
$tpl->set('{version}', $version);
$tpl->compile('content');
$tpl->clear();

Так да?

Опишу процесс как я делал:

Подключил к /engine/engine.php

после
switch ( $do ) {

вставил

case "character" :
include ENGINE_DIR . '/modules/character/character.php';
break;

Всё работает.

Для вывода в полной новости делал так.

в /engine/modules/show.full.php

Перед строчкой
$tpl->compile( 'content' );
вставил

require_once ENGINE_DIR.'/modules/character/character.php';
$tpl->set ( '{character}', $tpl->result['character'] );

D0Gmatist
225

794 | 281

D0Gmatist - 7 апреля 2014 21:28 - Местный

можешь даже с отдельным шаблоном
    $tpl2 = new dle_template();
    $tpl2->dir = TEMPLATE_DIR;
    $tpl2->load_template( 'character.tpl' );

    $tpl2->set('{detail_txt}', $txt_detail);
    $tpl2->set('{version}', $version);

    $tpl2->compile( 'content' );
    $character_buffer = $tpl2->result['content'];
    unset($tpl2);


и соответственно
    require_once ENGINE_DIR.'/modules/character/character.php';
    $tpl->set ( '{character}', $character_buffer );

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

Aleksey-Nyaka
30

234 | 32

Aleksey-Nyaka - 7 апреля 2014 22:47 - Юзер

D0Gmatist,
Больщущее Вам спасибо за данный ответ!
Как я понял в character.tpl эти два тега {version} и {detail_txt} буду т выводить результат работы переменных $txt_detail и $version.

а вот эта часть вписывается допустим в show.full.php
require_once ENGINE_DIR.'/modules/character/character.php';
    $tpl->set ( '{character}', $character_buffer );

и если в полной новости вписать тег {character} то будет выводиться результат работы модуля со своим шаблоном.
Правильно я понял?

D0Gmatist
225

794 | 281

D0Gmatist - 7 апреля 2014 22:58 - Местный

Да всё првильно

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

Aleksey-Nyaka
30

234 | 32

Aleksey-Nyaka - 7 апреля 2014 23:00 - Юзер

D0Gmatist,
Еще раз спасибо большое!
Если будут вопросы можно будет к вам обратиться?

D0Gmatist
225

794 | 281

D0Gmatist - 7 апреля 2014 23:01 - Местный

Да пишите

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

Aleksey-Nyaka
30

234 | 32

Aleksey-Nyaka - 8 апреля 2014 02:40 - Юзер

D0Gmatist,
Ну вот и вопрос к Вам:
В полной новости у меня будет кнопка добавить персонажей
При добавлении заполняю нужные мне данные. Которые записываются не в стандартную таблицу дле а в отдельную таблицу.
Как организовать привязку добавленных персонажей к той новости в которой они были добавлены? Знаю что нужно в таблице dle_posts добавить новый столбец characters к которому уже привязывать id персонажей из таблицы персонажей. Буду благодарен если подскажете на каком нибудь примере.

rashpil
33

232 | 182

rashpil - 8 апреля 2014 09:49 - Эксперт

Можешь мой старый модуль актёров в паблике поискать, там актёры упоменаются в новостях, а инфа по ним в отдельной страничке

D0Gmatist
225

794 | 281

D0Gmatist - 8 апреля 2014 11:02 - Местный

    $db->query( "INSERT INTO " . PREFIX . "_post (...) values (...)" ); // Новая запись в БД
    $row = $db->insert_id(); // возвращаем AUTOINCRIMENT последней записи ... то есть ID
    $idPost = $row;
    $db->query( "INSERT INTO " . PREFIX . "_characters (post_id, ...) VALUES ('{$idPost}', ...)" ); // заносим ид поста в другую таблице чем получаем привязку

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

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

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