Форум русской поддержки Joomla!® CMS
05.12.2016, 16:36:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

выгрузка данных в XML

 (Прочитано 387 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ninth
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 59


[ 9 ]


« : 05.02.2016, 12:37:11 »

Доброго времени суток.

Есть простенький компонент (галерея картинок), в общем ничего сложного.
Хотелось бы в самом компоненте добавить кнопку "Экспорт в XML" и сохранять данные этой галереи в файл.
Например, название и путь к картинке (для Flash).
Сталкивался кто с подобным?
Записан
effrit
Группа развития
*****

Репутация: +730/-7
Online Online

Пол: Мужской
Сообщений: 6802


effrit.com


« Ответ #1 : 05.02.2016, 14:28:31 »

добрый.
я сегодня скачал корявый компонентик карты сайта.
так вон он как раз должен это делать - там одна кнопка с выгрузкой в XML
компонент кривой и толком не работает, выдавая пустой файл, но вам посмотреть, как оно устроено, думаю, хватит )
"sitemap faster" называется. JED
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #2 : 05.02.2016, 16:02:33 »

не пойму в чем проблема? Повесить одну кнопку в вьюхе, указать task
в контроллере нужном отловить таск получить данные, сформировать XML и отдать юзеру.. простейшая задача.. делается максимум 20 минут..
Записан
ninth
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 59


[ 9 ]


« Ответ #3 : 05.02.2016, 21:28:20 »

Ну всё относительно легко по мере прибавления опыта )))
Создание кнопки - JToolBarHelper::custom('task', 'list', '', 'Экспорт в XML');
А вот дальнейшее пока от меня ускользает(
« Последнее редактирование: 05.02.2016, 21:53:09 от ninth » Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #4 : 06.02.2016, 04:00:43 »

Ускользает вижу все ))

JToolbarHelper::custom( 'controller_name.exportXML', 'download', 'download', 'Экспорт в XML', false );
где:
controller_name.exportXML
controller_name -> имя контроллера в папке controllers
exportXML - в классе этого контроллера из папки controllers создаете метод
public function exportXML(){ echo ''test task; }
 'download', 'download' - 1-е значение вроде иконка текущая а второе то ли при клике толи при наведении
 'Экспорт в XML' - метка
false - должны ли для срабатывания кнопки быть задействованы чекбоксы!

А дальше вам в методе вашем сформировать XML  и отдать юзеру!
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3581


« Ответ #5 : 06.02.2016, 04:22:21 »

Azn
Записан
ninth
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 59


[ 9 ]


« Ответ #6 : 06.02.2016, 18:57:56 »

Istaan, спасибо.

Да, вроде всё получается... только вот опять чего-то неправильно понимаю.

Контролер:
Код
class MyworksControllerExportxml extends JControllerAdmin
{
public function controllexportXML()
{
$model = $this->getModel('exportxml');
 
if ($model->modelexportXML()) {
$msg = JText::_( 'Успех' );
}
else
{
$msg = $model->getError();
}
 
$this->setRedirect(JRoute::_( 'index.php?option=com_myworks' ), $msg);
}
}
Сообщение не выводит никакого...

Модель:
Код
class MyworksModelExportxml extends JModelList
{
public function modelexportXML(){
 
$db = $this->getDbo();
$query = $db->getQuery(true);
 
$query->select(array('name', 'id'));
$query->from('#__myworks');
 
$query->where('state = '.(int)1);
 
$db->setQuery($query);
$query = $db->loadObjectlist();
 
$dom = new domDocument("1.0", "utf-8");
$root = $dom->createElement("myworks");
$dom->appendChild($root);
 
foreach($query as $myworks) {
$work = $dom->createElement("work", $myworks->name);
$work->setAttribute("id", $myworks->id);
$work->setAttribute("name", $myworks->name);
$root->appendChild($work);
}
 
$dom->save($_SERVER['DOCUMENT_ROOT']."/media/com_myworks/myworksFlash.xml");
}
}
Ругается - $myworks->name, Не нравится что в названии есть "&". Хотя в атрибут выводит без ошибок, на как "&"
« Последнее редактирование: 06.02.2016, 19:04:43 от ninth » Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #7 : 06.02.2016, 20:20:11 »

Конечно не выведет сообщение!
У вас идет:
if ($model->modelexportXML()) {   $msg = JText::_( 'Успех' );   }
else{   $msg = $model->getError();   }
Смотрим в модель в метод modelexportXML()
что у вас возвращает метод? правильно! Ничего не возвращает )
а в PHP false равно 0 и равно пустой строке! то есть ваше условие возвращает ничего, а ничего это false и у вас  ошибку пытается получить в elsr $msg = $model->getError()!
Но вы же в модели никакой ошибки не устанваливали ?) значит и сообщения не будет )
Записан
ninth
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 59


[ 9 ]


« Ответ #8 : 07.02.2016, 15:04:47 »

Istaan, спасибо всё получилось.
Разобрался )
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet