. */ /** * Class TopPageViewsModule */ class TopPageViewsModule extends AbstractModule implements ModuleBlockInterface { /** {@inheritdoc} */ public function getTitle() { return /* I18N: Name of a module */ I18N::translate('Most viewed pages'); } /** {@inheritdoc} */ public function getDescription() { return /* I18N: Description of the “Most visited pages” module */ I18N::translate('A list of the pages that have been viewed the most number of times.'); } /** {@inheritdoc} */ public function getBlock($block_id, $template = true, $cfg = null) { global $ctype, $WT_TREE; $num = $this->getBlockSetting($block_id, 'num', '10'); $count_placement = $this->getBlockSetting($block_id, 'count_placement', 'before'); $block = $this->getBlockSetting($block_id, 'block', '0'); if ($cfg) { foreach (array('count_placement', 'num', 'block') as $name) { if (array_key_exists($name, $cfg)) { $$name = $cfg[$name]; } } } $id = $this->getName() . $block_id; $class = $this->getName() . '_block'; if ($ctype === 'gedcom' && Auth::isManager($WT_TREE) || $ctype === 'user' && Auth::check()) { $title = ''; } else { $title = ''; } $title .= $this->getTitle(); $content = ""; // load the lines from the file $top10 = Database::prepare( "SELECT page_parameter, page_count" . " FROM `##hit_counter`" . " WHERE gedcom_id = :tree_id AND page_name IN ('individual.php','family.php','source.php','repo.php','note.php','mediaviewer.php')" . " ORDER BY page_count DESC LIMIT :limit" )->execute(array( 'tree_id' => $WT_TREE->getTreeId(), 'limit' => (int) $num, ))->FetchAssoc(); if ($block) { $content .= "
[' . $count . '] | '; } $content .= '' . $record->getFullName() . ' | '; if ($count_placement == 'after') { $content .= '[' . $count . '] | '; } $content .= '