Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Creare i "blocchi"

Come costruire i blocchi e richiamarli
Come costruire i blocchi e richiamarli
Link copiato negli appunti

Abbiamo già detto che possiamo considerare i blocchi come zone del nostro sito che funzionano da "contenitori" di diverse funzioni (blocco del menù, blocco dei login, etc..), e che si ripetono in tutte le pagine del nostro sito.

I blocchi possono essere di tre tipi:

  • RSS/RDF
  • Blocchi di contenuto
  • Blocchi di file

Nella lezione sul pannello di amministrazione, inoltre, abbiamo già affrontato la creazione di blocchi del primo e del secondo tipo

In questa lezione invece illustreremo come creare blocchi del terzo tipo, con richiami al database.

Come i moduli anche i blocchi sono contenuti in una cartella, stavolta chiamata "blocks" e per essere visibili nell'amministrazione (e poter essere quindi attivati o modificati) hanno dei nomi che seguono la sintassi:

block-nomedelblocco.php

Figura 33: La cartella Blocks
La cartella Blocks

Nei blocchi possiamo inserire codice scritto in qualsiasi linguaggio di programmazione (HTML, PHP, Perl, Flash, etc..) quindi possiamo anche creare pagine dinamiche che interroghino il nostro database.

Facciamo un esempio pratico. Supponiamo di voler creare un blocco che visualizza le pagine visitate ieri nel nostro sito. Per facilitarci il compito consideriamo una sola query ed un solo valore.

Chiamiamo il nostro blocco "pagine", perciò il nome completo del blocco sarà block-pagine.php

Per cominciare apriamo il tag php:<?. Lo script per intero potrebbe essere:

<?
if (eregi("block-hits.php",$PHP_SELF)) {
  Header("Location: index.php");
  die();
}

global $prefix, $dbi;

$result = sql_query("SELECT COUNT FROM ".$prefix."_counter ORDER BY TYPE DESC LIMIT 0,1", $dbi);

list($count) = sql_fetch_row($result, $dbi);
$content .= $count
?>

Ecco due regole da tenere in considerazione:

  1. Quando creiamo un blocco per effettuare una query all'inizio del codice ricordiamoci sempre di inserire:

    if (eregi("block-Nomeblocco.php",$PHP_SELF)){
      Header("Location: index.php");
      die();

    Questo impedirà agli utenti di accedere direttamente alla cartella "blocks".

  2. La variabile $content rappresenta sempre il contenuto che il blocco mostra quando viene richiamata la pagina.

Ti consigliamo anche