Programmierung

Hit-Counter für Phoca Gallery

In der Version 1.8.8 der bekannten und beliebten Phoca Gallery liegt leider noch immer kein Hit-Counter Modul vor. Als Feature Request wurde diese Anforderung vom Entwicklerteam bereits erfasst. Leider liegt bis heute kein Resultat vor.
In diesem Dokument befinden sich einige PHP Code Snippets, welche den Einbau eines Hit-Counters ermöglichen sollen.

Grundsätzlich müssen zwei (bzw. drei) Dateien angepasst werden. Nachfolgende Abschnitte dokumentieren die jeweiligen Dateien mit den geänderten Code-Stellen:


components\com_phocagallery\models\detail.php

// Get file thumbnail or No Image

$file_name_no = $items->filename;

$hits = $items->hits;

...

$file = new JObject();

//slideshow

$file->set('closebutton', $close_button);

$file->set('reloadbutton', $reload_button);

$file->set('nextbutton', $next_button);

$file->set('prevbutton', $prev_button);

$file->set('slideshowbutton', $js_slideshow_data['icons']);

$file->set('slideshowfiles', $js_slideshow_data['files']);

$file->set('slideshow', $this->_slideshow);

//download

$file->set('hits', $hits);

 

com_phocagallery\views\detail\tmpl\default.php

<?php echo hit($this->file->hits);?> mal angesehen

...

<?php

function setId()

{

  $this->_id = JRequest::getVar('id', 0, '', 'int');

  return $this->_id;

}

function hit( $hitcount )

{

  global $mainframe;

 

  $hitcount += 1;

  $db =& JFactory::getDBO();

  $user =& JFactory::getUser();

  $query = 'UPDATE jos_phocagallery'

  . ' SET hits = ' . (int) $hitcount

  . ' WHERE id = ( '. setId() .' )';

  $db->setQuery( $query );


  if (!$db->query())

  {

    JError::raiseError(500, $db->getErrorMsg() );

  }

  return $hitcount;

}

?>
 

components\com_phocagallery\views\category\tmpl\default.php

//Replaces the displayname of each image with the hit count value

if ($value->displayname == 1)
{


  ?>
  <div class="name" style="font-size:9px; font-style: normal; font-weight: normal;"><?php echo $value->hits;?> mal angesehen</div>

  <?php


}