Example #1
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();
 }
Example #2
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;
     }
 }