[MANUAL] English:
[zend.git] / documentation / manual / ru / module_specs / Zend_Feed-ModifyingFeed.xml
blobac494cfe3c7f42f3e2e4e610c67042403ff69a06
1 <sect1 id="zend.feed.modifying-feed">
2     <title>Изменение структуры лент и их сообщений</title>
4     <para>
5         Естетственный синтаксис <code>Zend_Feed</code> используется для создания
6         и изменения лент и записей так же, как и для их чтения. Вы можете легко
7         преобразовывать свои новые или измененные объекты обратно в
8         синтаксически корректный XML для сохранения в файл или отправки серверу.
9     </para>
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();
21 ]]>
22         </programlisting>
23         <para>
24             Это выведет полное (включая вступление
25             <code>&lt;?xml ... &gt;</code>) XML-представление
26             новой публикации, включающее в себя необходимые пространства имен
27             XML.
28         </para>
29         <para>
30             Обратите внимание на то, что вышеприведенный код будет работать
31             даже если существующая запись не имеет тег
32             <code>&lt;author&gt;</code>. Для присвоения вы можете использовать
33             столько уровней доступа через <code>-&gt;</code>, сколько
34             для получения; все промежуточные уровни будут созданы автоматически,
35             если необходимо.
36         </para>
37     </example>
39     <para>
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         другое пространство имен.
49     </para>
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();
68 ]]>
69         </programlisting>
70     </example>
71 </sect1>
72 <!--
73 vim:se ts=4 sw=4 et:
74 -->