Beispiel #1
0
 function Add()
 {
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . STRUCTURE) + 1;
     $dataset = new A_DataSet(STRUCTURE, true);
     $dataset->fields = array("sort");
     foreach (A::$LANGUAGES as $key => $name) {
         $_REQUEST["name_{$key}"] = trim($_REQUEST["name_{$key}"]);
         $dataset->fields[] = "name_{$key}";
     }
     return $dataset->Insert();
 }
Beispiel #2
0
 function Add()
 {
     $data = array();
     for ($i = 0; $i <= 6; $i++) {
         if (!empty($_REQUEST["price{$i}"]) || !empty($_REQUEST["per{$i}"])) {
             $data[] = array('from' => !empty($_REQUEST["from{$i}"]) ? (int) $_REQUEST["from{$i}"] : "", 'to' => !empty($_REQUEST["to{$i}"]) ? (int) $_REQUEST["to{$i}"] : "", 'price' => !empty($_REQUEST["price{$i}"]) ? (int) $_REQUEST["price{$i}"] : 0, 'per' => !empty($_REQUEST["per{$i}"]) ? (int) $_REQUEST["per{$i}"] : 0);
         }
     }
     $_REQUEST['name'] = trim($_REQUEST['name']);
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . STRUCTURE) + 1;
     $_REQUEST['data'] = serialize($data);
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("name", "data", "sort");
     return $dataset->Insert();
 }
Beispiel #3
0
 function Add()
 {
     $_REQUEST['name'] = preg_replace("/[^a-zA-Z0-9_-]/i", "", $_REQUEST['name']);
     $_REQUEST['caption'] = strip_tags($_REQUEST['caption']);
     if ($_REQUEST['mode'] = isset($_REQUEST['vmode']) ? 1 : 0) {
         $_REQUEST['value'] = $_REQUEST['valuetxt'];
     }
     if (empty($_REQUEST['name']) || A::$DB->existsRow("SELECT id FROM " . DOMAIN . "_options WHERE name=?", $_REQUEST['name']) || A::$DB->existsRow("SELECT id FROM " . STRUCTURE . " WHERE name=?", $_REQUEST['name'])) {
         $this->errors['doubleopt'] = true;
         return false;
     }
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . STRUCTURE) + 1;
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("name", "caption", "value", "mode", "sort");
     return $dataset->Insert();
 }
Beispiel #4
0
 function Add()
 {
     $PURL = parse_url(trim($_REQUEST['url']));
     $_REQUEST['url'] = urldecode($PURL['path']);
     if (empty($_REQUEST['url'])) {
         return false;
     }
     if (A::$DB->existsRow("SELECT id FROM " . STRUCTURE . " WHERE url=?", $_REQUEST['url'])) {
         $this->errors['doubleurl'] = true;
         return false;
     }
     $_REQUEST['title'] = strip_tags(trim($_REQUEST['title']));
     $_REQUEST['keywords'] = strip_tags(trim($_REQUEST['keywords']));
     $_REQUEST['description'] = strip_tags(trim($_REQUEST['description']));
     $MURL = parse_url(trim($_REQUEST['move']));
     $_REQUEST['move'] = !empty($MURL['host']) ? "http://" . $MURL['host'] : "";
     if (!empty($MURL['path'])) {
         $_REQUEST['move'] .= urldecode($MURL['path']);
     }
     $_REQUEST['notfound'] = isset($_REQUEST['notfound']) ? 'Y' : 'N';
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("url", "title", "keywords", "description", "move", "notfound");
     return $dataset->Insert();
 }
Beispiel #5
0
 /**
  * Обработчик действия: Добавление столбца в структуру импорта.
  */
 function AddCol()
 {
     $fields = array();
     for ($i = 0; $i < 3; $i++) {
         $fields['category' . $i] = array('field' => 'category' . $i, 'name' => 'Категория ур.' . ($i + 1), 'type' => 'string');
     }
     $fields['name'] = array('field' => 'name', 'name' => 'Название', 'type' => 'string');
     $fields['content'] = array('field' => 'content', 'name' => 'Описание', 'type' => 'string');
     $fields['description'] = array('field' => 'description', 'name' => 'Аннотация', 'type' => 'text');
     $fields['art'] = array('field' => 'art', 'name' => 'Артикул', 'type' => 'string');
     $fields['mprice'] = array('field' => 'mprice', 'name' => 'Модификатор', 'type' => 'mprice');
     $fields['price'] = array('field' => 'price', 'name' => 'Цена', 'type' => 'float');
     $fields['oldprice'] = array('field' => 'oldprice', 'name' => 'Прошлая цена', 'type' => 'float');
     $fields['iscount'] = array('field' => 'iscount', 'name' => 'Количество', 'type' => 'int');
     $fields['active'] = array('field' => 'active', 'name' => 'Активен', 'type' => 'bool');
     $fields['favorite'] = array('field' => 'favorite', 'name' => 'Спецпредложение', 'type' => 'bool');
     $fields['new'] = array('field' => 'new', 'name' => 'Новинка', 'type' => 'bool');
     $fields['tags'] = array('field' => 'tags', 'name' => 'Теги', 'type' => 'string');
     for ($i = 0; $i < 3; $i++) {
         $fields['idimg' . $i] = array('field' => 'idimg' . $i, 'name' => 'Фото ' . ($i + 1), 'type' => 'image');
     }
     for ($i = 0; $i < 3; $i++) {
         $fields['idfile' . $i] = array('field' => 'idfile' . $i, 'name' => 'Файл ' . ($i + 1), 'type' => 'file');
     }
     $sort = A_Session::get(SECTION . "_sort", isset($_COOKIE[SECTION . '_sort']) ? $_COOKIE[SECTION . '_sort'] : A::$OPTIONS['sort']);
     if ($sort == 'sort') {
         $fields['sort'] = array('field' => 'sort', 'name' => 'Порядок', 'type' => 'int');
     }
     A::$DB->query("SELECT * FROM " . DOMAIN . "_fields WHERE item='" . SECTION . "' AND type<>'file' AND type<>'image' AND type<>'date' ORDER BY sort");
     while ($row = A::$DB->fetchRow()) {
         if ($row['type'] == 'format') {
             $row['type'] = 'text';
         }
         $fields[$row['field']] = array('field' => $row['field'], 'name' => $row['name_' . DEFAULTLANG], 'type' => $row['type']);
     }
     A::$DB->free();
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . SECTION . "_cols") + 1;
     $_REQUEST['caption'] = $fields[$_REQUEST['field']]['name'];
     $_REQUEST['type'] = $fields[$_REQUEST['field']]['type'];
     $dataset = new A_DataSet(SECTION . "_cols");
     $dataset->fields = array("id", "field", "caption", "type", "sort");
     return $dataset->Insert();
 }
Beispiel #6
0
 function AddBanner()
 {
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("name", "idcat", "url", "showurl", "target", "text", "width", "height", "sort", "active");
     $_REQUEST['name'] = strclear($_REQUEST['name']);
     $_REQUEST["sort"] = A::$DB->getOne("SELECT MAX(sort) FROM " . STRUCTURE) + 1;
     $_REQUEST['active'] = isset($_REQUEST['active']) ? 'Y' : 'N';
     $_REQUEST['url'] = urldecode($_REQUEST['url']);
     if (isset($_REQUEST['showall'])) {
         $_REQUEST['showurl'] = "";
     } elseif ($_REQUEST['showurl']) {
         $showurls = explode("\n", $_REQUEST['showurl']);
         foreach ($showurls as $i => $url) {
             if ($url = urldecode($url)) {
                 $showurls[$i] = $url;
             } else {
                 unset($showurls[$i]);
             }
         }
         $_REQUEST['showurl'] = implode("\n", $showurls);
     }
     if (isset($_REQUEST['date'])) {
         $_REQUEST['date'] = "Y";
         array_push($dataset->fields, "date", "date1", "date2");
     }
     if (!isset($_REQUEST['showall']) && !empty($_REQUEST['show'])) {
         $_REQUEST['show'] = serialize($_REQUEST['show']);
         array_push($dataset->fields, "show");
     }
     $banner_ext = array("gif", "jpg", "jpeg", "png", "swf");
     if (isset($_FILES['bannerfile']['tmp_name']) && file_exists($_FILES['bannerfile']['tmp_name'])) {
         $ext = $basename = "";
         escapeFileName($_FILES['bannerfile']['name'], $ext, $basename);
         $basename = translit($basename);
         if (in_array($ext, $banner_ext)) {
             mk_dir($path = "files/" . DOMAIN . "/rek_images");
             $_REQUEST["filepath"] = $path . "/{$basename}.{$ext}";
             $i = 1;
             while (is_file($_REQUEST["filepath"])) {
                 $_REQUEST["filepath"] = $path . "/{$basename}_" . sprintf("%02d", $i++) . ".{$ext}";
             }
             copyfile($_FILES['bannerfile']['tmp_name'], $_REQUEST["filepath"]);
             $_REQUEST["type"] = $ext == "swf" ? "flash" : "image";
             array_push($dataset->fields, "filepath", "type");
             if ($_REQUEST["type"] == "image") {
                 require_once 'Image/Transform.php';
                 $it = Image_Transform::factory('GD');
                 $it->load($_FILES['bannerfile']['tmp_name']);
                 $_REQUEST["width"] = $it->img_x;
                 $_REQUEST["height"] = $it->img_y;
             }
         }
     }
     return $dataset->Insert();
 }
Beispiel #7
0
 /**
  * Обработчик действия: Добавление поля.
  */
 function AddField()
 {
     $fields = A::$DB->getCol("SELECT field FROM " . DOMAIN . "_fields WHERE item='" . SECTION . "'");
     if (in_array($_REQUEST['field'], $fields)) {
         $this->errors['doublefield'] = true;
         return false;
     }
     $lang = LANG == 'all' ? DEFAULTLANG : LANG;
     $_REQUEST['item'] = SECTION;
     $_REQUEST['fill'] = isset($_REQUEST['fill']) ? 'Y' : 'N';
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . DOMAIN . "_fields WHERE item='" . SECTION . "'") + 1;
     $_REQUEST['name_' . $lang] = $_REQUEST['name'];
     $dataset = new A_DataSet(DOMAIN . "_fields");
     $dataset->fields = array("item", "field", "type", "fill", "sort", "name_" . $lang);
     switch ($_REQUEST['type']) {
         case "string":
             if (empty($_REQUEST['length']) || !is_numeric($_REQUEST['length'])) {
                 $_REQUEST['property'] = 50;
             } else {
                 $_REQUEST['property'] = $_REQUEST['length'];
             }
             $dataset->fields[] = "property";
             break;
         case "bool":
             $_REQUEST['property'] = !empty($_REQUEST['booldef']) ? $_REQUEST['booldef'] : 0;
             $dataset->fields[] = "property";
             break;
         case "text":
             if (empty($_REQUEST['rows']) || !is_numeric($_REQUEST['rows'])) {
                 $_REQUEST['property'] = 5;
             } else {
                 $_REQUEST['property'] = $_REQUEST['rows'];
             }
             $dataset->fields[] = "property";
             break;
         case "format":
             if (empty($_REQUEST['height']) || !is_numeric($_REQUEST['height'])) {
                 $_REQUEST['property'] = 200;
             } else {
                 $_REQUEST['property'] = $_REQUEST['height'];
             }
             $dataset->fields[] = "property";
             break;
         case "select":
         case "mselect":
             if (empty($_REQUEST['idvar'])) {
                 require_once "system/objcomp/fieldseditor.php";
                 $_REQUEST['idvar'] = A_FieldsEditor::createList($_REQUEST['field'], $_REQUEST['name_' . $lang]);
             }
             if (empty($_REQUEST['idvar'])) {
                 return false;
             }
             $_REQUEST['property'] = $_REQUEST['idvar'];
             $dataset->fields[] = "property";
             break;
     }
     return $dataset->Insert();
 }
Beispiel #8
0
 /**
  * Обработчик действия: Добавление страницы.
  */
 function AddPage()
 {
     $curdir = (int) empty($_REQUEST['parent_id']) ? A_Session::get(SECTION . "_cid", 0) : $_REQUEST['parent_id'];
     if ($row = A::$DB->getRowById($curdir, SECTION)) {
         $_REQUEST['idker'] = $curdir;
         $_REQUEST['level'] = $row['level'] + 1;
     } else {
         $_REQUEST['idker'] = 0;
         $_REQUEST['level'] = 0;
     }
     $_REQUEST['date'] = time();
     $_REQUEST['name'] = strip_tags($_REQUEST['name']);
     $_REQUEST['urlname'] = getURLName($_REQUEST['name'], $_REQUEST['urlname'], SECTION, "type='page' AND idker=" . (int) $_REQUEST['idker']);
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . SECTION . " WHERE idker=" . (int) $_REQUEST['idker']) + 1;
     $_REQUEST['type'] = 'page';
     $_REQUEST["template"] = preg_replace("/[^a-zA-Z0-9._-]+/i", "", $_REQUEST["template"]);
     $_REQUEST['keywords'] = getkeywords($_REQUEST['content']);
     $_REQUEST['description'] = truncate($_REQUEST['content'], 350);
     $_REQUEST['active'] = isset($_REQUEST['active']) ? 'Y' : 'N';
     $_REQUEST['inmap'] = isset($_REQUEST['inmap']) ? 'Y' : 'N';
     $dataset = new A_DataSet(SECTION, true);
     $dataset->fields = array("date", "idker", "level", "urlname", "name", "tags", "keywords", "description", "content", "type", "sort", "template", "active", "inmap");
     if ($id = $dataset->Insert()) {
         $name = getTreePath(SECTION, $_REQUEST['level'] == 0 || $_REQUEST['urlname'] != 'index' ? $id : $_REQUEST['idker'], " - ");
         if ($_REQUEST['active'] == 'Y') {
             A::$OBSERVER->Event('searchIndexUpdate', SECTION, array('id' => $id, 'name' => $name, 'content' => $_REQUEST['content'], 'tags' => $_REQUEST['tags']));
         }
         if (!empty($_REQUEST["template"])) {
             copyfile("modules/pages/templates/default/pages_page.tpl", "templates/" . DOMAIN . "/" . $_REQUEST["template"]);
         }
         return $id;
     } else {
         return false;
     }
 }
Beispiel #9
0
 function AddRSS()
 {
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("idsec", "idcat", "rows");
     return $dataset->Insert();
 }
Beispiel #10
0
 /**
  * Обработчик действия: Добавление записи.
  */
 function AddItem()
 {
     $_REQUEST['name'] = strip_tags($_REQUEST['name']);
     $_REQUEST['idcat'] = (int) $_REQUEST['idcat'];
     $_REQUEST['urlname'] = getURLName($_REQUEST['name'], $_REQUEST['urlname'], SECTION . "_catalog", "idcat=" . (int) $_REQUEST['idcat']);
     $_REQUEST['active'] = isset($_REQUEST['active']) ? "Y" : "N";
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . SECTION . "_catalog") + 1;
     $_REQUEST['keywords'] = getkeywords($_REQUEST['content']);
     if (A::$OPTIONS['autoanons']) {
         $_REQUEST['description'] = truncate($_REQUEST['content'], A::$OPTIONS['anonslen']);
     }
     if (!A::$OPTIONS['usedate']) {
         $_REQUEST['date'] = time();
     }
     $_REQUEST['mdate'] = time();
     $dataset = new A_DataSet(SECTION . "_catalog", true);
     $dataset->fields = array("date", "mdate", "idcat", "name", "urlname", "description", "keywords", "content", "tags", "active", "sort");
     if ($id = $dataset->Insert()) {
         for ($i = 1; $i <= 5; $i++) {
             if (isset($_REQUEST["imagedescription{$i}"])) {
                 UploadImage("image{$i}", $_REQUEST["imagedescription{$i}"], 0, $id, $i);
             }
         }
         for ($i = 1; $i <= 5; $i++) {
             if (isset($_REQUEST["filedescription{$i}"])) {
                 UploadFile("file{$i}", $_REQUEST["filedescription{$i}"], 0, $id, $i);
             }
         }
         if ($_REQUEST['active'] == 'Y') {
             $path = getTreePath(SECTION . "_categories", $_REQUEST['idcat'], " - ");
             $name = !empty($path) ? $path . ' - ' . $_REQUEST['name'] : $_REQUEST['name'];
             A::$OBSERVER->Event('searchIndexUpdate', SECTION, array('id' => $id, 'name' => $name, 'content' => $_REQUEST['content'], 'tags' => $_REQUEST['tags']));
         }
         self::updateCategoryItems($_REQUEST['idcat']);
         unset($_POST['idcat']);
         return $id;
     } else {
         return false;
     }
 }
Beispiel #11
0
 function Add()
 {
     $idsec = (int) A_Session::get(STRUCTURE, 0);
     if ($section = getSectionById($idsec)) {
         $table = $section . "_categories";
     } else {
         return false;
     }
     $_REQUEST['field'] = substr(strtolower(preg_replace("/[^a-zA-Z0-9_]+/i", "", $_REQUEST['field'])), 0, 20);
     if (empty($_REQUEST['field'])) {
         return false;
     }
     $fields = A::$DB->getFields($table);
     if (in_array($_REQUEST['field'], $fields)) {
         $this->errors['doublefield'] = true;
         return false;
     }
     $_REQUEST['idsec'] = $idsec;
     $_REQUEST['name'] = strclear($_REQUEST['name']);
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . STRUCTURE . " WHERE idsec='{$idsec}'") + 1;
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("idsec", "field", "name", "type", "sort");
     switch ($_REQUEST['type']) {
         case "string":
             if (empty($_REQUEST['length']) || !is_numeric($_REQUEST['length'])) {
                 $_REQUEST['property'] = 50;
             } else {
                 $_REQUEST['property'] = $_REQUEST['length'];
             }
             $dataset->fields[] = "property";
             break;
         case "bool":
             $_REQUEST['property'] = !empty($_REQUEST['booldef']) ? $_REQUEST['booldef'] : 0;
             $dataset->fields[] = "property";
             break;
         case "text":
             if (empty($_REQUEST['rows']) || !is_numeric($_REQUEST['rows'])) {
                 $_REQUEST['property'] = 5;
             } else {
                 $_REQUEST['property'] = $_REQUEST['rows'];
             }
             $dataset->fields[] = "property";
             break;
         case "format":
             if (empty($_REQUEST['height']) || !is_numeric($_REQUEST['height'])) {
                 $_REQUEST['property'] = 200;
             } else {
                 $_REQUEST['property'] = $_REQUEST['height'];
             }
             $dataset->fields[] = "property";
             break;
         case "select":
         case "mselect":
             if (empty($_REQUEST['idvar'])) {
                 return false;
             }
             $_REQUEST['property'] = $_REQUEST['idvar'];
             $dataset->fields[] = "property";
             break;
     }
     if ($dataset->Insert()) {
         $field = $_REQUEST['field'];
         switch ($_REQUEST['type']) {
             case "string":
                 $length = $_REQUEST['property'];
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` VARCHAR({$length}) DEFAULT '' NOT NULL");
                 break;
             case "int":
             case "date":
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` INT(11) DEFAULT '0' NOT NULL");
                 A::$DB->execute("ALTER TABLE `{$table}` ADD INDEX (`{$field}`)");
                 break;
             case "image":
             case "file":
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` INT(11) DEFAULT '0' NOT NULL");
                 break;
             case "float":
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` DECIMAL(10,2) DEFAULT '0' NOT NULL");
                 A::$DB->execute("ALTER TABLE `{$table}` ADD INDEX (`{$field}`)");
                 break;
             case "bool":
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` ENUM('Y','N') DEFAULT 'N' NOT NULL");
                 A::$DB->execute("ALTER TABLE `{$table}` ADD INDEX (`{$field}`)");
                 break;
             case "text":
             case "format":
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` TEXT DEFAULT '' NOT NULL");
                 break;
             case "select":
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` INT(11) DEFAULT '0' NOT NULL");
                 A::$DB->execute("ALTER TABLE `{$table}` ADD INDEX (`{$field}`)");
                 break;
             case "mselect":
                 A::$DB->execute("ALTER TABLE `{$table}` ADD `{$field}` text DEFAULT '' NOT NULL");
                 A::$DB->execute("ALTER TABLE `{$table}` ADD FULLTEXT (`{$field}`)");
                 break;
         }
         return true;
     } else {
         return false;
     }
 }
Beispiel #12
0
 /**
  * Обработчик действия: Добавление альбома.
  */
 function AddItem()
 {
     $_REQUEST['name'] = strip_tags($_REQUEST['name']);
     $_REQUEST['idcat'] = (int) $_REQUEST['idcat'];
     $_REQUEST['urlname'] = getURLName($_REQUEST['name'], $_REQUEST['urlname'], SECTION . "_albums", "idcat=" . (int) $_REQUEST['idcat']);
     $_REQUEST['active'] = isset($_REQUEST['active']) ? "Y" : "N";
     $_REQUEST['sort'] = A::$DB->getOne("SELECT MAX(sort) FROM " . SECTION . "_albums") + 1;
     if (!A::$OPTIONS['usedate']) {
         $_REQUEST['date'] = time();
     }
     $dataset = new A_DataSet(SECTION . "_albums", true);
     $dataset->fields = array("date", "idcat", "name", "tags", "urlname", "description", "active", "sort");
     if ($id = $dataset->Insert()) {
         $path = getTreePath(SECTION . "_categories", $_REQUEST['idcat'], " - ");
         $name = !empty($path) ? $path . ' - ' . $_REQUEST['name'] : $_REQUEST['name'];
         if ($_REQUEST['active'] == 'Y') {
             A::$OBSERVER->Event('searchIndexUpdate', SECTION, array('id' => $id, 'name' => $name, 'content' => $_REQUEST['description'], 'tags' => $_REQUEST['tags']));
         }
         $this->updateCategoryItems($_REQUEST['idcat']);
         unset($_POST['idcat']);
         $_GET['idalb'] = $id;
         $_GET['tab_albums'] = 'images';
         return $id;
     } else {
         return false;
     }
 }