You are herePHP

PHP


ritratto di gianluca

Rilasciato nuovo sito "Honda moto italia", con il mio contributo nella realizzazione


Il 15 luglio 2009 è stato rilasciato il nuovo sito www.hondaitalia.com con il mio contributo nella realizzazione.

Anche questo portale è stato realizzato con il Content Management Framework Drupal.

ritratto di gianluca

Rilasciato il nuovo sito di TIMTribù 2.0, con il mio contributo nella realizzazione

Con enorme soddisfazione vi informo che abbiamo rilasciato il portale di TIMTribù 2.0.

Si può raggiungere qui: http://timtribu.tim.it

Anche questo è realizzato con il Content Management Framework Drupal, PHP, MySQL e jQuery.

Segnalo l'interfaccia verso Facebook realizzata in AJAX di cui vado personalmente molto fiero

 

ritratto di gianluca

Anche quelli di Drupal Italia si sorprendono di cosa riusciamo a fare ;)

La community italiana di Drupal ha commentato positivamente la realizzazione del sito istituzionale dell’ASI, l’Agenzia Spaziale Italiana.

Maggiori dettagli sul portale Nexse.

 

ritratto di gianluca

Codice sorgente degli "MP3 più ascoltati sul sito"

Per chi fosse interessato, questo è il codice del modulo da me realizzato che visualizza il blocco sulla destra "MP3 inseriti di recente".

<?php
define
('GB_AUDIO_BLOCK_RANK_DEFAULT', 9999999);
/**
* Implementation of hook_block().
*/
function gb_audio_block_block($op = 'list', $delta = 0, $edit = array()) {
  switch (
$op) {
    case
'list':
     
$blocks[0]['info'] = t('Most listened MP3');
      return
$blocks;
    case
'configure':
      break;
    case
'save':
      break;
    case
'view': default:
     
$block['title'] = t('Most listened MP3');
      switch (
$delta) {
        case
0:
         
$block['content'] = _gb_audio_block_contents(10);
          break;
      }
      return
$block;
  }
}

/**
* Implementation of hook_perm().
*/
function gb_audio_block_perm() {
  return array(
'administer gb_audio_block');
}

function
gb_audio_block_cron() {
 
set_time_limit(0);
 
$lastrun = variable_get('gb_audio_block_lastrun', 0);
 
$nextrun = $lastrun + 24 * 60 * 60 * variable_get('gb_audio_block_interval', 30);
  if (
time() > $nextrun) {
   
$sql = "SELECT nid FROM {audio} ORDER BY play_count + download_count DESC";
   
$res = db_query($sql);
   
$pos = 0;
    while (
$row = db_fetch_object($res)) {
     
$pos++;
     
$sql2 = "SELECT nid FROM {gb_audio_block} WHERE nid = %d";
     
$res2 = db_fetch_object(db_query($sql2, $row->nid));
      if (
is_null($res2->nid)) {
       
$sql3 = "INSERT INTO {gb_audio_block} (nid, curr_rank, prec_rank) VALUES(%d, %d, %d)";
       
$res3 = db_query($sql3, $row->nid, $pos, GB_AUDIO_BLOCK_RANK_DEFAULT);    
      } else {
       
$sql3 = "UPDATE {gb_audio_block} SET nid = %d, prec_rank = curr_rank, curr_rank = %d)";
       
$res3 = db_query($sql3, $row->nid, $pos);    
      }
    }
   
$t = time();
   
variable_set('gb_audio_block_lastrun', $t);
  }
}


function
gb_audio_block_get_voto_star($voto) {
  if (empty(
$voto)) return "";
  global
$base_url;
 
$img_path $base_url . "/" . drupal_get_path('module', 'gb_audio_block')
  .
'/images';
 
$stelle = intval($voto / 20);
 
$mezza = $voto - ($stelle * 20);

 
$output = "<div class='container-inline'>";
  for (
$i = 0; $i < $stelle; $i++) {
   
$output .= "<img style='float: left;' src='$img_path/fullstar.png'>";
  }
  if (
$mezza > 5) {
   
$output .= "<img style='float: left;' src='$img_path/halfstar.png'>";
  }
 
$output .= "</div>";
  return
$output;
}

function
_gb_audio_block_contents($limite) {
  global
$base_url;
 
$full_path = $base_url . "/" . drupal_get_path('module', 'gb_audio_block')
  .
'/gb_audio_block.css';
 
$img_path $base_url . "/" . drupal_get_path('module', 'gb_audio_block')
  .
'/images';
 
drupal_add_css($full_path);
 
$sql = "SELECT t.value AS titolo, v.voto AS voto, art.value AS autore, a.nid AS nid,
    gb.prec_rank AS prec_rank
    FROM {audio} AS a LEFT JOIN
    (SELECT content_id, value AS voto FROM {votingapi_cache}
      WHERE function = 'average' GROUP BY content_id) AS v ON v.content_id = a.nid
    , {node} as n
    LEFT JOIN {gb_audio_block} AS gb ON n.nid = gb.nid, {audio_metadata} AS t,
    {audio_metadata} AS art
    WHERE n.vid = a.vid AND t.vid = a.vid AND t.tag = 'title'
    AND art.vid = a.vid AND art.tag = 'artist'
    ORDER BY play_count + download_count DESC
    LIMIT 0, %d"
;
 
$res = db_query($sql, $limite);
 
$i = 0;
 
$rows = array();
  while (
$row = db_fetch_object($res)) {
   
$i++;
    if (empty(
$row->prec_rank) ||
      (
$row->prec_rank == GB_AUDIO_BLOCK_RANK_DEFAULT)) {
     
$img = "<em>n.e.</em>";
    } else if (
$i == $row->prec_rank) {
     
$img = "<img src='$img_path/stabile.gif'>";
    } else if (
$i > $row->prec_rank) {
     
$img = "<img src='$img_path/discesa.gif'><br>($row->prec_rank)";
    } else if (
$i < $row->prec_rank) {
     
$img = "<img src='$img_path/salita.gif'><br>($row->prec_rank)";
    }
   
$rows[] = array("<b>$i</b><br>$img", l($row->titolo, "node/" . $row->nid) .
     
"<BR><EM>$row->autore</EM><br>" . gb_audio_block_get_voto_star($row->voto));
  }
 
$output = theme('table', array(), $rows);
  return
$output;
}
?>

ritratto di gianluca

Redirezione con passaggio dei parametri per "website switching"

Quello che segue è il codice che rimpiazzerà l'index.php del mio vecchio sito http://www.gianlucabove.it/php5/ per effettuare la redirezione dell'url sul nuovo sito con tanto di passaggio dei parametri eventuali.

Ovviamente questo sistema è possibile in quanto il mio vecchio sito non utilizzava i "clean url".


<?php
  header("Location: http://www.gianlucabove.it/v2/" . $_GET["q"]);
?>

 

ritratto di gianluca

Rilasciato il sito della Agenzia Spaziale Italiana: c'è anche il mio contributo

E' stato rilasciato il nuovo sito dell’Agenzia Spaziale Italiana (www.asi.it), realizzato da Matrix su tecnologia PHP e, ovviamente, Drupal come piattaforma di content management.

C’è anche il mio contributo (tramite Nexse).

 

MP3 più ascoltati sul sito

1
Funk Ya Tone Port
Gianluca Bove
2

(5)
Rocky (test suoni Reason)
Gianluca Bove
3

(2)
Dreamland
Gianluca Bove (feat. Silvio Scena)
4

(3)
Sidd'Heart (feat. Silvio Scena and Fabio Testa)
Gianluca Bove
5

(16)
Unreal feelings
Gianluca Bove
6

(8)
Electro Reason
Gianluca Bove
7

(14)
Rainzed Ambient
Gianluca Bove
8
n.e.
Doric Storm
Gianluca Bove
9

(7)
Mellow Yello
Gianluca Bove (feat. Silvio Scena)
10

(19)
Empty Pieces
Gianluca Bove e Fabio Testa

Chi è online

Ci sono attualmente 0 utenti e 1 visitatore collegati.

Counter

  • Totale visite: 232,718
  • Visitatori: 68,923
  • Blocked Users: 0
  • Tuo IP: 38.107.179.212
  • Online dal 09/03/2009
  • Visitors:
  • Today: 51
    This week: 1560
    This month: 1380
    This year: 8881