<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>New on eZpedia</title><link>http://ezpedia.org/wiki</link>
    <description>New articles on eZpedia.</description>
    <language>fr-FR</language>
    <item>
      <pubDate>Fri, 09 Jan 2009 14:15:30 GMT</pubDate>
      <title>Solution: Running cronjobs.php with parameters in limited environment</title><link>http://ezpedia.org/wiki/ez/solution_running_cronjobs_php_with_parameters_in_limited_environment</link>
      <description>&lt;a name=&quot;eztoc316316_1&quot; id=&quot;eztoc316316_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Question&lt;/h2&gt;
&lt;p&gt;
How can I run eZ Publish scripts and cronjobs with parameters on shared hosting without ssh.
&lt;/p&gt;

&lt;p&gt;
You may only be allowed to run php files as a cronjob without any parameters and without the possibility to browse eZ Publish directory.
&lt;/p&gt;

&lt;p&gt;
You also may not have command line access. Yeah, this can be pretty frustrating, but can not find or afford a better hosting solution.
&lt;/p&gt;
&lt;a name=&quot;eztoc316316_2&quot; id=&quot;eztoc316316_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Solution&lt;/h2&gt;
&lt;p&gt;

When your provider doesn&apos;t allow you to run cronjob tasks with parameters and when your server runs php-cgi.&lt;br /&gt;In order to run cronjob task with parameters, you can create a separate php file and then create a cronjob task pointing to that file.
&lt;/p&gt;
&lt;a name=&quot;eztoc316316_2_1&quot; id=&quot;eztoc316316_2_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Example&lt;/h3&gt;
&lt;p&gt;
Here is an example of the solution using the data_import extension as an example.
&lt;/p&gt;

&lt;p&gt;
File:&lt;i&gt; /path/to/ezpublish/extensions/custom/cronjobs/custom_cronjob.php&lt;/i&gt;
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;&amp;lt;?php
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$output&lt;/span&gt; = shell_exec&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;cd /path/to/ezpublish/; /path/to/php5 runcronjobs.php import_images_csv&apos;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;lt;pre&amp;gt;$output&amp;lt;/pre&amp;gt;&amp;quot;&lt;/span&gt;;
&amp;nbsp;
?&amp;gt;&lt;/pre&gt;
&lt;p&gt;
You may for very small tasks be able to run the above file from a web browser as long as the script completes quickly as browser requests do not work well with long running tasks.
&lt;/p&gt;
&lt;a name=&quot;eztoc316316_3&quot; id=&quot;eztoc316316_3&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;/wiki/fr/../../../ez/cronjob#eztoc113001_1&quot; target=&quot;_self&quot;&gt;Cronjobs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/running_cronjobs_php_with_parameters_in_limited_environment#msg179130&quot; title=&quot;Posted by: Noicokuna Niemoge: Hello;  I just wanted to share one solution: running cronjobs when your provider doesn&quot; target=&quot;_self&quot;&gt;Running cronjobs.php with parameters in limited environment (shared hosting/cpanel)&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 22 Dec 2008 21:21:33 GMT</pubDate>
      <title>eZ Publish 4</title><link>http://ezpedia.org/wiki/ez/ez_publish_4</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 22 Dec 2008 20:53:34 GMT</pubDate>
      <title>Migrating from the eZXML library to PHP 5 DOM</title><link>http://ezpedia.org/wiki/ez/migrating_from_the_ezxml_library_to_php_5_dom</link>
      <description>&lt;a name=&quot;eztoc313140_1&quot; id=&quot;eztoc313140_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;API replacements&lt;/h2&gt;&lt;a name=&quot;eztoc313140_1_1&quot; id=&quot;eztoc313140_1_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;DOM Document&lt;/h3&gt;
&lt;table class=&quot;renderedtable&quot;  border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;  width=&quot;100%&quot;&gt;

&lt;tr&gt;

&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
eZXML
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
DOMDocument
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
Remarks
&lt;/p&gt;

  &lt;/th&gt;
&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;

$xml = new eZXML()&lt;br /&gt;$dom = $xml-&amp;gt;domTree( $xmlDoc )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;

$dom = new DOMDocument()&lt;br /&gt;$success = $dom-&amp;gt;loadXML( $xmlDoc )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
there were some extra options which we need to check, like character set conversion
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;/table&gt;

&lt;table class=&quot;renderedtable&quot;  border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;  width=&quot;100%&quot;&gt;

&lt;tr&gt;

&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
eZDOMDocument
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot;  colspan=&quot;1&quot;&gt;  
&lt;p&gt;
DOMDocument
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
Remarks
&lt;/p&gt;

  &lt;/th&gt;
&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;create_element( $name [, $attributes] )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;

$element = $dom-&amp;gt;createElement( $name )&lt;br /&gt;$element-&amp;gt;setAttribute( $attrName, $attrValue )
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;createElementNode( $name [, $attributes] )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot; colspan=&quot;1&quot;&gt;  
&lt;p&gt;

$element = $dom-&amp;gt;createElement( $name )&lt;br /&gt;
$element-&amp;gt;setAttribute( $attrName, $attrValue )&lt;br /&gt;...
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;createElementTextNode( $name, $text [, $attributes] )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;

$element = $dom-&amp;gt;createElement( $name )&lt;br /&gt;
$element-&amp;gt;appendChild( $dom-&amp;gt;createTextNode( $text ) )&lt;br /&gt;
$element-&amp;gt;setAttribute( $attrName, $attrValue )&lt;br /&gt;...
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;dump_mem()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;saveXML()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;elementsByNameNS( $name, $namespaceURI )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot; colspan=&quot;1&quot;&gt;  
&lt;p&gt;
-&amp;gt;getElementsByTagNameNS( $namespaceURI, $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
can be called on each DOMNode, not only on a DOMDocument
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;get_root()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot; colspan=&quot;1&quot;&gt;  
&lt;p&gt;
-&amp;gt;documentElement
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;Root
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;documentElement
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;root()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot; colspan=&quot;1&quot;&gt;  
&lt;p&gt;
-&amp;gt;documentElement
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;setRoot( $element )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot; colspan=&quot;1&quot;&gt;  
&lt;p&gt;
-&amp;gt;appendChild( $element )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;toString()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;saveXML()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;/table&gt;
&lt;a name=&quot;eztoc313140_1_2&quot; id=&quot;eztoc313140_1_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;DOM Node&lt;/h3&gt;
&lt;table class=&quot;renderedtable&quot;  border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;  width=&quot;100%&quot;&gt;

&lt;tr&gt;

&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
eZDOMNode
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
DOMNode and subclasses
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
Remarks
&lt;/p&gt;

  &lt;/th&gt;
&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;append_child( $node )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;appendChild( $node )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;attributeCount()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;attributes-&amp;gt;length
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
see below
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;attributes()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;attributes
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property, returns DOMNamedNodeMap instead of array now, use $attributes-&amp;gt;length property instead of count( $attributes ), see above
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;attributeValue( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;getAttribute( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;attributeValueNS( $name, $namespaceURI )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;getAttributeNS( $namespaceURI, $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
pay attention to the changed order of the function arguments
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;Children
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;childNodes
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property, returns DOMNodeList instead of array now, use $children-&amp;gt;length property instead of count( $children )
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;children()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;childNodes
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
see above
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;childrenCount()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;childNodes-&amp;gt;length
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;content()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;textContent
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;dump_mem()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
$element-&amp;gt;ownerDocument-&amp;gt;saveXML( $element )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
$element-&amp;gt;dump_mem()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
$element-&amp;gt;ownerDocument-&amp;gt;saveXML( $element)
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;elementAttributeValueByName( $name, $attributeName )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;

$firstElement = $element-&amp;gt;getElementsByTagName( $name )-&amp;gt;item( 0 )&lt;br /&gt;$attributeValue = $firstElement-&amp;gt;getAttribute( $attributeName )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;elementByName( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;getElementsByTagName( $name )-&amp;gt;item( 0 )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;elementChildrenByName( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;

$firstElement = $element-&amp;gt;getElementsByTagName( $name )-&amp;gt;item( 0 )&lt;br /&gt;$children = $firstElement-&amp;gt;childNodes
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;first_child()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;firstChild
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;firstChild()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;firstChild
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;firstElementByName( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;getElementsByTagName( $name )-&amp;gt;item( 0 )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
see elementByName
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;get_attribute( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;getAttribute( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;get_elements_by_tagname( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;getElementsByTagName( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
Returns all descendant elements with the name $name, not only direct children. To get only direct children with the name $name, use DOMXPath or loop over -&amp;gt;childNodes
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;hasChildren()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;hasChildNodes()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;lastChild()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;lastChild
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;localName()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;localName
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;name()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;localName
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;namespaceURI()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;namespaceURI
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;nextSibling()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;nextSibling
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;node_value()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;nodeValue
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;parentNode()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;parentNode
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;prefix(), -&amp;gt;setPrefix( $prefix )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;prefix
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
writable property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;previousSibling()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;previousSibling
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;remove_attribute( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;removeAttribute( $name )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;set_attribute( $name, $value )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;setAttribute( $name, $value )
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;textContent()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;textContent
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
$element-&amp;gt;toString()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
$element-&amp;gt;ownerDocument-&amp;gt;saveXML( $element)
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;type()
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
-&amp;gt;nodeType
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
property, &lt;a href=&quot;http://www.php.net/manual/en/ref.dom.php#id2691506&quot; target=&quot;_self&quot;&gt;one of the predefined XML_xxx_NODE constants&lt;/a&gt; 
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;/table&gt;
&lt;a name=&quot;eztoc313140_2&quot; id=&quot;eztoc313140_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Important notes&lt;/h2&gt;
&lt;p&gt;
The &lt;a href=&quot;http://us.php.net/manual/en/function.dom-domnode-insertbefore.php&quot; target=&quot;_self&quot;&gt;DOMElement::insertBefore&lt;/a&gt; function returns the appended node, and you should use it! Otherwise you can get unexpected results or uncaught exceptions (like DOMException with message &amp;quot;Not Found Error&amp;quot;).
&lt;/p&gt;

&lt;p&gt;
When looping over the DOMElement::childNodes property, you can not remove or move any of the existing children, or insert new one. This will cause the property to change and your loop will apparently skip certain children or handle certain children twice. Instead of looping directly over childNodes, you can first make an array containing the children and loop over that array to make your modifications. In case you only want to remove certain items, looping over childNodes in reverse order (from the last one to the first one) is a solution as well.
&lt;/p&gt;

&lt;p&gt;
The same applies to the DOMElement::attributes property.
&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 22 Dec 2008 17:45:37 GMT</pubDate>
      <title>Unpublishing content</title><link>http://ezpedia.org/wiki/ez/unpublishing_content</link>
      <description>
&lt;p&gt;
Unpublishing one or multiple content objects, can be done in several ways:
&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;delete them
&lt;ul&gt;

&lt;li&gt;at a specified date &amp;amp; time, with &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/current/features/cronjobs/the_cronjob_scripts#unpublish&quot; target=&quot;_self&quot;&gt;the unpublish cronjob&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;hide them
&lt;ul&gt;

&lt;li&gt;at a specified date &amp;amp; time, with &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/current/features/cronjobs/the_cronjob_scripts#hide&quot; target=&quot;_self&quot;&gt;the hide cronjob&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;move them to an archive section of your website
&lt;ul&gt;

&lt;li&gt;at a specified date &amp;amp; time, with &lt;a href=&quot;http://projects.ez.no/archive&quot; target=&quot;_self&quot;&gt;the archive extension&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 17 Dec 2008 23:38:54 GMT</pubDate>
      <title>Solution: Clear Cache on eZ Publish</title><link>http://ezpedia.org/wiki/ez/solution_clear_cache_on_ez_publish</link>
      <description>&lt;a name=&quot;eztoc312302_1&quot; id=&quot;eztoc312302_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;
How to clear cache using eZ Publish 4
&lt;/p&gt;
&lt;a name=&quot;eztoc312302_2&quot; id=&quot;eztoc312302_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Administration&lt;/h2&gt;
&lt;p&gt;
Use the website administration interphase to clear all cache via a gui.
&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;Simply navigate to Setup tab&lt;/li&gt;

&lt;li&gt;Click the clear cache icon&lt;/li&gt;

&lt;li&gt;Refresh browser window of website&lt;/li&gt;

&lt;/ol&gt;
&lt;a name=&quot;eztoc312302_3&quot; id=&quot;eztoc312302_3&quot;&gt;&lt;/a&gt;&lt;h2&gt;Command line&lt;/h2&gt;
&lt;p&gt;
If you know how to use the command line you can use it to clear cache.
&lt;/p&gt;
&lt;a name=&quot;eztoc312302_3_1&quot; id=&quot;eztoc312302_3_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Unix&lt;/h3&gt;
&lt;p&gt;
If you are using a complete unix like operating system you can use the following command to clear and purge all cache within eZ Publish.
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; /path/to/ezpublish;
./bin/php/ezcache.php --clear-all --purge;&lt;/pre&gt;&lt;a name=&quot;eztoc312302_3_2&quot; id=&quot;eztoc312302_3_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;Windows&lt;/h3&gt;
&lt;p&gt;
If you are using Windows you can use the following command to clear and purge all cache within eZ Publish.
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# &lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; c:/web/pro/ezpublish/doc;&lt;/span&gt;
c:\php\php ./bin/php/ezcache.php --clear-all --purge;&lt;/pre&gt;&lt;a name=&quot;eztoc312302_4&quot; id=&quot;eztoc312302_4&quot;&gt;&lt;/a&gt;&lt;h2&gt;Manual&lt;/h2&gt;
&lt;p&gt;
If you are unable to use the administration gui or command line to clear cache, you can still remove the cache files manually.
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; /path/to/ezpublish;
rm -vrf /var/cache;
rm -vrf /var/ezwebin_site/cache&lt;/pre&gt;&lt;a name=&quot;eztoc312302_5&quot; id=&quot;eztoc312302_5&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Doc: &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/4_0/features/view_caching/clearing_the_view_cache&quot; target=&quot;_self&quot;&gt;&lt;i&gt;Clearing&lt;/i&gt; the view &lt;i&gt;cache&lt;/i&gt; / View &lt;i&gt;caching&lt;/i&gt; / Features / 4.0 ...&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Doc: &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/4_0/reference/scripts/generic/ezcache_php&quot; target=&quot;_self&quot;&gt;ezcache.php / Generic / Scripts / Reference / 4.0 / Technical &lt;b&gt;...&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Sat, 22 Nov 2008 09:44:25 GMT</pubDate>
      <title>Hiding or unhiding subtrees</title><link>http://ezpedia.org/wiki/ez/hiding_or_unhiding_subtrees</link>
      <description>	&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;can_hide&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;is_hidden&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        eZContentObjectTreeNode::&lt;span style=&quot;color: #006600;&quot;&gt;unhideSubTree&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        eZContentObjectTreeNode::&lt;span style=&quot;color: #006600;&quot;&gt;hideSubTree&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 13 Nov 2008 01:34:44 GMT</pubDate>
      <title>Solution: Publishing static pages from eZ Publish</title><link>http://ezpedia.org/wiki/ez/solution_publishing_static_pages_from_ez_publish</link>
      <description>&lt;a name=&quot;eztoc305224_1&quot; id=&quot;eztoc305224_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Question&lt;/h2&gt;
&lt;p&gt;
How does one publish static pages from a completed eZ Publish website installation?
&lt;/p&gt;
&lt;a name=&quot;eztoc305224_2&quot; id=&quot;eztoc305224_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Suggestion&lt;/h2&gt;
&lt;p&gt;
Read the following reference and suggestion example.
&lt;/p&gt;
&lt;a name=&quot;eztoc305224_2_1&quot; id=&quot;eztoc305224_2_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Example&lt;/h3&gt;
&lt;p&gt;
I used this to produce an inexpensive visual preview of a customer&apos;s eZ Publish website.
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;httrack http://ez  -O &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;.&amp;quot;&lt;/span&gt;  -%v  -*layout* -*Calendar/* -*visual* --footer &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; --preserve&lt;/pre&gt;&lt;a name=&quot;eztoc305224_3&quot; id=&quot;eztoc305224_3&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Form: &lt;a href=&quot;http://ez.no/developer/forum/general/publishing_static_pages#msg172492&quot; target=&quot;_self&quot;&gt;Publishing static pages&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 01 Oct 2008 11:45:54 GMT</pubDate>
      <title>eZ Publish Test System</title><link>http://ezpedia.org/wiki/ez/ez_publish_test_system</link>
      <description>&lt;a name=&quot;eztoc296378_1&quot; id=&quot;eztoc296378_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Warning&lt;/h2&gt;
&lt;p&gt;
The test system is considered ever evolving and backwards incompatible changes may occur. We do invite you to start writing tests for it, just be warned that the tests may need some updating as we evolve the system.
&lt;/p&gt;
&lt;a name=&quot;eztoc296378_2&quot; id=&quot;eztoc296378_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Getting started&lt;/h2&gt;&lt;a name=&quot;eztoc296378_2_1&quot; id=&quot;eztoc296378_2_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Requirements&lt;/h3&gt;
&lt;ul&gt;

&lt;li&gt;PHPUnit 3.2.x or newer: http://www.phpunit.de/&lt;/li&gt;

&lt;li&gt;eZ Components&lt;/li&gt;

&lt;/ul&gt;
&lt;a name=&quot;eztoc296378_2_2&quot; id=&quot;eztoc296378_2_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;Installation&lt;/h3&gt;
&lt;ol&gt;

&lt;li&gt;Update to at least trunk rev 22408.&lt;/li&gt;

&lt;li&gt;Generate autoloads for the test system: &lt;/li&gt;

&lt;/ol&gt;
	&lt;pre class=&quot;bash&quot;&gt;php bin/php/ezpgenerateautoloads.php -s&lt;/pre&gt;&lt;a name=&quot;eztoc296378_3&quot; id=&quot;eztoc296378_3&quot;&gt;&lt;/a&gt;&lt;h2&gt;Running tests&lt;/h2&gt;
&lt;p&gt;
To run all tests do:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb&lt;/pre&gt;
&lt;p&gt;
The -D parameter is required and is used to tell the test system what type of database, username, host and which database to use. Make sure the username you specify is allowed both create and remove the database. The DSN uses the following format:
&lt;/p&gt;
	&lt;pre&gt;databasetype://username:password@host/database&lt;/pre&gt;
&lt;p&gt;
If you want to run a single test suite, just point to the directory containing a suite.php file.
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb tests/tests/kernel&lt;/pre&gt;&lt;a name=&quot;eztoc296378_3_1&quot; id=&quot;eztoc296378_3_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Filter which tests to run&lt;/h3&gt;
&lt;p&gt;
To run a single test you can use the --filter option like this:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb --&lt;span style=&quot;color: #0000ff;&quot;&gt;filter=&lt;/span&gt;testGlobBrace&lt;/pre&gt;
&lt;p&gt;
In the above example both eZSysTest::testGlobBrace and eZSys::testGlobBraceSupported will be executed. If you only want to execute eZSysTest::testGlobBrace run:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb --&lt;span style=&quot;color: #0000ff;&quot;&gt;filter=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;testGlobBrace$&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
This works too:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb --&lt;span style=&quot;color: #0000ff;&quot;&gt;filter=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;eZSysTest::testGlobBrace$&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
As of PHPUnit 3 --filter can also be used to filter on test class names. This is a handy way of running all tests in a test case. Example:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb --&lt;span style=&quot;color: #0000ff;&quot;&gt;filter=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;eZSysTest&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;a name=&quot;eztoc296378_3_2&quot; id=&quot;eztoc296378_3_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;List tests&lt;/h3&gt;
&lt;p&gt;
To list all test use the --list-tests option:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php --list-tests&lt;/pre&gt;
&lt;p&gt;
You can also narrow the output to only list tests defined in a specific suite:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php --list-tests tests/tests/lib/ezutils&lt;/pre&gt;&lt;a name=&quot;eztoc296378_3_3&quot; id=&quot;eztoc296378_3_3&quot;&gt;&lt;/a&gt;&lt;h3&gt;Running a group of tests (group annotation)&lt;/h3&gt;
&lt;p&gt;
With PHPUnit you can group different tests together by adding the group annotation to a method&apos;s documantion block:
&lt;/p&gt;

&lt;p&gt;
To list all groups run:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php --list-groups&lt;/pre&gt;
&lt;p&gt;
To run a group use the -g parameter:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb -g issue_13492&lt;/pre&gt;&lt;a name=&quot;eztoc296378_4&quot; id=&quot;eztoc296378_4&quot;&gt;&lt;/a&gt;&lt;h2&gt;Writing tests&lt;/h2&gt;&lt;a name=&quot;eztoc296378_4_1&quot; id=&quot;eztoc296378_4_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Naming conventions&lt;/h3&gt;
&lt;p&gt;
The test system itself follows eZ Components naming conventions defined here: &lt;a href=&quot;http://ezcomponents.org/contributing/coding_standards#id8&quot; target=&quot;_self&quot;&gt;http://ezcomponents.org/contributing/coding_standards#id8&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
The tests itself follows the naming conventions of the code that it tests. In this case this means the tests follows the eZ Publish naming convention.
&lt;/p&gt;
&lt;a name=&quot;eztoc296378_4_2&quot; id=&quot;eztoc296378_4_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;File and directory layout&lt;/h3&gt;
&lt;p&gt;
The file structure used in eZ Publish is mirrored inside the test system. As an example, if you want to write tests for &lt;i&gt;kernel/classes/ezcontentobject.php&lt;/i&gt; the test file should be located in &lt;i&gt;tests/tests/kernel/classes/ezcontentobject_test.php&lt;/i&gt;. Regression tests for ezcontentobject should be located in &lt;i&gt;tests/tests/kernel/classes/ezcontentobject_regression.php&lt;/i&gt;
&lt;/p&gt;

&lt;p&gt;
*_test.php is the suffix used for unit tests. *_regression.php is used for as the suffix for regression tests.
&lt;/p&gt;
&lt;a name=&quot;eztoc296378_4_3&quot; id=&quot;eztoc296378_4_3&quot;&gt;&lt;/a&gt;&lt;h3&gt;Writing a unit test&lt;/h3&gt;
&lt;p&gt;
The test system comes with a handy CLI script for generating stub tests from an existing class to get you going quickly. As an example, you can generate a stub test from kernel/classes/ezpreferences.php like this:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/toolkit/extras/scripts/create-test-from-class.php \
               -s kernel/classes/ezpreferences.php \
               -d tests/tests/kernel/classes/ezpreferences_test.php&lt;/pre&gt;
&lt;p&gt;
The generated tests/tests/kernel/classes/ezpreferences_test.php file will then look like this:
&lt;/p&gt;
	&lt;pre class=&quot;php-brief&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; eZPreferencesTest &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; ezpTestCase
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; __construct&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        parent::__construct&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setName&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;eZPreferences Unit Tests&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; testSetValue&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        self::&lt;span style=&quot;color: #006600;&quot;&gt;markTestIncomplete&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Not implemented&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; testValue&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        self::&lt;span style=&quot;color: #006600;&quot;&gt;markTestIncomplete&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Not implemented&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// [...]&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
To make the new test case work we need to add it to the appropriate suite.php. For this test case that is tests/tests/kernel/suite.php. Add 
&lt;/p&gt;
	&lt;pre class=&quot;php-brief&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;addTestSuite&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;eZPreferencesTest&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
to the __construct method of eZKernelTestSuite and remember to regenerate test autoloads. To verify that the new test case is working run &apos;runtests.php&apos; with -v:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;oh:/www/trunk $ php tests/runtests.php -D mysql://root@localhost/testdb -v 
Based on ezcUnitTest &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; eZ Components
&amp;nbsp;
PHPUnit &lt;span style=&quot;color: #cc66cc;&quot;&gt;3.3&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;.0&lt;/span&gt; by Sebastian Bergmann.
&amp;nbsp;
eZ Publish
 eZ Publish Test Suite
  eZ Publish Kernel Test Suite
   eZPreferencesTest
   IIIIIIII
&amp;nbsp;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Success! We&apos;re now ready to start writing the test by filling in the test* methods.
&lt;/p&gt;

&lt;p&gt;
Normally tests are short and straight forward and should require little or no documentation. Due to the complexity of eZ Publish not all tests ends up being in this way. If you are writing a somewhat complex unit test, please document it a way that makes it easier to understand.
&lt;/p&gt;
&lt;a name=&quot;eztoc296378_4_4&quot; id=&quot;eztoc296378_4_4&quot;&gt;&lt;/a&gt;&lt;h3&gt;Writing a regression test&lt;/h3&gt;
&lt;p&gt;
Regression tests are created in the same way as with unit tests, except the classes end with &amp;quot;Regression&amp;quot; and the file suffix is _regression.php. When writing a regression test please document it with the following:
&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;Issue number + title of the issue.&lt;/li&gt;

&lt;li&gt;Short description of the issue if the title isn&apos;t descriptive enough.&lt;/li&gt;

&lt;li&gt;If the test is longer than a few lines, include what the test does in order to reproduce the issue.&lt;/li&gt;

&lt;li&gt;The result and the expected result.&lt;/li&gt;

&lt;li&gt;Link to the issue.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;
Here&apos;s a doc header example taken from testLinksAcrossTranslations():
&lt;/p&gt;
	&lt;pre class=&quot;php-brief&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**
 * Test scenario for issue #13492: Links are lost after removing version
 *
 * Test Outline
 * ------------
 * 1. Create a Folder in English containing a link (in the short_description attribute).
 * 2. Translate Folder into Norwegian containing another link (not the same link as above.)
 * 3. Remove Folder version 1. (Version 2 is created when translating).
 *
 * @result: short_description in version 2 will have an empty link.
 * @expected: short_description should contain same link as in version 1.
 * @link http://issues.ez.no/13492
 */&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
If the issue has multiple tests group them together to make it easy to execute all tests for a single issue using the group annotation &amp;quot;@group issue_ISSUE_NUMBER&amp;quot; where ISSUE_NUMBER is the issue ID in the bug tracker. Example: 
&lt;/p&gt;
	&lt;pre&gt;* @group issue_13492&lt;/pre&gt;&lt;a name=&quot;eztoc296378_4_5&quot; id=&quot;eztoc296378_4_5&quot;&gt;&lt;/a&gt;&lt;h3&gt;Using a database&lt;/h3&gt;
&lt;p&gt;
A common thing for tests is to interact with a database. By extending your test class or suite from either &lt;i&gt;ezpDatabaseTestCase&lt;/i&gt; or &lt;i&gt;ezpDatabaseTestSuite&lt;/i&gt; your test class/suite will become database aware. By default &lt;i&gt;ezpDatabaseTestCase&lt;/i&gt; and &lt;i&gt;ezpDatabaseTestSuite&lt;/i&gt; sets up a clean database using the dba files included in eZ Publish:
&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;share/db_schema.dba&lt;/li&gt;

&lt;li&gt;share/db_data.dba&lt;/li&gt;

&lt;/ul&gt;
&lt;a name=&quot;eztoc296378_4_5_1&quot; id=&quot;eztoc296378_4_5_1&quot;&gt;&lt;/a&gt;&lt;h4&gt;Inserting your own data&lt;/h4&gt;
&lt;p&gt;
If you need to provide your own schema/data you can override which SQL files is loaded by &lt;i&gt;ezpDatabaseTestSuite&lt;/i&gt; by specifing the path to one or more SQL files in the $sqlFiles class method:
&lt;/p&gt;

&lt;p&gt;
Example:
&lt;/p&gt;
	&lt;pre class=&quot;php-brief&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; eZURLAliasMlTest &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; ezpDatabaseTestCase
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        protected &lt;span style=&quot;color: #0000ff;&quot;&gt;$insertDefaultData&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
        protected &lt;span style=&quot;color: #0000ff;&quot;&gt;$sqlFiles&lt;/span&gt; = &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;kernel/sql/&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;kernel_schema.sql&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;,
                                             &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;kernel/sql/common/cleandata.sql&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// [...]&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Setting $insertDefaultData to false tells the test system that it should not attempt to load any data. If $insertDefaultData is not defined or if it&apos;s set to true the test system will first load the default data, then load any SQL files defined in $sqlFiles.
&lt;/p&gt;

&lt;p&gt;
The first entry in $sqlFiles, &lt;i&gt;array( &amp;quot;kernel/sql/&amp;quot;, &amp;quot;kernel_schema.sql&amp;quot; )&lt;/i&gt; is a way to provide a SQL file for one or more of the supported database types. If you&apos;re using MySQL, the test system would try to insert &lt;i&gt;kernel/sql/&lt;b&gt;mysql&lt;/b&gt;/kernel_schema.sql&lt;/i&gt;. If the database type is postgresql, the test system would try to insert &lt;i&gt;kernel/sql/&lt;b&gt;postgresql&lt;/b&gt;/kernel_schema.sql&lt;/i&gt;, and so forth.
&lt;/p&gt;

&lt;p&gt;
The database type is determined by the -D (--dsn) parameter provided to the test runner. 
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;Note:&lt;/b&gt; you can specify $sqlFiles on either your test class or in your suite. The default test runner behaviour is to only create a new database per suite. If you provide $sqlFiles in your test classes you will need start the test runner with the &lt;i&gt;--db-per-test&lt;/i&gt; argument.
&lt;/p&gt;
&lt;a name=&quot;eztoc296378_4_5_2&quot; id=&quot;eztoc296378_4_5_2&quot;&gt;&lt;/a&gt;&lt;h4&gt;Providing extra data&lt;/h4&gt;
&lt;p&gt;
In the above exampe we discussed how to override what data gets initially loaded into the test database. If all you need is to provide some additional data you can leverage the &lt;i&gt;ezpTestDatabaseHelper&lt;/i&gt; class to load some extra SQL files:
&lt;/p&gt;
	&lt;pre class=&quot;php-brief&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$sqlFiles&lt;/span&gt; = &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;myextension/sql/data.sql&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
ezpTestDatabaseHelper::&lt;span style=&quot;color: #006600;&quot;&gt;insertSqlData&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;sharedFixture&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$sqlFiles&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;a name=&quot;eztoc296378_4_6&quot; id=&quot;eztoc296378_4_6&quot;&gt;&lt;/a&gt;&lt;h3&gt;Writing tests for an extension&lt;/h3&gt;
&lt;p&gt;
Extensions can include their own tests. When running tests the test runner will not only look for tests inside the tests/ directory, it will also scan each extension looking for a tests/suite.php file inside the extension. The extension does not need to be in the list of active extension (ActiveExtensions[] in site.ini) for it to be included. The only critera for the extension to be included is that is has a folder &amp;quot;tests/&amp;quot; with a suite.php inside. The suite.php should then include all tests in the extension. Below is an example of a typical extension file layout and where the tests should be located:
&lt;/p&gt;
	&lt;pre&gt;extension
    |-- myextension
        |-- autoloads
        |-- design
        |-- modules
        |-- settings
        |-- tests
        |   |-- mytest1.php
        |   |-- mytest2.php
        |   `-- suite.php
        `-- translations&lt;/pre&gt;
&lt;p&gt;
You can specify the path to an extension to only run tests for that extension:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb extension/myextension&lt;/pre&gt;&lt;a name=&quot;eztoc296378_5&quot; id=&quot;eztoc296378_5&quot;&gt;&lt;/a&gt;&lt;h2&gt;One database per suite&lt;/h2&gt;
&lt;p&gt;
Currently, the default behaviour is that a database is created per suite, not per test. Creating/removing the database easily adds 1-2 seconds of overhead per test on the database management systems that eZ Publish supports out of the box (MySQL, PostgreSQL). However, there&apos;s an extension &lt;a href=&quot;http://projects.ez.no/ezsqlite&quot; target=&quot;_self&quot;&gt;ezsqlite&lt;/a&gt; which allows you to use an in-memory SQLite 3 database to run the tests with.
&lt;/p&gt;

&lt;p&gt;
If you pass in the argument &lt;i&gt;--db-per-test&lt;/i&gt; to the test runner it will change from the default behaviour, one database per suite, to one database per test. It&apos;s &lt;b&gt;strongly encouraged&lt;/b&gt; that you write tests that works with both &lt;i&gt;--db-per-test&lt;/i&gt; turned on and off.
&lt;/p&gt;

&lt;p&gt;
To illustrate the difference in speed, below is how long it takes to run all tests with &lt;i&gt;--db-per-test&lt;/i&gt;:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb --db-per-&lt;span style=&quot;color: #000066;&quot;&gt;test&lt;/span&gt;
PHPUnit &lt;span style=&quot;color: #cc66cc;&quot;&gt;3.3&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;.0&lt;/span&gt; by Sebastian Bergmann.
&amp;nbsp;
............................................
&amp;nbsp;
Time: &lt;span style=&quot;color: #cc66cc;&quot;&gt;01&lt;/span&gt;:&lt;span style=&quot;color: #cc66cc;&quot;&gt;48&lt;/span&gt;
&amp;nbsp;
OK &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;44&lt;/span&gt; tests, &lt;span style=&quot;color: #cc66cc;&quot;&gt;99&lt;/span&gt; assertions&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
And without &lt;i&gt;--db-per-test&lt;/i&gt;:
&lt;/p&gt;
	&lt;pre class=&quot;bash&quot;&gt;php tests/runtests.php -D mysql://root@localhost/testdb
PHPUnit &lt;span style=&quot;color: #cc66cc;&quot;&gt;3.3&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;.0&lt;/span&gt; by Sebastian Bergmann.
&amp;nbsp;
............................................
&amp;nbsp;
Time: &lt;span style=&quot;color: #cc66cc;&quot;&gt;19&lt;/span&gt; seconds
&amp;nbsp;
OK &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;44&lt;/span&gt; tests, &lt;span style=&quot;color: #cc66cc;&quot;&gt;99&lt;/span&gt; assertions&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;a name=&quot;eztoc296378_6&quot; id=&quot;eztoc296378_6&quot;&gt;&lt;/a&gt;&lt;h2&gt;Resources&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;http://www.phpunit.de/&quot; target=&quot;_self&quot;&gt;PHPUnit site&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.phpunit.de/manual/3.3/en/installation.html&quot; target=&quot;_self&quot;&gt;How to install PHPUnit&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.phpunit.de/manual/3.3/en/&quot; target=&quot;_self&quot;&gt;PHPUnit documentation&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.slideshare.net/sebastian_bergmann/new-features-in-phpunit-33&quot; target=&quot;_self&quot;&gt;New features in PHPUnit 3.3&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 29 Sep 2008 05:42:41 GMT</pubDate>
      <title>List of API BC breaks</title><link>http://ezpedia.org/wiki/ez/list_of_api_bc_breaks</link>
      <description>&lt;a name=&quot;eztoc296009_1&quot; id=&quot;eztoc296009_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;eZ Publish 4&lt;/h2&gt;&lt;a name=&quot;eztoc296009_1_1&quot; id=&quot;eztoc296009_1_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;4.1&lt;/h3&gt;&lt;a name=&quot;eztoc296009_1_1_1&quot; id=&quot;eztoc296009_1_1_1&quot;&gt;&lt;/a&gt;&lt;h4&gt;4.1.0&lt;/h4&gt;
&lt;ul&gt;

&lt;li&gt;eZContentObject::fetchAttributesByIdentifier() doesn&apos;t accept any longer a string as 3rd argument, it needs to be an array now. See issue &lt;a href=&quot;http://issues.ez.no/13668&quot; target=&quot;_self&quot;&gt;#13668&lt;/a&gt;.&lt;/li&gt;

&lt;/ul&gt;
&lt;a name=&quot;eztoc296009_1_2&quot; id=&quot;eztoc296009_1_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;4.0&lt;/h3&gt;&lt;a name=&quot;eztoc296009_1_2_1&quot; id=&quot;eztoc296009_1_2_1&quot;&gt;&lt;/a&gt;&lt;h4&gt;4.0.1&lt;/h4&gt;
&lt;ul&gt;

&lt;li&gt;The constructor of eZSOAPClient has a new parameter $useSSL, which defines the protocol to use: either http:// when $useSSL is false (default) or https:// when $useSSL is true. Previously, when the $port argument was 443, it was assumed automatically that https:// should be used. This is not longer the case in eZ Publish 4.0.1. In eZ Publish 4.0.2 however, this BC break will be fixed. For more background information, see issue &lt;a href=&quot;http://issues.ez.no/12267&quot; target=&quot;_self&quot;&gt;#12267&lt;/a&gt;.&lt;/li&gt;

&lt;/ul&gt;
&lt;a name=&quot;eztoc296009_1_2_2&quot; id=&quot;eztoc296009_1_2_2&quot;&gt;&lt;/a&gt;&lt;h4&gt;4.0.0&lt;/h4&gt;
&lt;ul&gt;

&lt;li&gt;eZContentObjectTreeNode::subTree() and eZContentObjectTreeNode::subTreeCount() can not any longer be called statically, they are instance methods now. Use eZContentObjectTreeNode::subTreeByNodeID() and eZContentObjectTreeNode::subTreeCountByNodeID() instead.&lt;/li&gt;

&lt;li&gt;eZContentObjectTreeNode::createPathConditionAndNotEqParentSQLStrings() does not have a 3rd argument $treeNode anymore. Use the 4th argument $nodeID instead to pass the ID of the tree node.&lt;/li&gt;

&lt;li&gt;To register workflow event types, use eZWorkflowEventType::registerEventType() instead of eZWorkflowEventType::registerType().&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Sat, 30 Aug 2008 20:18:19 GMT</pubDate>
      <title>Deleting objects</title><link>http://ezpedia.org/wiki/ez/deleting_objects</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;&lt;a name=&quot;eztoc286637_1&quot; id=&quot;eztoc286637_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Question&lt;/h2&gt;
&lt;p&gt;
How to remove many objects from a content tree.
&lt;/p&gt;
&lt;a name=&quot;eztoc286637_2&quot; id=&quot;eztoc286637_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/general/deleting_many_objects#msg173268&quot; target=&quot;_self&quot;&gt;Deleting many objects&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Solution: &lt;a href=&quot;http://ezpedia.org/wiki/en/ez/solution_script_to_delete_all_nodes_under_a_node_in_content_structure&quot; target=&quot;_self&quot;&gt;Script to delete all nodes under a node in content structure&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 29 Aug 2008 10:51:27 GMT</pubDate>
      <title>Invoking the node/object browser</title><link>http://ezpedia.org/wiki/ez/invoking_the_node_object_browser</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
You can use the eZContentBrowse class to invoke a content browser, with which the user can select one or multiple objects / nodes. The most important method, browse(), actually ensures that certain session variables are set, and that the user agent gets redirect to the content/browse view. When the user submits the selection he made in content/browse, it will be posted to the initial module that invoked eZContentBrowse.
&lt;/p&gt;

&lt;p&gt;
The browse() method accepts an array with quite some options which are not very well documented in the source code. What follows is an overview of the options and a short description on how to use them.
&lt;/p&gt;

&lt;table class=&quot;renderedtable&quot;  border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;  width=&quot;100%&quot;&gt;

&lt;tr&gt;

&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
Key
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
Default value when omitted
&lt;/p&gt;

  &lt;/th&gt;
&lt;th valign=&quot;top&quot; &gt;  
&lt;p&gt;
Description
&lt;/p&gt;

  &lt;/th&gt;
&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
from_page
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
URL to post the browser selection to, obligatory
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
cancel_page
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
value of from_page
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
A value for the BrowseCancelURI field that will be posted back.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
action_name
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
value of the INI setting browse.ini [BrowseSettings] DefaultActionName
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
A value for the BrowseActionName field that will be posted back. When a module view might invoke the content browser for different purposes then it should use this post field to find out for which purpose it called the content browser. Usually the value of the BrowseActionName post variable is used to automatically trigger an action in the module view. See the post_actions key in the &lt;a href=&quot;/wiki/fr/ez/module&quot; target=&quot;_self&quot;&gt;module view&lt;/a&gt; definition.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
type
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
value of action_name
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
Corresponding browse type in browse.ini, make sure this type exists otherwise you will get an error in the content/browse module.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
selection
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
value of the INI setting browse.ini [BrowseSettings] DefaultSelectionType
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
The type of selection, either single or multiple. Can also be configured with the SelectionType setting in browse.ini.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
return_type
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
value of the INI setting browse.ini [BrowseSettings] DefaultReturnType
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
The type of the return values, either ObjectID or NodeID. Can also be configured with the ReturnType setting in browse.ini.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
description_template
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
Template to include containing a description, which is showed by the content/browse view
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
start_node
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
Node ID to start browsing on.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
class_array
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
Class IDs of objects that can be selected. Other content objects can&apos;t be selected. Can also be configured with the Class setting in browse.ini.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
ignore_nodes_select
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
IDs of nodes that can not be selected.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
ignore_nodes_select_subtree
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
IDs of nodes of which no descending nodes (subnodes) can be selected. Seems like the admin design respects this setting, but the standard design does not.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
ignore_nodes_click
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
IDs of nodes that can not be browsed into.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
keys
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
An associative array of browse override keys that will be used to fetch settings from browse.ini. See &lt;a href=&quot;http://ez.no/community/forum/install_configuration/set_startnode_when_browsing_in_browse_ini&quot; target=&quot;_self&quot;&gt;http://ez.no/community/forum/install_configuration/set_startnode_when_browsing_in_browse_ini&lt;/a&gt;.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
persistent_data
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
Associative array of persistent data, will be posted back.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
permission
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;

This parameter can be used to make only certain nodes selectable, based on the permission system. It must be a policy array that, together with the object ID of each node in the content browser, can be passed to the content/access fetch function. The fetch function will return if access is granted or not. If not, the node won&apos;t be selectable.&lt;br /&gt;Example value: array( &apos;access&apos; =&amp;gt; &apos;create&apos;, &apos;contentclass_id&apos; =&amp;gt; $class-&amp;gt;attribute( &apos;id&apos; ) ). Only nodes under which the current user can create objects of the class $class will be selectable.
&lt;/p&gt;

  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
top_level_nodes
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
browse_custom_action
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;tr&gt;

&lt;td valign=&quot;top&quot;&gt;  
&lt;p&gt;
custom_action_data
&lt;/p&gt;

  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;td valign=&quot;top&quot;&gt;  &amp;nbsp;
  &lt;/td&gt;

&lt;/tr&gt;

&lt;/table&gt;
</description>
    </item>
    <item>
      <pubDate>Tue, 19 Aug 2008 10:09:56 GMT</pubDate>
      <title>Marc MEBTOUCHE</title><link>http://ezpedia.org/wiki/ez/marc_mebtouche</link>
      <description></description>
    </item>
    <item>
      <pubDate>Wed, 09 Jul 2008 13:40:43 GMT</pubDate>
      <title>Writing database implementation independant code</title><link>http://ezpedia.org/wiki/ez/writing_database_implementation_independant_code</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;&lt;a name=&quot;eztoc277068_1&quot; id=&quot;eztoc277068_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Use the API of the database handlers&lt;/h2&gt;&lt;a name=&quot;eztoc277068_2&quot; id=&quot;eztoc277068_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Common mistakes in SQL&lt;/h2&gt;&lt;a name=&quot;eztoc277068_2_1&quot; id=&quot;eztoc277068_2_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Quoting literal string values&lt;/h3&gt;
&lt;p&gt;
Use single quotes ( &apos; ) to quote literal string values, not double quotes ( &amp;quot; ). Certain database servers interpret a double quote as an identifier quote character.
&lt;/p&gt;
&lt;a name=&quot;eztoc277068_2_1_1&quot; id=&quot;eztoc277068_2_1_1&quot;&gt;&lt;/a&gt;&lt;h4&gt;Example&lt;/h4&gt;
&lt;p&gt;
Wrong:
&lt;/p&gt;
	&lt;pre class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;UPDATE&lt;/span&gt; ezcontentobject &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SET&lt;/span&gt; name=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Foo&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; id=&lt;span style=&quot;color: #cc66cc;&quot;&gt;500&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Right:
&lt;/p&gt;
	&lt;pre class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;UPDATE&lt;/span&gt; ezcontentobject &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SET&lt;/span&gt; name=&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;Foo&apos;&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; id=&lt;span style=&quot;color: #cc66cc;&quot;&gt;500&lt;/span&gt;;&lt;/pre&gt;&lt;a name=&quot;eztoc277068_2_1_2&quot; id=&quot;eztoc277068_2_1_2&quot;&gt;&lt;/a&gt;&lt;h4&gt;MySQL&lt;/h4&gt;
&lt;p&gt;
By default MySQL allows double quotes to quote literal string values. However, you can turn on the ANSI_QUOTES &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html&quot; target=&quot;_self&quot;&gt;SQL mode&lt;/a&gt; to make sure MySQL treats a double quote as an identifier quote character.
&lt;/p&gt;
&lt;a name=&quot;eztoc277068_2_2&quot; id=&quot;eztoc277068_2_2&quot;&gt;&lt;/a&gt;&lt;h3&gt;Aliases for columns and tables&lt;/h3&gt;
&lt;p&gt;
Columns should be aliased with the AS keyword (example 1), tables should NOT be aliased with the AS keyword (example 2).
&lt;/p&gt;
&lt;a name=&quot;eztoc277068_2_2_1&quot; id=&quot;eztoc277068_2_2_1&quot;&gt;&lt;/a&gt;&lt;h4&gt;Example 1&lt;/h4&gt;
&lt;p&gt;
Wrong:
&lt;/p&gt;
	&lt;pre class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; COUNT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;*&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; row_count &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; ezcontentobject;&lt;/pre&gt;
&lt;p&gt;
Right:
&lt;/p&gt;
	&lt;pre class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; COUNT&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;*&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;AS&lt;/span&gt; row_count &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; ezcontentobject;&lt;/pre&gt;&lt;a name=&quot;eztoc277068_2_2_2&quot; id=&quot;eztoc277068_2_2_2&quot;&gt;&lt;/a&gt;&lt;h4&gt;Example 2&lt;/h4&gt;
&lt;p&gt;
Wrong:
&lt;/p&gt;
	&lt;pre class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; o.id, u.name &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; ezcontentobject &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;AS&lt;/span&gt; o, ezcontentobject &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;AS&lt;/span&gt; u &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; u.id=o.owner_id;&lt;/pre&gt;
&lt;p&gt;
Right:
&lt;/p&gt;
	&lt;pre class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; o.id, u.name &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; ezcontentobject o, ezcontentobject u &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; u.id=o.owner_id;&lt;/pre&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 31 May 2008 08:37:44 GMT</pubDate>
      <title>Troubleshooting extensions</title><link>http://ezpedia.org/wiki/ez/troubleshooting_extensions</link>
      <description>
&lt;p&gt;
You might have to double check certain things when an extension does not seem to work.
&lt;/p&gt;
&lt;a name=&quot;eztoc264775_1&quot; id=&quot;eztoc264775_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Whitespace in INI files&lt;/h2&gt;
&lt;p&gt;
The INI system does not automatically trim values, so any trailing whitespace behind a setting value will be part of the value.
&lt;/p&gt;

&lt;p&gt;
Consider an extension called &amp;quot;myextension&amp;quot; containing template operators. In the site.ini.append.php of the extension, you will find something like this:
&lt;/p&gt;
	&lt;pre class=&quot;ini&quot;&gt;&lt;span style=&quot;color: #000066; font-weight:bold;&quot;&gt;&lt;span style=&quot;&quot;&gt;&amp;#91;&lt;/span&gt;TemplateSettings&lt;span style=&quot;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
ExtensionAutoloadPath&lt;span style=&quot;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&amp;#93;&lt;/span&gt;=myextension&lt;/pre&gt;
&lt;p&gt;
This will instruct the template system to look for a file extension/ezxajax/autoloads/eztemplateautoload.php. In this file, there&apos;s information on which classes in the extension contain which template operators.
&lt;/p&gt;

&lt;p&gt;
However, if there is a space behind ExtensionAutoloadPath[]=myextension, it will try to find the file &amp;quot;extension/myextension /autoloads/eztemplateautoload.php&amp;quot;, which of course does not exists.
&lt;/p&gt;
&lt;a name=&quot;eztoc264775_2&quot; id=&quot;eztoc264775_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Setting arrays being cleared by other INI files&lt;/h2&gt;
&lt;p&gt;
Consider the following code:
&lt;/p&gt;
	&lt;pre class=&quot;ini&quot;&gt;TemplateSettings&lt;span style=&quot;&quot;&gt;&amp;#93;&lt;/span&gt;
ExtensionAutoloadPath&lt;span style=&quot;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&amp;#93;&lt;/span&gt;
ExtensionAutoloadPath&lt;span style=&quot;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&amp;#93;&lt;/span&gt;=myextension&lt;/pre&gt;
&lt;p&gt;
ExtensionAutoloadPath[] will re-initialize the setting again as an array, and any items added to the array in previously loaded setting files are lost.
&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 23 May 2008 06:27:57 GMT</pubDate>
      <title>Solution: Add Location to Object / Add Usergroup to User</title><link>http://ezpedia.org/wiki/ez/solution_add_location_to_object_add_usergroup_to_user</link>
      <description>
&lt;p&gt;
This function allows adding a location to an extisting object even adds a usergroup to an existing user. The Code was taken and modified from kernel/content/action.php where it says &amp;quot; if ( $module-&amp;gt;isCurrentAction( &apos;AddAssignment&apos; ) )&amp;quot;
&lt;/p&gt;
	&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**
  * Adds User to the chosen Usergroup
  * objectID=UserobjectID
  * newNodeID=usergroupNodeID
  * @param integer $objectID
  * @param unknown_type $newNodeID
  */&lt;/span&gt;
 &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; addLocation&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$objectID&lt;/span&gt;,&lt;span style=&quot;color: #0000ff;&quot;&gt;$newNodeID&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
 &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//$selectedNodeIDArray = eZContentBrowse::result( &apos;AddNodeAssignment&apos; );&lt;/span&gt;
  eZDebug::&lt;span style=&quot;color: #006600;&quot;&gt;writeDebug&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;LocationAdd: objectID&amp;quot;&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$objectID&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;newNodeID: &amp;quot;&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$newNodeID&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
   &lt;span style=&quot;color: #0000ff;&quot;&gt;$object&lt;/span&gt; = eZContentObject::&lt;span style=&quot;color: #006600;&quot;&gt;fetch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$objectID&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
   &lt;span style=&quot;color: #0000ff;&quot;&gt;$nodeID&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;main_node_id&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
   &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//$version = $object-&amp;gt;currentVersion();&lt;/span&gt;
  &lt;span style=&quot;color: #0000ff;&quot;&gt;$ini&lt;/span&gt; = eZINI::&lt;span style=&quot;color: #006600;&quot;&gt;instance&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
  &lt;span style=&quot;color: #0000ff;&quot;&gt;$userClassID&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$ini&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;variable&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;UserSettings&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;UserClassID&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
  &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// $node = eZContentObjectTreeNode::fetch( $nodeID );&lt;/span&gt;
  &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeIDArray&lt;/span&gt; = &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$newNodeID&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt; = eZContentObjectTreeNode::&lt;span style=&quot;color: #006600;&quot;&gt;fetch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeIDArray&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
  &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; !&lt;a href=&quot;http://www.php.net/is_array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeIDArray&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeIDArray&lt;/span&gt; = &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$nodeAssignmentList&lt;/span&gt; = eZNodeAssignment::&lt;span style=&quot;color: #006600;&quot;&gt;fetchForObject&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$objectID&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;current_version&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$assignedNodes&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;assignedNodes&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$parentNodeIDArray&lt;/span&gt; = &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$setMainNode&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$hasMainNode&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$assignedNodes&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$assignedNode&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$assignedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;is_main&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;$hasMainNode&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt;;
&amp;nbsp;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;$append&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
            &lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$nodeAssignmentList&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$nodeAssignment&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$nodeAssignment&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;parent_node&apos;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; == &lt;span style=&quot;color: #0000ff;&quot;&gt;$assignedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;parent_node_id&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$append&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt;;
                    &lt;span style=&quot;color: #b1b100;&quot;&gt;break&lt;/span&gt;;
                &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$append&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;$parentNodeIDArray&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$assignedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;parent_node_id&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; !&lt;span style=&quot;color: #0000ff;&quot;&gt;$hasMainNode&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;$setMainNode&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$existingNode&lt;/span&gt; = eZContentObjectTreeNode::&lt;span style=&quot;color: #006600;&quot;&gt;fetch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$nodeID&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$mainNodeID&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$existingNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;main_node_id&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$objectName&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;name&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$db&lt;/span&gt; = eZDB::&lt;span style=&quot;color: #006600;&quot;&gt;instance&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$db&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;begin&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$locationAdded&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt; = eZContentObjectTreeNode::&lt;span style=&quot;color: #006600;&quot;&gt;fetch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$nodeID&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeIDArray&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeID&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; !&lt;a href=&quot;http://www.php.net/in_array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;in_array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeID&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$parentNodeIDArray&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;$parentNode&lt;/span&gt; = eZContentObjectTreeNode::&lt;span style=&quot;color: #006600;&quot;&gt;fetch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeID&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;$parentNodeObject&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$parentNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;object&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
                &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/*$canCreate = ( ( $parentNode-&amp;gt;checkAccess( &apos;create&apos;, $class-&amp;gt;attribute( &apos;id&apos; ), $parentNodeObject-&amp;gt;attribute( &apos;contentclass_id&apos; ) ) == 1 ) ||
                               ( $parentNode-&amp;gt;canAddLocation() &amp;amp;&amp;amp; $node-&amp;gt;canRead() ) );*/&lt;/span&gt;
                &lt;span style=&quot;color: #0000ff;&quot;&gt;$canCreate&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt;;
&amp;nbsp;
                &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$canCreate&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$insertedNode&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;addLocation&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$selectedNodeID&lt;/span&gt;, &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
                    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Now set is as published and fix main_node_id&lt;/span&gt;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$insertedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;contentobject_is_published&apos;&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$insertedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;main_node_id&apos;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;main_node_id&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$insertedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setAttribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;contentobject_version&apos;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$node&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;contentobject_version&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
                    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Make sure the url alias is set updated.&lt;/span&gt;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$insertedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;updateSubTreePath&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$insertedNode&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;sync&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
                    &lt;span style=&quot;color: #0000ff;&quot;&gt;$locationAdded&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;true&lt;/span&gt;;
                &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$locationAdded&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;contentclass_id&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; == &lt;span style=&quot;color: #0000ff;&quot;&gt;$userClassID&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
                eZUser::&lt;span style=&quot;color: #006600;&quot;&gt;cleanupCache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$db&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;commit&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//include_once( &apos;kernel/classes/ezcontentcachemanager.php&apos; );&lt;/span&gt;
        eZContentCacheManager::&lt;span style=&quot;color: #006600;&quot;&gt;clearContentCacheIfNeeded&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$objectID&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
 &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Works with ezpublish version 4.x
&lt;/p&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 14 Mar 2008 06:31:35 GMT</pubDate>
      <title>Lorem ipsum</title><link>http://ezpedia.org/wiki/ez/lorem_ipsum</link>
      <description>
&lt;p&gt;
For a general descriptiion of Lorem ipsum, we recommend &lt;a href=&quot;http://en.wikipedia.org/wiki/Lorem_ipsum&quot; target=&quot;_self&quot;&gt;Lorem ipsum on Wikipedia&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
There is an eZ Publish extension called &lt;a href=&quot;http://svn.ez.no/svn/extensions/contentgenerate&quot; target=&quot;_self&quot;&gt;loremipsum&lt;/a&gt; to generate objects with a lorem ipsum placeholder text in batch.
&lt;/p&gt;
&lt;a name=&quot;eztoc247574_1&quot; id=&quot;eztoc247574_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/how_to_handle_a_big_tree_of_products&quot; target=&quot;_self&quot;&gt;How to handle a big tree of products&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/new_script_cli_version_of_lorem_ipsum&quot; target=&quot;_self&quot;&gt;New Script, CLI version of Lorem Ipsum&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 04 Feb 2008 23:11:45 GMT</pubDate>
      <title>Solution: How to handle Information Collection in template.</title><link>http://ezpedia.org/wiki/ez/solution_how_to_handle_information_collection_in_template</link>
      <description>&lt;a name=&quot;eztoc237959_1&quot; id=&quot;eztoc237959_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Solution&lt;/h2&gt;
&lt;p&gt;
This piece of template code iterating the already stored and collected information has only the purpose of demonstration.
&lt;/p&gt;
	&lt;pre class=&quot;eztemplate&quot;&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;def &lt;span style=&quot;&quot;&gt;$collection&lt;/span&gt;=&lt;a href=&quot;http://ez.no/doc/content/advancedsearch?SearchText=fetch&amp;SearchSectionID=5&quot;&gt;&lt;span style=&quot;color: #008000;&quot;&gt;fetch&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;content&apos;&lt;/span&gt;,&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;collected_info_list&apos;&lt;/span&gt;, &lt;a href=&quot;http://ez.no/doc/content/advancedsearch?SearchText=hash&amp;SearchSectionID=5&quot;&gt;&lt;span style=&quot;color: #804040;&quot;&gt;hash&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;object_id&apos;&lt;/span&gt;, &lt;span style=&quot;&quot;&gt;$obj&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;foreach &lt;span style=&quot;&quot;&gt;$collection&lt;/span&gt; as &lt;span style=&quot;&quot;&gt;$col&lt;/span&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;$col&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;creator&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;contentobject&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;name&lt;/span&gt;|wash&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;{* name of the user who stored something into the i.c. *}&lt;/span&gt;
  &lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;foreach &lt;span style=&quot;&quot;&gt;$col&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;attributes&lt;/span&gt; as &lt;span style=&quot;&quot;&gt;$colAttr&lt;/span&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;$colAttr&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;contentclass_attribute_name&lt;/span&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt;
     &lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;a href=&quot;http://ez.no/doc/content/advancedsearch?SearchText=attribute_result_gui&amp;SearchSectionID=5&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;attribute_result_gui&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;&quot;&gt;view=&lt;/span&gt;info &lt;span style=&quot;&quot;&gt;attribute=&lt;/span&gt;&lt;span style=&quot;&quot;&gt;$colAttr&lt;/span&gt;&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;/foreach&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#123;&lt;/span&gt;/foreach&lt;span style=&quot;color: #D36900;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 08 Jan 2008 20:30:19 GMT</pubDate>
      <title>red5</title><link>http://ezpedia.org/wiki/ez/red5</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;&lt;a name=&quot;eztoc231445_1&quot; id=&quot;eztoc231445_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Doc: &lt;a href=&quot;http://ez.no/doc/extensions/ez_flow&quot; target=&quot;_self&quot;&gt;eZ Flow&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Doc: &lt;a href=&quot;/wiki/fr/../../../ez/ez_flow_red5_installation_on_mac_os_x_intel_10_4_11_with_xampp_for_macos_x_0_7_0_7_october_2007&quot; target=&quot;_self&quot;&gt;eZ Flow, Red5 installation on MAC OS X Intel 10.4.11 with XAMPP for MacOS X 0.7.0, 7. October 2007&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Blog: &lt;a href=&quot;http://wascou.org/eng/blog/red5_documentation_addon&quot; target=&quot;_self&quot;&gt;Red5 documentation addon&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 07 Jan 2008 05:42:51 GMT</pubDate>
      <title>iframe</title><link>http://ezpedia.org/wiki/ez/iframe</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
You can use an iframe to embed an external web page within eZ Publish
&lt;/p&gt;
&lt;a name=&quot;eztoc231084_1&quot; id=&quot;eztoc231084_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/opening_up_external_url_inside_ez_cms#msg156315&quot; title=&quot;Posted by: Heath: Hello Andrew,  Welcome to the eZ Ecosystem,  I&apos;ve not heard or seen a way to &apos;view&apos; an external website within eZ Publish without custom code.  Though you should be able to use an iframe / frame within a custom template to accomplish this goal.  Here are a few similar threads... &amp;lt;i&amp;gt;http://ez.no/developer/forum/setup_design/external_site_in_ezpublish_cms http://ez.no/developer/fo...&quot; target=&quot;_self&quot;&gt;Opening up external url inside ez CMS&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/setup_design/external_site_in_ezpublish_cms&quot; target=&quot;_self&quot;&gt;External site in ezpublish cms&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/comments_on_webmail_wanted&quot; target=&quot;_self&quot;&gt;Comments on webmail wanted&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/general/browsing_a_ftp_http_folder_in_a_view&quot; target=&quot;_self&quot;&gt;Browsing a ftp http folder in a view&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/extension_to_manipulate_an_external_php_application&quot; target=&quot;_self&quot;&gt;extension to manipulate an external php application&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/setup_design/how_to_setup_frames&quot; target=&quot;_self&quot;&gt;How to setup frames&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/setup_design/using_frames_flash_and_google_issues&quot; target=&quot;_self&quot;&gt;Using frames flash and google issues&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/php_integration&quot; target=&quot;_self&quot;&gt;PHP integration&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/an_unique_module_with_results_from_various_modules&quot; target=&quot;_self&quot;&gt;A unique module with results from various modules&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 17 Dec 2007 10:09:26 GMT</pubDate>
      <title>ezimagealiashandler</title><link>http://ezpedia.org/wiki/ez/ezimagealiashandler</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;&lt;a name=&quot;eztoc226754_1&quot; id=&quot;eztoc226754_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;
This eZ Publish kernel class provides for the simple PHP based interphase to fetch an original image alias and image alias properties (uri, width, height, etc).
&lt;/p&gt;

&lt;p&gt;
Detailed examples of the methods provided by this class are available within the API documentation. 
&lt;/p&gt;

&lt;p&gt;
Brief examples of how to use the class methods are provided in the following solution reference documentation.
&lt;/p&gt;
&lt;a name=&quot;eztoc226754_1_1&quot; id=&quot;eztoc226754_1_1&quot;&gt;&lt;/a&gt;&lt;h3&gt;Details&lt;/h3&gt;
&lt;p&gt;
Internal manager for the &lt;a href=&quot;http://pubsvn.ez.no/doxygen/trunk/html/classeZImage.html&quot; target=&quot;_self&quot;&gt;eZImage&lt;/a&gt; datatype. 
&lt;/p&gt;

&lt;p&gt;
Takes care of image conversion and serialization from and to the internal XML format.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;Note:&lt;/b&gt;This handler was introduced in eZ Publish 3.3 and will detect older &lt;a href=&quot;http://pubsvn.ez.no/doxygen/trunk/html/classeZImage.html&quot; target=&quot;_self&quot;&gt;eZImage&lt;/a&gt; structures and convert them on the fly.
&lt;/p&gt;

&lt;p&gt;
The XML storage was improved in 3.8, from then it always stores the attribute ID, version and language in the &amp;lt;original&amp;gt; tag. This was required to get the new multi-language features to work. 
&lt;/p&gt;
&lt;a name=&quot;eztoc226754_2&quot; id=&quot;eztoc226754_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Doc: &lt;a href=&quot;http://pubsvn.ez.no/doxygen/trunk/html/classeZImageAliasHandler.html&quot; target=&quot;_self&quot;&gt;Kernel Class API, eZImageAliasHandler&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;/wiki/fr/ez/solution_fetching_ezimage_datatype_image_alias_properties_using_php&quot; target=&quot;_self&quot;&gt;Solution: Fetching ezimage datatype image alias properties using PHP&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/suggestions/new_image_system&quot; target=&quot;_self&quot;&gt;New image system&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Doc: Reference: &lt;a href=&quot;http://ez.no/doc/ez_publish/technical_manual/3_10/reference/objects/ezimagealiashandler&quot; target=&quot;_self&quot;&gt;ezimagealiashandler&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/developer/import_image_into_existing_class&quot; target=&quot;_self&quot;&gt;Import image into existing class&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;Forum: &lt;a href=&quot;http://ez.no/developer/forum/general/displaying_custom_class_images_ezimagealiashandler&quot; target=&quot;_self&quot;&gt;displaying custom class images ezimagealiashandler&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 17 Dec 2007 10:05:11 GMT</pubDate>
      <title>Solution: Fetching ezimage datatype image alias properties using PHP</title><link>http://ezpedia.org/wiki/ez/solution_fetching_ezimage_datatype_image_alias_properties_using_php</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;&lt;a name=&quot;eztoc226750_1&quot; id=&quot;eztoc226750_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;
Did you know that you can use the eZ Publish kernel api to obtain image alias properties from content object attributes which use the ezimage datatype.
&lt;/p&gt;
&lt;a name=&quot;eztoc226750_2&quot; id=&quot;eztoc226750_2&quot;&gt;&lt;/a&gt;&lt;h2&gt;Example&lt;/h2&gt;
&lt;p&gt;
This is a simple php example of how you may use the eZ Publish kernel api to obtain image alias properties. This example comes from a simple example custom module view.
&lt;/p&gt;
	&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**
 * File image.php
 *
 * @package image.php
 * @version //autogentag//
 * @copyright Copyright (C) 2007 Brookins Consulting. All rights reserved.
 * @license http://www.gnu.org/licenses/gpl.txt GPL License
 */&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$Module&lt;/span&gt; =&amp;amp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$Params&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;Module&apos;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// START&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Assume this type of module/view url:&lt;/span&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// www.site.com/myextension/mymodule/myview/1234&lt;/span&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 1234 maps to the view parameter, MyNode (eg: $Params[&amp;quot;MyNode&amp;quot;])&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 0. Include the necessary files -- I would imagine that some are include&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;lib/ezdb/classes/ezdb.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;lib/ezutils/classes/ezfunctionhandler.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;lib/ezutils/classes/ezoperationhandler.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;lib/ezutils/classes/ezhttptool.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;kernel/common/template.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;kernel/classes/ezcontentclass.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;kernel/classes/ezpreferences.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;kernel/classes/datatypes/ezimage/ezimage.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;kernel/classes/datatypes/ezurl/ezurl.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;kernel/classes/datatypes/ezurl/ezurlobjectlink.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 1. Create an instance of the database&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$db&lt;/span&gt; =&amp;amp; eZDB::&lt;span style=&quot;color: #006600;&quot;&gt;instance&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 2. Query the node via node id&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node&lt;/span&gt; =&amp;amp; eZContentObject::&lt;span style=&quot;color: #006600;&quot;&gt;fetchByNodeID&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$Params&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;MyNode&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// $my_node =&amp;amp; eZContentObject::fetchByNodeID( &apos;86&apos; );&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 3. Get a copy of the data_map&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_data_map&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;fetchDataMap&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 4. Get a reference to the image&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_data_map&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;image&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// $my_node_image_data = $my_node_image-&amp;gt;DataText;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Example Usage of the eZ Image Alias Handler Class / System&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;include_once&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;kernel/classes/datatypes/ezimage/ezimagealiashandler.php&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 5. Fetch Alias Handler&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$image_alias_handler&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; eZImageAliasHandler&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 6. Fetch Alias Attributes*&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 7. Fetch Original Image Path as URI&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image_uri&lt;/span&gt; =  &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt; . &lt;span style=&quot;color: #0000ff;&quot;&gt;$image_alias_handler&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attributeFromOriginal&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;url&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 8. Fetch Original Image Dimentions&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image_width&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$image_alias_handler&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attributeFromOriginal&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;width&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image_height&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$image_alias_handler&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attributeFromOriginal&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;height&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 9. Get the associated link&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_link_object&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_data_map&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;my_link&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_link_url_object&lt;/span&gt; = eZURL::&lt;span style=&quot;color: #006600;&quot;&gt;fetch&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_link_object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DataInt&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_link_url&lt;/span&gt;=&lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;+&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_link_url_object&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attribute&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;url&apos;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 10. Instantiate the template and set the template vars&lt;/span&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$tpl&lt;/span&gt; =&amp;amp; templateInit&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$tpl&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setVariable&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;parameters&apos;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$Params&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$tpl&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setVariable&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;my_node_image_path&apos;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image_uri&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$tpl&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setVariable&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;my_node_image_width&apos;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image_width&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$tpl&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setVariable&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;my_node_image_height&apos;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_image_height&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$tpl&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;setVariable&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&apos;my_node_link_url&apos;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$my_node_link_url&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// END&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// phpinfo();&lt;/span&gt;
eZExecution::&lt;span style=&quot;color: #006600;&quot;&gt;cleanExit&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;a name=&quot;eztoc226750_3&quot; id=&quot;eztoc226750_3&quot;&gt;&lt;/a&gt;&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;/wiki/fr/ez/ezimagealiashandler&quot; target=&quot;_self&quot;&gt;ezimagealiashandler&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 10 Dec 2007 07:25:01 GMT</pubDate>
      <title>Zend</title><link>http://ezpedia.org/wiki/ez/zend</link>
      <description>&lt;a name=&quot;eztoc225507_1&quot; id=&quot;eztoc225507_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Related extensions&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;Zend Platform
&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;http://ez.no/developer/contribs/3rd_party/zend_download_server_extension&quot; target=&quot;_self&quot;&gt;Download Server Extension&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;http://ez.no/developer/contribs/3rd_party/zend_platform_extension&quot; target=&quot;_self&quot;&gt;Zend Cache Extension&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;Zend Studio/Neon
&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;http://ez.no/developer/contribs/3rd_party/ez_publish_zend_neon_conding_standard_profile&quot; target=&quot;_self&quot;&gt;Coding Standard Profile&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://ez.no/developer/contribs/3rd_party/ezpublish_template_code_for_zend_studio&quot; target=&quot;_self&quot;&gt;Template code for Zend Studio&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 10 Dec 2007 06:34:38 GMT</pubDate>
      <title>JavaScript</title><link>http://ezpedia.org/wiki/ez/javascript</link>
      <description>
&lt;div class=&quot;object-center&quot;&gt;
&lt;p&gt;
Ceci est un article &lt;a href=&quot;/wiki/fr/templates/stub&quot;&gt;Stub&lt;/a&gt;. Aidez la communauté: développez-le.
&lt;/p&gt;
&lt;/div&gt;&lt;a name=&quot;eztoc225503_1&quot; id=&quot;eztoc225503_1&quot;&gt;&lt;/a&gt;&lt;h2&gt;Related extensions&lt;/h2&gt;
&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;http://ez.no/developer/contribs/template_plugins/trim_new_line_template_operator&quot; target=&quot;_self&quot;&gt;Trim new line template operator&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Fri, 07 Dec 2007 19:32:40 GMT</pubDate>
      <title>eZ Flow, Red5 installation on MAC OS X Intel 10.4.11 with XAMPP for MacOS X 0.7.0, 7. October 2007</title><link>http://ezpedia.org/wiki/ez/ez_flow_red5_installation_on_mac_os_x_intel_10_4_11_with_xampp_for_macos_x_0_7_0_7_october_2007</link>
      <description>
&lt;p&gt;
If you want to install it on Mac, download the .dmg, click and install, then go into Applications, Red5 and click the Red5.app or Red5 (with the Red5 icon) to start it. 
&lt;/p&gt;

&lt;p&gt;
If you use XAMPP on MAC go into /Applications/xampp/etc/httpd.conf, add
&lt;/p&gt;
	&lt;pre class=&quot;apache&quot;&gt;&lt;span style=&quot;color: #00007f;&quot;&gt;Alias&lt;/span&gt; /red5 /Applications/Red5/webapps/test/streams
&amp;lt;Directory &lt;span style=&quot;color: #7f007f;&quot;&gt;&amp;quot;/Applications/Red5/webapps/test/streams&amp;quot;&lt;/span&gt;&amp;gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;AllowOverride&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;None&lt;/span&gt;
&lt;span style=&quot;color: #00007f;&quot;&gt;Options&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;None&lt;/span&gt; 
&lt;span style=&quot;color: #00007f;&quot;&gt;Order&lt;/span&gt; &lt;span style=&quot;color: #00007f;&quot;&gt;allow&lt;/span&gt;,&lt;span