Benvenuto Visitatore

PHP-Fusion: maincore.php

Primo articolo riguardante il nostro Content Management System preferito: PHP-Fusion. In questo articolo vi parlo del file principali che sta alla base del funzionamento del sistema

Dalla nascita del nostro progetto PHPAjax-Fusion, abbiamo cominciato a spulciare ogni singolo file del CMS di partenza ( PHP-Fusion ) alla ricerca dei punti da ritoccare per ripulire il codice HTML, cercando di avvicinarci agli standard del W3C (sembra che più del 90% delle pagine Web non siano conformi.. ditemi voi se è normale..) ed aumentando l’accessibilità. Sono entrambi discorsi lasciati troppo spesso in secondo piano, ma noi crediamo vivamente nell’importanza di indirizzare i nostri sforzi verso questa direzione.

Detto questo iniziamo la serie di documenti sul fusion dal più importante, come il nome stesso indica: maincore.php.

Come prima cosa include il file di configurazione, contente i dati per accedere al database. Nel caso non siano settati i parametri necessari, il maincore redirige la chiamata sul setup.php, in modo da costringere l’utente a configurare il cms.

In una prima parte del file sono definite alcune costanti che verranno utilizzate ovunque, come per esempio la directory del pannello admin, del forum etc etc. Da lì in poi inizia la parte veramente interessante ed utile di questo file .php. infatti seguono le definizioni di diverse funzioni di uso generale per semplificare la vita all\’utente.
E’ in questo contesto che vengono definite funzioni come la dbcount, per esempio:

function dbcount($field,$table,$conditions=\"\") {
   $cond = ($conditions ? \" WHERE \".$conditions : \"\");
   $result = @mysql_query(\"SELECT Count\".$field.\" FROM \".DB_PREFIX.$table.$cond);
   if (!$result) {
     echo mysql_error();
     return false;
   } else {
     $rows = mysql_result($result, 0);
     return $rows;
   }
}

Come potete vedere non fa nulla di assolutamente incredibile, però è fottutamente comoda! :) Infatti crea dinamicamente una stringa di query contenente la keyword Count sul field specifico della tabella richiesta. E anche l\’utilizzo di $condition con valore di default torna utile per poter effettuare una query di conteggio di record con una semplice chiamata. Questo è un esempio per far capire la logica che sta alla base del maincore.php : rendere disponibili delle API semplici e comode per velocizzare la stesura di infusions (plugin). Come ulteriore esempio guardiamo quest\’altra funzione, che si differenzia dalla precedente per il fatto che e\’ di utilità ancora più generica.. e non coinvolge il database.

// Trim a line of text to a preferred length
function trimlink($text, $length) {
   $dec = array(\"\\\"\", \"\'\", \"\\\\\", \'\\\"\', \"\\\'\", \"<\", \">\”);
   $enc = array(\”"\”, \”'\”, \”\\”, \”"\”, \”'\”, \”<\”, \”>\”);
   $text = str_replace($enc, $dec, $text);
   if (strlen($text) > $length) $text = substr($text, 0, ($length-3)).\”…\”;
   $text = str_replace($dec, $enc, $text);
   return $text;
}

Effettua l’escape dei caratteri “fraintendibili” e sega la stringa alla lunghezza voluta, passata come parametro.

Per sottolineare l’importanza di questo file basta aprire l’index.php . Quasi sempre il server web, quando riceve una richiesta HTTP indirizzata ad una cartella (www.arabianfenix.com/ è una richiesta HTTP indirizzata alla cartella / sul server www.arabianfenix.com), rigira la richiesta su una Welcome File List, una lista di file su cui redirigere, se presenti, la richiesta. Normalmente i file sono index.html, index.php ed altri (tipo default.asp ..). Quindi index.php dovrebbe essere considerata il punto iniziale della navigazione web e quindi, in un certo senso, quello centrale. invece il contenuto è questo:


require_once \"maincore.php\";

redirect($settings[\'opening_page\']);

Una soluzione che, personalmente, trovo decisamente pulita.

Per cui il maincore è sicuramente il punto di partenza.. se si vuole davvero conoscere il fusion ed interagire con esso per la creazione di infusions, è necessario capire cosa questo file metta a disposizione, per sfruttare a pieno le sue potenzialità.

Buono studio ;)


Tags: ,

Post Correlati:

  • Nessuno

Posta un Commento

La tua email non verrà pubblicata o resa visibile a terzi. I campi obbligatori sono contrassegnati da *

*
*