Gallery:如何在页面底部嵌入计数器的代码
来自站长百科
Netstat/OneStat[ ]
你可能想添加 [Nedstat]/[Onestat]等类型的代码至页面底部以统计相册访问量。这里给出指导:
- 将themes/<theme>/templates/theme.tpl复制到themes/<theme>/templates/local/theme.tpl
- 在文件的本地版本中找到含有{g->trailer}的语句行
- 就在该行之前添加如下的代码:
{g->addToTrailer}
{php}
$countercode = <<<END
<the code provided to you by the counter site guys>
END;
echo $countercode;
{/php}
{/g->addToTrailer}
- 保存文件即可
BBClone[ ]
---针对G2.1进行了更新 – 查看G2.0版本的历史---
在你的gallery2之下安装bbclone。
创建一个名为gallery2.php的文件并将其置入gallery2的根目录下。在gallery2.php文件中置入如下文本。
<?php
require_once(dirname(__FILE__) . "/main.php");
if (!defined('GALLERY_CONFIG_DIR')){
define('GALLERY_CONFIG_DIR', dirname(__FILE__));
}
if (!defined("_BBCLONE_DIR")){
define("_BBCLONE_DIR", GALLERY_CONFIG_DIR . "/bbclone/");
}
$Title = "";
$Title = pathway($_GET['g2_itemId']);
if (strlen($Title) > 0){
define("_BBC_PAGE_NAME", $Title);
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) require (COUNTER);
}
function pathway($g2_itemId){
//first get parent albums
if (empty($g2_itemId)){
//return "Gallery Root";
$g2_itemId = 7;
}
if (!class_exists('GalleryCoreApi')){
return "";
}
list ($ret, $parents) = GalleryCoreApi::fetchParentSequence($g2_itemId);
if ($ret) { $parents = array(); }
$parents[count($parents)+1]=$g2_itemId;
$g2_s=0;
//gogogo
$path = "";
$extend = "";
$seperator = " -> ";
foreach($parents as $items){
list ($ret, $item) = GalleryCoreApi::loadEntitiesById($items);
if (GalleryUtilities::isA($item, 'GalleryItem')){
$title = "";
if (!$ret && $item){
if ($item->getTitle()){
$title = $item->getTitle();
}else{
$title = $item->getPathComponent();
}
}
$titles[$item->getId()] = preg_replace('/\r\n/', ' ', $title);
//let's switch again
if($g2_s == 0 AND count($parents) ==1){ //first and last
$path .= $extend.$title;
$extend = $seperator;
} elseif($g2_s == 0 AND count($parents) !=1) {// first but not last
$path .= $extend.$title;
$extend = $seperator;
} elseif($g2_s == count($parents)-1 AND $g2_s == 1){// second and last
$path .=$extend.$title;
$extend = $seperator;
} elseif($g2_s == count($parents)-1){ // not second but it is last
$path .=$extend.$title;
$extend = $seperator;
} elseif($g2_s == 1) {// everything in between
$path .=$extend.$title;
$extend = $seperator;
} else {
$path .=$extend.$title;
$extend = $seperator;
}
}
$g2_s++;
}
if (!empty($_GET['g2_view']))
if ($_GET['g2_view'] == "imageframe.CSS" ||
$_GET['g2_view'] == "core.DownloadItem" ||
$_GET['g2_view'] == "rewrite.FileNotFound")
return "";
else
if ($_GET['g2_view'] != "core.ShowItem")
$path .= " * " . $_GET['g2_view'];
if (!empty($_GET['g2_subView']))
$path .= " ~ " . $_GET['g2_subView'];
return $path;
}//end pathway function
?>
接着在你的config.php中包括进如下语句
define('GALLERY_MAIN_PHP', 'gallery2.php');
这将保证无论使用哪个外观主题都可以记录下点击次数。如果你不想使用bbclone的话,你可以使用其他点击计数器代码替换bbclone代码。
phpTrafficA[ ]
遵照 BBClone相关的指导即可。
安装phpTrafficA并遵照其所有的安装指导。
修改phpTrafficA 的write_logs.php文件。
将
if ($sites[$sid]['trim']) {
$To = $_SERVER["PHP_SELF"];
} else {
$To = $_SERVER["REQUEST_URI"];
}
修改为
if ($PageName != null &&
strlen($PageName) > 0)
{
$To = $PageName;
}else{
if ($sites[$sid]['trim']) {
$To = $_SERVER["PHP_SELF"];
} else {
$To = $_SERVER["REQUEST_URI"];
}
}
并在gallery2.php中,替换
$Title = "";
$Title = pathway($_GET['g2_itemId']);
if (strlen($Title) > 0){
define("_BBC_PAGE_NAME", $Title);
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) require (COUNTER);
}
输入
$PageName = "";
$PageName = pathway($_GET['g2_itemId']);
if (strlen($PageName) > 0){
$sid="12345";
require("/phpTrafficA/write_logs.php");
}
确保在代码的最后部分置入你phpTrafficA 站点的正确sid,并保证write_logs.php的路径无误。