/*
=====================================================
Глам иди нахуй со свойми багнутыми модулями не наябывай людей, привет от длеклуба!!
=====================================================
*/
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
if (version_compare($config['version_id'], "7.3", ">")){
$member_db = array(1 => $member_id['user_group'], 2 => $member_id['name'], 10 => $member_id['user_id']);
}
if ($member_db[1] != 1) {
msg("error", $lang['opt_denied'], $lang['opt_denied']);
}
//error_reporting(E_ALL);
require_once ENGINE_DIR.'/classes/modulus.class.php';
require_once ENGINE_DIR.'/data/shop_config.php';
if(!file_exists(ENGINE_DIR.'/inc/makethumb.php'))
{
require_once ENGINE_DIR.'/classes/thumb.class.php';
}
else
{
require_once ENGINE_DIR.'/inc/makethumb.php';
}
$MyModule = new Modulus();
$MyModule->Mushka = "vals";
// init module itself
$TplDef = array(
"item" => "shop/item.tpl",
"list" => "shop/list.tpl",
"full" => "shop/full.tpl",
"cfg_lnk" => "shop/cfg_lnk.tpl",
"captcha" => "shop/captcha.tpl",
"message" => "shop/message.tpl",
"search_item" => "shop/search/item.tpl",
"search_list" => "shop/search/list.tpl",
"formitem" => "shop/multifield.tpl",
"mailadmin" => "shop/mailadmin.tpl",
"mailuser" => "shop/mailuser.tpl",
"ordersuccess" => "shop/ordersuccess.tpl"
);
$MyPlugin = new shopPlugin($MyModule);
$MyModule->Initiate("shop", "/uploads/shop/", "./engine/data/shop_config.php", $ShopConfig, $TplDef, "ShopConfig", array("shopplug"=>$MyPlugin));
//-------------
// -----------------|
// cart class |
// -----------------|
// Now load all the data parts
$DbArr = array(
"id" => "id",
"user_id" => "varchar",
"date" => "date",
"contents" => "text",
);
$TplDef = array(
"item" => "shop/cart/item.tpl",
"add" => "shop/cart/add.tpl",
"list" => "shop/cart/list.tpl",
"edit" => "shop/cart/edit.tpl",
"delete" => "shop/cart/delete.tpl",
"main" => "shop/cart/main.tpl",
"full" => "shop/cart/full.tpl",
"pager" => "shop/cart/pager.tpl"
);
$LangArr = array(
"title" => "Корзина"
);
$FormArr = array(
"title"=>array("title"=>"Название", "descr"=>"Название города")
);
$CheckDataArr = array(
"text"=>array("type"=>"required", "msg"=>"Поле 'Сообщение' обязательно к заполнению")
);
$LinksArr = array(
"list" => array("sef"=>"/shop/products/itemshow/{post_id}", "std"=>"/index.php?do=shop&class=products&op=itemshow&id={post_id}")
);
$MyModule->LoadDataClass("carts", PREFIX . "_shop_carts", $DbArr, $TplDef, $LangArr, $FormArr, $CheckDataArr, array(), $LinksArr, false);
//-------------
$DbArr = array(
"id" => "id",
"title" => "varchar",
"category" => "Class:categories:ItemSelect",
"price" => "decimal",
"date" => "date",
"addinfo" => "text",
"photo" => "unlimg",
"mainpub" => "checkbox",
"byaction"=>"checkbox",
"oldprice"=>"varchar",
"maindata"=>"multifield",
"owner" => "CurrentUser",
"commpub"=>"checkbox",
"meta_desc"=>"text",
"meta_keys"=>"text",
"artikul"=>"varchar"
);
$TplDef = array(
"item" => "shop/ad/item.tpl",
"full" => "shop/ad/full.tpl",
"add" => "shop/ad/add.tpl",
"list" => "shop/ad/list.tpl",
"edit" => "shop/ad/edit.tpl",
"search" => "shop/ad/search.tpl",
"delete" => "shop/ad/delete.tpl",
"pager" => "shop/ad/pager.tpl"
);
$LangVars = array(
"title" => "Объявления",
"title_item" => "Обявление"
);
$LangArr = array(
"title" => "Объявления",
);
$FormArr = array(
"title"=>array("title"=>"Название", "descr"=>"Название города"),
"title"=>array("title"=>"Название", "descr"=>"Название города"),
"title"=>array("title"=>"Название", "descr"=>"Название города")
);
$CheckDataArr = array(
);
$BrdArr = array();
$LinksArr = array(
"list" => array("sef"=>"/shop", "std"=>"/index.php?do=shop")
);
$MyModule->LoadDataClass("products", PREFIX . "_shop", $DbArr, $TplDef, $LangArr, $FormArr, $CheckDataArr, array(), $LinksArr, false);
//-------------
// counries
$DbArr = array(
"id" => "id",
"title" => "varchar",
"parent" => "Class:categories:ItemSelect",
"description" => "text"
);
$TplDef = array(
"item" => "shop/categories/item.tpl",
"full" => "shop/categories/full.tpl",
"add" => "shop/categories/add.tpl",
"list" => "shop/categories/list.tpl",
"edit" => "shop/categories/edit.tpl",
"delete" => "shop/categories/delete.tpl",
"pager" => "shop/categories/pager.tpl"
);
$LangArr = array(
"title" => "Марки"
);
$FormArr = array(
"title"=>array("title"=>"Название", "descr"=>"Название страны")
);
$CheckDataArr = array(
"title"=>array("type"=>"required", "msg"=>"Поле 'Название' обязательно к заполнению")
);
$LinksArr = array(
"list" => array("sef"=>"/shop", "std"=>"/index.php?do=shop")
);
$MyModule->LoadDataClass("categories", PREFIX . "_shop_categories", $DbArr, $TplDef, $LangArr, $FormArr, $CheckDataArr, array(), $LinksArr, false);
//-------------
// counries
$DbArr = array(
"id" => "id",
"title" => "varchar",
"type" => "Select:FieldTypes",
"ftitle" => "varchar",
"data" => "text",
"langtitle"=>"varchar"
);
$TplDef = array(
"item" => "shop/fields/item.tpl",
"full" => "shop/fields/full.tpl",
"add" => "shop/fields/add.tpl",
"list" => "shop/fields/list.tpl",
"edit" => "shop/fields/edit.tpl",
"delete" => "shop/fields/delete.tpl",
"pager" => "shop/fields/pager.tpl"
);
$LangArr = array(
"title" => "Поля"
);
$FormArr = array(
"title"=>array("title"=>"Название", "descr"=>"Название поля")
);
$CheckDataArr = array(
"title"=>array("type"=>"required", "msg"=>"Поле 'Название' обязательно к заполнению")
);
$LinksArr = array(
"list" => array("sef"=>"/admin.php?mod=shop", "std"=>"/admin.php?mod=shop")
);
$MyModule->LoadDataClass("multifields", PREFIX . "_shop_fields", $DbArr, $TplDef, $LangArr, $FormArr, $CheckDataArr, array(), $LinksArr, false);
//-------------
// counries
$DbArr = array(
"id" => "id",
"cart_id" => "Class:carts:ItemSelect",
"gateway" => "varchar",
"status" => "Select:Statuses",
"fio" => "varchar",
"company" => "varchar",
"email" => "varchar",
"telephone" => "varchar",
"address" => "varchar",
"addinfo" => "text",
"ip" => "varchar",
"date" => "varchar",
"items" => "text",
"totalsum" => "varchar",
"ordernum"=>"varchar"
);
$TplDef = array(
"item" => "shop/orders/item.tpl",
"full" => "shop/orders/full.tpl",
"add" => "shop/orders/add.tpl",
"list" => "shop/orders/list.tpl",
"edit" => "shop/orders/edit.tpl",
"delete" => "shop/orders/delete.tpl",
"pager" => "shop/orders/pager.tpl"
);
$LangArr = array(
"title" => "Заказы"
);
$FormArr = array(
"title"=>array("title"=>"Название", "descr"=>"Заказ")
);
$CheckDataArr = array(
"cart_id"=>array("type"=>"required", "msg"=>"Поле 'ID корзины' обязательно к заполнению")
);
$LinksArr = array(
"list" => array("sef"=>"/shop", "std"=>"/index.php?do=shop")
);
$MyModule->LoadDataClass("orders", PREFIX . "_shop_orders", $DbArr, $TplDef, $LangArr, $FormArr, $CheckDataArr, array(), $LinksArr, false);
//-------------
/////////////////////////|
// Main page |
/////////////////////////|
$PageConf = array(
"type"=>"static" // define type of the page - static ot form
);
$TagList = array();
$UserRights = "all";
$UrlPath = array(
"sef"=>"/shop",
"std"=>"/index.php?do=shop"
);
$MetaArr = array(
"title" => $JarchiveConfig['title']['value'],
"keywords" => "доска, объявления, ключ, слово",
"description" => "Лучшая доска объвлений нашего города!!!"
);
$MyModule->CreatePage("ShowAll", "Главная", $PageConf, $TagList, $UserRights, $UrlPath, "shop/admin/main.tpl", $MetaArr);
// #####################################################
// -------------------
$PageConf = array(
"type"=>"static" // define type of the page - static ot form
);
$TagList = array(
"main_data" => "Class:general:AdminShowConfig"
);
$UserRights = "admin";
$UrlPath = array(
"sef"=>"/shop",
"std"=>"/index.php?do=shop"
);
$MetaArr = array(
"title" => "Конфигурация :: ".$ShopConfig['title']['value'],
"keywords" => "доска, объявления, ключ, слово",
"description" => "Лучшая доска объвлений нашего города!!!"
);
$MyModule->CreatePage("config", "Конфигурация модуля", $PageConf, $TagList, $UserRights, $UrlPath, "shop/config.tpl", $MetaArr);
$MyModule->AddLink("main", "/index.php?do=shop", "/shop", "all");
$MyModule->AddLink("adm_cfg_lnk", "/admin.php?mod=shop&op=config", "/admin.php?mod=shop&op=config", "admin");
// Now define array with classes using captcha
if($ShopConfig['moder_not']['value']=="1")
{
$ModerationArr = array(
"products"=>"0"
);
$MyModule->SetModeration($ModerationArr);
}
if($ShopConfig['comment_not']['value']=="1")
{
$CommArr = array(
"products"=>"comments",
);
$MyModule->SetComments($CommArr);
}
// Initiate languages
$MyModule->SetLangVar("ru", "categories", "категории");
$MyModule->SetLangVar("ru", "cities", "города");
$MyModule->SetLangVar("ru", "products", "объявления");
$MyModule->SetLangVar("ru", "countries", "страны");
$MyModule->SetLangVar("ru", "CfgAdmin", "Конфигурация модуля");
$MyModule->SetLangVar("ru", "AddLink", "Добавить");
$MyModule->SetLangVar("ru", "ShowList", "Список");
$MyModule->SetLangVar("ru", "Edit", "Изменить");
$MyModule->SetLangVar("ru", "Delete", "Удалить");
$MyModule->SetLangVar("ru", "ModerList", "Модерация");
$MyModule->SetLangVar("ru", "publ", "Опубликовать");
$MyModule->SetLangVar("ru", "unpubl", "Снять");
$MyModule->SetLangVar("ru", "msg_categories_add", "Спасибо, категория успешно добавлена");
$MyModule->SetLangVar("ru", "msg_products_add", "Спасибо, объявление успешно добавлено.");
$MyModule->SetLangVar("ru", "msg_countries_add", "Спасибо, страна успешно добавлено.");
$MyModule->SetLangVar("ru", "msg_comments_add", "Спасибо, комментарий успешно добавлен.");
$MyModule->SetLangVar("ru", "msg_categories_edit", "Спасибо, категория успешно изменена");
$MyModule->SetLangVar("ru", "msg_products_edit", "Спасибо, объявление успешно изменено.");
$MyModule->SetLangVar("ru", "msg_countries_edit", "Спасибо, страна успешно изменена");
$MyModule->SetLangVar("ru", "msg_comments_edit", "Спасибо, комментарий успешно изменен");
$MyModule->SetLangVar("ru", "msg_categories_del", "Спасибо, категория успешно удалена");
$MyModule->SetLangVar("ru", "msg_products_del", "Спасибо, объявление успешно удалено.");
$MyModule->SetLangVar("ru", "msg_countries_del", "Спасибо, страна успешно удалена.");
$MyModule->SetLangVar("ru", "msg_comments_del", "Спасибо, комментарий успешно удален");
$MyModule->SetLangVar("ru", "msg_record_exists", "Точно такая же запись уже существует в базе.");
$MyModule->SetLangVar("ru", "msg_record_none", "По данной категории записи отсутствуют");
$MyModule->SetLangVar("ru", "msg_restricted", "У вас недостаточно прав для просмотра этой страницы.
Назад");
$MyModule->SetLangVar("ru", "brd_startup", "Доска объявлений");
$MyModule->SetLangVar("ru", "msg_yrhere", "Вы здесь:");
$MyModule->SetLangVar("ru", "brd_sign", " → ");
$MyModule->SetLangVar("ru", "addimgfield", "Добавить поле");
// Select Lists
$db->query("SELECT id, group_name FROM " . PREFIX . "_usergroups");
$GroupArr = array();
while($row = $db->get_row())
{
$GroupArr[$row['id']] = $row['group_name'];
}
$MyModule->AddSelectList("groups",$GroupArr);
$TimeShowList = array(
"week" => "Неделя",
"2week" => "2 недели",
"month" => "Месяц"
);
$MyModule->AddSelectList("GetTimeShow",$TimeShowList);
$YesNoList = array(
"1" => "Да",
"0" => "Нет"
);
$MyModule->AddSelectList("YesNo",$YesNoList);
$YesNoList = array(
"bu" => "Покупка",
"se" => "Продажа"
);
$MyModule->AddSelectList("GetOfferType", $YesNoList);
$StateList = array(
"0" => "Все",
"1" => "Новое",
"2" => "подержанное (б/у)"
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("States",$StateList, $ParamsFR);
$StateList = array(
"0" => "Все",
"1" => "в наличии",
"2" => "под заказ",
"3" => "в пути",
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("Nalich",$StateList, $ParamsFR);
$VTypeList = array(
"0" => "Все",
"1" => "велосипед",
"11" => "дорожник",
"10" => "квадроцикл",
"6" => "классик",
"9" => "кольцевик",
"8" => "кроссовый",
"2" => "мопед",
"16" => "мотард",
"13" => "мотоцикл",
"14" => "нэйкед",
"12" => "скутер",
"4" => "спортбайк",
"7" => "туристический",
"3" => "чоппер",
"5" => "эндуро"
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("VTypes",$VTypeList, $ParamsFR);
$MarksList = array(
"0" => "Все",
"1" => "Caro",
"2" => "Oporo",
"3" => "Topclass",
"4" => "Foundain",
"5" => "Eago"
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("Marks", $MarksList, $ParamsFR);
$MarksList = array(
"0" => "Все",
"1" => "нет",
"2" => "2",
"3" => "4",
"4" => "6",
"5" => "8",
"6" => "10",
"7" => "12",
"8" => "14",
"9" => "16",
"10" => "18",
"11" => "20"
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("HMFors", $MarksList, $ParamsFR);
$MarksList = array(
"0" => "Все",
"1" => "Низкий",
"2" => "Высокий",
"3" => "Совмещенные с ванной",
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("Poddons", $MarksList, $ParamsFR);
$MarksList = array(
"0" => "Все",
"1" => "Нет",
"2" => "Сенсорная",
"3" => "Кнопочная",
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("Panels", $MarksList, $ParamsFR);
$YearArr = array();
for($i=1970; $i<=(int)date("Y");$i++)
{
$YearArr[$i] = $i;
}
$YearArr = array_reverse($YearArr, true);
$MyModule->AddSelectList("Years", $YearArr, $ParamsFR);
$CurrArr = array(
"0" => "Все",
"usd" => "$",
"jpy" => "JPY",
"eur" => "EUR",
"rur" => "руб."
);
$ParamsFR = array(
"zeritem"=>"edititem, additem"
);
$MyModule->AddSelectList("Currencies", $CurrArr, $ParamsFR);
$CurrArr = array(
"varchar" => "Текстовое поле",
"decimal" => "Числовое поле",
"text" => "Текстовый блок",
"checkbox" => "Чекбокс"
);
$ParamsFR = array();
$MyModule->AddSelectList("FieldTypes", $CurrArr, $ParamsFR);
$CurrArr = array(
"unconf" => "В ожидании",
"paid" => "Оплачен",
"canceld" => "Отменен",
);
$ParamsFR = array();
$MyModule->AddSelectList("Statuses", $CurrArr, $ParamsFR);
$SearchData = array(
"products" => array("title", "category", array("item"=>"price", "type"=>"range"))
);
$MyModule->SetSearchParams("products", $SearchData);
// multifields load
$MRecs = $MyModule->GetRecords("multifields");
$FArr = array();
foreach($MRecs as $recm)
{
$FArr[''.$recm['ftitle'].''][] = $recm;
}
foreach($FArr as $sey=>$deer)
{
$FString = "";
foreach($deer as $jalue)
{
$FString .= "mfield_".$sey."_".$jalue['type']."_".$jalue['title']."|++|".$jalue['type']."|++||::|";
}
$MyModule->MultiFields[''.$sey.''] = $FString;
}
shop_header();
global $metatags;
// When we have our pages set, lets make disatcher function to process them all
function Dispatchershop() //gets parameters and invokes necessary function
{
global $MyModule, $MyPlugin, $metatags;
$op = "";
if(isset($_REQUEST['op']))
{
$op = $_REQUEST['op'];
}
switch ($op) {
case "shop":
echo $MyModule->LoadPage("ShowAll");
break;
case "additem":
echo $MyModule->AddItem($_GET['class']);
break;
case "config":
echo $MyModule->LoadPage("config");
break;
case "admlist":
echo $MyModule->LoadPage("admlist");
break;
case "showlist":
echo $MyModule->ShowItemList($_GET['class'], array("pager"=>"1"));
break;
case "itemshow":
echo $MyModule->ShowItem($_GET['class']);
break;
case "publish":
echo $MyModule->PublishItem($_GET['class'], "1");
break;
case "unpublish":
echo $MyModule->PublishItem($_GET['class'], "0");
break;
case "edit":
echo $MyModule->EditItem($_GET['class']);
break;
case "delete":
echo $MyModule->DeleteItem($_GET['class']);
break;
case "search":
echo $MyModule->Search($_GET['class']);
break;
case "itemup":
echo $MyPlugin->PutItemUp();
echo $MyModule->LoadPage("ShowAll");
break;
case "itemurgent":
echo $MyPlugin->MakeItemUrgent();
echo $MyModule->LoadPage("ShowAll");
break;
case "itemvip":
echo $MyPlugin->MakeItemVip();
echo $MyModule->LoadPage("ShowAll");
break;
case "itemunurgent":
echo $MyPlugin->MakeItemUrgent(false);
echo $MyModule->LoadPage("ShowAll");
break;
case "itemunvip":
echo $MyPlugin->MakeItemVip(false);
echo $MyModule->LoadPage("ShowAll");
break;
default:
{
echo $MyModule->LoadPage("ShowAll");
break;
}
}
}
if(strstr($_SERVER['REQUEST_URI'], "shop"))
{
Dispatchershop();
}
shop_footer();
class shopPlugin
{
// empty constructor function
var $VarMod = null;
function shopPlugin($modobj) {
$this->VarMod = $modobj;
}
function GetAddLink()
{
global $is_logged;
if($this->VarMod->MyConfig['allow_add']['value'])
{
if($this->VarMod->UserCheckRights($this->VarMod->MyConfig['min_add_group']['value']))
{
return "VarMod->GetLink("products", "additem")."\">Добавить объявление";
}
else
{
$Restr = "Добавить объявление (вам не хватает прав)";
if(!$is_logged)
{
$Restr .= " Регистрация";
}
return $Restr;
}
}
}
function MakeItemList($Params)
{
return $Params['text'];
}
function ShowFull($ItemDataArr)
{
global $metatags;
$metatags['title'] = $ItemDataArr['title']." :: ".$ItemDataArr['category']." :: ".$this->VarMod->MyConfig['title']['value'];
if($this->VarMod->UserCheckRights('admin'))
{
$ItemDataArr['adm_links'] = $ItemDataArr['adm_links']." | Поднять ";
if($ItemDataArr['urgent']=="0")
{
$ItemDataArr['adm_links'] .= " | Сделать \"Срочно\" ";
}
else
{
$ItemDataArr['adm_links'] .= " | Снять \"Срочно\" ";
}
if($ItemDataArr['vip']=="0")
{
$ItemDataArr['adm_links'] .= " | Сделать \"Важно\" ";
}
else
{
$ItemDataArr['adm_links'] .= " | Снять \"Важно\" ";
}
}
return $ItemDataArr;
}
function EditItem($ItemDataArr)
{
//$ItemDataArr['form'] = '