Вы не зашли.
Страницы 1
Доброго времени суток. Пытаюсь создать плагин вывода информации о торренте (кол-во сидов, личей, размер, время и т.д.). Что делал, по порядку:
1. создал в каталоге /engine/plugins/ каталог torrent
2. отредактировал файл version:
;
; Version description file for plugin @@ Next Generation CMS
;
ID: torrent
Name: xbt tracker decode
Version: 0.1
;Acts: news_full
File: torrent.php
;Config: config.php
Type: plugin
Description: Декодирует информацию о торренте
Author: nnq
Preinstall: no
3. код самого плагина (неполный, чтобы не замусоривать форум, все ключевые аспекты сохранены)
<?
if (!defined('NGCMS')) die ('Galaxy in danger');
class PluginNewsFilter extends NewsFilter
{
function showNews($newsID, $SQLnews, &$tvars, $mode) //был show_attach
{
global $tpl, $config, $mysql, $lang;
$tpath = locatePluginTemplates(array('torrent'), 'torrent');
$general_torrent_query="
SELECT
*
FROM fb_files
LEFT JOIN xbt_files ON (fb_files.info_hash = xbt_files.info_hash)
WHERE fb_files.linked_id = '$newsID'
";
$result=mysql_query($general_torrent_query);
$row=mysql_fetch_array($result);
//проверяем, выбрался ли id файла.
if ($row['id'])
{
//id файла (для передачи в download)
$fileid=$row['id'];
//размер торрента
$torrent_size_in_bytes = filesize ($config['attach_dir'].$row['folder']."/".$row['name'] );
$torrent_size = formatsize($torrent_size_in_bytes);
(и прочие)
if($row['decoded_hash'])
{
$decoded_hash = $row['decoded_hash'];
$binary_hash = $row['hash'];
//$escaped_binary_hash = mysql_real_escape_string($binary_hash);
if ($row['torrent_comment']=='')
$comment = 'нет';
else
$comment = $row['torrent_comment'];
(и прочие)
}
$tpl -> template('torrent', $tpath['torrent']);
$tpl -> vars('torrent', array ('vars' => array (
'$total_size' => $total_size,
'$torrent_size_in_bytes' => $torrent_size_in_bytes
$comment' => $comment
)));
$template['vars']['torrent'] = $tpl -> show('torrent');
////////////////
//делал и так:
$tvars['vars']['total_size'] = $total_size;
$tvars['vars']['torrent_size_in_bytes'] = $torrent_size_in_bytes;
$tvars['vars']['creator'] = $creator;
$tpl -> vars('torrent', $tvars);
$tpl -> show('torrent');
return $result;
} //конец if($row['id'])
} //конец showNews (бывшая show_attach)
} //конец класса PluginNewsFilter
register_filter('news', 'torrent', new PluginNewsFilter)
?>
4. создал файл plugins/torrent/tpl/torrent.tpl
код пока предварительный, но что-то выводить(по идее) должен:
размер {total_size}
размер в торренте {torrent_size_in_bytes}
генератор торрента {creator}
5. прописывал в news.full.tpl своего шаблона {torrent} и {plugin_torrent}
В итоге:
в полной новости отображается только {torrent} или {plugin_torrent} (то, что прописывал в 5м пункте), но ничего не выводится. Код рабочий, проверял, вопрос только в шаблонизаторе: где я ошибся/недосмотрел/недопонял? Мануалы/вики как мог - курил.
Изменено nnq11 (2010-11-09 23:20:25)
Не в сети
nnq11, оффтоп: лучше назови как нибудь с приставкой info или как нибудь более приближенно к действию производимому им, а то может возникнуть впечатление что это плагин торрент трекера, а таковой уже имеется.
I ♥ NGeneration CMS
Не в сети
nnq11, как минимум раскоментируй эту строку
;Acts: news_full
Она указывает когда активировать твой плагин
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
1. После раскомментирования надо сделать Вкл/Выкл плагина для пререгистрации actsов
2. $template заполняет только в main.tpl, соостветственно бесполезен в news.full.tpl wiki
3. Ну и $template (если бы он был нужен) надо было в global объявить, а то ты заполняешь локальный массив
Изменено Wolverine (2010-11-09 22:30:08)
Не в сети
проблему решил. оставляю решение для будущих поколений:
$tpath = locatePluginTemplates(array('torrent'), 'torrent');
$tdata = array();
$tdata['vars']['total_size'] = $total_size;
$tdata['vars']['torrent_size_in_bytes'] = $torrent_size_in_bytes;
$tdata['vars']['creator'] = $creator;
$tpl -> template('torrent', $tpath['torrent']);
$tpl -> vars('torrent', $tdata);
$tvars['vars']['plugin_torrent'] = $tpl->show('torrent');
Wolverine,
про выключение/включение плагина знал. насчет $template - спасибо!
Изменено nnq11 (2010-11-09 23:19:56)
Не в сети
Страницы 1