public static function addExtension($classname) { $class = get_called_class(); extension::add($class . '_CLASS', function () use($classname) { return $classname; }); }
public function parseUrl($url) { $url = $this->deleteSubDir($url); $url = ltrim($url, '/'); //Redirect falls alte URL preg_match('/.*?page_id=(\\d)*.*/', $url, $match); if (isset($match[1]) && page::isValid($match[1])) { $this->redirect($match[1]); } // Überflüssige Zeichen löschen, damit eine reine URL angezeigt wird $url = self::removeWastedParts($url); if (isset(self::$pathlist[$url])) { $id = self::$pathlist[$url]; extension::add('SET_PAGE_ID', function () use($id) { return $id; }); } if ($url == '') { $id = dyn::get('start_page'); } if (!isset($id)) { header('HTTP/1.0 404 Not Found'); $id = dyn::get('error_page'); } return $id; }
public function parseUrl($url) { $url = str_replace(dyn::get('hp_url'), '', $url); $url = trim($url, '/'); if (isset(self::$pathlist[$url])) { $id = self::$pathlist[$url]; extension::add('SET_PAGE_ID', function () use($id) { return $id; }); } if ($url == '') { $id = dyn::get('start_page'); } return $id; }
public static function addToPathlist($filter, $addonsUrls) { $addonnames = []; foreach (seo_control::getArticleNames(seo_control::getArticleByFilter($filter)) as $id => $name) { $name = rtrim($name, dyn::get('addons')['seo']['ending']); if ($name) { $name .= '/'; } foreach ($addonsUrls as $addonname) { $addonnames[$name . $addonname] = $id; } } extension::add('SEO_GENERATE_PATHLIST', function ($list) use($addonnames) { $list = array_merge($addonnames, $list); return $list; }); }
userPerm::add('media[category][delete]', lang::get('media[category][delete]')); if (dyn::get('user')->hasPerm('media[edit]') || dyn::get('user')->hasPerm('media[delete]') || dyn::get('user')->hasPerm('media[category][edit]') || dyn::get('user')->hasPerm('media[category][delete]')) { backend::addNavi(lang::get('media'), url::backend('media'), 'picture-o', 2, function () { return dir::addon('mediamanager', 'page' . DIRECTORY_SEPARATOR . 'media.php'); }); } form::addClassMethod('addMediaField', function ($name, $value) { return $this->addField($name, $value, 'formMedia'); }); form::addClassMethod('addMediaListField', function ($name, $value) { return $this->addField($name, $value, 'formMediaList'); }); $page = type::super('page', 'string'); $subpage = type::super('subpage', 'string'); $action = type::super('action', 'string'); pageArea::addType('varsMedia'); pageArea::addType('varsMedialist'); if (addonConfig::isActive('metainfos')) { metainfosPage::addType('DYN_MEDIA'); metainfosPage::addType('DYN_MEDIA_LIST'); if ($page == 'meta') { backend::addSubNavi(lang::get('media'), url::backend('meta', ['subpage' => 'media']), 'circle', -1, function () { return dir::addon('mediamanager', 'page' . DIRECTORY_SEPARATOR . 'meta.media.php'); }); } if ($page == 'media' && $subpage == 'files' && in_array($action, ['add', 'edit'])) { extension::add('FORM_BEFORE_ACTION', function ($form) { $form = metainfos::getMetaInfos($form, 'media'); }); } }
$field->autofocus(); $template = template::factory(dyn::get('template')); $field = $form->addElement('template', $template->getTemplates('template', $form->get('template'))); $field->fieldName(lang::get('template')); $field = $form->addRadioField('online', $form->get('online')); $field->fieldName(lang::get('status')); $field->add(1, lang::get('online')); $field->add(0, lang::get('offline')); if ($action == 'edit') { $form->addHiddenField('id', $id); } extension::add('FORM_AFTER_SAVE', function ($sql) use($action, $id) { if ($action == 'add') { $id = $sql->insertId(); pageMisc::updateTime($id, true); } else { pageMisc::updateTime($id); } return $sql; }); if ($action == 'edit') { $title = $form->get('name'); } else { $title = lang::get('add'); } $buttons = ['<a class="btn btn-sm btn-warning" href="' . url::backend('structure', ['subpage' => 'pages', 'structure_id' => $form->get('id')]) . '">' . lang::get('modules') . '</a>', '<a class="btn btn-sm btn-default" href="' . url::backend('structure') . '">' . lang::get('back') . '</a>']; ?> <div class="row"><?php echo bootstrap::panel($title, $buttons, $form->show()); ?> </div>
$subpage = type::super('subpage', 'string'); $action = type::super('action', 'string'); $structure_id = type::super('structure_id', 'int', 0); $id = type::super('id', 'int', 0); // Falls was an der Page geändert worden ist if ($page == 'structure' && $subpage == 'pages' && in_array($action, ['add', 'edit', 'seo']) && !$structure_id) { extension::add('FORM_AFTER_SAVE', function ($form) { seo_rewrite::generatePathlist(); return $form; }); } // Wenn SEO Button geklickt worden ist if ($page == 'structure' && $subpage == 'pages' && $action == 'seo') { seoPage::generateForm($id); layout::addJsCode("\n\t\tvar default_url = \$('#seo-costum-url').text();\n\t\t\n\t\t\$('#seo-costum-url-text').keyup(function() {\n\t\t\tvar val = \$(this).val();\n\t\t\t\n\t\t\tif(val == '')\n\t\t\t\tval = default_url;\n\t\t\t\t\t\t\t\n\t\t\t\$('#seo-costum-url').text(val);\n\t\t});\n\t\t\n\t\tvar default_title = \$('#seo-default-title').text();\n\t\t\$('#seo-title-text').keyup(function() {\n\t\t\tvar val = \$(this).val();\n\t\t\t\n\t\t\tif(val == '')\n\t\t\t\tval = default_title;\n\t\t\t\n\t\t\t\$('#seo-title').text(val);\n\t\t});\n\t\t"); } // Wenn Sortiert worden ist if ($page == 'structure' && $subpage == 'pages' && (ajax::is() || $action == 'delete' && !$structure_id)) { extension::add('BACKEND_OUTPUT', function ($output) { seo_rewrite::generatePathlist(); return $output; }); } // Inhaltsseite der page if ($page == 'structure' && $subpage == 'pages' && ($structure_id || $action == 'edit' && $id)) { $id = $structure_id ? $structure_id : $id; extension::add('BACKEND_OUTPUT', function ($output) use($id) { return seoPage::generateButton($output, $id); }); } }
<?php layout::addNav(lang::get('console'), 'console', 'terminal', [], true); layout::addCSS('addons/console/layout/css/console.css'); if ($page == 'console') { function consolePath() { return 'addons/console/console.php'; } extension::add('PAGE_PATH', 'consolePath'); layout::addJS('addons/console/layout/js/console.js'); }