record the category record @return array the combo box (form::combo -compatible format) */ public static function getCategoriesCombo($categories, $include_empty = true, $use_url = false) { $categories_combo = []; if ($include_empty) { $categories_combo = [new formSelectOption(__('(No cat)'), '')]; } while ($categories->fetch()) { $categories_combo[] = new formSelectOption( str_repeat(' ', ($categories->level - 1) * 4) . html::escapeHTML($categories->cat_title) . ' (' . $categories->nb_post . ')', ($use_url ? $categories->cat_url : $categories->cat_id), ($categories->level - 1 ? 'sub-option' . ($categories->level - 1) : '') ); } return $categories_combo; } /** Returns available post status combo @return array the combo box (form::combo -compatible format) */ public static function getPostStatusesCombo() { $status_combo = []; foreach (self::$core->blog->getAllPostStatus() as $k => $v) { $status_combo[$v] = (string) $k; } return $status_combo; } /** Returns an users combo from a users record @param users record the users record @return array the combo box (form::combo -compatible format) */ public static function getUsersCombo($users) { $users_combo = []; while ($users->fetch()) { $user_cn = dcUtils::getUserCN($users->user_id, $users->user_name, $users->user_firstname, $users->user_displayname); if ($user_cn != $users->user_id) { $user_cn .= ' (' . $users->user_id . ')'; } $users_combo[$user_cn] = $users->user_id; } return $users_combo; } /** Returns an date combo from a date record @param dates record the dates record @return array the combo box (form::combo -compatible format) */ public static function getDatesCombo($dates) { $dt_m_combo = []; while ($dates->fetch()) { $dt_m_combo[dt::str('%B %Y', $dates->ts())] = $dates->year() . $dates->month(); } return $dt_m_combo; } /** Returns an lang combo from a lang record @param langs record the langs record @param with_available boolean if false, only list items from record if true, also list available languages @return array the combo box (form::combo -compatible format) */ public static function getLangsCombo($langs, $with_available = false) { $all_langs = l10n::getISOcodes(0, 1); if ($with_available) { $langs_combo = ['' => '', __('Most used') => [], __('Available') => l10n::getISOcodes(1, 1)]; while ($langs->fetch()) { if (isset($all_langs[$langs->post_lang])) { $langs_combo[__('Most used')][$all_langs[$langs->post_lang]] = $langs->post_lang; unset($langs_combo[__('Available')][$all_langs[$langs->post_lang]]); } else { $langs_combo[__('Most used')][$langs->post_lang] = $langs->post_lang; } } } else { $langs_combo = []; while ($langs->fetch()) { $lang_name = isset($all_langs[$langs->post_lang]) ? $all_langs[$langs->post_lang] : $langs->post_lang; $langs_combo[$lang_name] = $langs->post_lang; } } unset($all_langs); return $langs_combo; } /** Returns a combo containing all available and installed languages for administration pages @return array the combo box (form::combo -compatible format) */ public static function getAdminLangsCombo() { $lang_combo = []; $langs = l10n::getISOcodes(1, 1); foreach ($langs as $k => $v) { $lang_avail = $v == 'en' || is_dir(DC_L10N_ROOT . '/' . $v); $lang_combo[] = new formSelectOption($k, $v, $lang_avail ? 'avail10n' : ''); } return $lang_combo; } /** Returns a combo containing all available editors in admin @return array the combo box (form::combo -compatible format) */ public static function getEditorsCombo() { $editors_combo = []; foreach (self::$core->getEditors() as $v) { $editors_combo[$v] = $v; } return $editors_combo; } /** Returns a combo containing all available formaters by editor in admin @param editor_id string Editor id (dcLegacyEditor, dcCKEditor, ...) @return array the combo box (form::combo -compatible format) */ public static function getFormatersCombo($editor_id = '') { $formaters_combo = []; if (!empty($editor_id)) { foreach (self::$core->getFormaters($editor_id) as $formater) { $formaters_combo[$formater] = $formater; } } else { foreach (self::$core->getFormaters() as $editor => $formaters) { foreach ($formaters as $formater) { $formaters_combo[$editor][$formater] = $formater; } } } return $formaters_combo; } /** Returns a combo containing available blog statuses @return array the combo box (form::combo -compatible format) */ public static function getBlogStatusesCombo() { $status_combo = []; foreach (self::$core->getAllBlogStatus() as $k => $v) { $status_combo[$v] = (string) $k; } return $status_combo; } /** Returns a combo containing available comment statuses @return array the combo box (form::combo -compatible format) */ public static function getCommentStatusescombo() { $status_combo = []; foreach (self::$core->blog->getAllCommentStatus() as $k => $v) { $status_combo[$v] = (string) $k; } return $status_combo; } } dcAdminCombos::$core = $GLOBALS['core'];