如何计算magento中的观看次数(点击次数)? magento中是否有可用的内置方法?
评论编辑:
我需要整个网站的总观看次数。我从这段代码中获得了在线用户数:
$visitor_count = Mage::getModel('log/visitor_online')
->prepare()
->getCollection()
->count();
if(!empty($visitor_count) && $visitor_count > 0) {
$cnt = $visitor_count;
echo 'Visitors online :'.$cnt;
}
答案 0 :(得分:0)
您可以使用的主表log_visitor
所以,这是代码:
$totalUser = Mage::getSingleton('core/resource')->getConnection('core_write');
$queryTotal=$totalUser->query("SELECT * FROM log_visitor ORDER BY visitor_id DESC LIMIT 1 ");
// the result will give you maximum visitor_id
答案 1 :(得分:0)
你放在顶部的代码的问题是它会导致你可能不想要的表扫描。此外,您不希望编写任何SQL。所以可能想在块类中尝试这样的东西。
$model = Mage::getModel('log/visitor_online');
$select = $model->getCollection()->getSelect();
/* @var $select Varien_Db_Select */
$select->reset(Varien_Db_Select::COLUMNS);
$select->columns(
new Zend_Db_Expr(
sprintf('count(%s)', $model->getIdFieldName())
)
);
echo $select->query()->fetchColumn(0);
答案 2 :(得分:0)
使用此代码计算每个产品位置,如产品页面上的按钮,将此代码放在view.phtml中
<?php
if (!is_dir('clickcounter')) {
@mkdir('clickcounter', 0777,true);
}
$filename=$_product->getSku().'.txt';
$dir='clickcounter' ;
if(!file_exists($dir.'/'.$filename)){
file_put_contents($dir.'/'.$filename, '0');
}
if(isset($_GET['click']) == 'yes'){
file_put_contents($dir.'/'.$filename, ((int) file_get_contents($dir.'/'.$filename)) + 1);
header('Location: ' . $_SERVER['SCRIPT_NAME']);
?>
///// Ajax Update ///
function myAjax() {
jQuery.ajax({
type: "POST",
url: '?click=yes',
data:{action:'call_this'},
cache: false,
success: function (html) {
//location.reload(true);
jQuery(".favourite-img").replaceWith(jQuery('.favourite-img', jQuery(html)));
jQuery('#likeme').addClass('disabled');
}
});
}
</script>
//// HTML代码///
<a id="likeme" class="disabled" href="javascript:void(0)" >
<div class="favourite-product">
<div class="favourite-img"><?php echo file_get_contents($dir.'/'.$filename); ?></div>
</div>
</a>