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:
- Fare un plugin che non supporta PrettyURLs
- Fare un plugin che usi delle estensioni PECL
- Fare un plugin solo per PHP 4 (e io uso PHP5 😊 )
- 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]