<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>the fly on the net &#187; PHP</title>
	<atom:link href="http://www.flyonthenet.com/index.php/category/articoli/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.flyonthenet.com</link>
	<description>Informatica &#38; tecnologia</description>
	<lastBuildDate>Fri, 18 Dec 2009 12:16:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Aggiungere nel tema di Wordpress un link per creare articoli e pagine</title>
		<link>http://www.flyonthenet.com/articoli/php/aggiungere-tema-wordpress-link-creare-articoli-pagine.html</link>
		<comments>http://www.flyonthenet.com/articoli/php/aggiungere-tema-wordpress-link-creare-articoli-pagine.html#comments</comments>
		<pubDate>Tue, 30 Sep 2008 18:43:58 +0000</pubDate>
		<dc:creator>Davide</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.flyonthenet.com/?p=68</guid>
		<description><![CDATA[Come per il famoso link &#8220;Edit this&#8221;, tradotto normalmente in &#8220;Modifica&#8221;, può essere comodo inserire nel proprio tema un link per scrivere un nuovo articolo o una nuova pagina.
Per quanto riguarda gli articoli la soluzione è semplice, e si risolve con qualche linea di codice.
if(current_user_can('publish_posts'))
  echo '&#60;a href="'.get_bloginfo('wpurl').'/wp-admin/post-new.php"&#62;'.__('Write article').'&#60;/a&#62;';
Per quanto riguarda invece le pagine, [...]]]></description>
			<content:encoded><![CDATA[<p>Come per il famoso link &#8220;Edit this&#8221;, tradotto normalmente in &#8220;Modifica&#8221;, può essere comodo inserire nel proprio tema un link per scrivere un nuovo articolo o una nuova pagina.</p>
<p>Per quanto riguarda gli articoli la soluzione è semplice, e si risolve con qualche linea di codice.</p>
<pre><code>if(current_user_can('publish_posts'))
  echo '&lt;a href="'.get_bloginfo('wpurl').'/wp-admin/post-new.php"&gt;'.__('Write article').'&lt;/a&gt;';</code></pre>
<p>Per quanto riguarda invece le pagine, può essere interessante utilizzare un codice più complesso, per aggiungere una nuova pagina che abbia la corrente come pagina madre. Per fare ciò è necessario creare una pagina vuota utilizzando la funzione <tt>wp_insert_post</tt>, passando il parametro <tt>post_parent</tt> che deve corrispondere all&#8217;ID della pagina corrente, quindi redirigere l&#8217;utente al back-end.</p>
<pre><code>if(current_user_can('publish_pages'))
{
  $post_parent = $post-&gt;ID;
  if($_GET['publish_subpage'])
  {
    $newpost = array(
      'post_content' =&gt; '&lt;p&gt;&amp;nbsp;&lt;/p&gt;',
      'post_parent' =&gt; $post_parent,
      'post_status' =&gt; 'draft',
      'post_title' =&gt; '',
      'post_type' =&gt; 'page'
    );
    $newpost_ID = wp_insert_post($newpost);
    if($newpost_ID)
      header('Location: '.get_bloginfo('wpurl').'/wp-admin/page.php?action=edit&amp;post='.$newpost_ID);
    else header('Location: '.get_permalink($post-&gt;ID));
  }
  else
  {
    $publish_link = get_permalink($post-&gt;ID);
    if(strpos('?', $publish_link))
      echo '&lt;a href="'.$publish_link.'&amp;amp;publish_subpage=yes"&gt;'.__('Write page').'&lt;/a&gt;';
    else echo '&lt;a href="'.$publish_link.'?publish_subpage=yes"&gt;'.__('Write page').'&lt;/a&gt;';
  }
}</code></pre>
<p>Questa soluzione prevede la creazione di un link che richiama la stessa pagina con in aggiunta il parametro publish_subpage=yes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyonthenet.com/articoli/php/aggiungere-tema-wordpress-link-creare-articoli-pagine.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installare WP-Cache su Windows e IIS</title>
		<link>http://www.flyonthenet.com/articoli/sistemi-windows/installare-wp-cache-su-windows-e-iis.html</link>
		<comments>http://www.flyonthenet.com/articoli/sistemi-windows/installare-wp-cache-su-windows-e-iis.html#comments</comments>
		<pubDate>Tue, 25 Sep 2007 17:15:10 +0000</pubDate>
		<dc:creator>Davide</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sistemi Windows]]></category>

		<guid isPermaLink="false">http://www.flyonthenet.com/articoli/sistemi-windows/installare-wp-cache-su-windows-e-iis.html</guid>
		<description><![CDATA[WP-Cache è un ottimo plug-in per velocizzare Wordpress, effettuando la cache delle pagine già servite in precedenza. Purtroppo non è ben progettato per IIS: dopo averlo installato, la pagina di amministrazione risulterà bianca, quando invece dovrebbe auto-configurarsi e mostrare delle opzioni.
Per renderlo funzionante su Windows ed in particolare IIS, è necessario effettuare alcune modifiche ai [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mnm.uib.es/gallir/wp-cache-2/" title="WP-Cache 2.0 di Ricardo Galli">WP-Cache</a> è un ottimo plug-in per velocizzare Wordpress, effettuando la cache delle pagine già servite in precedenza. Purtroppo non è ben progettato per IIS: dopo averlo installato, la pagina di amministrazione risulterà bianca, quando invece dovrebbe auto-configurarsi e mostrare delle opzioni.</p>
<p>Per renderlo funzionante su Windows ed in particolare IIS, è necessario effettuare alcune modifiche ai sorgenti e successivamente procedere alla configurazione manuale.</p>
<h3>Modifiche ai sorgenti</h3>
<p>Nel file <tt>/wp-content/plugins/wp-cache/wp-cache.php</tt>, dalla riga 491, la funzione <tt>wp_cache_check_link</tt> utilizza dei link simbolici.</p>
<p><code lang="php">function wp_cache_check_link() {<br />
	global $wp_cache_link, $wp_cache_file;</p>
<p>	if ( basename(@readlink($wp_cache_link)) != basename($wp_cache_file)) {<br />
		@unlink($wp_cache_link);<br />
		if (!@symlink ($wp_cache_file, $wp_cache_link)) {<br />
			echo "&lt;code&gt;advanced-cache.php&lt;/code&gt; link does not exist&lt;br /&gt;";<br />
			echo "Create it by executing: &lt;br /&gt;&lt;code&gt;ln -s $wp_cache_file $wp_cache_link&lt;/code&gt;&lt;br /&gt; in your server&lt;br /&gt;";<br />
			return false;<br />
		}<br />
	}<br />
	return true;<br />
}</code></p>
<p>I link simbolici non sono implementati in Windows, e vanno quindi rimosse le funzioni <tt>symlink</tt> e <tt>readlink</tt>. Consiglio di effettuare un semplice controllo sull&#8217;esistenza del file <tt>advanced-cache.php</tt>.</p>
<p><code lang="php">function wp_cache_check_link() {<br />
	global $wp_cache_link, $wp_cache_file;</p>
<p>	if(!file_exists($wp_cache_link))<br />
	{<br />
		echo "&lt;code&gt;advanced-cache.php&lt;/code&gt; link does not exist&lt;br /&gt;";<br />
		echo "Create it by executing: &lt;br /&gt;&lt;code&gt;ln -s $wp_cache_file $wp_cache_link&lt;/code&gt;&lt;br /&gt; in your server&lt;br /&gt;";<br />
		return false;<br />
	}<br />
	return true;<br />
}</code></p>
<p>Sempre nello stesso file, si utilizza la costante <tt>__FILE__</tt></p>
<p><code lang="php">	add_options_page('WP-Cache Manager', 'WP-Cache', 5, __FILE__, 'wp_cache_manager');</code></p>
<p>Questo può causare alcuni problemi con le barre rovesce dei percorsi, per cui consiglio di fornire solo il nome del file, dato che Wordpress è in grado di ricostruire comunque il percorso corretto del plug-in.</p>
<p><code lang="php">	add_options_page('WP-Cache Manager', 'WP-Cache', 5, basename(__FILE__), 'wp_cache_manager');</code></p>
<p>Nel file <tt>/wp-content/plugins/wp-cache/wp-cache-phase1.php</tt>, alla riga 23, si fa uso della variabile <tt>$_SERVER['REQUEST_URI']</tt> che purtroppo in Windows contiene solo parte del permalink.</p>
<p><code lang="php">$key = md5($_SERVER['SERVER_NAME'].preg_replace('/#.*$/', '', $_SERVER['REQUEST_URI']).wp_cache_get_cookies_values());</code></p>
<p>Il valore corretto lo otteniamo concatenando <tt>$_SERVER['SCRIPT_NAME']</tt> e <tt>$_SERVER['PATH_INFO']</tt></p>
<p><code lang="php">$key = md5($_SERVER['SERVER_NAME'].preg_replace('/#.*$/', '', $_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO']).wp_cache_get_cookies_values());</code></p>
<p>Per lo stesso motivo è da sistemare il file <tt>/wp-content/plugins/wp-cache/wp-cache.php</tt>, sostituendo tutte le occorrenze di <tt>$_SERVER['REQUEST_URI']</tt>.</p>
<p><code lang="php">echo '<br />
<form name="wp_manager" action="'. $_SERVER["REQUEST_URI"] . '" method="post">';</code></p>
<p>In questo caso utilizziamo una soluzione standard, usata anche in altri plug-in, per indicare la pagina corrente.</p>
<p><code lang="php">echo '<br />
<form name="wp_manager" action="'. $_SERVER['PHP_SELF'] . '?page=' .  basename(__FILE__) . '" method="post">';</code></p>
<p>L&#8217;operazione deve essere ripetuta su tutto il file, alle righe 253, 272, 305, 329, 351, 556, 590, 605 e 613.</p>
<h3>Configurazione manuale</h3>
<p>Dopo aver eseguito le modifiche ai sorgenti, è possibile procedere alla configurazione del plug-in</p>
<ul>
<li>Copiare rinominandolo il file <tt>/wp-content/plugins/wp-cache/wp-cache-phase1.php</tt> in <tt>/wp-content/advanced-cache.php</tt></li>
<li>Creare la cartella <tt>/wp-content/plugins/cache</tt></li>
<li>Concedere i diritti di scrittura a IIS alla cartella <tt>/wp-content</tt>. Dopo la configurazione, sono sufficienti i permessi per la cartella <tt>/wp-content/plugins/cache</tt> e <tt>/wp-content/plugins/wp-cache</tt> ed il file <tt>/wp-content/wp-cache-config.php</tt>.</li>
<li>Modificare il file <tt>wp-config.php</tt> aggiungendo una costante<br />
<code lang="php">define('WP_CACHE', true);</code></li>
</ul>
<p>A questo punto, per far entrare in funzione il plug-in, non resta che accedere alla pagina di amministrazione, dove dovrebbero essere comparse tutte le opzioni di configurazione, ed attivare la cache con l&#8217;apposito pulsante.</p>
<h3>Fonti di riferimento</h3>
<ul>
<li><a href="http://www.cpuidle.de/blog/?p=30">Digital Bites</a></li>
<li><a href="http://www.unsoughtinput.com/index.php/2006/10/24/wordpress-tutorial-using-wp-cache-on-windows-iis/">Unsought Input</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.flyonthenet.com/articoli/sistemi-windows/installare-wp-cache-su-windows-e-iis.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
