Exemplo n.º 1
0
 function write()
 {
     global $current_user;
     if (!$current_user->authorized) {
         throw new Exception('Access Denied');
     }
     $id = isset(Request::$post['id']) ? (int) Request::$post['id'] : false;
     if (!$id) {
         $this->_new();
         return;
     }
     $magazine = new Magazine($id);
     $magazine->load();
     Request::$post['lang_code'] = Config::$langs[Request::$post['lang_code']];
     $fields = array('title' => 'title', 'isbn' => 'ISBN', 'lang_code' => 'id_lang', 'annotation' => 'annotation');
     $to_update = array();
     if (isset($_FILES['cover']) && $_FILES['cover']['tmp_name']) {
         $folder = Config::need('static_path') . '/upload/mcovers/' . ceil($magazine->id / 5000);
         @mkdir($folder);
         chmod($folder, 755);
         $filename = $folder . '/' . $magazine->id . '.jpg';
         $upload = new UploadAvatar($_FILES['cover']['tmp_name'], 100, 100, "simple", $filename);
         if ($upload->out) {
             $to_update['is_cover'] = 1;
         } else {
             throw new Exception('cant copy file to ' . $filename, 100);
         }
     }
     foreach ($fields as $field => $magazinefield) {
         if (!isset(Request::$post[$field])) {
             throw new Exception('field missed #' . $field);
         }
         if ($magazine->data[$magazinefield] !== Request::$post[$field]) {
             $to_update[$magazinefield] = Request::$post[$field];
         }
     }
     $q = array();
     foreach ($to_update as $field => &$value) {
         if (in_array($field, array('ISBN', 'year'))) {
             $value = is_numeric($value) ? $value : 0;
         }
         $q[] = '`' . $field . '`=' . Database::escape($value) . '';
     }
     if (count($q)) {
         $query = 'UPDATE `magazines` SET ' . implode(',', $q) . ' WHERE `id`=' . $magazine->id;
         Database::query($query);
         MagazineLog::addLog($to_update, $magazine->data, $magazine->id);
         MagazineLog::saveLog($magazine->id, BookLog::TargetType_magazine, $current_user->id, BiberLog::BiberLogType_magazineEdit);
         $search = Search::getInstance();
         /* @var $search Search */
         $search->setMagazineToFullUpdate($magazine->id);
     }
     ob_end_clean();
     header('Location:' . Config::need('www_path') . '/m/' . $magazine->id);
     exit;
 }
Exemplo n.º 2
0
 function getOne()
 {
     $m = new Magazine($this->magazine_id);
     $m->load();
     $this->data['magazine']['id'] = $m->id;
     $langId = $m->data['id_lang'];
     $langCode = Config::need('default_language');
     foreach (Config::$langs as $code => $id_lang) {
         if ($id_lang == $langId) {
             $langCode = $code;
         }
     }
     $this->data['magazine']['lang_code'] = $langCode;
     $this->data['magazine']['lang_title'] = Config::$langRus[$langCode];
     $this->data['magazine']['lang_id'] = $langId;
     $this->data['magazine']['path'] = $m->getUrl();
     $this->data['magazine']['isbn'] = $m->data['ISBN'];
     $this->data['magazine']['cover'] = $m->getCover();
     $this->data['magazine']['years'] = $m->getPeriodMap();
     $this->data['magazine']['title'] = $m->data['title'];
     $this->data['magazine']['rightholder'] = $m->data['rightsholder'] ? $m->data['rightsholder'] : '';
     $this->data['magazine']['annotation'] = $m->data['annotation'];
 }