getVersion('zoneclearFeedServer') != $core->plugins->moduleInfo('zoneclearFeedServer', 'version')) { return null; } dcPage::check('admin'); $zcfs = new zoneclearFeedServer($core); ############################################################ # # One feed # ############################################################ if (isset($_REQUEST['part']) && $_REQUEST['part'] == 'feed') { $feed_id = ''; $feed_name = ''; $feed_desc = ''; $feed_owner = ''; $feed_tweeter = ''; $feed_url = ''; $feed_feed = ''; $feed_lang = $core->auth->getInfo('user_lang'); $feed_tags = ''; $feed_get_tags = '0'; $feed_cat_id = ''; $feed_status = '0'; $feed_upd_int = 3600; $can_view_page = true; $feed_headlink = ''; $feed_link = '%s'; $next_link = $prev_link = $next_headlink = $prev_headlink = null; # Combos $combo_langs = l10n::getISOcodes(true); $combo_status = $zcfs->getAllStatus(); $combo_upd_int = $zcfs->getAllUpdateInterval(); $combo_categories = array('-' => ''); try { $categories = $core->blog->getCategories(array( 'post_type' => 'post' )); while ($categories->fetch()) { $combo_categories[ str_repeat(' ', $categories->level-1). '• '.html::escapeHTML($categories->cat_title) ] = $categories->cat_id; } } catch (Exception $e) { $core->error->add($e->getMessage()); } # Get entry informations if (!empty($_REQUEST['feed_id'])) { $feed = $zcfs->getFeeds(array('feed_id' => $_REQUEST['feed_id'])); if ($feed->isEmpty()) { $core->error->add(__('This feed does not exist.')); $can_view_page = false; } else { $feed_id = $feed->feed_id; $feed_name = $feed->feed_name; $feed_desc = $feed->feed_desc; $feed_owner = $feed->feed_owner; $feed_tweeter = $feed->feed_tweeter; $feed_url = $feed->feed_url; $feed_feed = $feed->feed_feed; $feed_lang = $feed->feed_lang; $feed_tags = $feed->feed_tags; $feed_get_tags = $feed->feed_get_tags; $feed_cat_id = $feed->cat_id; $feed_status = $feed->feed_status; $feed_upd_int = $feed->feed_upd_int; $next_params = array( 'sql' => 'AND feed_id < '.$feed_id.' ', 'limit' => 1 ); $next_rs = $zcfs->getFeeds($next_params); $prev_params = array( 'sql' => 'AND feed_id > '.$feed_id.' ', 'limit' => 1 ); $prev_rs = $zcfs->getFeeds($prev_params); if (!$next_rs->isEmpty()) { $next_link = sprintf($feed_link,$next_rs->feed_id, html::escapeHTML($next_rs->feed_name), __('next feed').' »'); $next_headlink = sprintf($feed_headlink, 'next', html::escapeHTML($next_rs->feed_name), $next_rs->feed_id); } if (!$prev_rs->isEmpty()) { $prev_link = sprintf($feed_link,$prev_rs->feed_id, html::escapeHTML($prev_rs->feed_name), '« '.__('previous feed')); $prev_headlink = sprintf($feed_headlink, 'previous', html::escapeHTML($prev_rs->feed_name), $prev_rs->feed_id); } } } if (!empty($_POST['action']) && $_POST['action'] == 'savefeed') { try { $feed_name = $_POST['feed_name']; $feed_desc = $_POST['feed_desc']; $feed_owner = $_POST['feed_owner']; $feed_tweeter = $_POST['feed_tweeter']; $feed_url = $_POST['feed_url']; $feed_feed = $_POST['feed_feed']; $feed_lang = $_POST['feed_lang']; $feed_tags = $_POST['feed_tags']; $feed_get_tags = empty($_POST['feed_get_tags']) ? 0 : 1; $feed_cat_id = $_POST['feed_cat_id']; if (isset($_POST['feed_status'])) { $feed_status = (integer) $_POST['feed_status']; } $feed_upd_int = $_POST['feed_upd_int']; $testfeed_params['feed_feed'] = $feed_feed; if ($feed_id) { $testfeed_params['sql'] ='AND feed_id <> '.$feed_id.' '; } if ($zcfs->getFeeds($testfeed_params, true)->f(0)) { throw new Exception(__('Record with same feed URL already exists.')); } if (empty($feed_name)) { throw new Exception(__('You must provide a name.')); } if (empty($feed_owner)) { throw new Exception(__('You must provide an owner.')); } if (!zoneclearFeedServer::validateURL($feed_url)) { throw new Exception(__('You must provide valid site URL.')); } if (!zoneclearFeedServer::validateURL($feed_feed)) { throw new Exception(__('You must provide valid feed URL.')); } $get_feed_cat_id = $core->blog->getCategory($feed_cat_id); if ($feed_cat_id != '' && !$get_feed_cat_id) { throw new Exception(__('You must provide valid category.')); } } catch (Exception $e) { $core->error->add($e->getMessage()); } } if (!empty($_POST['action']) && $_POST['action'] == 'savefeed' && !$core->error->flag() ) { $cur = $zcfs->openCursor(); $cur->feed_name = $feed_name; $cur->feed_desc = $feed_desc; $cur->feed_owner = $feed_owner; $cur->feed_tweeter = $feed_tweeter; $cur->feed_url = $feed_url; $cur->feed_feed = $feed_feed; $cur->feed_lang = $feed_lang; $cur->feed_tags = $feed_tags; $cur->feed_get_tags = (integer) $feed_get_tags; $cur->cat_id = $feed_cat_id != '' ? (integer) $feed_cat_id : null; $cur->feed_status = (integer) $feed_status; $cur->feed_upd_int = (integer) $feed_upd_int; # Update feed if ($feed_id) { try { # --BEHAVIOR-- adminBeforeZoneclearFeedServerFeedUpdate $core->callBehavior( 'adminBeforeZoneclearFeedServerFeedUpdate', $cur, $feed_id ); $zcfs->updFeed($feed_id, $cur); # --BEHAVIOR-- adminAfterZoneclearFeedServerFeedUpdate $core->callBehavior( 'adminAfterZoneclearFeedServerFeedUpdate', $cur, $feed_id ); dcPage::addSuccessNotice( __('Feed successfully updated.') ); http::redirect( $p_url.'&part=feed&feed_id='.$feed_id ); } catch (Exception $e) { $core->error->add($e->getMessage()); } } else { try { # --BEHAVIOR-- adminBeforeZoneclearFeedServerFeedCreate $core->callBehavior( 'adminBeforeZoneclearFeedServerFeedCreate', $cur ); $return_id = $zcfs->addFeed($cur); # --BEHAVIOR-- adminAfterZoneclearFeedServerFeedCreate $core->callBehavior( 'adminAfterZoneclearFeedServerFeedCreate', $cur, $return_id ); dcPage::addSuccessNotice( __('Feed successfully created.') ); http::redirect( $p_url.'&part=feed&feed_id='.$return_id ); } catch (Exception $e) { $core->error->add($e->getMessage()); } } } # Prepared entries list if ($feed_id && $can_view_page) { try { # Getting categories $categories = $core->blog->getCategories(array( 'post_type' => 'post' )); # Getting authors $users = $core->blog->getPostsUsers(); # Getting dates $dates = $core->blog->getDates(array( 'type' => 'month' )); # Getting langs $langs = $core->blog->getLangs(); } catch (Exception $e) { $core->error->add($e->getMessage()); } # Creating filter combo boxes if (!$core->error->flag()) { $users_combo = array_merge( array('-' => ''), dcAdminCombos::getUsersCombo($users) ); $categories_combo = array_merge( array( new formSelectOption('-', ''), new formSelectOption(__('(No cat)'), 'NULL') ), dcAdminCombos::getCategoriesCombo($categories, false) ); $categories_values = array(); foreach ($categories_combo as $cat) { if (isset($cat->value)) { $categories_values[$cat->value] = true; } } $status_combo = array_merge( array('-' => ''), dcAdminCombos::getPostStatusesCombo() ); $selected_combo = array( '-' => '', __('Selected') => '1', __('Not selected') => '0' ); $dt_m_combo = array_merge( array('-' => ''), dcAdminCombos::getDatesCombo($dates) ); $lang_combo = array_merge( array('-' => ''), dcAdminCombos::getLangsCombo($langs,false) ); $sortby_combo = array( __('Date') => 'post_dt', __('Title') => 'post_title', __('Category') => 'cat_title', __('Author') => 'user_id', __('Status') => 'post_status', __('Selected') => 'post_selected' ); $order_combo = array( __('Descending') => 'desc', __('Ascending') => 'asc' ); } # Posts action $posts_actions_page = new dcPostsActionsPage( $core, 'plugin.php', array( 'p' => 'zoneclearFeedServer', 'part' => 'feed', 'feed_id' => $feed_id, '_ANCHOR' => 'entries' ) ); if ($posts_actions_page->process()) { return null; } /* Get posts -------------------------------------------------------- */ $user_id = !empty($_GET['user_id']) ? $_GET['user_id'] : ''; $cat_id = !empty($_GET['cat_id']) ? $_GET['cat_id'] : ''; $status = isset($_GET['status']) ? $_GET['status'] : ''; $selected = isset($_GET['selected']) ? $_GET['selected'] : ''; $month = !empty($_GET['month']) ? $_GET['month'] : ''; $lang = !empty($_GET['lang']) ? $_GET['lang'] : ''; $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'post_dt'; $order = !empty($_GET['order']) ? $_GET['order'] : 'desc'; $show_filters = false; $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; $nb_per_page = 30; if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { if ($nb_per_page != $_GET['nb']) { $show_filters = true; } $nb_per_page = (integer) $_GET['nb']; } $params['limit'] = array((($page-1)*$nb_per_page), $nb_per_page); $params['no_content'] = true; # - User filter if ($user_id !== '' && in_array($user_id, $users_combo)) { $params['user_id'] = $user_id; $show_filters = true; } # - Categories filter if ($cat_id !== '' && in_array($cat_id, $categories_combo)) { $params['cat_id'] = $cat_id; $show_filters = true; } # - Status filter if ($status !== '' && in_array($status, $status_combo)) { $params['post_status'] = $status; $show_filters = true; } # - Selected filter if ($selected !== '' && in_array($selected, $selected_combo)) { $params['post_selected'] = $selected; $show_filters = true; } # - Month filter if ($month !== '' && in_array($month, $dt_m_combo)) { $params['post_month'] = substr($month, 4, 2); $params['post_year'] = substr($month, 0, 4); $show_filters = true; } # - Lang filter if ($lang !== '' && in_array($lang, $lang_combo)) { $params['post_lang'] = $lang; $show_filters = true; } # - Sortby and order filter if ($sortby !== '' && in_array($sortby, $sortby_combo)) { if ($order !== '' && in_array($order, $order_combo)){ $params['order'] = $sortby.' '.$order; } if ($sortby != 'post_dt' || $order != 'desc') { $show_filters = true; } } # Get posts try { $params['feed_id'] = $feed_id; $posts = $zcfs->getPostsByFeed($params); $counter = $zcfs->getPostsByFeed($params,true); $post_list = new zcfsEntriesList( $core, $posts, $counter->f(0) ); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Display echo '
'; if ($prev_link) { echo $prev_link; } if ($next_link && $prev_link) { echo ' - '; } if ($next_link) { echo $next_link; } echo '
'; } echo '