public function action_index()
 {
     $category = new Model_Category('tree');
     $data['categories'] = $category->getTree();
     if (isset($_POST['btnsubmit'])) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $parentId = Arr::get($_POST, 'parentId', '');
         $url = Arr::get($_POST, 'url', '');
         $categoryimage = Arr::get($_POST, 'categoryimage', '');
         $res = $category->catInsert($parentId, array('name' => $categoryName, 'url' => $url, 'icon_url' => $categoryimage));
         if ($res) {
             //Request::initial()->redirect('admin');
             HTTP::redirect('admin');
         } else {
             $data['errors'] = $category->getErrors();
         }
     }
     if (isset($_POST['materialsavebtn'])) {
         $categoryId = Arr::get($_POST, 'categoryId', '');
         $content = Arr::get($_POST, 'content', '');
         $name = Arr::get($_POST, 'name');
         $material_image = Arr::get($_POST, 'material_image');
         $material = ORM::factory('Material');
         $material->addMaterial($categoryId, $content, $name, $material_image);
         HTTP::redirect('admin');
     }
     $this->template->content = View::factory('adminview', $data);
 }
Exemple #2
0
 public function action_index()
 {
     $data = array();
     $category = new Model_Category('tree');
     $category->checkTree(TRUE);
     $data['categories'] = $category->getTree();
     if ($this->isPressed('btnSubmitAdd')) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $parentId = Arr::get($_POST, 'parentId', 0);
         $res = $category->catInsert($parentId, array('name' => $categoryName));
         if ($res) {
             Request::initial()->redirect('admin/category');
         }
         $data['errors'] = $category->getErrors();
     }
     if ($this->isPressed('btnSubmitChange')) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $parentId = Arr::get($_POST, 'parentId', 0);
         if ($category->changeName($parentId, $categoryName)) {
             Request::initial()->redirect('admin/category');
         }
         $data['errors'] = $category->getErrors();
     }
     if ($this->isPressed('btnSubmitDel')) {
         $catDeleteId = Arr::get($_POST, 'catDeleteId', 0);
         $category->catDelete($catDeleteId);
         Request::initial()->redirect('admin/category');
     }
     $this->tpl->content = View::factory('admin/categoryeditview', $data);
 }
Exemple #3
0
 public function action_index()
 {
     $category = new Model_Category('tree');
     $data['categories'] = $category->getTree();
     if (isset($_POST['add_category'])) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $categoryUrl = Arr::get($_POST, 'categoryUrl', '');
         $parentId = Arr::get($_POST, 'parentId', '');
         $previousId = Arr::get($_POST, 'previousId', '');
         $res = $category->catInsert($parentId, $previousId, array('name' => $categoryName, 'url' => $categoryUrl));
         if ($res) {
             Controller::redirect('admin');
         } else {
             $data['errors'] = $category->getErrors();
         }
     }
     if (isset($_POST['save_category'])) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $categoryKeywords = Arr::get($_POST, 'categoryKeywords', '');
         $categoryDescription = Arr::get($_POST, 'categoryDescription', '');
         $url = $this->request->param('id');
         $categoryId = $category->getCategoryIdByUrl($url);
         $res = $category->catUpdate($categoryId, array('name' => $categoryName, 'keywords' => $categoryKeywords, 'description' => $categoryDescription));
         if ($res) {
             Controller::redirect('admin/' . $url);
         } else {
             $data['errors'] = $category->getErrors();
         }
     }
     if (isset($_POST['create_from_groups'])) {
         $groupId = Arr::get($_POST, 'groupId', '');
         $parentId = Arr::get($_POST, 'parentId', '');
         $include_content = Arr::get($_POST, 'include_content', '');
         $category->createFromGroups($parentId, $groupId);
         if ($include_content == 'on') {
         }
     }
     $url = $this->request->param('id');
     $widgetId = $this->request->param('widget');
     $widgets = new Model_Widget();
     if ($url != NULL) {
         $data['thisCategory'] = $category->getCategory($category->getCategoryIdByUrl($url));
         //получаем виджеты для категории
         $data['widgets'] = $widgets->getWidgets($category->getCategoryIdByUrl($url));
     }
     if ($widgetId) {
         $data['widget'] = $widgets->getWidget($widgetId);
         $data['widgetTypes'] = $widgets->getWidgetTypes();
     }
     //Получаем группу пользователя
     $auth = Auth::instance();
     $user = $auth->get_user();
     //  echo '<pre>';
     $this->template->content = View::factory('admin/admIndex', array('data' => $data, 'user' => $this->user));
 }
Exemple #4
0
 public function action_index()
 {
     $data = array();
     if (!is_readable(APPPATH . 'config/database.php')) {
         Request::initial()->redirect('install');
     }
     $cat = new Model_Category();
     $materials = new Model_Material();
     $cat->checkTree();
     $tree = $cat->getTree();
     $data['tree'] = $cat->getITree($tree);
     $data['teachers'] = $materials->getTeachersGropupByNode();
     $this->tpl->content = View::factory('main', $data);
 }
Exemple #5
0
 public function action_index()
 {
     $category = new Model_Category('tree');
     $data['categories'] = $category->getTree();
     $this->template->content = View::factory('admin/admUsers', array('data' => $data, 'user' => $this->user));
     if (isset($_POST['add_category'])) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $parentId = Arr::get($_POST, 'parentId', '');
         $res = $category->catInsert($parentId, array('name' => $categoryName));
         if ($res) {
             Controller::redirect('admin');
         } else {
             $data['errors'] = $category->getErrors();
         }
     }
 }
Exemple #6
0
 public function edit($id, $mode)
 {
     $data = array();
     $data['errors'] = array();
     $data['mode'] = $mode;
     $material = ORM::factory('material', $id);
     $user = ORM::factory('user');
     $isAdmin = $user->isAdmin();
     $data['isAdmin'] = $isAdmin;
     if ($this->isPressed('btnSubmit')) {
         $file = Validation::factory($_FILES);
         //			$file->rule('materialFile', 'Upload::not_empty'));
         $file->rule('materialFile', 'Upload::valid');
         $file->rule('materialFile', 'Upload::type', array(':value', array('jpg', 'gif', 'png', 'tif', 'tiff', 'pdf', 'djv', 'djvu', 'txt', 'doc', 'docx', 'xls', 'xlsx', 'odt', 'ods', 'odp', 'odg', 'odm', '7z', 'arj', 'rar', 'zip', 'mp3', 'avi', 'mkv', 'mp4', 'flv')));
         $file->rule('materialFile', 'Upload::size', array(':value', '50M'));
         if (!$isAdmin) {
             $_POST['teacher_id'] = Auth::instance()->get_user()->id;
         }
         $material->values($_POST);
         $materialError = $fileError = FALSE;
         try {
             $material->check();
         } catch (ORM_Validation_Exception $e) {
             $materialError = TRUE;
             $data['errors'] = $e->errors('validation', FALSE);
         }
         if (!$file->check()) {
             $fileError = TRUE;
             $data['errors'] = Arr::merge($data['errors'], $file->errors('upload', FALSE));
         }
         if (!$materialError && !$fileError) {
             $material->save();
             // Если файл был загружен, то обработать его
             if (!empty($_FILES['materialFile']['tmp_name'])) {
                 // удаляем старый файл, если имеется
                 $material->deleteFile();
                 //определяем имя файла, под которым будет записан материал
                 $path_parts = pathinfo($_FILES['materialFile']['name']);
                 $filename = $material->getFileName($path_parts['extension']);
                 $material->filename = $filename;
                 $material->url = '';
                 // если мы загружаем файл, то ссылка на сторонний ресурс бессмысленна
                 $savedfilename = Upload::save($file['materialFile'], $filename, 'files');
                 if ($savedfilename === FALSE) {
                     throw new Exception('Unable to save uploaded file!');
                 }
             }
             // если не было загрузки файла а был установлен URL, то удалить файл, если таковой имеется
             if ($material->url != '') {
                 $material->deleteFile();
             }
             $material->save();
             Request::initial()->redirect('materials.html');
         }
     }
     $data['values'] = $material->as_array();
     $cat = new Model_Category();
     $data['tree'] = $cat->getTree();
     $data['teachers'] = $user->getTeachers();
     $this->tpl->content = View::factory('materials/edit', $data);
 }
Exemple #7
0
 public function action_index()
 {
     $category = new Model_Category('tree');
     $widgets = new Model_Widget();
     $data['categories'] = $category->getTree();
     if (isset($_POST['add_category'])) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $categoryUrl = Arr::get($_POST, 'categoryUrl', '');
         $parentId = Arr::get($_POST, 'parentId', '');
         $previousId = Arr::get($_POST, 'previousId', '');
         $res = $category->catInsert($parentId, $previousId, array('name' => $categoryName, 'url' => $categoryUrl));
         if ($res) {
             Controller::redirect('admin/structure');
         } else {
             $data['errors'] = $category->getErrors();
         }
     }
     if (isset($_POST['save_category'])) {
         $categoryName = Arr::get($_POST, 'categoryName', '');
         $categoryKeywords = Arr::get($_POST, 'categoryKeywords', '');
         $categoryDescription = Arr::get($_POST, 'categoryDescription', '');
         $url = $this->request->param('id');
         $categoryId = $category->getCategoryIdByUrl($url);
         $res = $category->catUpdate($categoryId, array('name' => $categoryName, 'keywords' => $categoryKeywords, 'description' => $categoryDescription));
         if ($res) {
             Controller::redirect('admin/structure/' . $url);
         } else {
             $data['errors'] = $category->getErrors();
         }
     }
     if (isset($_POST['create_from_groups'])) {
         $groupId = Arr::get($_POST, 'groupId', '');
         $parentId = Arr::get($_POST, 'parentId', '');
         $include_content = Arr::get($_POST, 'include_content', '');
         $category->createFromGroups($parentId, $groupId);
         if ($include_content == 'on') {
         }
     }
     if (isset($_POST['addWidget'])) {
         $widgets->addWidget($_POST);
     }
     if (isset($_POST['checked_del'])) {
         $delArr = Arr::get($_POST, 'check_name', array());
         $widgets->deleteWidgets($delArr);
     }
     $url = $this->request->param('id');
     $widgetId = $this->request->param('widget');
     if ($url != NULL) {
         $data['thisCategory'] = $category->getCategory($category->getCategoryIdByUrl($url));
         //получаем виджеты для категории
         $data['widgets'] = $widgets->getWidgets($category->getCategoryIdByUrl($url));
         $data['widgetsTypes'] = $widgets->getWidgetTypes();
         $data['positions'] = Kohana::$config->load('main')->positions;
         $data['templates'] = $this->getTemplates();
     }
     if ($widgetId) {
         if (isset($_POST['save_widget'])) {
             PC::debug($_POST, "post");
             //сохраняем данные виджета
             $data['errors'] = $widgets->saveWidget($_POST);
         }
         $data['widget'] = $widgets->getWidget($widgetId);
         $data['widgetTypes'] = $widgets->getWidgetTypes();
         if ($data['widget']['template'] && $data['widget']['template'] != '') {
             $template = $data['widget']['template'];
         } else {
             $template = $data['widget']['def_template'];
         }
         $lessfile = DOCROOT . 'css/' . $data['widget']['name'] . '.less';
         $jsfile = DOCROOT . 'js/' . $data['widget']['name'] . '.js';
         if ($template) {
             $filename = DOCROOT . 'application/views/widgets/' . $template . '.php';
             if (is_file($filename) && is_readable($filename) && filesize($filename) > 0) {
                 $fh = fopen($filename, "r");
                 $file = fread($fh, filesize($filename));
                 $data['file'] = $file;
                 fclose($fh);
             }
         }
         if (is_file($lessfile) && is_readable($lessfile) && filesize($lessfile) > 0) {
             $fh = fopen($lessfile, "r");
             $file = fread($fh, filesize($lessfile));
             $data['less'] = $file;
             fclose($fh);
         }
         if (is_file($jsfile) && is_readable($jsfile) && filesize($jsfile) > 0) {
             $fh = fopen($jsfile, "r");
             $file = fread($fh, filesize($jsfile));
             $data['js'] = $file;
             fclose($fh);
         }
         $num_backups = 10;
         $template .= '.php';
         $lname = $data['widget']['name'] . '.less';
         $jname = $data['widget']['name'] . '.js';
         for ($n = 1; $n <= $num_backups; ++$n) {
             $name1 = str_replace($template, str_replace(".", "_" . $n . ".", $template), $template);
             $res = str_replace($template, 'backups/' . $name1, $filename);
             if (is_file($res)) {
                 $data['template_backups'][$n]['file'] = $res;
                 $data['template_backups'][$n]['name'] = $name1;
             }
             $namel = str_replace($lname, str_replace(".", "_" . $n . ".", $lname), $lname);
             $namej = str_replace($jname, str_replace(".", "_" . $n . ".", $jname), $jname);
             $lres = str_replace($lname, 'backups/' . $namel, $lessfile);
             if (is_file($lres)) {
                 $data['less_backups'][$n]['file'] = $lres;
                 $data['less_backups'][$n]['name'] = $namel;
             }
             $jres = str_replace($jname, 'backups/' . $namej, $jsfile);
             if (is_file($jres)) {
                 $data['js_backups'][$n]['file'] = $jres;
                 $data['js_backups'][$n]['name'] = $namej;
             }
         }
     }
     if (isset($_POST['imgUpload'])) {
         //get uploadDir
         $uploadDir = DOCROOT . 'img/user/menu';
         $name = $_POST['filename'];
         //перебираем массив файлов
         for ($i = 0; $i < count($_FILES['file']['name']); ++$i) {
             if ($_FILES['file']['size'][$i] > 11100000) {
                 echo 'Файл не должен быть больше 10 Мб';
             } else {
                 $ext = explode('.', $_FILES['file']['name'][$i]);
                 $extension = array_pop($ext);
                 $base = new Model_Base();
                 $extarr = explode('.', $_FILES['file']['name'][$i]);
                 $ext = array_pop($extarr);
                 $filename = $name . '.' . $ext;
                 //$filename = substr(md5(microtime() * time()),0,rand(20,10)).'.'.$extension;
                 if (copy($_FILES['file']['tmp_name'][$i], $uploadDir . "/" . $filename)) {
                     $base = new Model_Base();
                     $options = $base->getOptions();
                     $size = explode(',', Arr::get($options, 'structure_photos_size'));
                     //изменяем картинку
                     //открываем изображение
                     $image = Image::factory($uploadDir . "/" . $filename);
                     //начинаем работу с нужной картинкой. Путь указан от корня приложения
                     //меняем размер картинки
                     if (count($size) == 2) {
                         $image->resize($size[0], $size[1]);
                     }
                     //сохраняем новое изображение
                     $image->save(NULL, 90);
                     //первый параметр - путь, имя и формат изображения. Второй - качество изображения
                     unset($image);
                 }
             }
         }
     }
     //Получаем группу пользователя
     $auth = Auth::instance();
     $user = $auth->get_user();
     //  echo '<pre>';
     $this->template->content = View::factory('admin/admIndex', array('data' => $data, 'user' => $this->user, 'request' => $this->request, 'response' => $this->response));
 }