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; }