blog->getCategories(); } catch (Exception $e) { $core->error->add($e->getMessage()); } # Getting authors try { $users = $core->blog->getPostsUsers(); } catch (Exception $e) { $core->error->add($e->getMessage()); } # Getting dates try { $dates = $core->blog->getDates(['type' => 'month']); } catch (Exception $e) { $core->error->add($e->getMessage()); } # Getting langs try { $langs = $core->blog->getLangs(); } catch (Exception $e) { $core->error->add($e->getMessage()); } # Creating filter combo boxes $users_combo = dcAdminCombos::getUsersCombo($users); dcUtils::lexicalKeySort($users_combo); $users_combo = array_merge( ['-' => ''], $users_combo ); $categories_combo = array_merge( [ new formSelectOption('-', ''), new formSelectOption(__('(No cat)'), 'NULL')], dcAdminCombos::getCategoriesCombo($categories, false) ); $categories_values = []; foreach ($categories_combo as $cat) { if (isset($cat->value)) { $categories_values[$cat->value] = true; } } $status_combo = array_merge( ['-' => ''], dcAdminCombos::getPostStatusesCombo() ); $selected_combo = [ '-' => '', __('Selected') => '1', __('Not selected') => '0' ]; $comment_combo = [ '-' => '', __('Opened') => '1', __('Closed') => '0' ]; $trackback_combo = [ '-' => '', __('Opened') => '1', __('Closed') => '0' ]; $attachment_combo = [ '-' => '', __('With attachments') => '1', __('Without attachments') => '0' ]; $password_combo = [ '-' => '', __('With password') => '1', __('Without password') => '0' ]; # Months array $dt_m_combo = array_merge( ['-' => ''], dcAdminCombos::getDatesCombo($dates) ); $lang_combo = array_merge( ['-' => ''], dcAdminCombos::getLangsCombo($langs, false) ); # Post formats $core_formaters = $core->getFormaters(); $available_formats = []; foreach ($core_formaters as $editor => $formats) { foreach ($formats as $format) { $available_formats[$format] = $format; } } $format_combo = array_merge( ['-' => ''], $available_formats ); $sortby_combo = [ __('Date') => 'post_dt', __('Title') => 'post_title', __('Category') => 'cat_title', __('Author') => 'user_id', __('Status') => 'post_status', __('Selected') => 'post_selected', __('Number of comments') => 'nb_comment', __('Number of trackbacks') => 'nb_trackback' ]; $sortby_lex = [ // key in sorty_combo (see above) => field in SQL request 'post_title' => 'post_title', 'cat_title' => 'cat_title', 'user_id' => 'P.user_id']; $order_combo = [ __('Descending') => 'desc', __('Ascending') => 'asc' ]; # Actions combo box $posts_actions_page = new dcPostsActionsPage($core, $core->adminurl->get("admin.posts")); if ($posts_actions_page->process()) { return; } /* 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'] : ''; $password = isset($_GET['password']) ? $_GET['password'] : ''; $selected = isset($_GET['selected']) ? $_GET['selected'] : ''; $comment = isset($_GET['comment']) ? $_GET['comment'] : ''; $trackback = isset($_GET['trackback']) ? $_GET['trackback'] : ''; $attachment = isset($_GET['attachment']) ? $_GET['attachment'] : ''; $month = !empty($_GET['month']) ? $_GET['month'] : ''; $lang = !empty($_GET['lang']) ? $_GET['lang'] : ''; $format = !empty($_GET['format']) ? $_GET['format'] : ''; $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'post_dt'; $order = !empty($_GET['order']) ? $_GET['order'] : 'desc'; $show_filters = false; $page = !empty($_GET['page']) ? max(1, (integer) $_GET['page']) : 1; $nb_per_page = 30; if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { if ($nb_per_page != (integer) $_GET['nb']) { $show_filters = true; } $nb_per_page = (integer) $_GET['nb']; } $params['limit'] = [(($page - 1) * $nb_per_page), $nb_per_page]; $params['no_content'] = true; $params['where'] = ''; # - User filter if ($user_id !== '' && in_array($user_id, $users_combo)) { $params['user_id'] = $user_id; $show_filters = true; } else { $user_id = ''; } # - Categories filter if ($cat_id !== '' && isset($categories_values[$cat_id])) { $params['cat_id'] = $cat_id; $show_filters = true; } else { $cat_id = ''; } # - Status filter if ($status !== '' && in_array($status, $status_combo)) { $params['post_status'] = $status; $show_filters = true; } else { $status = ''; } # - Password filter if ($password !== '' && in_array($password, $password_combo)) { $params['where'] .= ' AND post_password IS ' . ($password ? 'NOT ' : '') . 'NULL '; $show_filters = true; } else { $password = ''; } # - Selected filter if ($selected !== '' && in_array($selected, $selected_combo)) { $params['post_selected'] = $selected; $show_filters = true; } else { $selected = ''; } # - Comment filter if ($comment !== '' && in_array($comment, $comment_combo)) { $params['where'] .= " AND post_open_comment = '" . $comment . "' "; $show_filters = true; } else { $comment = ''; } # - Comment filter if ($trackback !== '' && in_array($trackback, $trackback_combo)) { $params['where'] .= " AND post_open_tb = '" . $trackback . "' "; $show_filters = true; } else { $trackback = ''; } # - Attachment filter if ($attachment !== '' && in_array($attachment, $attachment_combo)) { $params['media'] = $attachment; $params['link_type'] = 'attachment'; $show_filters = true; } else { $attachment = ''; } # - 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; } else { $month = ''; } # - Lang filter if ($lang !== '' && in_array($lang, $lang_combo)) { $params['post_lang'] = $lang; $show_filters = true; } else { $lang = ''; } # - Format filter if ($format !== '' && in_array($format, $format_combo)) { $params['where'] .= " AND post_format = '" . $format . "' "; $show_filters = true; } else { $format = ''; } # - Sortby and order filter if ($sortby !== '' && in_array($sortby, $sortby_combo)) { if (array_key_exists($sortby, $sortby_lex)) { $params['order'] = $core->con->lexFields($sortby_lex[$sortby]); } else { $params['order'] = $sortby; } if ($order !== '' && in_array($order, $order_combo)) { $params['order'] .= ' ' . $order; } else { $order = 'desc'; } if ($sortby != 'post_dt' || $order != 'desc') { $show_filters = true; } } else { $sortby = 'post_dt'; $order = 'desc'; } # Get posts try { $posts = $core->blog->getPosts($params); $counter = $core->blog->getPosts($params, true); $post_list = new adminPostList($core, $posts, $counter->f(0)); } catch (Exception $e) { $core->error->add($e->getMessage()); } /* DISPLAY -------------------------------------------------------- */ dcPage::open(__('Entries'), dcPage::jsLoad('js/_posts_list.js') . dcPage::jsFilterControl($show_filters), dcPage::breadcrumb( [ html::escapeHTML($core->blog->name) => '', __('Entries') => '' ]) ); if (!empty($_GET['upd'])) { dcPage::success(__('Selected entries have been successfully updated.')); } elseif (!empty($_GET['del'])) { dcPage::success(__('Selected entries have been successfully deleted.')); } if (!$core->error->flag()) { echo '

' . __('New entry') . '

' . '
' . '

' . __('Show filters and display options') . '

' . '
' . '
' . '

' . __('Filters') . '

' . '

' . form::combo('user_id', $users_combo, $user_id) . '

' . '

' . form::combo('cat_id', $categories_combo, $cat_id) . '

' . '

' . form::combo('status', $status_combo, $status) . '

' . '

' . form::combo('format', $format_combo, $format) . '

' . '

' . form::combo('password', $password_combo, $password) . '

' . '
' . '
' . '

' . form::combo('selected', $selected_combo, $selected) . '

' . '

' . form::combo('attachment', $attachment_combo, $attachment) . '

' . '

' . form::combo('month', $dt_m_combo, $month) . '

' . '

' . form::combo('lang', $lang_combo, $lang) . '

' . '

' . form::combo('comment', $comment_combo, $comment) . '

' . '

' . form::combo('trackback', $trackback_combo, $trackback) . '

' . '
' . '
' . '

' . __('Display options') . '

' . '

' . form::combo('sortby', $sortby_combo, $sortby) . '

' . '

' . form::combo('order', $order_combo, $order) . '

' . '

' . __('Show') . '

' . '
' . '
' . '

' . '

' . //Opera sucks '
'; # Show posts $post_list->display($page, $nb_per_page, '
' . '%s' . '
' . '

' . '

' . form::combo('action', $posts_actions_page->getCombo()) . '

' . form::hidden(['user_id'], $user_id) . form::hidden(['cat_id'], $cat_id) . form::hidden(['status'], $status) . form::hidden(['password'], $password) . form::hidden(['selected'], $selected) . form::hidden(['comment'], $comment) . form::hidden(['trackback'], $trackback) . form::hidden(['attachment'], $attachment) . form::hidden(['month'], $month) . form::hidden(['lang'], $lang) . form::hidden(['sortby'], $sortby) . form::hidden(['order'], $order) . form::hidden(['page'], $page) . form::hidden(['nb'], $nb_per_page) . $core->formNonce() . '
' . '
', $show_filters ); } dcPage::helpBlock('core_posts'); dcPage::close();