Exemplo n.º 1
0
 public function actionAdd()
 {
     $this->layout = '//layouts/admin';
     $this->pageTitle = 'Новая категория';
     $this->breadcrumbs = array('Каталог' => array('/admin/catalog'), 'Категории' => array('/admin/catalog/categories/list'), 'Новая категория');
     $success = false;
     if (isset($_POST['data'])) {
         $model = new CatalogCategories();
         $tags = array();
         if (isset($_POST['data']['tags'])) {
             $tags = $_POST['data']['tags'];
             unset($_POST['data']['tags']);
         }
         $dataArray = $_POST['data'];
         $dataArray['is_active'] = isset($_POST['data']['is_active']) && $_POST['data']['is_active'] == 1 ? 1 : 0;
         $dataArray['is_deleted'] = 0;
         $model->setAttributes($dataArray);
         if ($model->save()) {
             $success = true;
             if (isset($_FILES['anons_pic']) && $_FILES['anons_pic']['name'] || isset($_FILES['content_pic']) && $_FILES['content_pic']['name']) {
                 $uploaddir = 'images/upload/' . date("d.m.Y", time());
                 if (!is_dir($uploaddir)) {
                     mkdir($uploaddir);
                 }
                 if (isset($_FILES['anons_pic'])) {
                     $tmp_name = $_FILES["anons_pic"]["tmp_name"];
                     $name = $_FILES["anons_pic"]["name"];
                     if ($name) {
                         $uploadfile = $uploaddir . 'arca_' . $model->id . '_' . md5(basename($name) . time()) . "." . end(explode(".", $name));
                         if (move_uploaded_file($tmp_name, $uploadfile)) {
                             $model->setAttributes(array("anons_pic" => "/" . $uploadfile));
                             $model->save();
                         }
                     }
                 }
                 if (isset($_FILES['content_pic'])) {
                     $tmp_name = $_FILES["content_pic"]["tmp_name"];
                     $name = $_FILES["content_pic"]["name"];
                     if ($name) {
                         $uploadfile = $uploaddir . 'arcc_' . $model->id . '_' . md5(basename($name) . time()) . "." . end(explode(".", $name));
                         if (move_uploaded_file($tmp_name, $uploadfile)) {
                             $model->setAttributes(array("content_pic" => "/" . $uploadfile));
                             $model->save();
                         }
                     }
                 }
             }
             if (is_array($tags) && count($tags)) {
                 foreach ($tags as $tag) {
                     $tagModel = Tags::model()->findByAttributes(array("name" => $tag));
                     if (!is_object($tagModel)) {
                         $tagModel = new Tags();
                         $tagModel->setAttributes(array("name" => $tag, "count" => 0));
                     }
                     $tagModel->count += 1;
                     $tagModel->save();
                     $tagsRelations = new TagsRelations();
                     $tagsRelations->setAttributes(array("tag_id" => $tagModel->id, "object_id" => $model->id, "model" => "catalog_category"));
                     $tagsRelations->save();
                 }
             }
         }
     }
     if ($success) {
         $this->redirect("/admin/catalog/categories/list");
     }
     if (!isset($model) || !is_object($model)) {
         $model = new CatalogCategories();
     }
     $this->render('add', array("errors" => $model->errors));
 }