Просмотр файла shop.php

Размер файла: 8.4Kb
<?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));
    };
?>