<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6313102056007382496</atom:id><lastBuildDate>Mon, 11 Jul 2016 09:42:45 +0000</lastBuildDate><category>release</category><category>example</category><title>phpQuery blog</title><description>jQuery port to PHP</description><link>http://phpquery-library.blogspot.com/</link><managingEditor>noreply@blogger.com (Tobiasz Cudnik)</managingEditor><generator>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-8853428117188909742</guid><pubDate>Wed, 15 Apr 2009 12:28:00 +0000</pubDate><atom:updated>2009-04-17T03:20:36.224-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">release</category><title>New release - phpQuery 0.9.5 RC2</title><description>&lt;p&gt;Second Release Candidate is &lt;a href=&#39;http://code.google.com/p/phpquery/downloads/list&#39;&gt;available for download&lt;/a&gt;. There are couple of reasons for not marking it as stable, although this version is really a candidate and will hopefully became stable without any modifications.&lt;/p&gt;

&lt;p&gt;Besides many bugfixes, there are also some new features in this release, but those are only significant ones.&lt;/p&gt;

&lt;h4&gt;Noteworthy&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#39;http://code.google.com/p/phpquery/issues/detail?id=92&amp;can=1&#39;&gt;Mutation events&lt;/a&gt;&lt;/strong&gt; New DOMNodeInserted and DOMNodeRemoved, part of &lt;a href=&#39;http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents&#39;&gt;W3C standards&lt;/a&gt;, are now available and automatically triggered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#39;http://code.google.com/p/phpquery/issues/detail?id=97&amp;can=1&#39;&gt;getJSON method&lt;/a&gt;&lt;/strong&gt; This really important method (from mashup point of view) is now available and supports JSONP datasources.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#39;http://code.google.com/p/phpquery/issues/detail?id=97&amp;can=1&#39;&gt;data() methods&lt;/a&gt;&lt;/strong&gt; Internal datastore per node allows easier manipulation and data exchange.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#39;http://code.google.com/p/phpquery/issues/detail?id=86&amp;can=1&#39;&gt;Charset conversion for HTML&lt;/a&gt;&lt;/strong&gt; jbondc commited a patch to convert charset during document load (using mbstring). Right now it works only for HTML, other cases are scheduled for v1.1.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;PEAR server&lt;/h4&gt;
&lt;p&gt;PEAR installation is finally available. It&#39;s the fastest and most comfortable method to install phpQuery system-wide. Just type those 2 commands as privileged user:&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;bash&quot;&gt;
pear channel-discover phpquery-pear.appspot.com
pear install phpquery/phpQuery
&lt;/pre&gt;
&lt;p&gt;After that only thing you need to do is:&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;
require &quot;phpQuery.php&quot;;
&lt;/pre&gt;

&lt;h4&gt;Linux packages&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Both DEB and RPM packagages are now available.&lt;/strong&gt; Those packages doesn&#39;t interfere with PEAR package.&lt;/p&gt;

&lt;h4&gt;Donations&lt;/h4&gt;
&lt;p&gt;As project almost reached it&#39;s first stable release and it&#39;s quite feature-complete, &lt;strong&gt;i&#39;ve decided to open it for donations&lt;/strong&gt;. If you&#39;re using it in your own project, maybe planning to do it with next one, waiting for one of many &lt;a href=&#39;http://code.google.com/p/phpquery/issues/list?q=label%3AEnhancement&amp;can=2&amp;sort=milestone&#39;&gt;planned features&lt;/a&gt; or just like the idea of more JavaScript-like server-side, &lt;strong&gt;please consider 10$ donation to support phpQuery development&lt;/strong&gt;. All amounts are appreciated!&lt;/p&gt;
&lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;encrypted&quot; value=&quot;-----BEGIN PKCS7-----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-----END PKCS7-----
&quot;&gt;
&lt;input type=&quot;image&quot; src=&quot;https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;PayPal - The safer, easier way to pay online!&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://www.paypal.com/pl_PL/i/scr/pixel.gif&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;
&lt;/form&gt;

&lt;h4&gt;Twitter&lt;/h4&gt;
&lt;p&gt;Since some time you can &lt;a href=&#39;http://twitter.com/phpQuery&#39;&gt;follow phpQuery development on Twitter&lt;/a&gt;. Posted messages contain such informations as new commits (with log), new issues, comments on issues and also this blog posts. All of them are directly linked to proper URL.&lt;/p&gt;

&lt;h4&gt;Full Changelog&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;added data() and removeData()&lt;/li&gt;
&lt;li&gt;fixed hardcoded charsets in contentTypes&lt;/li&gt;
&lt;li&gt;fixed $context as array in find()&lt;/li&gt;
&lt;li&gt;fixed PHP 5.3 closure compatibility in filter()&lt;/li&gt;
&lt;li&gt;fixed filter callback result interpretation&lt;/li&gt;
&lt;li&gt;fixed queries when stack was XML root&lt;/li&gt;
&lt;li&gt;fixed sibling methods for textnodes&lt;/li&gt;
&lt;li&gt;fixed attr() with empty stack&lt;/li&gt;
&lt;li&gt;fixed redundant phpQuery::$documents bindings&lt;/li&gt;
&lt;li&gt;fixed phpQuery::callbackRun() in PHP 5.3&lt;/li&gt;
&lt;li&gt;filter() detects instances of Callback class&lt;/li&gt;
&lt;li&gt;fix for proper query roots&lt;/li&gt;
&lt;li&gt;small fix in google_login script&lt;/li&gt;
&lt;li&gt;improved dumpTree()&lt;/li&gt;
&lt;li&gt;fixed loading HTML with nested xml namespace declaration&lt;/li&gt;
&lt;li&gt;fixed parseJSON() encoding issues&lt;/li&gt;
&lt;li&gt;added getJSON() with JSONP support&lt;/li&gt;
&lt;li&gt;added WebBrowser per event callback support&lt;/li&gt;
&lt;li&gt;added phpQuery::extend&lt;/li&gt;
&lt;li&gt;added __callStatic for phpQuery class static plugins namespace (PHP 5.3)&lt;/li&gt;
&lt;li&gt;fixed document references in phpQuery::getDocumentID&lt;/li&gt;
&lt;li&gt;fixed DOMNode as first parameter in pq();&lt;/li&gt;
&lt;li&gt;added DOMNodeInserted and DOMNodeRemoved mutation events&lt;/li&gt;
&lt;li&gt;not() fixed for set of elements&lt;/li&gt;
&lt;li&gt;fixed trigger() static call error&lt;/li&gt;
&lt;li&gt;added named callbacks&lt;/li&gt;
&lt;li&gt;fixed val() for selects&lt;/li&gt;
&lt;li&gt;newInstance() supports raw markup&lt;/li&gt;
&lt;li&gt;new calback types&lt;/li&gt;
&lt;li&gt;added HTML load-time charset convertion (patch from jbondc)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Get newest version from &lt;a href=&#39;http://code.google.com/p/phpquery/downloads/list&#39;&gt;download page&lt;/a&gt;.&lt;/p&gt;</description><link>http://phpquery-library.blogspot.com/2009/04/new-release-phpquery-095-rc2.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>17</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-8345928140650080773</guid><pubDate>Thu, 11 Dec 2008 13:54:00 +0000</pubDate><atom:updated>2008-12-11T06:03:19.847-08:00</atom:updated><title>QueryTemplates - templating engine using phpQuery</title><description>&lt;p&gt;Introducing &lt;a href=&quot;http://code.google.com/p/querytemplates/&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;QueryTemplates&lt;/span&gt;&lt;/a&gt;, a completely new templating engine based on &lt;span style=&quot;font-weight: bold;&quot;&gt;phpQuery&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Quote from project page:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;PHP based templating engine creating reusable native templates in various languages.&lt;/p&gt;

&lt;p&gt;As for today, supported are following sources: HTML, XML, XHTML, PHP and PHP callbacks which can be processed into PHP or JavaScript template file.&lt;/p&gt;

&lt;p&gt;Library uses popular web 2.0 pattern load-traverse-modify thou jQuery like chainable API and provides developer several rapid template filling methods.&lt;/p&gt;

&lt;p&gt;Using QueryTemplates developer is independent from designer. He loads pure markup HTML/XML file(s), traverses using CSS selectors and modifies it, injecting data and logic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;strong&gt;Example code:&lt;/strong&gt;
&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;
template(&#39;output&#39;)
-&gt;sourceCollect(&#39;input.html&#39;)
-&gt;parse()
  -&gt;source(&#39;input.html&#39;)-&gt;returnReplace()
  -&gt;find(&#39;.my-div&#39;)
    -&gt;ifVar(&#39;showMyDiv&#39;)
    -&gt;find(&#39;ul &gt; li&#39;)
      -&gt;loopOne(&#39;data&#39;, &#39;row&#39;)
        -&gt;varsToSelector(&#39;row&#39;, $rowFields)
;
&lt;/pre&gt;
Library uses advanced phpQuery features like
&lt;ul&gt;&lt;li&gt;inheritance&lt;/li&gt;&lt;li&gt;callbacks&lt;/li&gt;&lt;li&gt;plugins&lt;/li&gt;&lt;/ul&gt;
There are many &lt;a href=&quot;http://code.google.com/p/querytemplates/wiki/Examples&quot;&gt;working examples&lt;/a&gt; of such templates on &lt;a href=&quot;http://code.google.com/p/querytemplates/&quot;&gt;official project page&lt;/a&gt;.</description><link>http://phpquery-library.blogspot.com/2008/12/querytemplates-templating-engine-using.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-4964364060386970743</guid><pubDate>Tue, 18 Nov 2008 19:48:00 +0000</pubDate><atom:updated>2008-11-19T09:22:34.173-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">release</category><title>New release - phpQuery 0.9.5 Beta4</title><description>&lt;p&gt;The fourth beta is mostly bugfix release and hopefully it&#39;s the last one before RC. Two most noticeable fixes are &lt;span style=&quot;font-weight: bold;&quot;&gt;multibyte characters support&lt;/span&gt; (for queries and DOM structure) and &lt;span style=&quot;font-weight: bold;&quot;&gt;fixed zip release package&lt;/span&gt;, which couldn&#39;t be extracted on case-insensitive filesystems.&lt;/p&gt;

&lt;p&gt;The is also new release package type - &lt;span style=&quot;font-weight: bold;&quot;&gt;All-in-One&lt;/span&gt;. It&#39;s for those who prefer one consistent file. Very important thing to notice - this package &lt;span style=&quot;font-weight: bold;&quot;&gt;doesn&#39;t include&lt;/span&gt; Zend Framework, used for HTTP Client. It means You have to have one on you own to use &lt;span style=&quot;font-weight: bold;&quot;&gt;Ajax&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Release is also available as &lt;span style=&quot;font-weight: bold;&quot;&gt;RPM&lt;/span&gt; package - normal and All-in-One version.&lt;/p&gt;
&lt;h4&gt;Changelog&lt;/h4&gt;
&lt;p&gt;
• fixed filename collision (win &amp;amp; macos)&lt;br /&gt;
• fixed &quot;&gt; .class&quot; selector&lt;br /&gt;
• fixed :not(selector) pseudoclass when selector is a pseudoclass&lt;br /&gt;
• fixed attribute matching in filter()&lt;br /&gt;
• fixed Ajax lowercased request method&lt;br /&gt;
• fixed selector filter in nextAll() and prevAll()&lt;br /&gt;
• added mbstring extension compatibility&lt;br /&gt;
• added context guessing when passing DOMNode to pq() as only param&lt;br /&gt;
• added downloadTo() method for WebBrowser&lt;br /&gt;
• added dash &quot;-&quot; as allowed tag character&lt;br /&gt;
• added phpQuery::$defaultDoctype&lt;br /&gt;
• added contentsUnwrap()&lt;br /&gt;
• added switchWith()&lt;br /&gt;
• get() now use callbacks for each returned element separately&lt;br /&gt;
• fixed foreach iteration&lt;br /&gt;
• fixed parents() with $selector&lt;br /&gt;
• fixed parents() for documentFragment&lt;br /&gt;
• fixed val() with $val == array&lt;br /&gt;
• fixed val() for select&lt;br /&gt;
• fixed val(0)&lt;br /&gt;
• fixed unloadDocuments()&lt;br /&gt;
• added fix_webroot script&lt;br /&gt;
• fixed change event triggering&lt;br /&gt;
• added change event for textarea&lt;br /&gt;
• fixed isHTML()&lt;br /&gt;
• fixed filter() and not() with multiply selectors and pseudoclasses&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;Get &lt;span style=&quot;font-weight: bold;&quot;&gt;phpQuery-0.9.5 Beta4&lt;/span&gt; from &lt;a href=&quot;http://code.google.com/p/phpquery/downloads/list&quot;&gt;Download section&lt;/a&gt;.&lt;/p&gt;</description><link>http://phpquery-library.blogspot.com/2008/11/new-release-phpquery-095-beta4.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-5083334736654282840</guid><pubDate>Tue, 21 Oct 2008 19:00:00 +0000</pubDate><atom:updated>2008-10-21T12:08:34.843-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">example</category><title>Basic example - demo.php</title><description>This example shows how to use basic functionality of phpQuery, such as:
&lt;ul&gt;&lt;li&gt;Document intialization&lt;/li&gt;&lt;li&gt;Querying document
&lt;/li&gt;&lt;li&gt;Filling with markup&lt;/li&gt;&lt;li&gt;Manipulating DOM&lt;/li&gt;&lt;li&gt;Selecting documents&lt;/li&gt;&lt;li&gt;Iterating with foreach&lt;/li&gt;&lt;li&gt;Printing output&lt;/li&gt;&lt;/ul&gt;Example file can also be found in all release packages.
&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;
require(&#39;phpQuery/phpQuery.php&#39;);

// INITIALIZE IT
// $doc = phpQuery::newDocumentHTML($markup);
// $doc = phpQuery::newDocumentXML();
// $doc = phpQuery::newDocumentFileXHTML(&#39;test.html&#39;);
// $doc = phpQuery::newDocumentFilePHP(&#39;test.php&#39;);
// $doc = phpQuery::newDocument(&#39;test.xml&#39;, &#39;application/rss+xml&#39;);
// this one defaults to text/html in utf8
$doc = phpQuery::newDocument(&#39;&amp;lt;div&amp;gt;&#39;);

// FILL IT
// array syntax works like -&amp;gt;find() here
$doc[&#39;div&#39;]-&amp;gt;append(&#39;&amp;lt;ul&amp;gt;&amp;lt;/ul&amp;gt;&#39;);
// array set changes inner html
$doc[&#39;div ul&#39;] = &#39;&amp;lt;li&amp;gt;1&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;2&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;3&amp;lt;/li&amp;gt;&#39;;

// MANIPULATE IT
// almost everything can be a chain
$li;
$doc[&#39;ul &amp;gt; li&#39;]
-&amp;gt;addClass(&#39;my-new-class&#39;)
-&amp;gt;filter(&#39;:last&#39;)
    -&amp;gt;addClass(&#39;last-li&#39;)
// save it anywhere in the chain
    -&amp;gt;toReference($li);

// SELECT IT
// pq(); is using selected document as default
phpQuery::selectDocument($doc);
// documents are selected when created, iterated or by above method
// query all unordered lists in last selected document
pq(&#39;ul&#39;)-&amp;gt;insertAfter(&#39;div&#39;);

// INTERATE IT
// all LIs from last selected DOM
foreach(pq(&#39;li&#39;) as $li) {
// iteration returns PLAIN dom nodes, NOT phpQuery objects
$tagName = $li-&amp;gt;tagName;
$childNodes = $li-&amp;gt;childNodes;
// so you NEED to wrap it within phpQuery, using pq();
pq($li)-&amp;gt;addClass(&#39;my-second-new-class&#39;);
}

// PRINT OUTPUT
// 1st way
print phpQuery::getDocument($doc-&amp;gt;getDocumentID());
// 2nd way
print phpQuery::getDocument(pq(&#39;div&#39;)-&amp;gt;getDocumentID());
// 3rd way
print pq(&#39;div&#39;)-&amp;gt;getDocument();
// 4th way
print $doc-&amp;gt;htmlOuter();
// 5th way
print $doc;
// another...
print $doc[&#39;ul&#39;];
&amp;lt;/div&amp;gt;
&lt;/pre&gt;</description><link>http://phpquery-library.blogspot.com/2008/10/basic-example-demophp.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-6958714850807287083</guid><pubDate>Fri, 17 Oct 2008 08:22:00 +0000</pubDate><atom:updated>2008-10-18T06:37:39.184-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">release</category><title>phpQuery 0.9.5 Beta2 released</title><description>&lt;p&gt;New major version is out! After much of rewriting old DOMDocument releated code, public release is &lt;a href=&quot;http://code.google.com/p/phpquery/downloads/list&quot;&gt;avaible for download&lt;/a&gt;. New code parts fixes many previous problems, but not only bugfixes cames with this version.&lt;/p&gt;
&lt;h4&gt;Noteworthy&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;New callback system&lt;/strong&gt;
More flexible callbacks allows you to control passed parameter order / values and also there is &lt;span style=&quot;font-weight: bold;&quot;&gt;CallbackReference&lt;/span&gt;, which passes callback parameter straight to reference. You can read more about callbacks in almost-up-to-date &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Callbacks&quot;&gt;wiki page&lt;/a&gt; or see some code in action &lt;a href=&quot;http://tobiasz123.wordpress.com/2008/10/05/phpquery-edits-its-own-wiki/&quot;&gt;here&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Console (CLI) interface&lt;/strong&gt;&lt;strong&gt;
&lt;/strong&gt;One of my favorite features, allowing web scraping right from console&lt;strong&gt;. &lt;/strong&gt;You can see some examples &lt;a href=&quot;http://tobiasz123.wordpress.com/2008/10/05/web-scraping-with-cli-version-of-phpquery-piped-with-sed/&quot;&gt;here&lt;/a&gt;. There is also &lt;span style=&quot;font-weight: bold;&quot;&gt;RPM package&lt;/span&gt; available.&lt;strong&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML, XHTML and PHP files support&lt;/strong&gt;
There are dedicated methods for loading all type of documents (HTML, XHTML, XML) and one for autodetected content. Everything basses on content-type header. For PHP files there is newDocumentPHP(), which works like newDocument() (it needs content-type when auto-detection isn&#39;t possible) and converts PHP tags to &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;php&amp;gt;,&lt;/span&gt; which later can be exported using &lt;span style=&quot;font-weight: bold;&quot;&gt;$pq-&amp;gt;php()&lt;/span&gt;, just like html() method :)
&lt;/li&gt; &lt;li&gt;
&lt;strong&gt;New Scripts plugin&lt;/strong&gt;&lt;strong&gt;
&lt;/strong&gt;This plugin simplifies writing short code scripts which can be easily reused (chained). In latest release package there are 2 scripts: &lt;strong&gt;google_login&lt;/strong&gt; and &lt;strong&gt;safe_print&lt;/strong&gt;. More about the plugin in &lt;a href=&quot;http://tobiasz123.wordpress.com/2008/10/05/scripts-plugin-for-phpquery/&quot;&gt;this post&lt;/a&gt;.&lt;strong&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Full changelog&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;added extended callback support in ALL methods (yay!)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt; added &lt;/strong&gt;&lt;strong&gt;CLI interface&lt;/strong&gt;&lt;strong&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;added Scripts plugin&lt;/strong&gt;&lt;strong&gt;
&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;added bootstrap file support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DOMDocument wrapper introduced (alpha)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;fixed inserts/appends&lt;/li&gt;
&lt;li&gt;added XML/XHTML compatibility&lt;/li&gt;
&lt;li&gt;contentType support&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;phpQuery
&lt;ul&gt;
&lt;li&gt;::newDocument($markup, $contentType = null)  // new document from markup, type&lt;/li&gt;
&lt;li&gt;autodetected&lt;/li&gt;
&lt;li&gt;::newDocumentHTML($html)  // new document, type HTML&lt;/li&gt;
&lt;li&gt;::newDocumentXML($xml)  // new document, type XML&lt;/li&gt;
&lt;li&gt;::newDocumentXHTML($xml)  // new document, type XHTML&lt;/li&gt;
&lt;li&gt;::newDocumentPHP($markup, $contentType)&lt;/li&gt;
&lt;li&gt;::newDocumentFile($file)&lt;/li&gt;
&lt;li&gt;::newDocumentFileHTML($file)&lt;/li&gt;
&lt;li&gt;::newDocumentFileXML($file)&lt;/li&gt;
&lt;li&gt;::newDocumentFileXHTML($file)&lt;/li&gt;
&lt;li&gt;::newDocumentFilePHP($file)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$pq
&lt;ul&gt;
&lt;li&gt;-&amp;gt;isXML()&lt;/li&gt;
&lt;li&gt;-&amp;gt;isXHTML()&lt;/li&gt;
&lt;li&gt;-&amp;gt;isHTML()&lt;/li&gt;
&lt;li&gt;-&amp;gt;html()&lt;/li&gt;
&lt;li&gt;-&amp;gt;xml()&lt;/li&gt;
&lt;li&gt;-&amp;gt;htmlOuter()&lt;/li&gt;
&lt;li&gt;-&amp;gt;xmlOuter()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;new test documents&lt;/li&gt;
&lt;li&gt;class reorganization&lt;/li&gt;
&lt;li&gt;jQueryServer
&lt;ul&gt;
&lt;li&gt;config file&lt;/li&gt;
&lt;li&gt;allowed referers list&lt;/li&gt;
&lt;li&gt;using Json straight from phpQuery&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;fixed ajaxAllowURL&lt;/li&gt;
&lt;li&gt;XHTML fixes&lt;/li&gt;
&lt;li&gt;fixed notice for DOMTextNode&lt;/li&gt;
&lt;li&gt;added callbacks in text()&lt;/li&gt;
&lt;li&gt;added callbacks in htmlOuter()&lt;/li&gt;
&lt;li&gt;fixed text($text)&lt;/li&gt;
&lt;li&gt;added getDocument()&lt;/li&gt;
&lt;li&gt;fixed html() with text node at beggining&lt;/li&gt;
&lt;li&gt;fixed zend framework selection in releases (missing some cookie dependencies)&lt;/li&gt;
&lt;li&gt;fixed returns in phpQuery::$plugins&lt;/li&gt;
&lt;li&gt;fixed $callback in .submit()&lt;/li&gt;
&lt;li&gt;added phpQuery::plugin() and $pq-&amp;gt;plugin() methods&lt;/li&gt;
&lt;li&gt;fixed many minor issues in WebBrowser plugin&lt;/li&gt;
&lt;li&gt;fixed :pseudoclass:pseudoclass selector&lt;/li&gt;
&lt;li&gt;added CallbackReference&lt;/li&gt;
&lt;li&gt;fixed include paths on win32&lt;/li&gt;
&lt;li&gt;fixed some events triggers&lt;/li&gt;
&lt;/ul&gt;Get latest release from project&#39;s &lt;a href=&quot;http://code.google.com/p/phpquery/downloads/list&quot;&gt;Download Page&lt;/a&gt; and report bugs to &lt;a href=&quot;http://code.google.com/p/phpquery/issues/list&quot;&gt;Issue Tracker&lt;/a&gt;.</description><link>http://phpquery-library.blogspot.com/2008/10/phpquery-095-beta2-released.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-996979390976807759</guid><pubDate>Tue, 23 Sep 2008 09:24:00 +0000</pubDate><atom:updated>2008-09-25T02:47:36.709-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">example</category><title>Wiki has documentation</title><description>&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/phpquery/wiki/&quot;&gt;Project&#39;s Wiki&lt;/a&gt; has been created and now contains all method names from &lt;a href=&quot;http://docs.jquery.com/Main_Page&quot;&gt;jQuery Documentation Site&lt;/a&gt;. Whole process has been automated using &lt;a href=&quot;http://code.google.com/p/phpquery/source/browse/trunk/Docs/docs-import.php&quot;&gt;docs-import&lt;/a&gt; script, which fetches data from &lt;a href=&quot;http://jquery-api-browser.googlecode.com/svn/trunk/api-docs.xml&quot;&gt;this XML&lt;/a&gt;, an effect of &lt;a href=&quot;http://code.google.com/p/jquery-api-browser/&quot;&gt;query-api-browser project&lt;/a&gt; (thx guys). Here&#39;s some example snippet - &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Selectors&quot;&gt;Selectors&lt;/a&gt; section.&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;php&quot;&gt;$categories = $pq-&amp;gt;find(&#39;cat[value=Selectors] subcat&#39;);
$content = array();
      foreach($categories as $subcat) {
          $content[] = &#39;====&#39;.pq($subcat)-&amp;gt;attr(&#39;value&#39;).&quot;====&quot;;
          foreach(pq($subcat)-&amp;gt;find(&#39;selector&#39;) as $selector)
              $content[] = &#39; * *`&#39;.pq(&#39;sample&#39;, $selector)-&amp;gt;text().&#39;`* &#39;.pq(&#39;&amp;gt; desc&#39;, $selector)-&amp;gt;text();
      }&lt;/pre&gt;
&lt;p&gt;As you can see Wiki markup is automatically applied and whole task is quite easy using jQuery-like interface. Wiki documentation can be usefull due to official documentation going offline quite often lately. There is also &lt;span style=&quot;font-weight: bold;&quot;&gt;great&lt;/span&gt; &lt;a href=&quot;http://charupload.wordpress.com/2007/12/07/jquery-documentation-chm/&quot;&gt;CHM version&lt;/a&gt; to download which i recommend.&lt;/p&gt;&lt;p&gt;Besides coping documentation ;) there are some pure phpQuery-specific pages like &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/PHPSupport&quot;&gt;PHPSupport&lt;/a&gt; or &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Callbacks&quot;&gt;Callbacks&lt;/a&gt;. More will come.
&lt;/p&gt;</description><link>http://phpquery-library.blogspot.com/2008/09/wiki-has-documentation.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-8902164402475760950</guid><pubDate>Mon, 22 Sep 2008 23:22:00 +0000</pubDate><atom:updated>2008-09-23T02:58:43.063-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">release</category><title>phpQuery 0.9.4 RC1</title><description>&lt;p&gt;Almost week passed since first &lt;a href=&quot;http://phpquery-library.blogspot.com/2008/09/phpquery-094-released.html&quot;&gt;0.9.4 beta2 release&lt;/a&gt; and today we have a &lt;a href=&quot;http://code.google.com/p/phpquery/downloads/detail?name=phpQuery-0.9.4-rc1.zip&amp;amp;can=2&amp;amp;q=#makechanges&quot;&gt;&lt;b&gt;Release Candidate 1&lt;/b&gt;&lt;/a&gt; and I hope the last one ;) Couple of important improvements have appeared since last version, but most important is fixing &lt;a href=&quot;http://code.google.com/p/phpquery/issues/detail?id=38&amp;amp;can=1&quot;&gt;nasty bug&lt;/a&gt; which &lt;i&gt;causes infinitive loop for elements with detached one of the parents&lt;/i&gt;. Thanks to &lt;b&gt;Nicolas&lt;/b&gt; for feedback. Also the &lt;a href=&quot;http://code.google.com/p/phpquery/issues/detail?id=45&quot;&gt;siblings() fix&lt;/a&gt; was a serious issue.&lt;/p&gt;

&lt;p&gt;There were some works on &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/WebBrowser&quot;&gt;WebBrowser&lt;/a&gt;, which now supports clicking submits and can be called by just one line (without plugin load and host authorization). As you can see at the end of this post, many new (old) selectors &lt;a href=&quot;http://code.google.com/p/phpquery/issues/detail?id=6&amp;amp;can=1&quot;&gt;have been implemented&lt;/a&gt;. This issue was too long on the wait list. The &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Callbacks&quot;&gt;callback&lt;/a&gt; system at latest starting to be usable, thanks to to &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Callbacks&quot;&gt;ParamStructures&lt;/a&gt;, which simply allows to control parameters order and values. &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Events&quot;&gt;Events&lt;/a&gt; now appears in anyones phpQuery by auto triggered &#39;&lt;i&gt;change&lt;/i&gt;&#39; event for  form elements. More auto-events will came in time. Feel free to make suggestions. &lt;a href=&quot;http://code.google.com/p/phpquery/issues/list&quot;&gt;Issue Tracker&lt;/a&gt; already have some &lt;a href=&quot;http://code.google.com/p/phpquery/issues/detail?id=28&quot;&gt;interesting&lt;/a&gt; &lt;a href=&quot;http://code.google.com/p/phpquery/issues/detail?id=40&quot;&gt;ideas&lt;/a&gt;, take a look there sometime.&lt;/p&gt;

&lt;p&gt;Thats all for now, just get the &lt;a href=&quot;http://code.google.com/p/phpquery/downloads/detail?name=phpQuery-0.9.4-rc1.zip&amp;amp;can=2&amp;amp;q=#makechanges&quot;&gt;newest version&lt;/a&gt;, better via subversion to get easy code updates. Before next release I will to find time try to write DOMDocument wrapper which should open easy doors for certain issues, like &lt;a href=&quot;http://code.google.com/p/phpquery/issues/detail?id=23&quot;&gt;XML&lt;/a&gt; and &lt;a href=&quot;http://code.google.com/p/phpquery/issues/detail?id=17&quot;&gt;charset&lt;/a&gt; stuff.&lt;/p&gt;

&lt;h4&gt;Changelog&lt;/h4&gt;
&lt;ul&gt;&lt;li&gt;missing &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Selectors&quot;&gt;CSS3 selectors&lt;/a&gt;&lt;ul&gt;&lt;li&gt;:header&lt;/li&gt;&lt;li&gt;:last-child&lt;/li&gt;&lt;li&gt;:first-child&lt;/li&gt;&lt;li&gt;:only-child&lt;/li&gt;&lt;li&gt;:nth-child(index/even/odd/equation)&lt;/li&gt;&lt;li&gt;:input&lt;/li&gt;&lt;li&gt;:text&lt;/li&gt;&lt;li&gt;:password&lt;/li&gt;&lt;li&gt;:radio&lt;/li&gt;&lt;li&gt;:checkbox&lt;/li&gt;&lt;li&gt;:submit&lt;/li&gt;&lt;li&gt;:image&lt;/li&gt;&lt;li&gt;:reset&lt;/li&gt;&lt;li&gt;:button&lt;/li&gt;&lt;li&gt;:file&lt;/li&gt;&lt;li&gt;:hidden&lt;/li&gt;&lt;li&gt;:empty&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;new &lt;a href=&quot;http://code.google.com/p/phpquery/wiki/Callbacks&quot;&gt;callback&lt;/a&gt; handling&lt;ul&gt;&lt;li&gt;support paramStructure to controll passed params&lt;/li&gt;&lt;li&gt;applied to ::each(), ::map(), .each(), .map()&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;fixed siblings(), which doesnt return ANY of previous siblings&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/phpquery/wiki/WebBrowser&quot;&gt;WebBrowser&lt;/a&gt;&lt;ul&gt;&lt;li&gt;meta refresh supported&lt;/li&gt;&lt;li&gt;fixed double callback&lt;/li&gt;&lt;li&gt;click on submit now submits form&lt;/li&gt;&lt;li&gt;added browserPost()&lt;/li&gt;&lt;li&gt;added browser()&lt;/li&gt;&lt;li&gt;support for callback&#39;s paramStructure &lt;/li&gt;&lt;li&gt;added shortcuts in main phpQuery namespace&lt;/li&gt;&lt;li&gt;automatic ajax host authorization&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;added basic XML compatibility&lt;/li&gt;&lt;li&gt;fixed passing DOMNode as query $context in pq();&lt;/li&gt;&lt;li&gt;added phpQuery::ajaxAllowHost($host)&lt;/li&gt;&lt;li&gt;added auto &#39;change&#39; event triggering for form elements&lt;/li&gt;&lt;li&gt;fixed Issue 38 with infinitive loop (thx Nicolas!)&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Download &lt;a href=&quot;http://code.google.com/p/phpquery/downloads/detail?name=phpQuery-0.9.4-rc1.zip&amp;amp;can=2&amp;amp;q=#makechanges&quot;&gt;phpQuery 0.9.4 RC1&lt;/a&gt;.&lt;/p&gt;</description><link>http://phpquery-library.blogspot.com/2008/09/phpquery-094-rc1.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-4606983989045319284</guid><pubDate>Wed, 17 Sep 2008 17:54:00 +0000</pubDate><atom:updated>2008-09-24T02:33:14.229-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">release</category><title>phpQuery 0.9.4 released for testing</title><description>&lt;p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;UPDATE&lt;/span&gt; - &lt;a href=&quot;http://phpquery-library.blogspot.com/2008/09/phpquery-094-rc1.html&quot;&gt;phpQuery 0.9.4 RC1&lt;/a&gt; has been released&lt;/p&gt;

&lt;p&gt;I proudly announce a public release of &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;a href=&#39;http://code.google.com/p/phpquery/downloads/detail?name=phpQuery-0.9.4-beta2.zip&amp;amp;can=1&amp;amp;q=&#39;&gt;phpQuery 0.9.4&lt;/a&gt;&lt;/span&gt; (beta2 right now). There were many many changes since 0.9.1, and here&#39;s the highlights.&lt;/p&gt;

&lt;h4&gt;Ajax&lt;/h4&gt;

&lt;p&gt;You can do requests like in jQuery, but cross-domain. Everything works on stable &lt;a href=&quot;http://framework.zend.com/manual/en/zend.http.html&quot;&gt;Zend HTTP Client&lt;/a&gt;.&lt;br /&gt;
Example:&lt;/p&gt;
&lt;pre class=&#39;php&#39; name=&#39;code&#39;&gt;phpQuery::newDocument(&#39;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&#39;)
  -&amp;gt;load(&#39;http://somesite.com/form #result&#39;, array(
    &#39;postParam1&#39; =&amp;gt; &#39;value1&#39;,
    &#39;postParam2&#39; =&amp;gt; &#39;value2&#39;,
  ))
  -&amp;gt;find(&#39;#result&#39;)
    -&amp;gt;before(&#39;&amp;lt;h1&amp;gt;This is a result of requested form&amp;lt;/h1&amp;gt;&#39;);&lt;/pre&gt;
&lt;h4&gt;Events&lt;/h4&gt;
&lt;p&gt;This could seem odd for someone, but server-side DOM events are now implemented and work quite like those in a browser - you can bind to node&#39;s event, you can trigger them and they bubble up thru DOM.&lt;br /&gt;
Example:&lt;/p&gt;
&lt;pre class=&#39;php&#39; name=&#39;code&#39;&gt;phpQuery::newDocumentFile(&#39;myfile.html&#39;)
  -&amp;gt;find(&#39;.my-elements&#39;)
  -&amp;gt;parent()
    -&amp;gt;bind(&#39;awaitedEvent&#39;, &#39;handlerCallback&#39;)-&amp;gt;end()
  -&amp;gt;trigger(&#39;awaitedEvent&#39;);
function handlerCallback($event) {
  $target = $event-&gt;target;
  $node = $event-&gt;currentTarget;
}&lt;/pre&gt;
&lt;h4&gt;WebBrowser plugin&lt;/h4&gt;
&lt;p&gt;Now here&#39;s the most intresting part - combine AJAX and events, bind some defaults behaviors, add &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;.location&lt;/span&gt; property, cookies was already there and here we have - WebBrowser mimics on every PHP5 server ! Just look at quering google:&lt;/p&gt;
&lt;pre class=&#39;php&#39; name=&#39;code&#39;&gt;phpQuery::$plugins-&amp;gt;browserGet(&#39;http://google.com/&#39;, &#39;success1&#39;);
function success1($browser) {
  $browser
    -&amp;gt;WebBrowser(&#39;success2&#39;)
    -&amp;gt;find(&#39;input[name=q]&#39;)
      -&amp;gt;val(&#39;phpQuery&#39;)
      -&amp;gt;parents(&#39;form&#39;)
        -&amp;gt;submit() ;
}
function success2($html) {
  print $html;
}&lt;/pre&gt;
&lt;p&gt;It&#39;s still needs some polishing (and testing mainly), eg meta-refreshes are missing (gmail login fails), no submit after click and probably others, but it works and is so nice!&lt;/p&gt;

&lt;h4&gt;jQueryServer&lt;/h4&gt;
&lt;p&gt;It&#39;s a subproject existing from some time in repo, but today it pops-up to the light.
First - it&#39;s a &lt;span style=&quot;font-weight: bold;&quot;&gt;jQuery plugin&lt;/span&gt;, kind of RPC thing, so you can request actions on phpQuery straight from browser and fetch only a result.&lt;br /&gt;
Example:&lt;/p&gt;
&lt;pre class=&#39;js&#39; name=&#39;code&#39;&gt;$.server({url: &#39;http://somesite.com&#39;})
  .find(&#39;.my-class&#39;)
  .client(function(response){
    $(&#39;.destination&#39;).html(response);
});&lt;/pre&gt;
&lt;h4&gt;Full changelog:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;AJAX&lt;/span&gt; (Zend Framework&#39;s HTTP Client used as backend)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Events&lt;/span&gt; (server-side...)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;WebBrowser&lt;/span&gt; plugin (yey!)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;jQueryServer&lt;/span&gt; plugin for jQuery&lt;/li&gt;&lt;li&gt;Countable interface implementation&lt;/li&gt;&lt;li&gt;redesigned class structure (less namespace collisions)&lt;/li&gt;&lt;li&gt;enhanced plugin implementation (API changed)&lt;/li&gt;&lt;li&gt;added toReference($var)&lt;/li&gt;&lt;li&gt;fixed get(index)&lt;/li&gt;&lt;li&gt;fixed importing nodes via pq()&lt;/li&gt;&lt;li&gt;fixed multiplie selectors in filter() &lt;/li&gt;&lt;li&gt;fixed not() to support phpQuery objects and DOMNodes&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;ArrayAccess&lt;/span&gt; interface implementation
&lt;ul&gt;&lt;li&gt;eg $pqDocument[&#39;.my-class&#39;]-&gt;addClass(&#39;my-second-class&#39;);&lt;/li&gt;&lt;li&gt;eg $pqDocument[&#39;.my-class&#39;] = &#39;new outherHtml for .my-class&#39;;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;fixed HTML entities (utf8 only for today)&lt;/li&gt;&lt;li&gt;added filterCallback()&lt;/li&gt;&lt;li&gt;added phpQuery::toJSON()&lt;/li&gt;&lt;li&gt;added phpQuery::parseJSON()&lt;/li&gt;&lt;li&gt;added phpQuery::getDocumentID()&lt;/li&gt;&lt;li&gt;added phpQuery::getDOMDocument()&lt;/li&gt;&lt;li&gt;global events&lt;/li&gt;&lt;li&gt;Zend Framework added as svn:externals&lt;/li&gt;&lt;li&gt;ported functions from &lt;span style=&quot;font-weight: bold;&quot;&gt;Utilities&lt;/span&gt; section&lt;ul&gt;&lt;li&gt;phpQuery::each()&lt;/li&gt;&lt;li&gt;::grep()&lt;/li&gt;&lt;li&gt;::makeArray()&lt;/li&gt;&lt;li&gt;::map()&lt;/li&gt;&lt;li&gt;::inArray()&lt;/li&gt;&lt;li&gt;::unique()&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;length avaible as attribute&lt;/li&gt;&lt;li&gt;fixed .map()&lt;/li&gt;&lt;li&gt;fixed .clone()&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just grab it here - &lt;a href=&quot;http://code.google.com/p/phpquery/downloads/detail?name=phpQuery-0.9.4-beta2.zip&amp;amp;can=1&amp;amp;q=&quot;&gt;phpQuery-0.9.4-beta2.zip&lt;/a&gt; or visit &lt;a href=&quot;http://code.google.com/p/phpquery/&quot;&gt;phpQuery project homepage&lt;/a&gt; for alternative ways. Don&#39;t forget to post bugs to &lt;a href=&quot;http://code.google.com/p/phpquery/issues/entry&quot;&gt;Issue Tracker&lt;/a&gt; ;)&lt;/p&gt;</description><link>http://phpquery-library.blogspot.com/2008/09/phpquery-094-released.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6313102056007382496.post-2667334969591229931</guid><pubDate>Wed, 17 Sep 2008 17:41:00 +0000</pubDate><atom:updated>2008-09-17T10:53:44.874-07:00</atom:updated><title>Blog starts</title><description>Finally, we have a blog for &lt;a href=&quot;http://code.google.com/p/phpquery/&quot;&gt;phpQuery project&lt;/a&gt;. All major release notes will be posted here.

For now it&#39;s all in Blogspot&#39;s default state, but this should change in some time. So subscribe to &lt;a href=&quot;http://feeds.feedburner.com/phpquery&quot;&gt;RSS channel&lt;/a&gt; if you want to be informed about official releases.</description><link>http://phpquery-library.blogspot.com/2008/09/blog-starts.html</link><author>noreply@blogger.com (Tobiasz Cudnik)</author><thr:total>0</thr:total></item></channel></rss>