<?php
/*
Функции магазина
Автор: Denvas
*/
//==================================================//
/*
Авторизация
*/
function AuthAdmin(){
global $admin_login, $admin_password;
if((empty($_GET["login"]))||(empty($_GET["pwd"]))){
$auth=0;
}
elseif((strcmp(trim($_GET["login"]),$admin_login)!=0)||(strcmp(trim($_GET["pwd"]),$admin_password)!=0)){
$auth=0;
}
else
$auth=1;
return $auth;
};
//==================================================//
function MainMenu($name="mainmenu"){
global $template, $path_text;
//меню
$codemenu=@file_get_contents($path_text."/".$name.".txt");
if($codemenu){
$codemenu=substr($codemenu,strpos($codemenu,"\n"));//отрезать первую строчку
$codemenu=strtr($template["menu"],array("\$title\$"=>"Меню","\$code\$"=>replaceurl($codemenu)));
};
return $codemenu;
};
//==================================================//
/*
Считать товары
*/
function GetProduct($cat="",$editcontext=1){
global $path_download,$keyword,$title,$catinfo,$nrowpage;
$data=array();
$namefile=$path_download."/data".$cat.".txt";
if(!file_exists($namefile))NotFound();
$content=file($namefile);
$context=explode("|",trim($content[0]));
$catinfo=array();
$elem=explode("|",trim($content[0]));
$catinfo["title"]=!empty($elem[0])?$elem[0]:"";//заголовок
$catinfo["parent"]=!empty($elem[1])?$elem[1]:0;//вышестоящий
$catinfo["keyword"]=!empty($elem[2])?$elem[2]:"";
$catinfo["rows"]=!empty($elem[3])?$elem[3]:"";
if($editcontext){
if($catinfo["keyword"])$keyword=$catinfo["keyword"];
if($catinfo["title"])$title=$catinfo["title"];
if($catinfo["rows"])$nrowpage=$catinfo["rows"];
};
for($j=1;$j<count($content);$j++){
$elem=explode("|",trim($content[$j]));
if(count($elem)<7)continue;
$files=array();
for($i=7;$i<count($elem);$i++)$files[]=$elem[$i];
$row=array("id"=>$elem[0],"title"=>$elem[1],"description"=>$elem[2],"price"=>$elem[3],"picture"=>$elem[4],"demo"=>$elem[5],"type"=>$elem[6],"file"=>$files);
if(strpos($row["type"],",")!==false){
$elem=explode(",",$row["type"]);
$row["type"]=$elem[0];
$row["align"]=isset($elem[1])?$elem[1]:"";
}
else{
$row["align"]="";
};
$data[]=$row;
};
return $data;
};
//==================================================//
/*
Обработка начала страницы
*/
function head(){
global $page, $balance, $session, $ses;
$balance=0;
if(isset($_REQUEST["ses"])){
$session=strtr($_REQUEST["ses"],array("."=>"","/"=>"","\\"=>"","'"=>"","\""=>""));
$ses=GetSession($session);
if(is_array($ses)){
$balance=$ses[1];
}
else{
$session="";
$ses=array();
};
}
else{
$session="";
$ses=array();
};
};
//==================================================//
/*
Обработка низа страницы
*/
function bottom(){
global $balance, $banner_num, $banner_name, $wappc_affiliate, $code, $keyword, $title, $wapver, $endcode, $codemenu, $codebanner, $template, $keywords, $codecounter, $path_text;
$codewappc1="";$codewappc2="";
if(($balance<=0)&&($wappc_affiliate)){
include_once("client_wappc.php");
$ppc=GetFeed(urlencode(myUTF8_encode($keyword)),1);
if($ppc){
$ppc=design($ppc,"advertisement");
if($wappc_affiliate==1)$codewappc1=$ppc;//сверху
elseif($wappc_affiliate==2)$codewappc2.=$ppc;//снизу
else{
$codewappc1=$ppc;//сверху
$codewappc2.=design(GetFeed(urlencode(myUTF8_encode($keyword)),1),"advertisement");//снизу
};
};
};
//переключатель версий
$codewapver="";
$url=QueryParam("wv")."wv=";
if($wapver!=1)$codewapver.="<a href='".$url."1'>WAP 1.1</a> "; else $codewapver.="<b>WAP 1.1</b> ";
if($wapver!=2)$codewapver.="<a href='".$url."2'>WAP 2.0</a> "; else $codewapver.="<b>WAP 2.0</b> ";
if($wapver!=3)$codewapver.="<a href='".$url."3'>WEB</a> "; else $codewapver.="<b>WEB</b> ";
$codewapver.="<br/>";
//ротатолка баннеров
if($banner_num>0){
$banner=file($path_text."/".$banner_name.".txt");$rndbanner=array();
array_splice($banner,0,1);//удалить первую строчку, т.к. там служебные данные
if(count($banner)>=$banner_num){
if($banner_num>1)
$rand_keys = array_rand($banner, $banner_num);
else
$rand_keys = array(array_rand($banner, $banner_num));//возвращает число
for($i=0;$i<count($rand_keys);$i++)$rndbanner[]=trim($banner[$rand_keys[$i]]);
$codebanner=strtr($template["banner"],array("\$title\$"=>"Баннер","\$code\$"=>join($template["bannerbr"],$rndbanner)));
}
else
$codebanner="";
};//if($banner_num>0)
$code=strtr($template["main"],array("\$code\$"=>$code,"\$menu\$"=>$codemenu,"\$banner\$"=>$codebanner,"\$wapver\$"=>$codewapver,"\$counter\$"=>counter(),"\$codeend\$"=>$endcode,"\$wappc1\$"=>$codewappc1,"\$wappc2\$"=>$codewappc2,"\$keywords\$"=>$keywords,"\$counterext\$"=>$codecounter,"\$title\$"=>$title));
};
//==================================================//
/*
Счетчик
*/
function counter(){
global $user_agent, $ip, $path_session, $template, $stat_from;
$counter=@file($path_session."/counter.log");
for($j=0;$j<count($counter);$j++)$counter[$j]=trim($counter[$j]);
if(empty($counter[0]))$counter[0]=0;
if(date("d",$counter[0])!=date("d",time()))$counter[2]=0;
if(empty($counter[1]))$counter[1]=0;
if(empty($counter[2]))$counter[2]=0;
if(empty($counter[3]))$counter[3]=0;
$counter[3]++;$j=0;$ctime=time();
$keys=$ip."|".$user_agent."|";$online=0;$flag=0;
for($j=4;$j<count($counter);$j++){
$elem=explode("|",$counter[$j]);
if(strpos($counter[$j],$keys)===0){
$flag=$j;$elem[2]=$ctime;$counter[$j]=join("|",$elem);$online++;
}
elseif($elem<3){array_splice($counter,$j,1);$j--;}//удалить пустые строки
elseif((int)$elem[2]+60*5>$ctime){$online++;}//последнее обновление меньше чем 5 минут назад
elseif((int)$elem[2]+60*60*3<$ctime){array_splice($counter,$j,1);$j--;};//последнее обновление больше часа назад, вообще удалим
};
if(!$flag){
$counter[]=$keys.$ctime;
$counter[1]++;$counter[2]++;
$online++;
}
elseif($counter[2]<1)$counter[2]=1;
$counter[0]=time();
$fd=@fopen($path_session."/counter.log","wb");
if($fd){
flock($fd,LOCK_EX);
fwrite($fd,join("\n",$counter));
fclose($fd);
};
//подсчет входов "откуда"
if((!$flag)&&(!empty($stat_from))&&(isset($_GET[$stat_from]))){
$from=$_GET[$stat_from]."|";
$flag=true;
$statist=@file($path_session."/stat_from.log");
for($j=0;$j<count($statist);$j++){
if(strpos($statist[$j],$from)===0){
$elem=explode("|",trim($statist[$j]));
$elem[1]++;
$statist[$j]=join("|",$elem)."\n";
$flag=false;
break;
};
};//for
if($flag)$statist[]=$from."1\n";
$fd=@fopen($path_session."/stat_from.log","wb");
if($fd){flock($fd,LOCK_EX);fwrite($fd,join($statist));fclose($fd);};
};//if подсчет входов "откуда"
return strtr($template["counter"],array("\$alluniq\$"=>$counter[1],"\$allhits\$"=>$counter[3],"\$todayuniq\$"=>$counter[2],"\$online\$"=>$online));
};
?>