Esempio n. 1
0
 function edit($asset_id, $data)
 {
     if (!vivvo_hooks_manager::call('asset_edit', array(&$asset_id, &$data))) {
         return vivvo_hooks_manager::get_status();
     }
     $sm = vivvo_lite_site::get_instance();
     if ($sm->user) {
         if ($sm->user->is('ASSET_MANAGER') || $sm->user->can('MANAGE_FILES')) {
             $asset_list = new AssetFiles_list();
             $file = $asset_list->get_asset_by_id($asset_id);
             if ($file !== false) {
                 if (empty($data['filename'])) {
                     $this->set_error_code(2839);
                     return false;
                 }
                 //rename file
                 if ($data['filename'] != $file->get_name()) {
                     //just in case
                     if (strpos($data['filename'], '/') !== false) {
                         $this->set_error_code(2828);
                         return false;
                     }
                     $full_old = VIVVO_FS_ROOT . $file->get_fullname();
                     $dir = dirname($full_old) . '/';
                     $ext = $file->get_extension();
                     $full_new = $dir . $data['filename'] . '.' . $ext;
                     if (file_exists($full_old)) {
                         if (file_exists($full_new)) {
                             $this->set_error_code(2829);
                             return false;
                         }
                         if (@rename($full_old, $full_new)) {
                             $data['name'] = $data['filename'];
                             admin_log($sm->user->get_username(), 'Renamed file ' . $file->get_fullname() . ' to ' . $file->get_path() . $data['filename'] . '.' . $ext);
                         } else {
                             $this->set_error_code(2823);
                             return false;
                         }
                     } else {
                         $this->set_error_code(2824);
                         return false;
                     }
                 }
                 //save keywords
                 if (isset($data['keywords'])) {
                     $keywords = explode(',', $data['keywords']);
                     $db = $sm->get_db();
                     $db->exec("DELETE FROM " . VIVVO_DB_PREFIX . "asset_keywords WHERE asset_id={$asset_id}");
                     foreach ($keywords as $key) {
                         $db->exec("INSERT INTO " . VIVVO_DB_PREFIX . "asset_keywords (asset_id, keyword) VALUES ({$asset_id}, '" . secure_sql(trim($key)) . "')");
                     }
                 }
                 unset($data['keywords']);
                 if ($file->populate($data, true) === false) {
                     $this->set_error_info($file->get_error_info());
                     return false;
                 }
                 $this->_post_master->set_data_object($file);
                 if ($this->_post_master->sql_update()) {
                     return true;
                 } else {
                     $this->set_error_code(2835);
                     return false;
                 }
             } else {
                 $this->set_error_code(2808);
                 return false;
             }
         } else {
             $this->set_error_code(2821);
             return false;
         }
     } else {
         $this->set_error_code(2822);
         return false;
     }
 }
 function _file_tooltip()
 {
     $um = vivvo_lite_site::get_instance()->get_url_manager();
     require_once VIVVO_FS_ROOT . 'lib/vivvo/framework/asset_files.class.php';
     $asset_files = new AssetFiles_list();
     $content_template =& $this->load_template($this->_template_root . 'components/file_picker_tooltip.xml');
     $content_template->assign('file', $asset_files->get_asset_by_id($um->get_param('file_id')));
     return $content_template;
 }