Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2010-11-09 20:58:22

nnq11
Участник
Зарегистрирован: 2010-03-13
Сообщений: 51
Рейтинг :   

создание плагина, вывод данных в шаблон

Доброго времени суток. Пытаюсь создать плагин вывода информации о торренте (кол-во сидов, личей, размер, время и т.д.). Что делал, по порядку:

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)

Не в сети

#2 2010-11-09 21:25:07

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

Re: создание плагина, вывод данных в шаблон

nnq11, оффтоп: лучше назови как нибудь с приставкой info или как нибудь более приближенно к действию производимому им, а то может возникнуть впечатление что это плагин торрент трекера, а таковой уже имеется.


I NGeneration CMS

Не в сети

#3 2010-11-09 22:05:45

Amarelius
Модератор
Откуда Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Сайт

Re: создание плагина, вывод данных в шаблон

nnq11, как минимум раскоментируй эту строку
;Acts: news_full
Она указывает когда активировать твой плагин


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Не в сети

#4 2010-11-09 22:09:58

nnq11
Участник
Зарегистрирован: 2010-03-13
Сообщений: 51
Рейтинг :   

Re: создание плагина, вывод данных в шаблон

Amarelius,  делал, не помогло.

Не в сети

#5 2010-11-09 22:27:44

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: создание плагина, вывод данных в шаблон

1. После раскомментирования надо сделать Вкл/Выкл плагина для пререгистрации actsов

2. $template заполняет только в main.tpl, соостветственно бесполезен в news.full.tpl wiki

3. Ну и $template (если бы он был нужен) надо было в global объявить, а то ты заполняешь локальный массив

Изменено Wolverine (2010-11-09 22:30:08)

Не в сети

#6 2010-11-09 23:18:52

nnq11
Участник
Зарегистрирован: 2010-03-13
Сообщений: 51
Рейтинг :   

Re: создание плагина, вывод данных в шаблон

проблему решил. оставляю решение для будущих поколений:

$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)

Не в сети

Подвал раздела

Работает на FluxBB