CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Добавление новой функции в Новости, вызов и передача параметра
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Использование системы
egysya
Итак, начнем по порядку.
В отсутствии в Новостях Версии для печати, да и скорее от необходимости скачивания Новости в формате Word предлагаю сделать данную функцию в модуле новостей.


Для этих целей была найдена бесплатная библиотека PHPRTF (http://www.phprtf.com/) .

При ее использовании вывод содержимого новости становится простым:

$rtf = new Rtf();
$sect = &$rtf->addSection();
$sect->writeText('Здесь текст новости', new Font(12));
$rtf->sendRtf('Название файла');



Теперь дело за малым настроить ее в работе с системой)

Скачиваем архив PHPRTF, кидаем папку rtf из архива в modules/news/ . Подключаем библиотеку. Создаем в файле news/user/index.php новую функцию CreateRtf():

function CreateRtf( по идее тут должны передаваться параметры от выбранной новости для печати)
{global $Mainclass;
# Подключение rtf файла
require_once($Mainclass->root_path.$Mainclass->GetModVal('path').'/rtf/rtf.php');
# Завершение подключения rtf
$rtf = new Rtf();
$sect = &$rtf->addSection();
$sect->writeText('здесь текст новости', new Font(12), new ParFormat('center'));
$rtf->sendRtf('название файла');
return $rtf;

}



Но вот как эту функцию правильно задействовать,  я не знаю. Как передать ей переменные от выбранной новости? 

Далее находим в news/user/index.php  function NewsDoIt($task) строка 117 и ниже после 

case 'tags':
			Tags();
 	break;
добавляем
		case 'rtf':
			CreateRtf();
 	break;


Далее в функции вывода полной или краткой новости (кому как нравится, у меня в краткой) добавляем в конец переменных шаблона новую переменную rtffile с конструированием ссылки:

$content.=$Mainclass->Template->BaseTable($ntitle,$content,'',array(
																							'id'		=>$arr['id'],
																							'display'	=>'none',
																							'rating'	=>($general or !$Mainclass->vars['m_news_rating']) ? '' : '{rating_'.$arr['id'].'}',
																							&#39;whopost&#39;	=>$whop===false ? &#39;&#39; : $Mainclass->lang[&#39;news&#39;][&#39;published_by&#39;].&#39;<a href="&#39;.$whopost.&#39;">&#39;.$arr[&#39;author&#39;].&#39;</a>&#39;,
																							&#39;more&#39;		=>$more_info,
																							&#39;comments&#39;	=>$arr[&#39;allow_comm&#39;]==0 ? &#39;&#39; : &#39;<a href="&#39;.$url.&#39;#comments">&#39;.$Mainclass->lang[&#39;news&#39;][&#39;comments&#39;].$arr[&#39;comments&#39;].&#39;</a>&#39;,
																							&#39;category&#39;	=>$Mainclass->lang[&#39;news&#39;][&#39;category&#39;].(($c=$Mainclass->Categories_l->GetDump($arr[&#39;main_cat&#39;])) ? &#39;<a href="&#39;.$Mainclass->Categories_l->CategoryUrl($arr[&#39;main_cat&#39;]).&#39;" title="&#39;.strip_tags($c[&#39;description&#39;]).&#39;">&#39;.$c[&#39;title&#39;].&#39;</a>&#39; : &#39;<i>&#39;.$Mainclass->lang[&#39;main&#39;][&#39;no&#39;].&#39;</i>&#39;),
																							&#39;date&#39;		=>$Mainclass->lang[&#39;news&#39;][&#39;published&#39;].Strings::HumanDate($arr[&#39;date&#39;]),
																							&#39;reads&#39;		=>$reads,
&#39;moder&#39;		=>$general ? &#39;&#39; : DeleteEdit(array(&#39;DeleteNews&#39;=>$arr[&#39;id&#39;]),array(&#39;EditNews&#39;=>$arr[&#39;id&#39;])),


																							&#39;rtffile&#39;   =>&#39;<a href="&#39;.$Mainclass->Url->ConstructUrl(array(array(&#39;do&#39;=>&#39;Rtf&#39;))).&#39;">Скачать RTF</a>&#39;,
																						),
																						$general ? &#39;main&#39; : &#39;&#39;);



И в шаблоне Base-news.php (для краткой новости) вставляем новую переменную rtffile

Все. Как бы в таком варианте работает формирование пустого файла rtf и скачивание его. Но как доработать механизм передачи текста новости, названия новости, возможно картинок и т.п. в функцию function CreateRtf() я пока не знаю. Надеюсь на помощь сообщества Элеанор. Мне кажется скачивание новости полезная вещь. Жду предложений.
egysya
Вот что у меня получается.[attachment=334:rtf.gif]
Alexander
egysya, нужно имея файла в латинице писать - тогда браузеры будут его воспринимать правильно.
egysya
Цитата (Alexander @ 26.8.2009, 1:28)
egysya, нужно имея файла в латинице писать - тогда браузеры будут его воспринимать правильно.


:D  да это ж для примера)))) там зашифровано "название файла" ))) вот и абракадабра.


Александр, есть какие-либо предложения по теме?
Alexander
egysya, я так понимаю, мне нужно все это исправить и привести к надлежащему виду? Так что-ли? :)
egysya
Цитата (Alexander @ 26.8.2009, 1:51)
egysya, я так понимаю, мне нужно все это исправить и привести к надлежащему виду? Так что-ли? :)


Вот за эту помощь я бы готов символическую плату внести в развитие проекта. :) ;)


Просто действительно нужная функция в системе.
egysya
Тему можно закрывать. Дополнение сделано, перенесено в Файловый архив.

Ссылка на файл: Скачать Файл

Тема сопровождения: [topic=974]Перейти в тему[/topic]
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.