ezpublish.ru / Форумы / Для новичков / Импорт / Экспорт - Excel - XLS, CVS, XML, OpenOffice в eZ Publish




Импорт / Экспорт - Excel - XLS, CVS, XML, OpenOffice в eZ Publish

Для доступа к форумам необходимо авторизоваться. Это можно сделать здесь

Автор Сообщение

Maxim Kopytov

Вт, 6 апреля 2010 6:27:02

Существует ли расширение позволяющее импортировать данные в eZ Publish?
В частности, есть таблица в формате XSL. Нужно на основе данных этой таблицы создать контент.

------------------------
I love eZ Publish

Сергей Гедеон

Вт, 6 апреля 2010 6:44:57

Для CMS на основе XSLT-преобразований есть специальные движки типа http://symphony-cms.com/
Но если вам нужно в обязательном порядке вывести данные при помощи XSL, а не стандартных шаблонов, то в eZ это сделать легко! (только не знаю насколько это оптимально)

Варианты:
1) Вывести XML при помощи какого-то layout'а (наподобие страниц для печати) и подключить к нему стиль напрямую (обработка будет на стороне браузера, но не все браузеры парсят/оформляют XML... точнее современные все, но все же)
2) Вывести XML с помощью отдельного сайтаксесса, указав в настройках сайтаксесса соответствующий http-header для mime-type. Парсинг опять будет на стороне браузера
3) Подключить в пхп libxsl и написать коротенький экстеншн, который будет фетчить данные (напрямую или посредством шаблона) и пропускать результат через процессор xslt. Для результата сделать отдельный вью
4) То же, что в п. 3, но посредством темплейт оператора... (изврат какой-то)

===----
Радоваться жизни можно тихо...
----====

Maxim Kopytov

Вт, 6 апреля 2010 7:05:10

Я извиняюсь, опечатка, я имел ввиду Excel файл .xls
Создать контент на основе таблицы .xls или cvs файла
Одним словом интересует, есть ли возможность создания контента при помощи импорта файлов.
Может быть есть расширение которое может работать с документами OpenOffice, парсить их и создавать контент объекты?

Подойдет ли eZ XML Installer для таких задач?

http://projects.ez.no/ezxmlinstaller

------------------------
I love eZ Publish

Сергей Гедеон

Вт, 6 апреля 2010 8:18:35

Да, импортировать/экспортировать можно что угодно. Нужно только знать формат CSV это детский лепет - там шаблон написать это 5 минут
XLS - наверное сложнее, но если почитать это http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx#EXB то должно все получиться
Еще есть http://ru.wikipedia.org/wiki/Microsoft_Office_Open_XML

Выводить данные в XML или в любой другой формат ничуть не сложнее, чем в HTML/XHTML/plain-text/etc.

Нужно только четко поставить задачу с указанием формата исходных данных и конечного результата

===----
Радоваться жизни можно тихо...
----====

Maxim Kopytov

Сб, 10 апреля 2010 19:10:47

Воспользовались расширением ImportXMLData 1.4.2 http://ez.no/developer/contribs/import_export/import_xml_data
только вот расширение отказалось работать совместно с eAccelerator.dll
Расширение вываливалось в ошибки.
Fatal error: Class 'eZDebug' not found in 
C:\Poligon\site\www\extension\importXMLData\modules\importXMLData\importXMLDatafunctioncollection.php on line 157

Fatal error: eZ Publish did not finish its request
The execution of eZ Publish was abruptly ended,
debug information can be found in the log files normally placed in var/log/*

[Sun Apr 11 12:29:55 2010] [error] [client 127.0.0.1] 
PHP Fatal error:  Class 'eZDebug' not found in 
C:\\Poligon\\site\\www\\extension\\importXMLData\\modules\\importXMLData\\importXMLDatafunctioncollection.php on line 157


157. $user =& new eZUser( $objectId );


default :
eZDebug::writeDebug( 'data_type_string: ' . $data_type_string . ' not supported', 'importXMLData' );
   }	
         $attribute->store();
				}
			}
			//If we have account data we have to create a ezUser persistent object and set account values to this object
			if ($isAcountObject) {
				//create new user
				$objectId = $contentObject->attribute( 'id' );
				if ($userID>0) { 
					$user =& new eZUser( $objectId );

$user->setAttribute('login', $parsedItems[$i]['account-login'] );
$user->setAttribute('email', $parsedItems[$i]['account-email'] );

$hashType = eZUser::hashType() . "";
$newHash = $user->createHash( $parsedItems[$i]['account-login'], $parsedItems[$i]['account-password'], eZUser::site(), $hashType );

$user->setAttribute( "password_hash_type", $hashType );
$user->setAttribute( "password_hash", $newHash );

$user->store();
       } else {
          eZDebug::writeError("error \$objectId invalid (value: $objectId)","ImportXMLDatafunctioncollection";
  }

}
			
   //publish the newly created node



Пришлось отключить eAccelerator.dll.
extension="eaccelerator.dll"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="c:/php/tmp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="1800"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

------------------------
I love eZ Publish

Maxim Kopytov

Вт, 20 апреля 2010 17:04:57

Рекомендовали так же использовать Data Import http://www.mugo.ca/Products/Data-Import

http://projects.ez.no/data_import/

------------------------
I love eZ Publish