private function delete_question(FaqQuestion $question) { FaqService::delete('WHERE id=:id', array('id' => $question->get_id())); PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module=:module AND id_in_module=:id', array('module' => 'faq', 'id' => $question->get_id())); Feed::clear_cache('faq'); FaqCache::invalidate(); }
private function delete_question() { AppContext::get_session()->csrf_post_protect(); FaqService::delete('WHERE id=:id', array('id' => $this->faq_question->get_id())); PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module=:module AND id_in_module=:id', array('module' => 'faq', 'id' => $this->faq_question->get_id())); Feed::clear_cache('faq'); FaqCache::invalidate(); }
public function execute(HTTPRequestCustom $request) { AppContext::get_session()->csrf_get_protect(); $this->get_downloadfile($request); $this->check_authorizations(); DownloadService::delete('WHERE id=:id', array('id' => $this->downloadfile->get_id())); DownloadService::get_keywords_manager()->delete_relations($this->downloadfile->get_id()); PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module=:module AND id_in_module=:id', array('module' => 'download', 'id' => $this->downloadfile->get_id())); CommentsService::delete_comments_topic_module('download', $this->downloadfile->get_id()); NotationService::delete_notes_id_in_module('download', $this->downloadfile->get_id()); Feed::clear_cache('download'); DownloadCache::invalidate(); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : DownloadUrlBuilder::home(), StringVars::replace_vars(LangLoader::get_message('download.message.success.delete', 'common', 'download'), array('name' => $this->downloadfile->get_name()))); }
public function execute(HTTPRequestCustom $request) { AppContext::get_session()->csrf_get_protect(); $news = $this->get_news($request); if (!$news->is_authorized_to_delete()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } if (AppContext::get_current_user()->is_readonly()) { $controller = PHPBoostErrors::user_in_read_only(); DispatchManager::redirect($controller); } NewsService::delete('WHERE id=:id', array('id' => $news->get_id())); NewsService::get_keywords_manager()->delete_relations($news->get_id()); PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module=:module AND id_in_module=:id', array('module' => 'news', 'id' => $news->get_id())); CommentsService::delete_comments_topic_module('news', $news->get_id()); Feed::clear_cache('news'); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : NewsUrlBuilder::home(), StringVars::replace_vars(LangLoader::get_message('news.message.success.delete', 'common', 'news'), array('name' => $news->get_name()))); }
private function save() { $news = $this->get_news(); $news->set_name($this->form->get_value('name')); $news->set_id_cat($this->form->get_value('id_cat')->get_raw_value()); $news->set_contents($this->form->get_value('contents')); $news->set_short_contents($this->form->get_value('enable_short_contents') ? $this->form->get_value('short_contents') : ''); $news->set_picture(new Url($this->form->get_value('picture'))); $news->set_sources($this->form->get_value('sources')); if ($this->is_contributor_member()) { if ($news->get_id() === null) { $news->set_creation_date(new Date()); } $news->set_rewrited_name(Url::encode_rewrite($news->get_name())); $news->set_approbation_type(News::NOT_APPROVAL); $news->clean_start_and_end_date(); } else { $news->set_creation_date($this->form->get_value('creation_date')); $rewrited_name = $this->form->get_value('rewrited_name', ''); $rewrited_name = $this->form->get_value('personalize_rewrited_name') && !empty($rewrited_name) ? $rewrited_name : Url::encode_rewrite($news->get_name()); $news->set_rewrited_name($rewrited_name); $news->set_top_list_enabled($this->form->get_value('top_list')); $news->set_approbation_type($this->form->get_value('approbation_type')->get_raw_value()); if ($news->get_approbation_type() == News::APPROVAL_DATE) { $news->set_start_date($this->form->get_value('start_date')); if ($this->form->get_value('end_date_enable')) { $news->set_end_date($this->form->get_value('end_date')); } else { $news->clean_end_date(); } } else { $news->clean_start_and_end_date(); } } if ($news->get_id() === null) { $news->set_author_user(AppContext::get_current_user()); $id_news = NewsService::add($news); } else { $id_news = $news->get_id(); NewsService::update($news); } $this->contribution_actions($news, $id_news); NewsService::get_keywords_manager()->put_relations($id_news, $this->form->get_value('keywords')); Feed::clear_cache('news'); }
private function save() { $weblink = $this->get_weblink(); $weblink->set_name($this->form->get_value('name')); $weblink->set_rewrited_name(Url::encode_rewrite($weblink->get_name())); $weblink->set_id_category($this->form->get_value('id_category')->get_raw_value()); $weblink->set_url(new Url($this->form->get_value('url'))); $weblink->set_contents($this->form->get_value('contents')); $weblink->set_short_contents($this->form->get_value('short_contents_enabled') ? $this->form->get_value('short_contents') : ''); $weblink->set_partner($this->form->get_value('partner')); $weblink->set_partner_picture(new Url($this->form->get_value('partner_picture'))); $weblink->set_privileged_partner($this->form->get_value('privileged_partner')); if ($this->is_contributor_member()) { if ($weblink->get_id() === null) { $weblink->set_creation_date(new Date()); } $weblink->set_approbation_type(WebLink::NOT_APPROVAL); $weblink->clean_start_and_end_date(); } else { $weblink->set_creation_date($this->form->get_value('creation_date')); $weblink->set_approbation_type($this->form->get_value('approbation_type')->get_raw_value()); if ($weblink->get_approbation_type() == WebLink::APPROVAL_DATE) { $weblink->set_start_date($this->form->get_value('start_date')); if ($this->form->get_value('end_date_enable')) { $weblink->set_end_date($this->form->get_value('end_date')); } else { $weblink->clean_end_date(); } } else { $weblink->clean_start_and_end_date(); } } if ($weblink->get_id() === null) { $id = WebService::add($weblink); } else { $id = $weblink->get_id(); WebService::update($weblink); } $this->contribution_actions($weblink, $id); WebService::get_keywords_manager()->put_relations($id, $this->form->get_value('keywords')); Feed::clear_cache('web'); WebCache::invalidate(); }
public static function update_module($module_id, $activated) { $error = ''; if (!$activated) { MenuService::delete_mini_module($module_id); MenuService::delete_module_feeds_menus($module_id); $general_config = GeneralConfig::load(); $module_home_page_selected = $general_config->get_module_home_page(); if ($module_home_page_selected == $module_id) { $general_config->set_module_home_page(''); $general_config->set_other_home_page('index.php'); } $editors = AppContext::get_content_formatting_service()->get_available_editors(); if (in_array($module_id, $editors)) { if (count($editors) > 1) { $default_editor = ContentFormattingConfig::load()->get_default_editor(); if ($default_editor !== $module_id) { PersistenceContext::get_querier()->update(DB_TABLE_MEMBER, array('editor' => $default_editor), 'WHERE editor=:old_editor', array('old_editor' => 'bbcode')); } else { $error = LangLoader::get_message('is_default_editor', 'editor-common'); } } else { $error = LangLoader::get_message('last_editor_installed', 'editor-common'); } } } else { $module = self::get_module($module_id); if ($module->get_configuration()->get_compatibility() != GeneralConfig::load()->get_phpboost_major_version()) { $error = LangLoader::get_message('modules.not_compatible', 'admin-modules-common'); } } if (empty($error)) { $module = self::get_module($module_id); $module->set_activated($activated); ModulesConfig::load()->update($module); ModulesConfig::save(); MenuService::generate_cache(); Feed::clear_cache($module_id); if (ServerEnvironmentConfig::load()->is_url_rewriting_enabled()) { HtaccessFileCache::regenerate(); } } return $error; }
$visible = 0; } break; case 1: list($start_timestamp, $end_timestamp) = array(0, 0); break; default: list($visible, $start_timestamp, $end_timestamp) = array(0, 0, 0); } $Sql->query_inject("INSERT INTO " . PREFIX . "news (title, idcat, url, size, count, contents, short_contents, image, timestamp, release_timestamp, start, end, visible) VALUES ('" . $news_title . "', '" . $news_cat_id . "', '" . $news_url . "', '" . $news_size . "', '" . $news_hits . "', '" . strparse($news_contents) . "', '" . strparse($news_short_contents) . "', '" . $news_image . "', '" . $news_creation_date->get_timestamp() . "', '" . ($ignore_release_date ? 0 : $news_release_date->get_timestamp()) . "', '" . $start_timestamp . "', '" . $end_timestamp . "', '" . $visible . "')", __LINE__, __FILE__); $new_id_news = $Sql->insert_id("SELECT MAX(id) FROM " . PREFIX . "news"); if ($news_cat_id != $news_infos['idcat']) { $news_categories->Recount_sub_newss(); } import('content/syndication/feed'); Feed::clear_cache('news'); redirect(HOST . DIR . '/news/' . url('news.php?id=' . $new_id_news, 'news-' . $new_id_news . '+' . url_encode_rewrite($news_title) . '.php')); } else { redirect(HOST . DIR . '/news/' . url('news.php')); } } elseif ($preview) { $begining_calendar = new MiniCalendar('begining_date'); $begining_calendar->set_date($begining_date); $end_calendar = new MiniCalendar('end_date'); $end_calendar->set_date($end_date); $end_calendar->set_style('margin-left:150px;'); $Template->set_filenames(array('news' => 'news/news.tpl')); if ($news_size > 1) { $size_tpl = $news_size . ' ' . $LANG['unit_megabytes']; } elseif ($news_size > 0) { $size_tpl = $news_size * 1024 . ' ' . $LANG['unit_kilobytes'];
private function save() { $now = new Date(); $pm_recipients_list = array(); $send_pm = true; $versions = array_reverse($this->config->get_versions_fix(), true); $status = $this->form->get_value('status')->get_raw_value(); if (count($versions)) { if (!$this->form->field_is_disabled('fixed_in')) { $fixed_in = $this->form->get_value('fixed_in')->get_raw_value() ? $this->form->get_value('fixed_in')->get_raw_value() : 0; if ($fixed_in != $this->bug->get_fixed_in()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'fixed_in', 'old_value' => $this->bug->get_fixed_in(), 'new_value' => $fixed_in)); $this->bug->set_fixed_in($fixed_in); } } else { if (in_array($status, array(Bug::NEW_BUG, Bug::REJECTED))) { $this->bug->set_fixed_in(0); } } } if (!$this->form->field_is_disabled('assigned_to')) { $assigned_to = $this->form->get_value('assigned_to'); $assigned_to_id = UserService::user_exists("WHERE display_name = :display_name", array('display_name' => $assigned_to)); if ($this->bug->get_assigned_to_id()) { $old_user_assigned_id = UserService::user_exists("WHERE user_id = :user_id", array('user_id' => $this->bug->get_assigned_to_id())); $old_user_assigned = !empty($old_user_assigned_id) ? UserService::get_user($old_user_assigned_id) : 0; } else { $old_user_assigned = 0; } $new_user_assigned = !empty($assigned_to) && !empty($assigned_to_id) ? UserService::get_user($assigned_to_id) : 0; $new_assigned_to_id = !empty($new_user_assigned) ? $new_user_assigned->get_id() : 0; if ($new_assigned_to_id != $this->bug->get_assigned_to_id()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'assigned_to_id', 'old_value' => $old_user_assigned ? $old_user_assigned->get_display_name() : $this->lang['notice.no_one'], 'new_value' => $new_user_assigned ? $new_user_assigned->get_display_name() : $this->lang['notice.no_one'])); //Bug update $this->bug->set_assigned_to_id($new_assigned_to_id); //The PM will only be sent to the assigned user if ($new_assigned_to_id != $this->current_user->get_id()) { $pm_recipients_list[] = $new_assigned_to_id; } else { $send_pm = false; } } } if ($status != $this->bug->get_status()) { //Bug history update BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => 'status', 'old_value' => $this->bug->get_status(), 'new_value' => $status)); //Bug update $this->bug->set_status($status); if ($this->bug->is_fixed() || $this->bug->is_rejected()) { $this->bug->set_fix_date($now); } else { $this->bug->set_fix_date(0); } } BugtrackerService::update($this->bug); Feed::clear_cache('bugtracker'); switch ($status) { case Bug::IN_PROGRESS: $is_pm_enabled = $this->config->are_pm_in_progress_enabled(); break; case Bug::PENDING: $is_pm_enabled = $this->config->are_pm_pending_enabled(); break; case Bug::ASSIGNED: $is_pm_enabled = $this->config->are_pm_assign_enabled(); break; case Bug::FIXED: $is_pm_enabled = $this->config->are_pm_fix_enabled(); break; case Bug::REOPEN: $is_pm_enabled = $this->config->are_pm_reopen_enabled(); break; case Bug::REJECTED: $is_pm_enabled = $this->config->are_pm_reject_enabled(); break; default: $is_pm_enabled = false; break; } //Add comment if needed $comment = $this->form->get_value('comments_message', ''); if (!empty($comment)) { $comments_topic = new BugtrackerCommentsTopic(); $comments_topic->set_id_in_module($this->bug->get_id()); $comments_topic->set_url(BugtrackerUrlBuilder::detail($this->bug->get_id() . '-' . $this->bug->get_rewrited_title())); CommentsManager::add_comment($comments_topic->get_module_id(), $comments_topic->get_id_in_module(), $comments_topic->get_topic_identifier(), $comments_topic->get_path(), $comment); //New line in the bug history BugtrackerService::add_history(array('bug_id' => $this->bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'change_comment' => $this->lang['notice.new_comment'])); } //Send PM with comment to updaters if the option is enabled if (!$this->bug->is_new() && $this->config->are_pm_enabled() && $is_pm_enabled && $send_pm) { BugtrackerPMService::send_PM_to_updaters($status, $this->bug->get_id(), $comment, $pm_recipients_list); } if (in_array($status, array(Bug::NEW_BUG, Bug::REOPEN, Bug::REJECTED, Bug::FIXED)) && $this->config->are_admin_alerts_enabled() && in_array($this->bug->get_severity(), $this->config->get_admin_alerts_levels())) { $alerts = AdministratorAlertService::find_by_criteria($this->bug->get_id(), 'bugtracker'); if (!empty($alerts)) { $alert = $alerts[0]; if ($this->bug->is_new() || $this->bug->is_reopen()) { $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_UNREAD); AdministratorAlertService::save_alert($alert); } else { if ($this->config->is_admin_alerts_fix_action_fix()) { $alert->set_status(AdministratorAlert::ADMIN_ALERT_STATUS_PROCESSED); AdministratorAlertService::save_alert($alert); } else { AdministratorAlertService::delete_alert($alert); } } } } BugtrackerStatsCache::invalidate(); }
private function delete_event($delete_all_serie_events = false) { $events_list = CalendarService::get_serie_events($this->event->get_content()->get_id()); if ($delete_all_serie_events) { foreach ($events_list as $event) { //Delete event comments CommentsService::delete_comments_topic_module('calendar', $event->get_id()); //Delete participants CalendarService::delete_all_participants($event->get_id()); } CalendarService::delete_all_serie_events($this->event->get_content()->get_id()); PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module = :module AND id_in_module = :id', array('module' => 'calendar', 'id' => !$this->event->get_parent_id() ? $this->event->get_id() : $this->event->get_parent_id())); } else { if (!$this->event->belongs_to_a_serie() || count($events_list) == 1) { CalendarService::delete_event_content('WHERE id = :id', array('id' => $this->event->get_parent_id())); } //Delete event CalendarService::delete_event('WHERE id_event = :id', array('id' => $this->event->get_id())); if (!$this->event->get_parent_id()) { PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module=:module AND id_in_module=:id', array('module' => 'calendar', 'id' => $this->event->get_id())); } //Delete event comments CommentsService::delete_comments_topic_module('calendar', $this->event->get_id()); //Delete participants CalendarService::delete_all_participants($this->event->get_id()); } Feed::clear_cache('calendar'); CalendarCurrentMonthEventsCache::invalidate(); }
private function save() { $article = $this->get_article(); $article->set_title($this->form->get_value('title')); $article->set_id_category($this->form->get_value('id_category')->get_raw_value()); $article->set_description($this->form->get_value('enable_description') ? $this->form->get_value('description') : ''); $article->set_contents($this->form->get_value('contents')); $author_name_displayed = $this->form->get_value('author_name_displayed') ? $this->form->get_value('author_name_displayed') : Article::AUTHOR_NAME_NOTDISPLAYED; $article->set_author_name_displayed($author_name_displayed); $notation_enabled = $this->form->get_value('notation_enabled') ? $this->form->get_value('notation_enabled') : Article::NOTATION_DISABLED; $article->set_notation_enabled($notation_enabled); $article->set_picture(new Url($this->form->get_value('picture'))); $article->set_sources($this->form->get_value('sources')); if ($this->is_contributor_member()) { if ($article->get_id() === null) { $article->set_date_created(new Date()); } $article->set_rewrited_title(Url::encode_rewrite($article->get_title())); $article->set_publishing_state(Article::NOT_PUBLISHED); $article->clean_publishing_start_and_end_date(); } else { $article->set_date_created($this->form->get_value('date_created')); $rewrited_title = $this->form->get_value('rewrited_title', ''); $rewrited_title = $this->form->get_value('personalize_rewrited_title') && !empty($rewrited_title) ? $rewrited_title : Url::encode_rewrite($article->get_title()); $article->set_rewrited_title($rewrited_title); $article->set_publishing_state($this->form->get_value('publishing_state')->get_raw_value()); if ($article->get_publishing_state() == Article::PUBLISHED_DATE) { $article->set_publishing_start_date($this->form->get_value('publishing_start_date')); if ($this->form->get_value('end_date_enable')) { $article->set_publishing_end_date($this->form->get_value('publishing_end_date')); } else { $article->clean_publishing_end_date(); } } else { $article->clean_publishing_start_and_end_date(); } } if ($article->get_id() === null) { $article->set_author_user(AppContext::get_current_user()); $id_article = ArticlesService::add($article); } else { $now = new Date(); $article->set_date_updated($now); $id_article = $article->get_id(); ArticlesService::update($article); } $this->contribution_actions($article, $id_article); ArticlesService::get_keywords_manager()->put_relations($id_article, $this->form->get_value('keywords')); Feed::clear_cache('articles'); }
private function save() { $now = new Date(); $current_user = AppContext::get_current_user(); if ($this->config->are_pm_enabled() && $this->config->are_pm_delete_enabled()) { //Add comment if needed $comment = !$this->form->field_is_disabled('comments_message') ? $this->form->get_value('comments_message', '') : ''; //Send PM with comment to updaters if the option is enabled BugtrackerPMService::send_PM_to_updaters('delete', $this->bug->get_id(), $comment); } //Delete bug BugtrackerService::delete("WHERE id=:id", array('id' => $this->bug->get_id())); //Delete bug history BugtrackerService::delete_history("WHERE bug_id=:id", array('id' => $this->bug->get_id())); //Delete comments CommentsService::delete_comments_topic_module('bugtracker', $this->bug->get_id()); //Delete admin alert if ($this->config->are_admin_alerts_enabled()) { $alerts = AdministratorAlertService::find_by_criteria($this->bug->get_id(), 'bugtracker'); if (!empty($alerts)) { AdministratorAlertService::delete_alert($alerts[0]); } } BugtrackerStatsCache::invalidate(); Feed::clear_cache('bugtracker'); }
private static function clear_feed_cache() { Feed::clear_cache(); }
$errstr = $LANG['wiki_title_already_exists']; } else { $Sql->query_inject("INSERT INTO " . PREFIX . "wiki_articles (title, encoded_title, id_cat, is_cat, undefined_status, auth) VALUES ('" . $title . "', '" . url_encode_rewrite($title) . "', '" . $new_id_cat . "', '" . $is_cat . "', '', '')", __LINE__, __FILE__); $id_article = $Sql->insert_id("SELECT MAX(id) FROM " . PREFIX . "wiki_articles"); $Sql->query_inject("INSERT INTO " . PREFIX . "wiki_contents (id_article, menu, content, activ, user_id, user_ip, timestamp) VALUES ('" . $id_article . "', '" . addslashes($menu) . "', '" . $contents . "', 1, " . $User->get_attribute('user_id') . ", '" . USER_IP . "', " . time() . ")", __LINE__, __FILE__); $id_contents = $Sql->insert_id("SELECT MAX(id_contents) FROM " . PREFIX . "wiki_contents"); $cat_update = ''; if ($is_cat == 1) { $Sql->query_inject("INSERT INTO " . PREFIX . "wiki_cats (id_parent, article_id) VALUES (" . $new_id_cat . ", '" . $id_article . "')", __LINE__, __FILE__); $id_created_cat = $Sql->insert_id("SELECT MAX(id) FROM " . PREFIX . "wiki_articles"); $cat_update = ", id_cat = '" . $id_created_cat . "'"; $Cache->Generate_module_file('wiki'); } $Sql->query_inject("UPDATE " . PREFIX . "wiki_articles SET id_contents = '" . $id_contents . "'" . $cat_update . " WHERE id = " . $id_article, __LINE__, __FILE__); import('content/syndication/feed'); Feed::clear_cache('wiki'); $redirect = $Sql->query("SELECT encoded_title FROM " . PREFIX . "wiki_articles WHERE id = '" . $id_article . "'", __LINE__, __FILE__); redirect(url('wiki.php?title=' . $redirect, $redirect, '', '&')); } } } } $Template->set_filenames(array('wiki_edit' => 'wiki/post.tpl')); $Template->assign_vars(array('WIKI_PATH' => $Template->get_module_data_path('wiki'))); if ($id_edit > 0) { $article_infos = $Sql->query_array(PREFIX . 'wiki_articles', '*', "WHERE id = '" . $id_edit . "'", __LINE__, __FILE__); $general_auth = empty($article_infos['auth']) ? true : false; $article_auth = !empty($article_infos['auth']) ? unserialize($article_infos['auth']) : array(); if (!((!$general_auth || $User->check_auth($_WIKI_CONFIG['auth'], WIKI_EDIT)) && ($general_auth || $User->check_auth($article_auth, WIKI_EDIT)))) { $Errorh->handler('e_auth', E_USER_REDIRECT); }
require_once '../admin/admin_header.php'; $cache_mode = retrieve(GET, 'cache', ''); if (empty($cache_mode)) { if (!empty($_POST['cache'])) { $Cache->Generate_all_files(); redirect(HOST . DIR . '/admin/admin_cache.php?s=1'); } else { $Template->set_filenames(array('admin_cache' => 'admin/admin_cache.tpl')); $get_error = retrieve(GET, 's', 0); if ($get_error == 1) { $Errorh->handler($LANG['cache_success'], E_USER_SUCCESS); } $Template->assign_vars(array('L_CACHE' => $LANG['cache'], 'L_SYNDICATION' => $LANG['syndication'], 'L_EXPLAIN_SITE_CACHE' => $LANG['explain_site_cache'], 'L_GENERATE' => $LANG['generate'])); $Template->pparse('admin_cache'); } } else { if (!empty($_POST['cache'])) { import('content/syndication/feed'); Feed::clear_cache(); redirect(HOST . DIR . '/admin/admin_cache.php?cache=syndication&s=1'); } else { $Template->set_filenames(array('admin_cache_syndication' => 'admin/admin_cache_syndication.tpl')); $get_error = retrieve(GET, 's', 0); if ($get_error == 1) { $Errorh->handler($LANG['cache_success'], E_USER_SUCCESS); } $Template->assign_vars(array('L_CACHE' => $LANG['cache'], 'L_SYNDICATION' => $LANG['syndication'], 'L_EXPLAIN_SITE_CACHE' => $LANG['explain_site_cache_syndication'], 'L_GENERATE' => $LANG['generate'])); $Template->pparse('admin_cache_syndication'); } } require_once '../admin/admin_footer.php';
private function save() { $event = $this->get_event(); $event_content = $event->get_content(); $event_content->set_title($this->form->get_value('title')); $event_content->set_rewrited_title(Url::encode_rewrite($this->form->get_value('title'))); $event_content->set_category_id($this->form->get_value('category_id')->get_raw_value()); $event_content->set_contents($this->form->get_value('contents')); $event_content->set_location($this->form->get_value('location')); if (!$this->is_contributor_member() && $this->form->get_value('approved')) { $event_content->approve(); } else { $event_content->unapprove(); } if ($this->form->get_value('registration_authorized')) { $event_content->authorize_registration(); $event_content->set_max_registered_members($this->form->get_value('max_registered_members')); if ($this->form->get_value('last_registration_date_enabled')) { $event_content->enable_last_registration_date(); $event_content->set_last_registration_date($this->form->get_value('last_registration_date')); } else { $event_content->disable_last_registration_date(); $event_content->set_last_registration_date(null); } $event_content->set_register_authorizations($this->form->get_value('register_authorizations', $event_content->get_register_authorizations())->build_auth_array()); } else { $event_content->unauthorize_registration(); } $event_content->set_repeat_type($this->form->get_value('repeat_type')->get_raw_value()); if ($event_content->get_repeat_type() != CalendarEventContent::NEVER) { $event_content->set_repeat_number($this->form->get_value('repeat_number')); } $event->set_start_date($this->form->get_value('start_date')); $event->set_end_date($this->form->get_value('end_date')); if ($event->get_id() === null) { $id_content = CalendarService::add_event_content($event_content); $event_content->set_id($id_content); $event->set_content($event_content); $id_event = CalendarService::add_event($event); if ($event->get_content()->is_repeatable()) { $new_start_date = $event->get_start_date(); $new_end_date = $event->get_end_date(); for ($i = 1; $i <= $event->get_content()->get_repeat_number(); $i++) { $e = new CalendarEvent(); $e->set_content($event->get_content()); $e->set_parent_id($id_event); $e = $this->set_event_start_and_end_date($e, $new_start_date, $new_end_date); CalendarService::add_event($e); $new_start_date = $e->get_start_date(); $new_end_date = $e->get_end_date(); } } } else { CalendarService::update_event_content($event_content); $id_event = CalendarService::update_event($event); if ($event->get_content()->is_repeatable() || $event_content->is_repeatable() && ($event->get_content()->get_repeat_number() != $event_content->get_repeat_number() || $event->get_content()->get_repeat_type() != $event_content->get_repeat_type())) { $events_list = CalendarService::get_serie_events($event_content->get_id()); $new_start_date = $event->get_start_date(); $new_end_date = $event->get_end_date(); $i = 0; foreach ($events_list as $id => $e) { if ($id != $id_event) { $e->set_content($event_content); $e = $this->set_event_start_and_end_date($e, $new_start_date, $new_end_date); if ($i <= $event_content->get_repeat_number()) { CalendarService::update_event($e); } else { CalendarService::delete_event('WHERE id_event = :id', array('id' => $e->get_id())); } $new_start_date = $e->get_start_date(); $new_end_date = $e->get_end_date(); } $i++; } if ($i < $event_content->get_repeat_number()) { for ($j = $i; $j <= $event_content->get_repeat_number(); $j++) { $e = new CalendarEvent(); $e->set_content($event_content); $e->set_parent_id($id_event); $e = $this->set_event_start_and_end_date($e, $new_start_date, $new_end_date); CalendarService::add_event($e); $new_start_date = $e->get_start_date(); $new_end_date = $e->get_end_date(); } } } } $this->contribution_actions($event, $id_event); Feed::clear_cache('calendar'); CalendarCurrentMonthEventsCache::invalidate(); }
import('events/contribution'); import('events/contribution_service'); $download_contribution = new Contribution(); $download_contribution->set_id_in_module($new_id_file); $download_contribution->set_description(stripslashes($contribution_counterpart)); $download_contribution->set_entitled(sprintf($DOWNLOAD_LANG['contribution_entitled'], $file_title)); $download_contribution->set_fixing_url('/download/management.php?edit=' . $new_id_file); $download_contribution->set_poster_id($User->get_attribute('user_id')); $download_contribution->set_module('download'); $download_contribution->set_auth(Authorizations::capture_and_shift_bit_auth(Authorizations::merge_auth($CONFIG_DOWNLOAD['global_auth'], $download_categories->compute_heritated_auth($file_cat_id, DOWNLOAD_WRITE_CAT_AUTH_BIT, AUTH_CHILD_PRIORITY), DOWNLOAD_WRITE_CAT_AUTH_BIT, AUTH_CHILD_PRIORITY), DOWNLOAD_WRITE_CAT_AUTH_BIT, CONTRIBUTION_AUTH_BIT)); ContributionService::save_contribution($download_contribution); redirect(HOST . DIR . '/download/contribution.php'); } $download_categories->Recount_sub_files(); import('content/syndication/feed'); Feed::clear_cache('download'); redirect(HOST . DIR . '/download/' . url('download.php?id=' . $new_id_file, 'download-' . $new_id_file . '+' . url_encode_rewrite($file_title) . '.php')); } else { redirect(HOST . DIR . '/download/' . url('download.php')); } } elseif ($preview) { $contribution_counterpart_source = strprotect(retrieve(POST, 'counterpart', '', TSTRING_AS_RECEIVED), HTML_PROTECT, ADDSLASHES_NONE); $begining_calendar = new MiniCalendar('begining_date'); $begining_calendar->set_date($begining_date); $end_calendar = new MiniCalendar('end_date'); $end_calendar->set_date($end_date); $end_calendar->set_style('margin-left:150px;'); $Template->set_filenames(array('download' => 'download/download.tpl')); if ($file_size > 1) { $size_tpl = $file_size . ' ' . $LANG['unit_megabytes']; } elseif ($file_size > 0) {
if (!empty($delete)) { foreach ($delete as $key) { $Sql->query_inject("DELETE FROM " . PREFIX . "media WHERE id = '" . $key . "'", __LINE__, __FILE__); $Sql->query_inject("DELETE FROM " . PREFIX . "com WHERE idprov = '" . $delete . "' AND script = 'media'", __LINE__, __FILE__); } } import('content/syndication/feed'); Feed::clear_cache('media'); $media_categories->recount_media_per_cat(); redirect_confirm(url('moderation_media.php'), $MEDIA_LANG['moderation_success'], TIME_REDIRECT); } else { redirect(url('moderation_media.php')); } } elseif (!empty($_GET['recount'])) { import('content/syndication/feed'); Feed::clear_cache('media'); $media_categories->recount_media_per_cat(); redirect_confirm(url('moderation_media.php'), $MEDIA_LANG['recount_success'], TIME_REDIRECT); } else { $array_cats = $js_array = array(); if (!empty($_POST['filter'])) { $state = retrieve(POST, 'state', 'all', TSTRING); $cat = retrieve(POST, 'idcat', 0, TINTEGER); $sub_cats = retrieve(POST, 'sub_cats', false, TBOOL); if ($state == "visible") { $db_where = MEDIA_STATUS_APROBED; } elseif ($state == 'unvisible') { $db_where = MEDIA_STATUS_UNVISIBLE; } elseif ($state == 'unaprobed') { $db_where = MEDIA_STATUS_UNAPROBED; } else {
private function save() { $faq_question = $this->get_faq_question(); $faq_question->set_question($this->form->get_value('question')); $faq_question->set_rewrited_question(Url::encode_rewrite($faq_question->get_question())); $faq_question->set_id_category($this->form->get_value('id_category')->get_raw_value()); $faq_question->set_answer($this->form->get_value('answer')); if ($faq_question->get_q_order() === null) { $number_questions_in_category = FaqService::count('WHERE id_category = :id_category', array('id_category' => $faq_question->get_id_category())); $faq_question->set_q_order($number_questions_in_category + 1); } if (!$this->is_contributor_member() && $this->form->get_value('approved')) { $faq_question->approve(); } else { $faq_question->unapprove(); } if ($faq_question->get_id() === null) { $id = FaqService::add($faq_question); } else { $id = $faq_question->get_id(); FaqService::update($faq_question); } $this->contribution_actions($faq_question, $id); Feed::clear_cache('faq'); FaqCache::invalidate(); }
private function save() { $bug = $this->get_bug(); if ($bug->get_id() === null) { $title = $this->form->get_value('title'); $bug->set_title($title); $bug->set_rewrited_title(Url::encode_rewrite($title)); $bug->set_contents($this->form->get_value('contents')); $bug->set_type($this->form->get_value('type') ? $this->form->get_value('type')->get_raw_value() : $this->config->get_default_type()); $bug->set_category($this->form->get_value('category') ? $this->form->get_value('category')->get_raw_value() : $this->config->get_default_category()); $bug->set_severity($this->form->get_value('severity') ? $this->form->get_value('severity')->get_raw_value() : $this->config->get_default_severity()); $bug->set_priority($this->form->get_value('priority') ? $this->form->get_value('priority')->get_raw_value() : $this->config->get_default_priority()); $bug->set_detected_in($this->form->get_value('detected_in') ? $this->form->get_value('detected_in')->get_raw_value() : $this->config->get_default_version()); $bug->set_reproductible($this->form->get_value('reproductible') ? true : 0); if ($bug->is_reproductible()) { $bug->set_reproduction_method($this->form->get_value('reproduction_method')); } //Bug creation $bug->set_id(BugtrackerService::add($bug)); if ($this->config->are_admin_alerts_enabled() && in_array($bug->get_severity(), $this->config->get_admin_alerts_levels())) { $alert = new AdministratorAlert(); $alert->set_entitled('[' . $this->lang['module_title'] . '] ' . $bug->get_title()); $alert->set_fixing_url(BugtrackerUrlBuilder::detail($bug->get_id() . '-' . $bug->get_rewrited_title())->relative()); switch ($bug->get_priority()) { case 1: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_VERY_LOW_PRIORITY; break; case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; case 2: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; case 3: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; case 4: switch ($bug->get_severity()) { case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; } break; case 5: switch ($bug->get_severity()) { case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_VERY_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; default: switch ($bug->get_severity()) { case 1: $alert_priority = AdministratorAlert::ADMIN_ALERT_LOW_PRIORITY; break; case 2: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; case 3: $alert_priority = AdministratorAlert::ADMIN_ALERT_HIGH_PRIORITY; break; default: $alert_priority = AdministratorAlert::ADMIN_ALERT_MEDIUM_PRIORITY; break; } break; } $alert->set_priority($alert_priority); $alert->set_id_in_module($bug->get_id()); $alert->set_type('bugtracker'); AdministratorAlertService::save_alert($alert); } } else { $old_values = clone $bug; $now = new Date(); $types = $this->config->get_types(); $categories = $this->config->get_categories(); $severities = $this->config->get_severities(); $priorities = $this->config->get_priorities(); $versions = $this->config->get_versions(); $display_versions = count($versions) > 1; $status_list = $this->config->get_status_list(); $common_lang = LangLoader::get('common'); $title = $this->form->get_value('title', $old_values->get_title()); $bug->set_title($title); $bug->set_rewrited_title(Url::encode_rewrite($title)); $bug->set_contents($this->form->get_value('contents', $old_values->get_contents())); $bug->set_type($this->form->get_value('type') ? $this->form->get_value('type')->get_raw_value() : $old_values->get_type()); $bug->set_category($this->form->get_value('category') ? $this->form->get_value('category')->get_raw_value() : $old_values->get_category()); $bug->set_severity($this->form->get_value('severity') ? $this->form->get_value('severity')->get_raw_value() : $old_values->get_severity()); $bug->set_priority($this->form->get_value('priority') ? $this->form->get_value('priority')->get_raw_value() : $old_values->get_priority()); $bug->set_detected_in($this->form->get_value('detected_in') ? $this->form->get_value('detected_in')->get_raw_value() : $old_values->get_detected_in()); $bug->set_reproductible($this->form->get_value('reproductible') ? true : 0); if ($bug->is_reproductible()) { $bug->set_reproduction_method($this->form->get_value('reproduction_method', $old_values->get_reproduction_method())); } $pm_comment = ''; $modification = false; $fields = array('title', 'contents', 'type', 'category', 'severity', 'priority', 'detected_in', 'reproductible', 'reproduction_method'); $n_values = $bug->get_properties(); $o_values = $old_values->get_properties(); foreach ($fields as $field) { if ($o_values[$field] != $n_values[$field]) { $modification = true; $comment = ''; switch ($field) { case 'title': $new_value = stripslashes($n_values[$field]); $o_values[$field] = addslashes($o_values[$field]); $comment = ''; break; case 'contents': $o_values[$field] = ''; $n_values[$field] = ''; $comment = $this->lang['notice.contents_update']; break; case 'reproduction_method': $o_values[$field] = ''; $n_values[$field] = ''; $comment = $this->lang['notice.reproduction_method_update']; break; case 'type': $new_value = !empty($n_values[$field]) ? stripslashes($types[$n_values[$field]]) : $this->lang['notice.none']; break; case 'category': $new_value = !empty($n_values[$field]) ? stripslashes($categories[$n_values[$field]]) : $this->lang['notice.none_e']; break; case 'priority': $new_value = !empty($n_values[$field]) ? stripslashes($priorities[$n_values[$field]]) : $this->lang['notice.none_e']; break; case 'severity': $new_value = !empty($n_values[$field]) ? stripslashes($severities[$n_values[$field]]['name']) : $this->lang['notice.none']; break; case 'detected_in': $new_value = !empty($n_values[$field]) ? stripslashes($versions[$n_values[$field]]['name']) : $this->lang['notice.none_e']; break; case 'status': $new_value = $this->lang['status.' . $n_values[$field]]; break; case 'reproductible': $new_value = $n_values[$field] ? $common_lang['yes'] : $common_lang['no']; break; default: $new_value = $n_values[$field]; $comment = ''; } $pm_comment .= $field != 'contents' && $field != 'reproduction_method' ? $this->lang['labels.fields.' . $field] . ' : ' . stripslashes($new_value) . ' ' : ''; //Bug history update BugtrackerService::add_history(array('bug_id' => $bug->get_id(), 'updater_id' => $this->current_user->get_id(), 'update_date' => $now->get_timestamp(), 'updated_field' => $field, 'old_value' => $o_values[$field], 'new_value' => $n_values[$field], 'change_comment' => $comment)); } } if ($modification) { //Bug update BugtrackerService::update($bug); //Send PM to updaters if the option is enabled if ($this->config->are_pm_enabled() && $this->config->are_pm_edit_enabled() && !empty($pm_comment)) { BugtrackerPMService::send_PM_to_updaters('edit', $bug->get_id(), $pm_comment); } } } Feed::clear_cache('bugtracker'); BugtrackerStatsCache::invalidate(); AppContext::get_response()->redirect($this->form->get_value('referrer') ? $this->form->get_value('referrer') : BugtrackerUrlBuilder::unsolved(), StringVars::replace_vars($this->is_new_bug ? $this->lang['success.add'] : $this->lang['success.edit'], array('id' => $bug->get_id()))); }
function uninstall_module($module_id, $drop_files) { global $Cache, $Sql, $CONFIG, $MODULES; $module_name = $Sql->query("SELECT name FROM " . DB_TABLE_MODULES . " WHERE id = '" . $module_id . "'", __LINE__, __FILE__); if (!empty($module_id) && !empty($module_name)) { $Sql->query_inject("DELETE FROM " . DB_TABLE_MODULES . " WHERE id = '" . $module_id . "'", __LINE__, __FILE__); $info_module = load_ini_file(PATH_TO_ROOT . '/' . $module_name . '/lang/', get_ulang()); $Cache->delete_file($module_name); if (!empty($info_module['com'])) { $Sql->query_inject("DELETE FROM " . DB_TABLE_COM . " WHERE script = '" . addslashes($info_module['com']) . "'", __LINE__, __FILE__); } if (!empty($info_module)) { $Sql->query_inject("DELETE FROM " . DB_TABLE_CONFIGS . " WHERE name = '" . addslashes($module_name) . "'", __LINE__, __FILE__); } import('core/menu_service'); MenuService::delete_mini_module($module_name); MenuService::delete_module_feeds_menus($module_name); $dir_db_module = get_ulang(); $dir = PATH_TO_ROOT . '/' . $module_name . '/db'; import('io/filesystem/folder'); $folder_path = new Folder($dir . '/' . $dir_db_module); foreach ($folder_path->get_folders('`^[a-z0-9_ -]+$`i') as $dir) { $dir_db_module = $dir->get_name(); break; } if (file_exists(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.' . DBTYPE . '.sql')) { $Sql->parse(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.' . DBTYPE . '.sql', PREFIX); } if (file_exists(PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.php')) { @(include_once PATH_TO_ROOT . '/' . $module_name . '/db/' . $dir_db_module . '/uninstall_' . $module_name . '.php'); } $Cache->Generate_file('modules'); $Cache->Generate_file('css'); MenuService::generate_cache(); import('content/syndication/feed'); Feed::clear_cache(); if ($CONFIG['rewrite'] == 1 && !empty($info_module['url_rewrite'])) { $Cache->Generate_file('htaccess'); } if ($drop_files) { $folder = new Folder(PATH_TO_ROOT . '/' . $module_name); if (!$folder->delete()) { return MODULE_FILES_COULD_NOT_BE_DROPPED; } } return MODULE_UNINSTALLED; } else { return NOT_INSTALLED_MODULE; } }
} else { $timestamp = time(); } $Cache->load('articles'); if (empty($idcat)) { $CAT_ARTICLES[0]['id_left'] = 0; $CAT_ARTICLES[0]['id_right'] = 0; } $Sql->query_inject("INSERT INTO " . PREFIX . "articles (idcat, title, contents, icon, timestamp, visible, start, end, user_id, views, users_note, nbrnote, note, nbr_com) VALUES('" . $idcat . "', '" . $title . "', '" . str_replace('[page][/page]', '', $contents) . "', '" . $icon . "', '" . $timestamp . "', '" . $visible . "', '" . $start_timestamp . "', '" . $end_timestamp . "', '" . $User->get_attribute('user_id') . "', 0, 0, 0, 0, 0)", __LINE__, __FILE__); $last_articles_id = $Sql->insert_id("SELECT MAX(id) FROM " . PREFIX . "articles"); $clause_update = $visible == 1 ? 'nbr_articles_visible = nbr_articles_visible + 1' : 'nbr_articles_unvisible = nbr_articles_unvisible + 1'; $Sql->query_inject("UPDATE " . PREFIX . "articles_cats SET " . $clause_update . " WHERE id_left <= '" . $CAT_ARTICLES[$idcat]['id_left'] . "' AND id_right >= '" . $CAT_ARTICLES[$idcat]['id_right'] . "'", __LINE__, __FILE__); ###### Regénération du cache ####### $Cache->Generate_module_file('articles'); import('content/syndication/feed'); Feed::clear_cache('articles'); redirect(HOST . DIR . '/articles/admin_articles.php'); } else { redirect(HOST . DIR . '/articles/admin_articles_add.php?error=incomplete#errorh'); } } elseif (!empty($_POST['previs'])) { $Template->set_filenames(array('admin_articles_add' => 'articles/admin_articles_add.tpl')); $title = retrieve(POST, 'title', '', TSTRING_UNCHANGE); $icon = retrieve(POST, 'icon', '', TSTRING_UNCHANGE); $icon_path = retrieve(POST, 'icon_path', '', TSTRING_UNCHANGE); $contents = retrieve(POST, 'contents', '', TSTRING_AS_RECEIVED); $contents_preview = htmlspecialchars(retrieve(POST, 'contents', '', TSTRING_UNCHANGE), ENT_COMPAT, 'ISO-8859-1'); $idcat = retrieve(POST, 'idcat', 0); $current_date = retrieve(POST, 'current_date', '', TSTRING_UNCHANGE); $start = retrieve(POST, 'start', '', TSTRING_UNCHANGE); $end = retrieve(POST, 'end', '', TSTRING_UNCHANGE);
function forum_generate_feeds() { import('content/syndication/feed'); Feed::clear_cache('forum'); }
private function save() { $downloadfile = $this->get_downloadfile(); $downloadfile->set_name($this->form->get_value('name')); $downloadfile->set_rewrited_name(Url::encode_rewrite($downloadfile->get_name())); $downloadfile->set_id_category($this->form->get_value('id_category')->get_raw_value()); $downloadfile->set_url(new Url($this->form->get_value('url'))); $downloadfile->set_contents($this->form->get_value('contents')); $downloadfile->set_short_contents($this->form->get_value('short_contents_enabled') ? $this->form->get_value('short_contents') : ''); $downloadfile->set_picture(new Url($this->form->get_value('picture'))); if ($this->config->is_author_displayed()) { $downloadfile->set_author_display_name($this->form->get_value('author_display_name') && $this->form->get_value('author_display_name') !== $downloadfile->get_author_user()->get_display_name() ? $this->form->get_value('author_display_name') : ''); } $file_size = $status = 0; $file = new File($downloadfile->get_url()->rel()); if ($file->exists()) { $file_size = $file->get_file_size(); } if (empty($file_size)) { $file_headers = get_headers($downloadfile->get_url()->absolute(), true); if (is_array($file_headers)) { if (isset($file_headers['Content-Length'])) { $file_size = $file_headers['Content-Length']; } if (preg_match('/^HTTP\\/[12]\\.[01] (\\d\\d\\d)/', $file_headers[0], $matches)) { $status = (int) $matches[1]; } } } $file_size = $status == 200 && empty($file_size) && $downloadfile->get_size() ? $downloadfile->get_size() : $file_size; $downloadfile->set_size($file_size); if ($this->get_downloadfile()->get_id() !== null && $downloadfile->get_number_downloads() > 0 && $this->form->get_value('reset_number_downloads')) { $downloadfile->set_number_downloads(0); } if ($this->is_contributor_member()) { $downloadfile->set_approbation_type(DownloadFile::NOT_APPROVAL); $downloadfile->clean_start_and_end_date(); } else { $downloadfile->set_creation_date($this->form->get_value('creation_date')); $downloadfile->set_approbation_type($this->form->get_value('approbation_type')->get_raw_value()); if ($downloadfile->get_approbation_type() == DownloadFile::APPROVAL_DATE) { $downloadfile->set_start_date($this->form->get_value('start_date')); if ($this->form->get_value('end_date_enable')) { $downloadfile->set_end_date($this->form->get_value('end_date')); } else { $downloadfile->clean_end_date(); } } else { $downloadfile->clean_start_and_end_date(); } } if ($this->is_new_downloadfile) { $id = DownloadService::add($downloadfile); } else { $downloadfile->set_updated_date(new Date()); $id = $downloadfile->get_id(); DownloadService::update($downloadfile); } $this->contribution_actions($downloadfile, $id); DownloadService::get_keywords_manager()->put_relations($id, $this->form->get_value('keywords')); Feed::clear_cache('download'); DownloadCache::invalidate(); }
function forum_generate_feeds() { Feed::clear_cache('forum'); }