Esempio n. 1
0
 function add_author()
 {
     global $current_user;
     $this->ca();
     $id_person = (int) $_POST['id_author'];
     $id_book = (int) $_POST['id'];
     $id_role = (int) $_POST['id_role'];
     if ($id_role && $id_person && $id_book) {
         $persons = Persons::getInstance()->getByIdsLoaded(array($id_person));
         if (!isset($persons[$id_person]) || !$persons[$id_person]->id) {
             $this->data['item_id'] = $id_person;
             $this->data['success'] = 0;
             $this->data['error'] = 'Нет такого автора';
             return;
         }
         $query = 'INSERT INTO `book_persons` SET `id_book`=' . $id_book . ' , `id_person`=' . $id_person . ', `person_role`=' . $id_role;
         $r = Database::query($query, false);
         if ($r) {
             $this->data['success'] = 1;
             $this->data['item_id'] = $id_person;
             $this->data['name'] = $persons[$id_person]->getName();
             $this->data['role'] = Config::$person_roles[$id_role];
             BookLog::addLog(array('id_person' => $id_person, 'person_role' => $id_role), array('id_person' => 0, 'person_role' => 0), $id_book);
             $log_id = BookLog::saveLog($id_book, BookLog::TargetType_book, $current_user->id, BiberLog::BiberLogType_bookEditPerson);
             BookLog::saveLogLink($log_id, $id_person, BookLog::TargetType_person, $current_user->id, BiberLog::BiberLogType_bookEditPerson, $copy = 1);
             $search = Search::getInstance();
             /* @var $search Search */
             $search->updateBook(new Book($id_book));
             Notify::notifyAuthorNewBook($id_person, $id_book);
         } else {
             $this->data['error'] = 'Автор уже есть в списке авторов';
         }
         return;
     }
     $this->data['item_id'] = $id_person;
     $this->data['success'] = 0;
 }