1 <sect1 id="zend.feed.modifying-feed">
2 <title>Изменение структуры лент и их сообщений</title>
5 Естетственный синтаксис <code>Zend_Feed</code> используется для создания
6 и изменения лент и записей так же, как и для их чтения. Вы можете легко
7 преобразовывать свои новые или измененные объекты обратно в
8 синтаксически корректный XML для сохранения в файл или отправки серверу.
11 <example id="zend.feed.modifying-feed.example.modifying">
12 <title>Изменение существующего сообщения в ленте</title>
13 <programlisting language="php"><![CDATA[
14 $feed = new Zend_Feed_Atom('http://atom.example.com/feed/1');
15 $entry = $feed->current();
17 $entry->title = 'This is a new title';
18 $entry->author->email = 'my_email@example.com';
20 echo $entry->saveXML();
24 Это выведет полное (включая вступление
25 <code><?xml ... ></code>) XML-представление
26 новой публикации, включающее в себя необходимые пространства имен
30 Обратите внимание на то, что вышеприведенный код будет работать
31 даже если существующая запись не имеет тег
32 <code><author></code>. Для присвоения вы можете использовать
33 столько уровней доступа через <code>-></code>, сколько
34 для получения; все промежуточные уровни будут созданы автоматически,
40 Если вы хотите использовать в своих сообщениях пространство имен,
41 отличное от <code>atom:</code>, <code>rss:</code> или
42 <code>osrss:</code>, то вам нужно зарегистрировать его через
43 <code>Zend_Feed</code>, используя
44 метод <code>Zend_Feed::registerNamespace()</code>. Когда вы изменяете
45 существующий элемент, он всегда будет сохранять свое исходное
46 пространство имен. Когда вы добавляете новый элемент, то он будет
47 включен в пространство имен по умолчанию, если не было указано явно
48 другое пространство имен.
51 <example id="zend.feed.modifying-feed.example.creating">
52 <title>Создание сообщения Atom с элементами в специальном пространстве имен</title>
53 <programlisting language="php"><![CDATA[
54 $entry = new Zend_Feed_Entry_Atom();
55 // id уже присвоен сервером
56 $entry->title = 'my custom entry';
57 $entry->author->name = 'Example Author';
58 $entry->author->email = 'me@example.com';
60 // теперь выполнение специальной части
61 Zend_Feed::registerNamespace('myns', 'http://www.example.com/myns/1.0');
63 $entry->{'myns:myelement_one'} = 'my first custom value';
64 $entry->{'myns:container_elt'}->part1 = 'first nested custom part';
65 $entry->{'myns:container_elt'}->part2 = 'second nested custom part';
67 echo $entry->saveXML();