Краткий демо-кейс импорта в инфоблоки

mikemike   

В этой, заключительной, статье про импорт данных в инфоблоки Битрикса мы покажем, как происходит, собственно, сам процесс импорта. Нет, чуда не будет, код библиотеки пропиетарный, на данный момент руководство студии решило его не открывать, так что здесь вы не найдёте технической реализации тех или иных ее компонентов. Тут можно будет увидеть только то, как она используется. Можно считать, что это некая демонстрация работы с инструментом, которой мы бы хотели показать, что наш метод позволяет быстро и гибко конфигурировать используемые для импорта компоненты и оперативно получать готовый результат. Это пример того, что процесс импорта данных в инфоблоки Битрикса, как мы его организовали – это быстро, надёжно, удобно, и, в общем-то, не очень дорого, если у вас есть коммерческий интерес.

Задача: импортировать в инфоблок Битрикс статьи (количество любое, в данном конкретном случае их было 192).

Исходные данные: статьи могут содержать изображения (все инлайн), могут содержать фотогалереи. Сайт существовал на CMS Joomla первой версии. Фотогалереи интегрировались через плагин Morfeo. Из исходников имеем XML-экспорт из БД MySQL.

Что нужно: почистить html текста от мусора, первую картинку статьи (инлайновую) взять в качестве детальной картинки (из текста её надо удалить, разумеется), остальные оставить инлайн, изображения фотогалереи импортировать как отдельное множественное свойство базового типа “Файл”. Картинки хотим получить wget-ом.

Данный сэмпл покажем в виде обычного скрипта, т.е. все компоненты будут определены и связаны в пределах одного файла (хотя есть и более “конвейерные” способы работы).

Сконфигурируем обработчики ссылок на внешние файлы – один для изображений, которые останутся инлайн, один для импортируемых изображений (в примере показан только один – для импорта).

$host = 'http://example.com';
$wget = new Utils\WgetLinksCollector;
$relinkerBuilder = new Utils\Relinking\RelinkerBuilder();
$importRelinker =
   $relinkerBuilder
       ->prependFetchLinksWithHost($host)
       ->stripHostFromReadyLinks($host)
       ->urldecode()
       ->collectLinksTo($wget)
       ->getRelinker();
 
$importRelinker->addFetchLinkRules([
   '/^morfeoshow\//' => 'images/morfeoshow/'
]);
$importRelinker->addReadyLinkRules([
   '/^/' => 'exhibits_files/'
]);

В принципе, ожидаемый функционал понятен из названий методов, добавим лишь, что каждый обработчик может быть сконфигурирован сообразно специфике своих задач Например, для обработчика инлайн картинок нам потребуется добавлять в начало пути нечто вроде /some/absolute/path/for/images, а в примере выше мы хотим в начале пути (для скачивания) вместо morfeoshow/ иметь images/morfeoshow/ (потому что по факту ссылки именно  такие), а путь к картинке с точки зрения файла импорта мы хотим, чтобы начинался с exhibits_files.

Далее, нам потребуется обработчик текста (снова покажем только один пример, для подробного текста):

$textProcessor = new Utils\Presets\TextProcessor;
$textProcessor
   ->cleanText()
   ->extractFirstInlineImage($importRelinker)
   ->relinkInlineImages($inlineRelinker);
 
$textProcessor
   ->addBeforeAction(function($text, &$result) {
       $pattern = '/{morfeo (\d+)}/';
       if (preg_match_all($pattern, $text, $match)) {
           $text = preg_replace($pattern, '', $text);
           $result = $match[1];
       }
       return $text;
   }, 'morfeo');

В целом, всё видно из кода, но к обработчику добавляем пре-hook для вырезания из текста служебной строки галереи Joomla Morfeoshow (во-первых, она нам в готовом тексте не нужна, ну и во-вторых, нам нужен идентификатор галереи, чтобы достать пути к картинкам).

Собственно, дальше можно уже заняться трансформированием исходных данных:

$joomla = new Xml\XmlSourceProvider(‘/path/to/joomla-export.xml’);
$joomla->setItemsXpath('/pma_xml_export/database/table');
$joomla->setExtractionMap([
   'column[@name="id"]' => 'id',
   'column[@name="title"]' => 'name',
   'column[@name="introtext"]' => 'introtext',
   'column[@name="fulltext"]' => 'fulltext',
   'column[@name="state"]' => 'state',
   'column[@name="created"]' => 'created'
]);
// в качестве шаблона файла импорта используем
// экспорт из пустого инфоблока, это удобно
$import = Import\ImportFile::loadXmlFile(‘/path/to/exhibits.xml’);
 
foreach ($joomla as $item) {
   $text = $textProcessor->process($item['fulltext']);
   $detailImage = $textProcessor->getExtractedImage();
   $morfeoGalleryId = $textProcessor->getResult(‘morfeo’, false);
   // ещё код для требуемой обработки входных данных
   // например, для получения путей к изображениям фотогалереи
 
   $import->items->create()
                     ->setId($item['id'])
                     ->setName($item['name'])
                     ->setActiveFrom($item['created'])
                     ->setActive(true)
                     ->setDetailText($fullText)
                     ->setPreviewText($introText)
                     ->setPicture($detailImage)
                     ->setCustomProperty(4242, $morfeoPictures)
                 ->append();
}
 
$import->generateCodes(); // генерируем ЧПУ
 
$import->save($distFolder.'/exhibits.xml');
$wget->writeCommands($distFolder.'/wget.sh');

Собственно, это всё. На выходе получим два файла – XML файл и bash скрипт с wget-командами для скачивания файлов, которые будут импортироваться вместе с элементами (все опции wget-а там уже расставлены так, чтобы каждый файл был в точности по ожидаемому пути). Качаем, импортируем, радуем заказчика.

В статье для краткости мы опустили существенную (по количеству) часть кода, но это реальный кейс, и настоящий скрипт содержит всего порядка 130 строк – в общем-то это неплохой показатель требуемых усилий от разработчика.

Для сравнения приведём фрагменты исходного и конечного документов, касающиеся одной и той же статьи.

Было
<table name="jos_content">
            <column name="id">913</column>
            <column name="title">Выставка "Незабытые забытые вещи"</column>
            <column name="alias">q-q</column>
            <column name="title_alias"></column>
            <column name="introtext"><a style="text-decoration:none" href="/index.php/topamax-online-kaufen-ohne-kreditkarte">.</a></column>
            <column name="fulltext"><p><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>RU</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Обычная таблица";
	mso-style-parent:"";
	font-size:11.0pt;"Calibri","sans-serif";margin-bottom:.0001pt;text-align:
justify"><span style="font-size: 14pt; line-height: 115%;quot;Times New Roman&quot;,&quot;serif&quot;;">&nbsp; </span><img src="/images/stories/sveta/sumka.jpg" mce_src="/images/stories/sveta/sumka.jpg" height="214" hspace="10" width="262"><span style="font-size:14.0pt;line-height:115%;quot;Times New Roman&quot;,&quot;serif&quot;"> Что
мы знаем о предметах, которые нас окружают в обычной повседневной жизни? Какова
их история, когда появились они рядом с человеком? И почему иные ушли из того,
что сегодня<span style="">&nbsp; </span>мы именуем нашим бытом,
другие же остались, почти не изменившись внешне или же, напротив, совершенно
преобразившись. </span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;text-align:
justify"><span style="font-size:14.0pt;line-height:115%;quot;Times New Roman&quot;,&quot;serif&quot;"><span style=""></span>Ответ на эти и другие вопросы можно получить, посетив выставку «Незабытые забытые вещи» в Мемориально-историческом музее. На ней
представлено свыше ста самых различных предметов<span style="">&nbsp; </span>разных периодов бытования. Тематически они
объединены под условными названиями: « Улица», «Дом», « Лавка», «Мастерская».
Что вы сможете увидеть в «Мастерской»? Столярные инструменты мастеров по
дереву, или старинные инструменты, которые в своей работе использовали мастера-ювелиры.
«Лавка» встретит вас разнообразными коллекциями весов, упаковок и этикеток
различных товаров, во всем разнообразии предметов быта предстанет «Дом», а
зимняя «Улица» начнется, конечно же, с коньков и санок.</span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;text-align:
justify"><span style="font-size: 14pt; line-height: 115%;quot;Times New Roman&quot;,&quot;serif&quot;;"><span style=""></span></span><span style="font-size:14.0pt;line-height:115%;quot;Times New Roman&quot;,&quot;serif&quot;">Выставка развернута в канун 70-летия
победы в Сталинградской битве. Предметы из фондов музея-заповедника
«Сталинградская битва» отражают быт Сталинграда военной поры. </span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;text-align:
justify"><span style="font-size: 14pt; line-height: 115%;quot;Times New Roman&quot;,&quot;serif&quot;;"><span style=""></span></span><img src="/images/stories/sveta/qwe.jpg" mce_src="/images/stories/sveta/qwe.jpg" height="206" hspace="10" width="271"><span style="font-size:14.0pt;line-height:115%;quot;Times New Roman&quot;,&quot;serif&quot;">В создании выставки приняли участие:
музей-заповедник «Старая Сарепта», Кумылженский районный историко-краеведческий
музей, Дубовский районный историко-мемориальный и художественный музейный
комплекс, Дом детского творчества Дубовского муниципального района.
Представлены предметы из частных коллекций.</span></p>

<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;"><span style="font-size: 14pt; line-height: 115%;quot;Times New Roman&quot;,&quot;serif&quot;;"><span style=""></span>Выставка будет работать с 15 ноября 2012 г. по 30 марта 2013 г. по адресу: ул. Гоголя, 10. </span></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify;">&nbsp;<span class="editlinktip hasTip">{morfeo 38}
					</span></p>

<p>&nbsp;</p><p>&nbsp;</p></column>
            <column name="state">1</column>
            <column name="sectionid">4</column>
            <column name="mask">0</column>
            <column name="catid">8</column>
            <column name="created">2012-11-09 06:10:22</column>
            <column name="created_by">62</column>
            <column name="created_by_alias"></column>
            <column name="modified">2012-11-19 09:37:16</column>
            <column name="modified_by">62</column>
            <column name="checked_out">0</column>
            <column name="checked_out_time">0000-00-00 00:00:00</column>
            <column name="publish_up">2012-11-09 06:10:22</column>
            <column name="publish_down">0000-00-00 00:00:00</column>
            <column name="images"></column>
            <column name="urls"></column>
            <column name="attribs">show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_vote=
show_author=
show_create_date=
show_modify_date=
show_pdf_icon=
show_print_icon=
show_email_icon=
language=
keyref=
readmore=</column>
            <column name="version">13</column>
            <column name="parentid">0</column>
            <column name="ordering">166</column>
            <column name="metakey"></column>
            <column name="metadesc"></column>
            <column name="access">0</column>
            <column name="hits">6004</column>
            <column name="metadata">robots=
author=</column>
</table>
Стало
<Товар>
    <Ид>913</Ид>
    <Наименование>Выставка "Незабытые забытые вещи"</Наименование>
    <Картинка>exhibits_files/images/stories/sveta/sumka.jpg</Картинка>
    <ЗначенияСвойств>
        <ЗначенияСвойства>
            <Ид>CML2_ACTIVE</Ид>
            <Значение>true</Значение>
        </ЗначенияСвойства>
        <ЗначенияСвойства>
            <Ид>CML2_ACTIVE_FROM</Ид>
            <Значение>2012-11-09 06:10:22</Значение>
        </ЗначенияСвойства>
        <ЗначенияСвойства>
            <Ид>CML2_PREVIEW_TEXT</Ид>
            <Значение></Значение>
            <Тип>html</Тип>
        </ЗначенияСвойства>
        <ЗначенияСвойства>
	    <Ид>CML2_DETAIL_TEXT</Ид>
            <Значение><p><span> Что
            мы знаем о предметах, которые нас окружают в обычной повседневной жизни? Какова
            их история, когда появились они рядом с человеком? И почему иные ушли из того,
            что сегоднямы именуем нашим бытом,
            другие же остались, почти не изменившись внешне или же, напротив, совершенно
            преобразившись. </span></p> <p><span>Ответ на эти и другие вопросы можно получить, посетив выставку «Незабытые забытые вещи» в Мемориально-историческом музее. На ней
            представлено свыше ста самых различных предметовразных периодов бытования. Тематически они
            объединены под условными названиями: « Улица», «Дом», « Лавка», «Мастерская».
            Что вы сможете увидеть в «Мастерской»? Столярные инструменты мастеров по
            дереву, или старинные инструменты, которые в своей работе использовали мастера-ювелиры.
            «Лавка» встретит вас разнообразными коллекциями весов, упаковок и этикеток
            различных товаров, во всем разнообразии предметов быта предстанет «Дом», а
            зимняя «Улица» начнется, конечно же, с коньков и санок.</span></p> <p><span>Выставка развернута в канун 70-летия
            победы в Сталинградской битве. Предметы из фондов музея-заповедника
            «Сталинградская битва» отражают быт Сталинграда военной поры. </span></p> <p><img src="/upload/images/stories/sveta/qwe.jpg" height="206" hspace="10" width="271"><span>В создании выставки приняли участие:
            музей-заповедник «Старая Сарепта», Кумылженский районный историко-краеведческий
            музей, Дубовский районный историко-мемориальный и художественный музейный
            комплекс, Дом детского творчества Дубовского муниципального района.
            Представлены предметы из частных коллекций.</span></p> <p><span>Выставка будет работать с 15 ноября 2012 г. по 30 марта 2013 г. по адресу: ул. Гоголя, 10. </span></p> </Значение>
            <Тип>html</Тип>
        </ЗначенияСвойства>
        <ЗначенияСвойства>
            <Ид>4242</Ид>
            <Значение>exhibits_files/morfeoshow/____________-9110/big/0008.jpg</Значение>
            <ЗначениеСвойства>
                <Значение>exhibits_files/morfeoshow/____________-9110/big/0008.jpg</Значение>
                <Описание></Описание>
            </ЗначениеСвойства>
            <Значение>exhibits_files/morfeoshow/____________-9110/big/0011.jpg</Значение>
            <ЗначениеСвойства>
                <Значение>exhibits_files/morfeoshow/____________-9110/big/0011.jpg</Значение>
                <Описание></Описание>
            </ЗначениеСвойства>
        </ЗначенияСвойства>
        <ЗначенияСвойства>
            <Ид>CML2_CODE</Ид>
            <Значение>vystavka-nezabytye-zabytye-vesi</Значение>
        </ЗначенияСвойства>
    </ЗначенияСвойств>
</Товар>

Сюда ещё никто не добрался. Первым будешь?

Создание и продвижение сайтов для бизнеса только кликни мы откликнемся
8-800-77-55-123 Меню
В порядке и на условиях, определённых Федеральным законом от 27 июля 2006 года № 152-ФЗ «О персональных данных». Согласие на обработку следующих моих персональных данных: фамилии, имени, отчества, года, месяцы, даты и места рождения, пола, гражданства, места жительства, в том числе сведения о регистрации по месту жительства, месту пребывания, места работы, социального положения (статуса), реквизитов документа, удостоверяющего личность. Обработка моих персональных данных Оператором осуществляется исключительно в целях защиты моих прав на регистрацию доменного имени, услуги по созданию и продвижению сайтов, услуги по размещению рекламных компаний в интернет и обеспечения соблюдения законов и иных нормативных правовых актов, связанных с предоставлением этих услуг. Я предоставляю Оператору право осуществлять следующие действия с моими персональными данными: сбор, систематизация, накопление, хранение, уточнение (обновление, изменение), использование, обезличивание, блокирование, уничтожение персональных данных, передача персональных данных между: - Оператором ООО «КликОН», в котором мне будут осуществляться вышеперечисленные услуги ; - Оператором АНО «Региональный Сетевой Информационный Центр», осуществляющим непосредственную регистрацию доменных имён ; Мне гарантируется конфиденциальность моих персональных при обработке их и хранении не дольше срока, предусмотренного нормативными актами. Настоящие согласие данное мной и действует бессрочно. Я оставляю за собой право отозвать своё согласие посредством составления соответствующего письменного документа, который может быть направлен мной в адрес Оператора по почте заказным письмом с уведомлением о вручении либо вручен лично под расписку уполномоченному представителю Оператора.