function kt_init_logger_tools_admin_page()
{
    if (KT_Logger::getAllowToolsAdminPage()) {
        $template = new KT_Custom_Metaboxes_Subpage("tools.php", __("Výpis (KT) logů", KT_DOMAIN), __("(KT) Logy", KT_DOMAIN), "edit_theme_options", KT_Log_Model::FORM_PREFIX);
        $crudList = new KT_CRUD_Admin_List("KT_Log_Model", KT_Log_Model::TABLE);
        $crudList->setTemplateTitle(__("Přehled zaznamenaných (KT) logů", KT_DOMAIN));
        $crudList->getRepository()->setOrder(KT_Log_Model::DATE_COLUMN, KT_Repository::ORDER_DESC);
        $crudList->addColumn(KT_Log_Model::LEVEL_ID_COLUMN)->setLabel(__("Level", KT_DOMAIN))->setType(KT_CRUD_Admin_Column::CUSTOM_TYPE)->setCustomCallbackFunction("getLevelColumnValue", true);
        $crudList->addColumn(KT_Log_Model::SCOPE_COLUMN)->setLabel(__("Scope", KT_DOMAIN));
        $crudList->addColumn(KT_Log_Model::MESSAGE_COLUMN)->setLabel(__("Zpráva", KT_DOMAIN))->setType(KT_CRUD_Admin_Column::CUSTOM_TYPE)->setCustomCallbackFunction("getMessageColumnValue", true);
        $crudList->addColumn(KT_Log_Model::DATE_COLUMN)->setLabel(__("Datum", KT_DOMAIN));
        $crudList->addColumn(KT_Log_Model::LOGGED_USER_NAME_COLUMN)->setLabel(__("Uživatel", KT_DOMAIN));
        $crudList->addColumn(KT_Log_Model::FILE_COLUMN)->setLabel(__("Soubor", KT_DOMAIN))->setType(KT_CRUD_Admin_Column::CUSTOM_TYPE)->setCustomCallbackFunction("getFileColumnValue", true);
        $crudList->addColumn(KT_Log_Model::LINE_COLUMN)->setLabel(__("Řádek", KT_DOMAIN));
        $template->setCrudList($crudList);
        // --- registrace stránky ------------------
        $template->setDefaultCallBackFunction(KT_Custom_Metaboxes_Base::CRUD_LIST_SCREEN)->register();
    }
}
 /**
  * Provede registraci defaultní stránky pro nastavení šablony
  * NENÍ POTŘEBA VOLAT VEŘEJNĚ
  *
  * @param string $capability
  * @return \KT_WP_Configurator
  */
 public function registerThemeSettingPageAction($capability = "update_core")
 {
     if (KT::notIssetOrEmpty($this->getThemeSettingPage())) {
         return;
     }
     $themeSettings = new KT_Custom_Metaboxes_Subpage("themes.php", __("Nastavení šablony", "KT_CORE_DOMAIN"), __("Nastavení šablony", "KT_CORE_DOMAIN"), $capability, self::THEME_SETTING_PAGE_SLUG);
     $themeSettings->setRenderSaveButton()->register();
     return $this;
 }
<?php

$ktWpCronPage = new KT_Custom_Metaboxes_Subpage("tools.php", __("(KT) WP CRON", "KT_CORE_DOMAIN"), __("(KT) WP CRON", "KT_CORE_DOMAIN"), "edit_theme_options", KT_WP_Configurator::WP_CRON_PAGE_SLUG);
$ktWpCronPage->register();
KT_Metabox::createCustom(KT_WP_Configurator::WP_CRON_PAGE_SLUG . "-events-metabox", __("Naplánované eventy", "KT_CORE_DOMAIN"), KT_WP_Configurator::getWpCronSlug(), "kt_cron_events_metabox_callback");
function kt_cron_events_metabox_callback()
{
    $crons = _get_cron_array();
    if (KT::arrayIssetAndNotEmpty($crons)) {
        echo "<ol>";
        foreach ($crons as $time => $events) {
            if (KT::arrayIssetAndNotEmpty($events)) {
                foreach ($events as $name => $data) {
                    if (KT::arrayIssetAndNotEmpty($data)) {
                        foreach ($data as $key => $values) {
                            if (KT::arrayIssetAndNotEmpty($values)) {
                                $schedule = KT::arrayTryGetValue($values, "schedule");
                                //$interval = KT::arrayTryGetValue($values, "interval");
                                $date = date("H:i:s", $time);
                                echo "<li><b>{$name}</b> - <i>{$schedule}</i> @ {$date}</li>";
                            }
                        }
                    }
                }
            }
        }
        echo "</ol>";
    }
}
$intervalsMetabox = KT_Metabox::createCustom(KT_WP_Configurator::WP_CRON_PAGE_SLUG . "-intervals-metabox", __("Zavedené intervaly", "KT_CORE_DOMAIN"), KT_WP_Configurator::getWpCronSlug(), "kt_cron_schedules_metabox_callback", false);
$intervalsMetabox->setContext(KT_MetaBox::CONTEXT_SIDE)->register();