<?php
/*
Админсакая зона wapshop
ВНИМАНИЕ! Все настройки в файле config.php. Здесь ни чего править не нужно.
Автор: Denvas
*/
include_once("config.php");
include_once("function.php");
include_once("session.php");
include_once("shop.php");
include_once("design.php");
$title="Админка";
$queryneed[]="login";$queryneed[]="pwd";
$nrowpage*=2;
InitDesign($design_name,$wapver);
$cat=isset($_GET["cat"])?(int)$_GET["cat"]:"";
$addpos=array("Добавить","addpos","1","select",array("1"=>"В конец","-1"=>"В начало"));
$codemenu="<a href='".QueryParam("",1,"index.php")."'>На сайт</a><br/>";
$auth=AuthAdmin();
if(!$auth){
$code.=design("Вход в закрытую зону","header");
if(isset($_GET["login"]))$code.=design("Неправильные имя или пароль","error");
$formdata=HiddenParam(array("login","pwd"));
$formdata[]=array("Login","login","","text");
$formdata[]=array("Password","pwd","","password");
$code.=ShowForm($formdata,"Войти","","get");
$code=strtr($template["mainadmin"],array("\$code\$"=>$code,"\$menu\$"=>$codemenu,"\$title\$"=>$title));
ShowXML($code);
exit;
};
$tmplcode=array(
"a"=>array("Ссылка","<a href=\"1\">2</a>","1 - ссылка (url), 2 - текст"),
"img"=>array("Картинка","<img src=\"pic/1\" alt=\"2\"/>","1 - файл картинки (url), 2 - подпись к картинке"),
".aimg"=>array("Картинка с сылкой","<a href=\"1\"><img src=\"pic/2\" alt=\"3\"/></a>","1 - ссылка (url), 2 - файл картинки (url), 3 - подпись к картинке"),
"b"=>array("Жирный","<b>1</b>","1 - жирный текст"),
"i"=>array("Наклонный","<i>1</i>","1 - наклонный текст"),
"u"=>array("Подчеркнутый","<u>1</u>","1 - подчеркнутый текст"),
"small"=>array("Маленький","<small>1</small>","1 - маленький текст"),
"big"=>array("Крупный","<big>1</big>","1 - крупный текст"),
"br"=>array("Перевод строки","<br/>",""),
);
$notstrip="";reset($tmplcode);while(list($key,$val)=each($tmplcode))if($key[0]!='.')$notstrip.="<".$key."><".$key."/>";
//начало админки
if(empty($_GET["a"])){
$code.=design("Админская зона","header");
$code.="<a href='".QueryParam(array("a"))."a=manager'>Конструктор</a><br/>";
$code.="<a href='".QueryParam(array("a"))."a=textedit'>Редактор текстов</a><br/>";
$code.="<a href='".QueryParam(array("a"),0,"gb.php")."'>Гостевая книга</a><br/>";
if($wm_enable)$code.="<a href='".QueryParam(array("a"))."a=wm'>Оплаты с помощью wm</a><br/>";
$code.="<a href='".QueryParam(array("a"))."a=stat'>Статистика</a><br/>";
$code.="Транслит: ";
if(!empty($_GET["tr"])){
$code.="<a href='".QueryParam("tr")."'>Отк</a><br/>";
}
else{
$code.="<a href='".QueryParam("tr")."tr=1'>Вкл</a><br/>";
};
}
//статистика посещений
elseif(strcmp($_GET["a"],"stat")==0){
$code.=design("Статистика входов","header");
$statist=@file($path_session."/stat_from.log");
if(empty($statist)){
$code.="Статистика отсутствует<br/>";
}
else{
$rows=count($statist);
list($start,$stop)=GetPage();
if($start==0)$code.="Откуда: сколько<br/>";
for($j=0;$j<$rows;$j++){
$statist[$j]=explode("|",trim($statist[$j]));
};
$statist=tablesort($statist,-2);
for($j=$start;$j<$stop;$j++)$code.=$statist[$j][0].": ".$statist[$j][1]."<br/>";
$code.=ShowPage();
};
}
//редактор текстов
elseif(strcmp($_GET["a"],"textedit")==0){
//не выбран файл, нужно показать весь каталог
if(empty($_GET["file"])){
$code.=design("Редактор текстов","header");
$dirs=array();
$fd=opendir($path_text);
while($namefile=readdir($fd)){
if(($namefile[0]!='.')&&(strpos($namefile,".txt"))){
if(is_file($path_text."/".$namefile))$dirs[]=$namefile;
};//if($file[0]!='.')
};//while ($file = readdir($handle))
closedir($fd);
$nrowpage*=2;
$rows=count($dirs);
list($start,$stop)=GetPage();
for($i=$start;$i<$stop;$i++){
$name=substr($dirs[$i],0,-4);
$code.=design("<a href='".QueryParam(array("file","p"))."file=".$name."'>".$name."</a><br/>","line".$i%2);
};
$code.=ShowPage();
}
else{
$namefile=$_GET["file"];$pathfile=$path_text."/".$namefile.".txt";
$code.=design("Текст ".$namefile,"header");
if(!file_exists($pathfile)){
if(!$demo){$fd=fopen($pathfile,"wb");flock($fd,LOCK_EX);fwrite($fd,"");fclose($fd);};
$_GET["line"]=0;
};
$data=@file($pathfile);
$rows=count($data);
if(empty($data[0]))$_GET["line"]=0;
//нет строки редактирования
if(!isset($_GET["line"])){
$nrowpage*=2;
list($start,$stop)=GetPage();$url=QueryParam(array("line"))."line=";
$listinsert=array(".".$rows=>"В конец");
for($j=$start;$j<$stop;$j++){
$code.=design("<a href='".$url.$j."'>".($j>0?$j:"Заголовок")."</a> ".htmlspecialchars(substr($data[$j],0,20))."<br/>","line".$j%2);
$listinsert[".".$j]="Между ".$j." и ".($j+1);
};
$code.=ShowPage();
$dataform=HiddenParam(array("p"));
$dataform[]=array("Добавить абзац текста","line",".".$rows,"select",$listinsert);
$code.=ShowForm($dataform,"Написать","","get");
$code.="<a href='".QueryParam(array("file","p"))."'>Список текстов</a><br/>";
}//if(!isset($_GET["line"]))
//редактирование метаданных
elseif(empty($_GET["line"])){
$showform=1;
if(!empty($_POST["send"])){
$showform=0;
$d["title"]=$_POST["title"];
$d["rows"]=$_POST["rows"];
$d["keyword"]=$_POST["keyword"];
}
else{
$elem=explode("|",isset($data[0])?$data[0]:"");
$d["title"]=empty($elem[0])?"":$elem[0];
$d["rows"]=empty($elem[1])?"":$elem[1];
$d["keyword"]=empty($elem[2])?"":$elem[2];
};
if(!$showform){
$data[0]=$d["title"]."|".$d["rows"]."|".$d["keyword"]."\n";
if(!$demo){$fd=fopen($pathfile,"wb");flock($fd,LOCK_EX);fwrite($fd,join($data));fclose($fd);};
Relocation(QueryParam(array("line")),"Изменения внесены",20);
};
$dataform=array();
$dataform[]=array("Заголовок текста","title",$d["title"],"text");
$dataform[]=array("Ключевые слова","keyword",$d["keyword"],"text");
$dataform[]=array("Элементов на странице","rows",$d["rows"],"text");
$code.=ShowForm($dataform,"Сохранить","","post");
$code.="<a href='".QueryParam(array("line"))."'>К тексту</a><br/>";
}
//редактирование текста
else{
$tmpl="";
if(strpos($_GET["line"],".")===0){
$j=(int)substr($_GET["line"],1)+1;
if($j>$rows){
$data[$j]="";
}
else{
for($i=$rows;$i>$j;$i--)$data[$i]=$data[$i-1];
$data[$j]="";
};
$editnext=".".$j;
}else{
$editnext=0;
$j=(int)$_GET["line"];
};
$showform=1;
if(!empty($_POST["send"])){
$showform=0;
$text=$_POST["text"];
if(strcmp($text,"#")==0){
array_splice($data,$j,1);
}
else{
$data[$j]=strip_tags(strtr($text,array("""=>"\"","'"=>"'","<"=>"<",">"=>">")),$notstrip)."\n";
};
};
if(!$showform){
if(!$demo){$fd=fopen($pathfile,"wb");flock($fd,LOCK_EX);fwrite($fd,join($data));fclose($fd);};
if($editnext)
Relocation(QueryParam(array("line"))."line=".$editnext,"Еще строчечку",20);
else
Relocation(QueryParam(array("line")),"Изменения внесены",20);
};
$dataform=array(array("Абзац ".($editnext?($j-1):$j),"text",trim(htmlspecialchars($data[$j])),"textarea"));
$code.=ShowForm($dataform,"Сохранить","","post");
$code.="<a href='".QueryParam(array("line"))."'>К тексту</a><br/>";
};
};//else if(empty($_GET["file"]))
}
//менеджер сайта
elseif(strcmp($_GET["a"],"manager")==0){
$product=GetProduct($cat,0);
if($cat)
$code.=design("Категория ".$cat,"header");
else
$code.=design("Менеджер сайта","header");
$url=QueryParam(array("a","edit"))."id=";
$rows=count($product);
list($start,$stop)=GetPage();
////////////////////////
for($j=$start;$j<$stop;$j++){
$codeprod="";
$codeprod.="<a href='".$url.$product[$j]["id"]."&a=edit'>".($product[$j]["title"]?$product[$j]["title"]:($product[$j]["description"]?htmlspecialchars(substr($product[$j]["description"],0,15)):$product[$j]["id"]))."</a> ";
//переход внутрь категории
if(strcmp($product[$j]["type"],"cat")==0)$codeprod.="<a href='".QueryParam(array("cat","p"))."cat=".$product[$j]["id"]."'>".$product[$j]["type"]."</a>";
//ссылка на редактирование файла
elseif(strcmp($product[$j]["type"],"text")==0)$codeprod.="<a href='".QueryParam(array(),1)."a=textedit&file=".$product[$j]["file"][0]."'>".$product[$j]["type"]."</a>";
//все остальное
else $codeprod.=$product[$j]["type"];
//удаление и перемещение
$codeprod.=" <a href='".$url.$product[$j]["id"]."&a=delete'>x</a> <a href='".$url.$product[$j]["id"]."&a=move&pos=-1'>u</a> <a href='".$url.$product[$j]["id"]."&a=move&pos=1'>d</a><br/>";
$code.=design($codeprod,"line".$j%2);
};
$code.=ShowPage();
$code.="<a href='".QueryParam(array("a","p","edit"))."a=add'>Добавить элементы</a><br/>";
$code.="<a href='".QueryParam(array("a","p","edit"))."a=pageinfo'>Параметры категории</a><br/>";
if(!empty($cat)){
if(!empty($catinfo["parent"]))$code.="<a href='".QueryParam("cat")."cat=".$catinfo["parent"]."'>На уровень вверх</a> ";
$code.="<a href='".QueryParam("cat")."'>В главную категорию</a><br/>";
};
}
elseif(strcmp($_GET["a"],"add")==0){
$code.=design("Добавить элемент на страницу","bottom");
$code.="<a href='".QueryParam(array("a","p","edit"))."a=edit&type=cat'>Категория (cat)</a><br/>";
$code.="<a href='".QueryParam(array("a","p","edit"))."a=edit&type=file'>Файлами (file)</a><br/>";
$code.="<a href='".QueryParam(array("a","p","edit"))."a=edit&type=text'>Отдельный текст (text)</a><br/>";
$code.="<a href='".QueryParam(array("a","p","edit"))."a=edit&type=code'>Абзац текста (code)</a><br/>";
reset($tmplcode);
while(list($key,$val)=each($tmplcode)){
$code.=" <a href='".QueryParam(array("a","p","edit"))."a=edit&type=code.".$key."'>".$val[0]."</a><br/>";
}
$code.="<a href='".QueryParam(array("a"))."a=manager'>К списку</a><br/>";
}
elseif(strcmp($_GET["a"],"move")==0){
$product=GetProduct($cat,0);
MoveProduct($_GET["id"],$_GET["pos"]);
Relocation(QueryParam(array("a","id","pos"))."a=manager","Перемещен");
}
elseif(strcmp($_GET["a"],"delete")==0){
$product=GetProduct($cat,0);
$code.=design("Вы уверены, что хотите удалить?","warning");
$code.="<a href='".QueryParam(array("a"))."a=deleteyes'>Да</a><br/>";
$code.="<a href='".QueryParam(array("a","id"))."'>Нет</a><br/>";
}
elseif(strcmp($_GET["a"],"deleteyes")==0){
$product=GetProduct($cat,0);
DeleteProduct($_GET["id"]);
Relocation(QueryParam(array("a","id"))."a=manager","Удалено");
}
elseif(strcmp($_GET["a"],"pageinfo")==0){
$product=GetProduct($cat,0);
$code.=design("Параметры страницы","header");
$showform=1;
if(!empty($_POST["send"])){
$showform=0;
if(empty($_POST["titlepage"])){$code.=design("Заполните заголовок","error");$showform=1;};
$catinfo["title"]=$_POST["titlepage"];
$catinfo["keyword"]=$_POST["keyword"];
$catinfo["rows"]=$_POST["rows"];
};
if(!$showform){
UpdateCat($catinfo);//обновить запись
Relocation(QueryParam(array("a","id","type"))."a=manager","Категория обновлена",20);
};
$dataform=array();
$dataform[]=array("Заголовок страницы","titlepage",$catinfo["title"],"text");
$dataform[]=array("Ключевые слова","keyword",$catinfo["keyword"],"text");
$dataform[]=array("Абзатцев на странице","rows",$catinfo["rows"],"text");
$code.=ShowForm($dataform,"Сохранить","","post");
$code.="<a href='".QueryParam(array("a","id","type"))."a=manager"."'>К списку</a><br/>";
}
elseif(strcmp($_GET["a"],"edit")==0){
$product=GetProduct($cat,0);
$id=isset($_GET["id"])?$_GET["id"]:0;
$tmpl="";
if(empty($id)){
$data=array("id"=>"","title"=>"","description"=>"","price"=>"","picture"=>"","demo"=>"","type"=>$_GET["type"],"align"=>"","file"=>array(""));
}
else{
for($j=0;$j<count($product);$j++){
if($product[$j]["id"]==$id){
$data=$product[$j];
while(list($key,$val)=each($data))if(!is_array($val))$data[$key]=strtr($val,array("\""=>""","'"=>"'","<"=>"<",">"=>">"));
break;
};
};
};
if((isset($_GET["type"]))&&(strpos($_GET["type"],"."))){
$data["type"]=$_GET["type"];
$tmpl=substr($data["type"],strpos($data["type"],".")+1);
$data["type"]=substr($data["type"],0,strpos($data["type"],"."));
};
if(!empty($_POST["addtag"])){
$tmpl=$_POST["addtag"];
};
$namet=array("file"=>"Новый товар","morefile"=>"Еще файлы","cat"=>"Новая категория","text"=>"Новый текст","code"=>"Новый код");
$code.=design($data["title"]?$data["title"]:$namet[$data["type"]],"header");
$showform=1;$sub=isset($_GET["sub"])?$_GET["sub"]:"";
//размещение файлов
if((strcmp($data["type"],"file")==0)&&(strcmp($sub,"morefile")==0)){
$dataform=array();
$more=(int)$_GET["more"];
if(!empty($_POST["send"])){
$showform=0;
for($i=1;$i<=$more;$i++){
$filetemp=GetFile("file".$i."_",$path_download,"Файл");
if($filetemp){
if(strcmp($filetemp,"#")==0)
unset($data["file"][$i]);
else
$data["file"][$i]=$filetemp;
};
};//for
};//if(!empty($_POST["send"]))
if(!$showform){
UpdateProduct($data);//обновить запись
Relocation(QueryParam(array("a","id","type","sub","more"))."a=manager","Файлы обновлены",20);
};
for($i=1;$i<=$more;$i++){
$dataform[]=array("Файл ".$i,"sepfile",isset($data["file"][$i])?($data["file"][$i]." заменить?"):"","show");
$dataform[]=array("URL","file".$i."_1","","text");
$dataform[]=array("или файл","file".$i."_2","","file");
};
$code.=ShowForm($dataform,"Сохранить","","post");
}
elseif(strcmp($data["type"],"file")==0){
if(!empty($_POST["send"])){
$showform=0;
$data["title"]=$_POST["title"];
$data["description"]=strip_tags(strtr($_POST["description"],array("""=>"\"","'"=>"'","<"=>"<",">"=>">")),$notstrip);
$data["align"]=$_POST["align"];
$data["price"]=(float)$_POST["price"];
if($filetemp=GetFile("pic","pic","Картинка")){
if(strcmp($filetemp,"#")==0)
$data["picture"]="";
else{
$data["picture"]=$filetemp;
//создание из картинки тумбинашки
if(!empty($resize_type)){
$nametumb=substr($filetemp,0,strrpos($filetemp,".")).".".$resize_type;
if(ResizeImage("pic/".$filetemp,"pic/".$nametumb,$resize_width, $resize_height)!=0){
$code.=design("Ошибка создания уменьшенной картинки","error");$showform=1;
};
$data["picture"]=$nametumb;
unlink("pic/".$filetemp);//удалить оригинальную картинку
};//if(!empty($resize_type))
};//else
}//if
if($filetemp=GetFile("demo","free","Демоверсия")){
if(strcmp($filetemp,"#")==0)
$data["demo"]="";
else
$data["demo"]=$filetemp;
};
if($filetemp=GetFile("file",$path_download,"Файл")){
if(strcmp($filetemp,"#")==0)
$data["file"][0]="";
else
$data["file"][0]=$filetemp;
};
};
if(!$showform){
UpdateProduct($data);//обновить запись
if(empty($_POST["morefile"]))
Relocation(QueryParam(array("a","id","type"))."a=manager","Товар обновлен",20);
else
Relocation(QueryParam(array("id","type"))."type=file&sub=morefile&id=".$data["id"]."&more=".(int)$_POST["morefile"],"Товар обновлен. Идем править файлы",20);
};
$dataform=array();
if(empty($data["id"]))$dataform[]=$addpos;
$dataform[]=array("Выравнивание","align",$data["align"],"select",array(""=>"По умолчанию","left"=>"Слева","center"=>"По центру","right"=>"Справа"));
$dataform[]=array("Название","title",$data["title"],"text");
$dataform[]=array("Описание","description",$data["description"],"textarea");
$dataform[]=array("Скриншот","seppic",$data["picture"]?($data["picture"]." заменить?"):"","show");
$dataform[]=array("URL","pic1","","text");
$dataform[]=array("Файл","pic2","","file");
$dataform[]=array("Файл","sepfile",$data["file"][0]?($data["file"][0]." заменить?"):"","show");
$dataform[]=array("URL","file1","","text");
$dataform[]=array("или файл","file2","","file");
$dataform[]=array("Еще файлы?","morefile","","select",array("0"=>"Нет","1"=>"1 файл","2"=>"2","3"=>"3","5"=>"5","20"=>"20 :-)"));
$code.=ShowForm($dataform,"Сохранить","","post");
}
//размещение текстов
elseif(strcmp($data["type"],"text")==0){
if(!empty($_POST["send"])){
$showform=0;
if(empty($_POST["title"])){$code.=design("Заполните название","error");$showform=1;};
$data["title"]=$_POST["title"];
$data["description"]=strip_tags(strtr($_POST["description"],array("""=>"\"","'"=>"'","<"=>"<",">"=>">")),$notstrip);
$data["demo"]=$_POST["demo"];
$data["align"]=$_POST["align"];
$price=(float)$_POST["price"];
if($price<0){$code.=design("Цена должна быть больше 0","error");$showform=1;};
$data["price"]=$price;
if(empty($_POST["filename"])){$code.=design("Укажите файл","error");$showform=1;};
$data["file"][0]=$_POST["filename"];
if(!checkinput($data["file"][0],"FILE")){$code.=design("В названии файла разрешены только английские буквы, цифры, \".-_\"","error");$showform=1;};
if($data["file"][0]){
$filetemp=GetFile("file",$path_text,"Файл",$data["file"][0].".txt");
};
};
if(!$showform){
UpdateProduct($data);//обновить запись
if(empty($_POST["edit"]))
Relocation(QueryParam(array("a","id","type"))."a=manager","Описание текста обновлено",20);
else
Relocation(QueryParam(array("a","id","type"))."a=textedit&file=".$data["file"][0],"Описание текста обновлено. Переход к редактированию текста.",20);
};
$dataform=array();
if(empty($data["id"]))$dataform[]=$addpos;
$dataform[]=array("Выравнивание","align",$data["align"],"select",array(""=>"По умолчанию","left"=>"Слева","center"=>"По центру","right"=>"Справа"));
$dataform[]=array("Название *","title",$data["title"],"text");
$dataform[]=array("Описание","description",$data["description"],"textarea");
$dataform[]=array("Цена (0-бесплатно)","price",$data["price"],"text");
$dataform[]=array("Название файла (name.buy)*","filename",$data["file"][0],"text");
$dataform[]=array("Текстовый файл","sepfile",$data["file"][0]?($data["file"][0]." заменить?"):"после загрузки на сервер имя изменится на вышеуказанное","show");
$dataform[]=array("URL","file1","","text");
$dataform[]=array("или файл","file2","","file");
$dataform[]=array("Анонс текста","demo",$data["demo"],"select",array("0"=>"Только описание","1"=>"+ первая строчка","2"=>"+ последняя строчка","3"=>"+ случайная строчка"));
$dataform[]=array("Перейти к редактированию","edit",$data["id"]?0:1,"select",array("1"=>"Да","0"=>"Нет"));
$code.=ShowForm($dataform,"Сохранить","","post");
}
elseif(strpos($data["type"],"code")===0){
$desc="Текст *";
if(!empty($_POST["send"])){
$showform=0;
if(empty($_POST["description"])){$code.=design("Заполните описание","error");$showform=1;};
$data["title"]=$_POST["title"];
$data["align"]=$_POST["align"];
$data["description"]=strip_tags(strtr($_POST["description"],array("""=>"\"","'"=>"'","<"=>"<",">"=>">")),$notstrip);
}
else{
if((!empty($tmpl))&&(isset($tmplcode[$tmpl]))){
$data["description"].=($data["description"]?" ":"").htmlspecialchars($tmplcode[$tmpl][1]);
$desc=$tmplcode[$tmpl][0].": ".$tmplcode[$tmpl][2];
};
};
if(!$showform){
UpdateProduct($data);//обновить запись
if(empty($_POST["addtag"]))
Relocation(QueryParam(array("a","id","type"))."a=manager","Код обновлен",20);
else
Relocation(QueryParam(array("type","id"))."id=".$data["id"]."&type=".$data["type"].".".$_POST["addtag"],"Код добавлен. Редактирование...",20);
};
$dataform=array();
if(empty($data["id"]))$dataform[]=$addpos;
if($desc){
$dataform[]=array($desc,"sepfile","","show");
};
$dataform[]=array("Выравнивание","align",$data["align"],"select",array(""=>"По умолчанию","left"=>"Слева","center"=>"По центру","right"=>"Справа"));
$dataform[]=array("","description",$data["description"],"textarea");
$dataform[]=array("Заголовок","title",$data["title"],"text");
$listtag=array(""=>"");
reset($tmplcode);while(list($key,$val)=each($tmplcode)){$listtag[$key]=$val[0];};
$dataform[]=array("Добавить в конец","addtag","","select",$listtag);
$code.=ShowForm($dataform,"Сохранить","","post");
}
elseif(strcmp($data["type"],"cat")==0){
if(!empty($_POST["send"])){
$showform=0;
if(empty($_POST["title"])){$code.=design("Заполните название","error");$showform=1;};
//if(empty($_POST["description"])){$code.=design("Заполните описание","error");$showform=1;};
$data["title"]=$_POST["title"];
$data["description"]=strip_tags(strtr($_POST["description"],array("""=>"\"","'"=>"'","<"=>"<",">"=>">")),$notstrip);
$data["align"]=$_POST["align"];
$data["price"]=(float)$_POST["price"];
if($filetemp=GetFile("pic","pic","Картинка")){
if(strcmp($filetemp,"#")==0)
$data["picture"]="";
else
$data["picture"]=$filetemp;
};
};
if(!$showform){
UpdateProduct($data);//обновить запись
$namefile=$path_download."/data".$data["id"].".txt";
if((!$demo)&&(!file_exists($namefile))){
$fd=fopen($namefile,"wb");
flock($fd,LOCK_EX);
fwrite($fd,(!empty($_POST["titlepage"])?$_POST["titlepage"]:$data["title"])."|".$cat."|".(isset($_POST["keyword"])?$_POST["keyword"]:"")."|".(isset($_POST["rows"])?$_POST["rows"]:"")."\n");
fclose($fd);
};
if(isset($_GET["type"]))
Relocation(QueryParam(array("a","id","type"))."a=manager&cat=".$data["id"],"Категория обновлена. Переход в категорию.",20);
else
Relocation(QueryParam(array("a","id","type"))."a=manager","Категория обновлена",20);
};
$dataform=array();
if(empty($data["id"]))$dataform[]=$addpos;
$dataform[]=array("Выравнивание","align",$data["align"],"select",array(""=>"По умолчанию","left"=>"Слева","center"=>"По центру","right"=>"Справа"));
$dataform[]=array("Название *","title",$data["title"],"text");
$dataform[]=array("Описание","description",$data["description"],"textarea");
$dataform[]=array("Цена (0-бесплатно)","price",$data["price"],"text");
$dataform[]=array("Картинка","seppic",$data["picture"]?($data["picture"]." заменить?"):"","show");
$dataform[]=array("URL","pic1","","text");
$dataform[]=array("или файл","pic2","","file");
if(!$data["id"]){
$dataform[]=array("Параметры новой страницы","sepfile","","show");
$dataform[]=array("Заголовок","titlepage","","text");
$dataform[]=array("Ключевые слова","keyword","","text");
$dataform[]=array("Абзатцев на странице","rows","","text");
};
$code.=ShowForm($dataform,"Сохранить","","post");
if($data["id"]){
$code.="Другие параметры доступны по ссылке \"<a href='".QueryParam(array("a","id","type","cat"))."cat=".$data["id"]."&a=pageinfo'>Страница</a>\"<br/>";
};
};
$code.=$template["separator"];
$code.="<a href='".QueryParam(array("a","id","type"))."a=manager"."'>К списку</a><br/>";
};//elseif(strcmp($_GET["a"],"edit")==0)
$code.=$template["separator"];
if(!empty($_GET["a"]))$code.="<a href='".QueryParam(array("login","pwd"),1)."'>В админку</a><br/>";
SaveLog("admin");
$code=strtr($template["mainadmin"],array("\$code\$"=>$code,"\$menu\$"=>$codemenu,"\$title\$"=>$title));
ShowXML($code);
//==================================================//
function MoveProduct($id,$pos){
global $path_download, $cat, $demo;
if($demo)return;
$content=file($path_download."/data".$cat.".txt");
$flag=-1;
for($j=1;$j<count($content);$j++)
if(strpos($content[$j],$id."|")===0){
$flag=$j;
break;
};
if($flag+$pos<1)return;
if($flag+$pos>count($content))return;
if($flag>=0){
$tmp=$content[$flag];
$content[$flag]=$content[$flag+$pos];
$content[$flag+$pos]=$tmp;
$fd=fopen($path_download."/data".$cat.".txt","wb");
flock($fd,LOCK_EX);
fwrite($fd,join($content));
fclose($fd);
};
};
//==================================================//
function DeleteProduct($id){
global $path_download, $cat, $demo;
if($demo)return;
$content=file($path_download."/data".$cat.".txt");
$flag=-1;
for($j=1;$j<count($content);$j++)
if(strpos($content[$j],$id."|")===0){
$flag=$j;
break;
};
if($flag>=0){
array_splice($content,$flag,1);
$fd=fopen($path_download."/data".$cat.".txt","wb");
flock($fd,LOCK_EX);
fwrite($fd,join($content));
fclose($fd);
};
};
//==================================================//
function UpdateCat($catinfo){
global $path_download,$cat,$demo;
if($demo)return;
$content=file($path_download."/data".$cat.".txt");
$content[0]=$catinfo["title"]."|".$catinfo["parent"]."|".$catinfo["keyword"]."|".$catinfo["rows"]."\n";
$fd=fopen($path_download."/data".$cat.".txt","wb");
flock($fd,LOCK_EX);
fwrite($fd,join($content));
fclose($fd);
};
//==================================================//
function UpdateProduct(&$data){
global $path_download,$cat,$demo;
if($demo)return;
$str="";$add=0;
if(empty($data["id"])){
$data["id"]=time();
$add=1;
};
$content=file($path_download."/data".$cat.".txt");
$str=$data["title"]."|".$data["description"]."|".$data["price"]."|".$data["picture"]."|".$data["demo"]."|".$data["type"].($data["align"]?(",".$data["align"]):"")."|".join("|",$data["file"]);
if(($content>0)&&(strpos($content[count($content)-1],$str)!==false))return;
$str=$data["id"]."|".$str;
if($add){
$addpos=isset($_POST["addpos"])?(int)$_POST["addpos"]:1;
if($addpos>0)$content[]=$str."\n"; else{
array_unshift($content,"");
$content[0]=$content[1];$content[1]=$str."\n";
};
}
else{
for($j=1;$j<count($content);$j++)
if(strpos($content[$j],$data["id"]."|")===0){
$content[$j]=$str."\n";break;
};
};
$fd=fopen($path_download."/data".$cat.".txt","wb");
flock($fd,LOCK_EX);
fwrite($fd,join($content));
fclose($fd);
};
//==================================================//
/*
Обработка имени файла
*/
function CheckFile(&$path,&$name,$id){
global $download_type;
//проверка на разрешенность файла
$name=strtolower($name);
$dot=strrpos($name,".");
if($dot===false)return "Ошибка типа";
$ext=substr($name,$dot+1);
if(empty($download_type[$ext]))return "Тип ".$ext." не разрешен к закачке";
//если заливка файла, то проверять.
if(!$id){
//подготовка уникального имени
$j=1;$newname=$name;
while(file_exists($path."/".$newname)){
$newname=substr($name,0,$dot).$j.".".$ext;
$j++;
if($j>100)return "Ошибка #13";
};
$name=$newname;
};
return "";
};
//==================================================//
/*
Загрузить файл
*/
function GetFile($name,$path,$tt,$namefile="",$id=0){
global $showform,$code,$down_maxsize,$demo;
if($demo)return "demo";
$res="";
//закачка файлов
if(!empty($_POST[$name."1"])){
$pic=$_POST[$name."1"];
if(strcmp($pic,"#")==0)return "#";//удалить
if(strpos($pic,"?"))$pic=substr($pic,0,strpos($pic,"?"));
$elem=explode("/",$pic);
if(empty($namefile))$namefile=$elem[count($elem)-1];
//указали локальый файл на сервере
if((strpos($pic,"http://")===false)&&(count($elem)==1)){
if(file_exists($path."/".$namefile)){
$res=$namefile;
}
else{
$code.=$tt.": файл ".$namefile." не найден на сервере<br/>";
$showform=1;
};
}
//файл еще не закачан, проверка на формат
elseif(strpos($pic,"http://")!==0){
$code.=$tt.": URL должен быть формата http://site.ru/file.ext<br/>";
$showform=1;
}
//стаскивание с других сайтов
else{
if(($content=@file_get_contents($pic))&&(strlen($content)<$down_maxsize)){
if($check=CheckFile($path,$namefile,$id)){$code.=$tt.": ".$check."<br/>";return "";};
$fd=fopen($path."/".$namefile,"wb");
flock($fd,LOCK_EX);
fwrite($fd,$content);
fclose($fd);
chmod($path."/".$namefile, 0666);
$res=$namefile;
}
else{
$code.=$tt.": Не удалось стянуть файл ".$pic." (".$namefile.")<br/>";$showform=1;
};
};
}
elseif((!empty($_FILES[$name."2"]))&&(!empty($_FILES[$name."2"]['name']))){
$fl=&$_FILES[$name."2"];
//проверка на загруженость файла
if((is_uploaded_file($fl['tmp_name']))&&($fl['size']>0)&&($fl['size']<$down_maxsize)){
if(empty($namefile))$namefile=$fl['name'];
if($check=CheckFile($path,$namefile,$id)){$code.=$tt.": ".$check."<br/>";return "";};
if(@copy($fl['tmp_name'], $path."/".$namefile)){
chmod($path."/".$namefile, 0666);
$res=$namefile;
}
else{
$code.=$tt.": Ошибка записи файла<br/>";$showform=1;
};
}
else{
$code.=$tt.": Не удалось загрузить файл ".$fl['name'].($fl['size']>=$down_maxsize?". Первышен допустимый размер":"").($fl['size']==0?". Файл пустой":"")."<br/>";$showform=1;
};
};
return $res;
};
//==================================================//
/*
Действие: функция для сортировки массива в обратном порядке. для чисел, но в php работает и для строк :)
*/
function cmpintdesc($a, $b){
global $globalsort;
$sort=$globalsort-1;
if ($a[$sort] == $b[$sort]) return 0;
return ($a[$sort] > $b[$sort]) ? -1 : 1;
}
//==================================================//
/*
Сортировка.
$orderby=номер колонки начиная с 1
*/
function tablesort($data,$orderby){
global $globalsort;
$globalsort=abs($orderby);
if($orderby>0)
usort($data, "cmpintasc");
elseif($orderby<0)
usort($data, "cmpintdesc");
return $data;
};
?>