コード例 #1
0
 /**
  * calcola l'indice di rilevanza accumulato fino a una certa data, per un tag
  * come somma degli indici di rilevanza di tutti gli atti taggati con quel tag 
  *
  * @param integer $tag_id
  * @param date $data 
  * @param SimpleXMLElement    $xml_node   
  * @param boolean   $verbose
  * @return float
  * @author Guglielmo Celata
  */
 public static function calcolaRilevanzaTag($tag_id, $data, $xml_node, $verbose = false)
 {
     $tag_node = $xml_node->addChild('tag', null, self::$opp_ns);
     // estrazione array atti taggati con un tag
     $atti_ids = TaggingPeer::getTaggableIds($tag_id, 'OppAtto');
     if ($verbose) {
         printf("tag: %10s\n", $tag_id);
     }
     $tag_node->addAttribute('id', $tag_id);
     $tag_node->addAttribute('n_atti', count($atti_ids));
     $punteggio = 0.0;
     // --- estrazione rilevanza singoli atti ---
     foreach ($atti_ids as $cnt => $atto_id) {
         $punteggio += $d_punteggio = OppActHistoryCachePeer::getIndiceForAttoData($atto_id, $data);
         $atto_node = $tag_node->addChild('atto', null, self::$opp_ns);
         $atto_node->addAttribute('totale', $d_punteggio);
         $atto_node->addAttribute('atto_id', $atto_id);
         if ($verbose) {
             printf("atto: %10s totale: %7.2f\n", $atto_id, $d_punteggio);
         }
     }
     $tag_node->addAttribute('totale', $punteggio);
     return $punteggio;
 }