Beispiel #1
0
 function Edit()
 {
     $dataset = new A_DataSet(STRUCTURE, true);
     $dataset->fields = array("name");
     foreach (A::$LANGUAGES as $key => $name) {
         $_REQUEST["name_{$key}"] = trim($_REQUEST["name_{$key}"]);
         $dataset->fields[] = "name_{$key}";
     }
     return $dataset->Update();
 }
Beispiel #2
0
 function Edit()
 {
     $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['data'] = serialize($data);
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("name", "data");
     return $dataset->Update();
 }
Beispiel #3
0
 function Edit()
 {
     $_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=? AND id<>" . (int) $_REQUEST['id'], $_REQUEST['name'])) {
         $this->errors['doubleopt'] = true;
         return false;
     }
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("name", "caption", "mode", "value");
     return $dataset->Update();
 }
Beispiel #4
0
 function Edit()
 {
     $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=? AND id<>" . (int) $_REQUEST['id'], $_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->Update();
 }
Beispiel #5
0
 /**
  * Обработчик действия: Изменение товара.
  */
 function EditItem()
 {
     $_REQUEST['date'] = time();
     $_REQUEST['name'] = strip_tags($_REQUEST['name']);
     $_REQUEST['idcat'] = (int) $_REQUEST['idcat'];
     $_REQUEST['idcat1'] = isset($_REQUEST['idcat1']) ? (int) $_REQUEST['idcat1'] : 0;
     $_REQUEST['idcat2'] = isset($_REQUEST['idcat2']) ? (int) $_REQUEST['idcat2'] : 0;
     $_REQUEST['art'] = trim($_REQUEST['art']);
     if (!empty($_REQUEST['art']) && A::$DB->existsRow("SELECT id FROM " . SECTION . "_catalog WHERE art=? AND id<>" . (int) $_REQUEST['id'], $_REQUEST['art'])) {
         $this->errors['doubleart'] = true;
         return false;
     }
     if (empty($_REQUEST['urlname']) && !empty(A::$OPTIONS['idrule'])) {
         $data = $_REQUEST;
         prepareValues(SECTION, $data);
         $litems = array();
         $idrule = A::$OPTIONS['idrule'];
         $idrule = explode("+", $idrule);
         foreach ($idrule as $fname) {
             if (!empty($data[$fname])) {
                 $litems[] = getURLName($data[$fname]);
             }
         }
         $_REQUEST['urlname'] = implode(!empty($GLOBALS['A_URL_SEPARATOR']) ? $GLOBALS['A_URL_SEPARATOR'] : "_", $litems);
     }
     $_REQUEST['urlname'] = getURLName($_REQUEST['name'], $_REQUEST['urlname'], SECTION . "_catalog", "idcat=" . (int) $_REQUEST['idcat'] . " AND id<>" . (int) $_REQUEST['id']);
     $_REQUEST['price'] = (double) str_replace(',', '.', $_REQUEST['price']);
     $_REQUEST['oldprice'] = (double) str_replace(',', '.', $_REQUEST['oldprice']);
     $_REQUEST['iscount'] = (int) $_REQUEST['iscount'];
     $_REQUEST['active'] = isset($_REQUEST['active']) ? "Y" : "N";
     $_REQUEST['favorite'] = isset($_REQUEST['favorite']) ? "Y" : "N";
     $_REQUEST['new'] = isset($_REQUEST['new']) ? "Y" : "N";
     $_REQUEST['keywords'] = getkeywords($_REQUEST['content']);
     if (A::$OPTIONS['autoanons']) {
         $_REQUEST['description'] = truncate($_REQUEST['content'], A::$OPTIONS['anonslen']);
     }
     $dataset = new A_DataSet(SECTION . "_catalog", true);
     $dataset->fields = array("idcat", "idcat1", "idcat2", "name", "art", "tags", "urlname", "description", "keywords", "content", "price", "oldprice", "iscount", "favorite", "new", "active");
     if (A::$OPTIONS['modprices']) {
         $mprices = array();
         for ($i = 1; $i <= 10; $i++) {
             if (!empty($_REQUEST["mprice{$i}_text"]) && !empty($_REQUEST["mprice{$i}_price"])) {
                 $mprices[] = array('name' => $_REQUEST["mprice{$i}_text"], 'price' => (double) $_REQUEST["mprice{$i}_price"]);
             }
         }
         if (count($mprices) > 0) {
             $_REQUEST['price'] = $mprices[0]['price'];
             $_REQUEST['mprices'] = serialize($mprices);
         } else {
             $_REQUEST['mprices'] = "";
         }
         $dataset->fields[] = 'mprices';
     }
     if ($row = $dataset->Update()) {
         $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' => $row['id'], 'name' => $name, 'content' => $_REQUEST['content'], 'tags' => $_REQUEST['tags']));
         } else {
             A::$OBSERVER->Event('searchIndexDelete', SECTION, array('id' => $row['id']));
         }
         if ($_REQUEST['idcat'] != $row['idcat']) {
             self::updateCategoryItems($_REQUEST['idcat']);
             self::updateCategoryItems($row['idcat']);
         }
         if ($_REQUEST['idcat1'] != $row['idcat1']) {
             self::updateCategoryItems($_REQUEST['idcat1']);
             self::updateCategoryItems($row['idcat1']);
         }
         if ($_REQUEST['idcat2'] != $row['idcat2']) {
             self::updateCategoryItems($_REQUEST['idcat2']);
             self::updateCategoryItems($row['idcat2']);
         }
         unset($_POST['idcat']);
         return true;
     } else {
         return false;
     }
 }
Beispiel #6
0
 function EditBanner()
 {
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("name", "idcat", "url", "showurl", "date", "target", "text", "width", "height", "show", "active");
     $_REQUEST['name'] = strclear($_REQUEST['name']);
     $_REQUEST['idcat'] = $_REQUEST['idcat2'];
     $_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, "date1", "date2");
     } else {
         $_REQUEST['date'] = "N";
     }
     if (!isset($_REQUEST['showall'])) {
         $_REQUEST['show'] = !empty($_REQUEST['show']) ? serialize($_REQUEST['show']) : "";
     } else {
         $_REQUEST['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)) {
             delfile($dataset->data['filepath']);
             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->Update();
 }
Beispiel #7
0
 /**
  * Обработчик действия: Изменение поля.
  */
 function EditField()
 {
     $row = A::$DB->getRowById($_REQUEST['id'], DOMAIN . "_fields");
     $fields = A::$DB->getCol("SELECT field FROM " . DOMAIN . "_fields WHERE item='" . SECTION . "'");
     if ($_REQUEST['field'] != $row['field'] && in_array($_REQUEST['field'], $fields)) {
         $this->errors['doublefield'] = true;
         return false;
     }
     $lang = LANG == 'all' ? DEFAULTLANG : LANG;
     $_REQUEST['fill'] = isset($_REQUEST['fill']) ? 'Y' : 'N';
     $_REQUEST['name_' . $lang] = $_REQUEST['name'];
     $dataset = new A_DataSet(DOMAIN . "_fields");
     $dataset->fields = array("field", "type", "fill", "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]);
             }
             $_REQUEST['property'] = $_REQUEST['idvar'];
             $dataset->fields[] = "property";
             break;
     }
     return $dataset->Update();
 }
Beispiel #8
0
 /**
  * Обработчик действия: Изменение страницы.
  */
 function EditPage()
 {
     $row = A::$DB->getRowById($_REQUEST['id'], SECTION);
     if (!$row) {
         return false;
     }
     $_REQUEST['date'] = time();
     $_REQUEST['name'] = strip_tags($_REQUEST['name']);
     $_REQUEST['urlname'] = getUrlName($_REQUEST['name'], $_REQUEST['urlname'], SECTION, "type='page' AND idker={$row['idker']} AND id<>" . $row['id']);
     $_REQUEST['keywords'] = getkeywords($_REQUEST['content']);
     $_REQUEST['description'] = truncate($_REQUEST['content'], 350);
     $_REQUEST["template"] = preg_replace("/[^a-zA-Z0-9._-]+/i", "", $_REQUEST["template"]);
     $_REQUEST['active'] = isset($_REQUEST['active']) ? 'Y' : 'N';
     $_REQUEST['inmap'] = isset($_REQUEST['inmap']) ? 'Y' : 'N';
     $dataset = new A_DataSet(SECTION, true);
     $dataset->fields = array("date", "name", "urlname", "keywords", "description", "content", "tags", "template", "active", "inmap");
     if ($row = $dataset->Update()) {
         $name = getTreePath(SECTION, $row['level'] == 0 || $row['urlname'] != 'index' ? $row['id'] : $row['idker'], " - ");
         if ($_REQUEST['active'] == 'Y') {
             A::$OBSERVER->Event('searchIndexUpdate', SECTION, array('id' => $row['id'], 'name' => $name, 'content' => $_REQUEST['content'], 'tags' => $_REQUEST['tags']));
         } else {
             A::$OBSERVER->Event('searchIndexDelete', SECTION, array('id' => $row['id']));
         }
         if (!empty($_REQUEST["template"])) {
             copyfile("modules/pages/templates/default/pages_page.tpl", "templates/" . DOMAIN . "/" . $_REQUEST["template"]);
         }
         while ($row['idker']) {
             if ($row = A::$DB->getRowById($row['idker'], SECTION)) {
                 A::$DB->Update(SECTION, array('date' => $_REQUEST['date']), "id=" . $row['id']);
             }
         }
         return true;
     } else {
         return false;
     }
 }
Beispiel #9
0
 function EditRSS()
 {
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("idsec", "idcat", "rows");
     return $dataset->Update();
 }
Beispiel #10
0
 /**
  * Обработчик действия: Изменение записи.
  */
 function EditItem()
 {
     $_REQUEST['name'] = strip_tags($_REQUEST['name']);
     $_REQUEST['idcat'] = (int) $_REQUEST['idcat'];
     $_REQUEST['urlname'] = getURLName($_REQUEST['name'], $_REQUEST['urlname'], SECTION . "_catalog", "idcat=" . (int) $_REQUEST['idcat'] . " AND id<>" . (int) $_REQUEST['id']);
     $_REQUEST['active'] = isset($_REQUEST['active']) ? "Y" : "N";
     $_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");
     if ($row = $dataset->Update()) {
         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' => $row['id'], 'name' => $name, 'content' => $_REQUEST['content'], 'tags' => $_REQUEST['tags']));
         } else {
             A::$OBSERVER->Event('searchIndexDelete', SECTION, array('id' => $row['id']));
         }
         if ($_REQUEST['idcat'] != $row['idcat']) {
             self::updateCategoryItems($_REQUEST['idcat']);
             self::updateCategoryItems($row['idcat']);
         }
         unset($_POST['idcat']);
         return true;
     } else {
         return false;
     }
 }
Beispiel #11
0
 function Edit()
 {
     $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;
     }
     $row = A::$DB->getRowById($_REQUEST['id'], STRUCTURE);
     $fields = A::$DB->getFields($table);
     if ($_REQUEST['field'] != $row['field'] && in_array($_REQUEST['field'], $fields)) {
         $this->errors['doublefield'] = true;
         return false;
     }
     $_REQUEST['name'] = strclear($_REQUEST['name']);
     $dataset = new A_DataSet(STRUCTURE);
     $dataset->fields = array("field", "name", "type");
     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 ($row = $dataset->Update()) {
         $field = $_REQUEST['field'];
         if ($this->existsindex($table, $row['field'])) {
             A::$DB->execute("ALTER TABLE `{$table}` DROP INDEX `{$row['field']}`");
         }
         switch ($_REQUEST['type']) {
             case "string":
                 $length = $_REQUEST['property'];
                 A::$DB->execute("ALTER TABLE `{$table}` CHANGE `{$row['field']}` `{$field}` VARCHAR({$length}) DEFAULT '' NOT NULL");
                 break;
             case "int":
             case "date":
                 A::$DB->execute("ALTER TABLE `{$table}` CHANGE `{$row['field']}` `{$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}` CHANGE `{$row['field']}` `{$field}` INT(11) DEFAULT '0' NOT NULL");
                 break;
             case "float":
                 A::$DB->execute("ALTER TABLE `{$table}` CHANGE `{$row['field']}` `{$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}` CHANGE `{$row['field']}` `{$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}` CHANGE `{$row['field']}` `{$field}` TEXT DEFAULT '' NOT NULL");
                 break;
             case "select":
                 A::$DB->execute("ALTER TABLE `{$table}` CHANGE `{$row['field']}` `{$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}` CHANGE `{$row['field']}` `{$field}` text DEFAULT '' NOT NULL");
                 A::$DB->execute("ALTER TABLE `{$table}` ADD FULLTEXT (`{$field}`)");
                 break;
         }
         return true;
     } else {
         return false;
     }
 }