Flatpress: Next/Prev Page link and PrettyURLs

Italiano

(See below for English)

Come ho già detto in qualche post fa, sto facendo un plugin per implementare i tag su flatpress.

Dopo alcuni giorni di lavoro, pensando di averlo finito, mi accorgo di un bug: dalla seconda pagina non funziona più il filtro dei tag (e me ne sono accorto per puro caso!!)

La colpa è di Pretty URLs, che gestisce gli url delle pagine ricreandoli dall’inizio.

Le soluzioni sono quattro:

  1. Fare un plugin che non supporta PrettyURLs
  2. Fare un plugin che usi delle estensioni PECL
  3. Fare un plugin solo per PHP 4 (e io uso PHP5 😊 )
  4. Fare una classe sostitutiva a pretty urls

L’unica che mi pare accettabile è la quarta, ed ecco il codice (testato, sembra funzionare):

## Replacement Class for PrettyURLs Plugin
if(class_exists('Plugin_PrettyURLs')) {
	class class_name {
		function class_name(&$original) { # Constructor
			$this->original=&$original;
			$this->baseurl=&$original->baseurl;
		}
		function permalink($str, $id) {
			return $this->original->permalink($str, $id);
		}
		function commentlink($str, $id) {
			return $this->original->commentlink($str, $id);
		}
		function feedlink($str, $type) {
			return $this->original->feedlink($str, $type);
		}
		function commentsfeedlink($str, $type, $id) {
			return $this->original->commentsfeedlink($str, $type, $id);
		}
		function staticlink($str, $id) {
			return $this->original->staticlink($str, $id);
		}
		function categorylink($str, $catid) {
			return $this->original->categorylink($str, $catid);
		}
		function yearlink($str, $y) {
			return $this->original->yearlink($str, $y);
		}
		function monthlink($str, $y, $m) {
			return $this->original->monthlink($str, $y, $m);
		}
		function daylink($str, $y, $m, $d) {
			return $this->original->daylink($str, $y, $m, $d);
		}
		function nextprevlink($nextprev, $v) {
			if(!empty($fp_params['myparam'])) {
				## My code here
			} else
				return $this->original->nextprevlink($nextprev, $v);
		}
	}
}

Si fa il backup di $plugin_prettyurls, quindi si dà a $plugin_prettyurls questa classe: … [Leggi il resto]