https://wiki.umisoft.ru/index.php?title=%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B2_YML_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&feed=atom&action=history
Экспорт в YML списка объектов каталога - История изменений
2024-03-28T19:08:00Z
История изменений этой страницы в вики
MediaWiki 1.31.0
https://wiki.umisoft.ru/index.php?title=%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B2_YML_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&diff=2993&oldid=prev
Cmac в 10:59, 8 сентября 2011
2011-09-08T10:59:30Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ru">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Предыдущая</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Версия 10:59, 8 сентября 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l59" >Строка 59:</td>
<td colspan="2" class="diff-lineno">Строка 59:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Теперь создав в модуле "Обмен данными", новый сценарий экспорта, указав наш новый тип экспорта и список объектов каталога, выполнив экспорт мы получим корректные XML-данные в формате ЯндексМаркет.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Теперь создав в модуле "Обмен данными", новый сценарий экспорта, указав наш новый тип экспорта и список объектов каталога, выполнив экспорт мы получим корректные XML-данные в формате ЯндексМаркет.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Категория:Модуль Обмен данными]]</ins></div></td></tr>
</table>
Cmac
https://wiki.umisoft.ru/index.php?title=%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82_%D0%B2_YML_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&diff=2454&oldid=prev
VITL': Новая страница: «В некоторых случаях, необходим выборочный экспорт объектов каталога в формат ЯндексМарке…»
2011-03-29T04:31:32Z
<p>Новая страница: «В некоторых случаях, необходим выборочный экспорт объектов каталога в формат ЯндексМарке…»</p>
<p><b>Новая страница</b></p><div>В некоторых случаях, необходим выборочный экспорт объектов каталога в формат ЯндексМаркет (YML), т.е. экспорт не целых разделов, а только указанных объектов каталога. Чтобы осуществить подобный экспорт, необходимо подключить модифицированный сплиттер, потому что оригинальный (YMLExporter.php), производит экспорт относительно выбранных разделов каталога.<br />
Используя информацию в данной статье [[Добавление нового формата экспорта данных]], добавим новый тип экспорта в справочник "Форматы экспорта", Идентификатор укажем: '''YMLCustom'''. Далее необходимо в папку '''\classes\system\subsystems\export\exporters\''' добавить файл YMLCustomExporter.php следующего содержания:<br />
<source lang="php"><br />
<?php<br />
<br />
class YMLCustomExporter extends umiExporter {<br />
public function setOutputBuffer() {<br />
$buffer = outputBuffer::current('HTTPOutputBuffer');<br />
$buffer->charset("windows-1251");<br />
$buffer->contentType("text/xml");<br />
return $buffer;<br />
}<br />
<br />
public function export($branches) {<br />
if (!count($branches)) {<br />
$sel = new selector('pages');<br />
$sel->where('hierarchy')->page(0)->childs(1);<br />
$branches = $sel->result;<br />
}<br />
<br />
$source_name = $this->getSourceName();<br />
$exporter = new xmlExporter($source_name);<br />
$parents = array();<br />
foreach($branches as $item){<br />
$parent = $item->getParentId();<br />
if(!in_array($parent, $parents)) $parents[] = $parent;<br />
}<br />
$branches = array_merge($branches, $parents);<br />
$exporter->addElements($branches);<br />
$result = $exporter->execute();<br />
$umiDump = $result->saveXML();<br />
<br />
$style_file = './xsl/export/' . $this->type . '.xsl';<br />
if (!is_file($style_file)) {<br />
throw new publicException("Can't load exporter {$style_file}");<br />
}<br />
<br />
$doc = new DOMDocument("1.0", "utf-8");<br />
$doc->formatOutput = XML_FORMAT_OUTPUT;<br />
$doc->loadXML($umiDump);<br />
<br />
$templater = xslTemplater::getInstance();<br />
$templater->setIsInited(false);<br />
$templater->init($style_file);<br />
$templater->setXmlDocument($doc);<br />
<br />
$result = $templater->parseResult();<br />
// convert to CP1251<br />
$result = iconv("UTF-8", "CP1251", $result);<br />
$doc = new DOMDocument("1.0", "windows-1251");<br />
$result = str_replace('<' . '?xml version="1.0" encoding="utf-8"?>', '<' . '?xml version="1.0" encoding="windows-1251"?>', $result);<br />
<br />
return $result;<br />
}<br />
<br />
}<br />
?><br />
</source><br />
<br />
Теперь создав в модуле "Обмен данными", новый сценарий экспорта, указав наш новый тип экспорта и список объектов каталога, выполнив экспорт мы получим корректные XML-данные в формате ЯндексМаркет.</div>
VITL'