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(); }
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; } }