X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Добавление новой функции в Новости, вызов и передача параметра, Расширение функционала Новостей - скачивание Новости в файле Word
egysya
сообщение 2009-08-25, 23:32
Сообщение #1
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 180
Регистрация: 2009-05-21
Из: Ростов-на-Дону

Репутация:   нет  
Всего: 11


Итак, начнем по порядку.
В отсутствии в Новостях Версии для печати, да и скорее от необходимости скачивания Новости в формате 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() я пока не знаю. Надеюсь на помощь сообщества Элеанор. Мне кажется скачивание новости полезная вещь. Жду предложений.
Одобрили: Atix
Перейти в начало страницы
+Цитировать сообщение
egysya
сообщение 2009-08-25, 23:47
Сообщение #2
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 180
Регистрация: 2009-05-21
Из: Ростов-на-Дону

Репутация:   нет  
Всего: 11


Вот что у меня получается. Прикрепленные файлы  rtf.gif ( 96.2 килобайт ) Скачиваний: 31

Прикрепленные файлы
Прикрепленные файлы  rtf.gif ( 96.2 килобайт ) Скачиваний: 31
 
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2009-08-26, 0:28
Сообщение #3
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


egysya, нужно имея файла в латинице писать - тогда браузеры будут его воспринимать правильно.
Перейти в начало страницы
+Цитировать сообщение
egysya
сообщение 2009-08-26, 0:31
Сообщение #4
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 180
Регистрация: 2009-05-21
Из: Ростов-на-Дону

Репутация:   нет  
Всего: 11


Цитата (Alexander @ 26.8.2009, 1:28)
egysya, нужно имея файла в латинице писать - тогда браузеры будут его воспринимать правильно.


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


Александр, есть какие-либо предложения по теме?

Сообщение отредактировал egysya - 2009-08-26, 0:32
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2009-08-26, 0:51
Сообщение #5
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


egysya, я так понимаю, мне нужно все это исправить и привести к надлежащему виду? Так что-ли? :)
Перейти в начало страницы
+Цитировать сообщение
egysya
сообщение 2009-08-26, 0:56
Сообщение #6
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 180
Регистрация: 2009-05-21
Из: Ростов-на-Дону

Репутация:   нет  
Всего: 11


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


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


Просто действительно нужная функция в системе.
Перейти в начало страницы
+Цитировать сообщение
egysya
сообщение 2009-09-05, 17:06
Сообщение #7
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 180
Регистрация: 2009-05-21
Из: Ростов-на-Дону

Репутация:   нет  
Всего: 11


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

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

Тема сопровождения: [topic=974]Перейти в тему[/topic]

Сообщение отредактировал egysya - 2009-09-05, 17:07
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0393 сек.    11 запросов    GZIP включен    Сейчас: 2020-02-25, 11:54