/** * Action handler function * * @param &vivvo_lite_site $sm * @param string $action * @param string $command * @return bool */ function schedule_service(&$sm, $action, $command) { if ($action != 'schedule') { return false; } require_once VIVVO_FS_ROOT . 'lib/vivvo/service/Schedules.service.php'; $service = new SchedulesService($sm); $dm = $sm->get_dump_manager(); $um = $sm->get_url_manager(); $lang = $sm->get_lang(); switch ($command) { case 'add': $schedule_params = $um->get_param_regexp('/^schedule_/'); if ($service->add_schedule($schedule_params)) { $dm->add_dump('info', 0, $lang->get_value('LNG_INFO_SCHEDULE_ADD_SUCCESS')); header('X-Vivvo-Action-Status: 1'); vivvo_hooks_manager::call('schedule_add_postaction'); return true; } break; case 'edit': $schedule_params = $um->get_param_regexp('/^schedule_/'); if ($service->edit_schedule($schedule_params)) { $dm->add_dump('info', 0, $lang->get_value('LNG_INFO_SCHEDULE_EDIT_SUCCESS')); header('X-Vivvo-Action-Status: 1'); vivvo_hooks_manager::call('schedule_edit_postaction'); return true; } break; case 'delete': if ($service->delete_schedule($um->get_param('schedule_id'))) { $dm->add_dump('info', 0, $lang->get_value('LNG_INFO_SCHEDULE_DELETE_SUCCESS')); header('X-Vivvo-Action-Status: 1'); vivvo_hooks_manager::call('schedule_delete_postaction'); return true; } break; case 'save_changes': $article_id = $um->get_param('article_id'); foreach ($um->get_param('schedule') as $id => $mask) { if (!$service->edit_schedule(array('id' => $id, 'article_id' => $article_id, 'time_mask' => $mask))) { break 2; } } foreach ($um->get_param('new_schedule') as $mask) { if (!$service->add_schedule(array('article_id' => $article_id, 'time_mask' => $mask))) { break 2; } } header('X-Vivvo-Action-Status: 1'); return true; default: } header('X-Vivvo-Action-Status: 0'); header('X-Vivvo-Action-Error: ' . json_encode($service->get_error_info())); return false; }
/** * Parses url array * * @param &vivvo_lite_site $sm * @param array $url_array * @return array */ function xspf_url_handler(&$sm, $url_array) { $um = $sm->get_url_manager(); array_shift($um->_url_array); $um->parse_url(); $template = $sm->get_template(); $template->set_template_file(VIVVO_FS_INSTALL_ROOT . 'templates/_syndication/xspf.tpl'); defined('VIVVO_CUSTOM_FIELD_SEARCH') or define('VIVVO_CUSTOM_FIELD_SEARCH', 1); $sm->define_proxy_url(); $sm->article_list_params['search_field_video_attachment_neq'] = ''; $sm->article_list_params['search_field_video_attachment_notnull'] = 1; $template->assign('content_params', $sm->article_list_params); header('Content-type: application/xspf+xml'); echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; echo $sm->get_output(); ob_end_flush(); exit; }
/** * Action handler function * * @param &vivvo_lite_site $sm * @param string $action * @param string $command * @return bool */ function feed_service($sm, $action, $command) { if ($action != 'feed') { return false; } require_once dirname(__FILE__) . '/feed.service.php'; $service = new feed_service($sm); $um = $sm->get_url_manager(); $dm = $sm->get_dump_manager(); $lang = vivvo_lang::get_instance(); if ($command == 'edit') { $feed_id = $um->get_param('PLUGIN_FEED_id'); $in_feed = $um->get_param_regexp('/^PLUGIN_FEED_/'); if ($service->edit_feed($feed_id, $in_feed)) { $dm->add_dump('info', 0, $lang->get_value('LNG_INFO_PLUGIN_FEED_EDIT_SUCCESS')); header('X-Vivvo-Action-Status: 1'); vivvo_hooks_manager::call('feed_edit_postaction'); return true; } } elseif ($command == 'preferences') { if (is_array($um->list) and !empty($um->list)) { foreach ($um->list as $key => $value) { if (preg_match('/^(VIVVO_PLUGIN_FEED_IMPORTER_)/', $key)) { if (!($response = $service->preferences_feed($key, $um->list[$key]))) { break; } } } } if (!empty($response)) { $dm->add_dump('info', 0, $lang->get_value('LNG_INFO_PLUGIN_FEED_PREFERENCES_SUCCESS')); header('X-Vivvo-Action-Status: 1'); vivvo_hooks_manager::call('feed_preferences_postaction'); return true; } } header('X-Vivvo-Action-Status: 0'); header('X-Vivvo-Action-Error: ' . json_encode($service->get_error_info())); return false; }
/** * Parses search params from URL * * @param &vivvo_lite_site $sm * @return array */ public static function get_search_params_from_url($sm) { return self::get_search_params(null, $sm->get_url_manager()->list); }