public static function extension_register_extensions() { global $REX; // refresh PathFile if ($REX['REDAXO']) { $extension_points = array('CAT_ADDED', 'CAT_UPDATED', 'CAT_DELETED', 'ART_ADDED', 'ART_UPDATED', 'ART_DELETED', 'CLANG_ADDED', 'CLANG_UPDATED', 'CLANG_DELETED', 'ALL_GENERATED', 'XFORM_DATA_ADDED', 'XFORM_DATA_UPDATED'); foreach ($extension_points as $extension_point) { rex_register_extension($extension_point, 'url_generate::generatePathFile'); } } }
/** * Bindet ggf extensions ein * * @param $params Extension-Point Parameter */ function rex_a256_extensions_handler($params) { global $REX; $page = $params['subject']; rex_register_extension('PAGE_HEADER', 'rex_be_search_css_add'); // Include Extensions if ($page == 'structure') { require_once $REX['INCLUDE_PATH'] . '/addons/be_search/extensions/extension_search_structure.inc.php'; rex_register_extension('PAGE_STRUCTURE_HEADER', 'rex_a256_search_structure'); } elseif ($page == 'content') { require_once $REX['INCLUDE_PATH'] . '/addons/be_search/extensions/extension_search_structure.inc.php'; rex_register_extension('PAGE_CONTENT_HEADER', 'rex_a256_search_structure'); } elseif ($page == 'mediapool') { require_once $REX['INCLUDE_PATH'] . '/addons/be_search/extensions/extension_search_mpool.inc.php'; rex_register_extension('MEDIA_LIST_TOOLBAR', 'rex_a256_search_mpool'); rex_register_extension('MEDIA_LIST_QUERY', 'rex_a256_search_mpool_query'); } }
$REX['ADDON']['author'][$mypage] = 'Markus Staab'; $REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de'; $REX['EXTPERM'][] = 'be_search[medienpool]'; $REX['EXTPERM'][] = 'be_search[structure]'; if ($REX['REDAXO']) { if (rex_get('css', 'string') == 'addons/' . $mypage) { $cssfile = $REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/css/be_search.css'; rex_send_file($cssfile, 'text/css'); exit; } if (rex_get('css', 'string') == 'addons/' . $mypage . '/ie7') { $cssfile = $REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/css/be_search_ie_lte_7.css'; rex_send_file($cssfile, 'text/css'); exit; } rex_register_extension('PAGE_HEADER', create_function('$params', 'return $params[\'subject\'] .\' <link rel="stylesheet" type="text/css" href="index.php?css=addons/' . $mypage . '" /> <!--[if lte IE 7]><link rel="stylesheet" href="index.php?css=addons/' . $mypage . '/ie7" type="text/css" media="all" /><![endif]-->' . "\n" . '\';')); $I18N_BE_SEARCH = new i18n($REX['LANG'], $REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang'); // Include Extensions if (!isset($page) || $page == '' || $page == 'structure') { require_once $REX['INCLUDE_PATH'] . '/addons/be_search/extensions/extension_search_structure.inc.php'; rex_register_extension('PAGE_STRUCTURE_HEADER', 'rex_a256_search_structure'); } elseif ($page == 'content') { require_once $REX['INCLUDE_PATH'] . '/addons/be_search/extensions/extension_search_structure.inc.php'; rex_register_extension('PAGE_CONTENT_HEADER', 'rex_a256_search_structure'); } elseif ($page == 'medienpool') { require_once $REX['INCLUDE_PATH'] . '/addons/be_search/extensions/extension_search_mpool.inc.php'; rex_register_extension('MEDIA_LIST_TOOLBAR', 'rex_a256_search_mpool'); rex_register_extension('MEDIA_LIST_QUERY', 'rex_a256_search_mpool_query'); } }
$REX['ADDON']['name'][$myself] = 'Open Graph'; $REX['ADDON']['version'][$myself] = '0.0.1 DEV'; $REX['ADDON']['author'][$myself] = 'Manuel Ruck'; $REX['ADDON']['supportpage'][$myself] = ''; $REX['ADDON']['perm'][$myself] = $myself . '[]'; require_once $REX['INCLUDE_PATH'] . '/addons/' . $myself . '/classes/class.opengraph.inc.php'; require_once $REX['INCLUDE_PATH'] . '/addons/' . $myself . '/classes/class.image.inc.php'; require_once $REX['INCLUDE_PATH'] . '/addons/' . $myself . '/classes/class.profile.inc.php'; require_once $REX['INCLUDE_PATH'] . '/addons/' . $myself . '/classes/class.video.inc.php'; define('OPENGRAPH_DATA_DIR', $REX['INCLUDE_PATH'] . '/data/addons/' . $myself . '/'); $REX['ADDON'][$myself]['settings'] = ['https' => false]; \maru\og\OpenGraph::includeSettingsFile(); // append lang file if ($REX['REDAXO']) { $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/open_graph/lang/'); } if ($REX['REDAXO']) { $REX['ADDON'][$myself]['SUBPAGES'] = []; array_push($REX['ADDON'][$myself]['SUBPAGES'], array('settings', $I18N->msg($myself . '_settings')), array('help', $I18N->msg($myself . '_help'))); } if (!$REX['REDAXO']) { rex_register_extension('ART_INIT', function () { global $REX; \maru\og\OpenGraph::initArticle($REX['ARTICLE_ID']); }); rex_register_extension('OUTPUT_FILTER', function ($params) { global $REX; $params['subject'] = str_replace('</head>', "<!-- OpenGraph -->\n\t" . \maru\og\OpenGraph::getAllHTML() . "\n</head>", $params['subject']); return $params['subject']; }); }
$REX['ADDON']['page'][$mypage] = $mypage; $REX['ADDON']['name'][$mypage] = 'Image Resize'; $REX['ADDON']['perm'][$mypage] = 'image_resize[]'; $REX['ADDON']['max_size'][$mypage] = 1000; $REX['ADDON']['jpeg_quality'][$mypage] = 75; $REX['ADDON']['system'][$mypage] = TRUE; $REX['ADDON']['version'][$mypage] = "1.0"; $REX['ADDON']['author'][$mypage] = "Wolfgang Hutteger, Markus Staab, Jan Kristinus"; // $REX['ADDON']['supportpage'][$mypage] = ""; $REX['PERM'][] = 'image_resize[]'; include $REX['INCLUDE_PATH'] . '/addons/image_resize/classes/class.thumbnail.inc.php'; if ($REX['GG']) { require $REX['INCLUDE_PATH'] . '/addons/image_resize/extensions/extension_wysiwyg.inc.php'; } else { // Bei Update Cache löschen rex_register_extension('MEDIA_UPDATED', 'rex_image_ep_mediaupdated'); function rex_image_ep_mediaupdated($params) { thumbnail::deleteCache($params["filename"]); } } // Resize Script $rex_resize = rex_get('rex_resize', 'string'); if ($rex_resize != '') { // Lösche alle Ausgaben zuvor while (ob_get_level()) { ob_end_clean(); } // get params ereg('^([0-9]*)([awhc])__(([0-9]*)h__)?(.*)', $rex_resize, $resize); $size = $resize[1];
* @author <a href="http://www.public-4u.de">www.public-4u.de</a> * @package redaxo3 * @version $Id: class.rex_list.inc.php,v 1.1 2006/06/24 11:04:17 koala_s Exp $ */ // List Komponenten einbinden $ListBasedir = dirname(__FILE__); // Classes require_once $ListBasedir . '/class.rex_listComponent.inc.php'; require_once $ListBasedir . '/class.rex_listColumn.inc.php'; require_once $ListBasedir . '/class.rex_listToolbar.inc.php'; require_once $ListBasedir . '/../class.rex_formatter.inc.php'; require_once $ListBasedir . '/../class.oosql.inc.php'; // Functions require_once $ListBasedir . '/../../functions/function_rex_list.inc.php'; // CSS einbinden rex_register_extension('OUTPUT_FILTER', 'rex_a22_insertRexlistCss'); /** * Platzhalter: Vor der Liste * @see rexList::setVar() */ define('LIST_VAR_TOP', 1); /** * Platzhalter: Vor den Kopfleisten * @see rexList::setVar() */ define('LIST_VAR_BEFORE_HEAD', 2); /** * Platzhalter: Nach den Kopfleisten * @see rexList::setVar() */ define('LIST_VAR_AFTER_HEAD', 3);
<?php if ($REX['REDAXO'] && !$REX['SETUP']) { // add lang file $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/be_utilities/plugins/hide_startarticle/lang/'); // register plugin rex_plugin_factory::registerPlugin('be_utilities', 'hide_startarticle', 'Hide Startarticle', $I18N->msg('hide_startarticle_description'), '1.0.0', 'RexDude', 'forum.redaxo.de', true); // includes include $REX['INCLUDE_PATH'] . '/addons/be_utilities/plugins/hide_startarticle/classes/class.rex_hide_startarticle.inc.php'; // check if there is a startarticle to hide $sqlStatement = 'SELECT article_id FROM ' . $REX['TABLE_PREFIX'] . 'hidden_startarticles'; $sql = rex_sql::factory(); $sql->setQuery($sqlStatement); $currentPage = rex_request('page', 'string'); if ($currentPage == 'structure' || $currentPage == 'linkmap') { for ($i = 0; $i < $sql->getRows(); $i++) { if (rex_request('category_id', 'int') == $sql->getValue('article_id')) { // hide this stararticle rex_register_extension('OUTPUT_FILTER', 'rex_hide_startarticle::hideStartArticle'); break; } $sql->next(); } } }
<?php $mypage = 'import_export'; if ($REX['REDAXO'] && is_object($REX["USER"])) { $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang/'); $REX['ADDON']['rxid'][$mypage] = '1'; $REX['ADDON']['name'][$mypage] = $I18N->msg("im_export_importexport"); $REX['ADDON']['perm'][$mypage] = 'import_export[export]'; $REX['ADDON']['version'][$mypage] = "1.3"; $REX['ADDON']['author'][$mypage] = "Jan Kristinus, Markus Staab"; $REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de'; $REX['PERM'][] = 'import_export[export]'; $REX['PERM'][] = 'import_export[import]'; $REX['ADDON']['pages'][$mypage] = array(); if ($REX["USER"]->hasPerm('import_export[import]') || $REX["USER"]->isAdmin()) { $REX['ADDON']['pages'][$mypage][] = array('import', $I18N->msg('im_export_import')); } $REX['ADDON']['pages'][$mypage][] = array('', $I18N->msg('im_export_export')); } if (OOAddon::isAvailable('cronjob')) { require_once dirname(__FILE__) . '/classes/class.cronjob.inc.php'; rex_register_extension('CRONJOB_TYPES', array('rex_cronjob_manager', 'registerExtension'), array('class' => 'rex_cronjob_export')); }
function rex_form_prio_element($tag = '', &$table, $attributes = array()) { parent::rex_form_select_element('', $table, $attributes); $this->labelField = ''; $this->whereCondition = ''; $this->primaryKey = 'id'; $this->firstOptionMsg = 'form_field_first_prior'; $this->optionMsg = 'form_field_after_prior'; $this->select->setSize(1); rex_register_extension('REX_FORM_SAVED', array($this, 'organizePriorities')); }
require $REX['INCLUDE_PATH'] . '/addons/markdownplus/classes/class.rex_markdown.inc.php'; } // for backend only if ($REX['REDAXO']) { $addon_dir = $REX['INCLUDE_PATH'] . '/addons/markdownplus'; // include patched parsedown class with rex_highlight() functionality for backend if (!class_exists('Parsedown')) { require $addon_dir . '/lib/Parsedown.redaxo.php'; } // includes if (!class_exists('rex_markdown_utils')) { require $addon_dir . '/classes/class.rex_markdown_utils.inc.php'; } require_once $addon_dir . '/classes/class.rex_markdownplus_editor.inc.php'; require_once $addon_dir . '/functions/rex_markdownplus_utils.inc.php'; // add javascript and css via PAGE_HEADER extension rex_register_extension('PAGE_HEADER', 'rex_markdownplus_utils_add_header_files'); // add lang file $I18N->appendFile($addon_dir . '/lang/'); // add subpages $REX['ADDON']['markdown']['SUBPAGES'] = array(array('', $I18N->msg('markdown_start')), array('help', $I18N->msg('markdown_help'))); } else { // include parsedown class for frontend if (!class_exists('Parsedown')) { require $addon_dir . '/lib/Parsedown.php'; } } // for frontend and backend if (!class_exists('ParsedownExtra')) { require $addon_dir . '/lib/ParsedownExtra.php'; }
<?php /** * Backend Search Addon * * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * * @package redaxo4 * @version svn:$Id$ */ $mypage = 'be_search'; /* Addon Parameter */ $REX['ADDON']['rxid'][$mypage] = '256'; //$REX['ADDON']['name'][$mypage] = 'Backend Search'; //$REX['ADDON']['perm'][$mypage] = 'be_search[]'; $REX['ADDON']['version'][$mypage] = '1.3'; $REX['ADDON']['author'][$mypage] = 'Markus Staab'; $REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de'; // Suchmodus // global => Es werden immer alle Kategorien durchsucht // local => Es werden immer die aktuelle+Unterkategorien durchsucht // $REX['ADDON']['searchmode'][$mypage] = 'global'; $REX['ADDON']['searchmode'][$mypage] = 'local'; $REX['EXTPERM'][] = 'be_search[mediapool]'; $REX['EXTPERM'][] = 'be_search[structure]'; if ($REX['REDAXO']) { $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang/'); // Include Functions require_once $REX['INCLUDE_PATH'] . '/addons/be_search/functions/functions.search.inc.php'; rex_register_extension('PAGE_CHECKED', 'rex_a256_extensions_handler'); }
$createDate = seo42_utils::getDate(); $expireDate = seo42_utils::getDate($maxAge); if (!seo42_utils::redirectsDoExpire()) { $expireDate = 0; } $sql = rex_sql::factory(); $sql->setDebug(true); $sql->setQuery('UPDATE `' . $REX['TABLE_PREFIX'] . 'redirects` SET create_date = "' . $createDate . '", expire_date = "' . $expireDate . '" WHERE id = ' . $redirectId); seo42_utils::updateRedirectsFile(false); // use exit statement, if you want to debug return true; }); // delete redirect (after form submit) rex_register_extension('REX_FORM_DELETED', function ($params) { global $REX; seo42_utils::updateRedirectsFile(false); // use exit statement, if you want to debug return true; }); // output echo '<div class="rex-addon-output-v2">'; if ($func == '') { // rex list $query = 'SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'redirects ORDER BY id'; $list = rex_list::factory($query, 9999); $list->setNoRowsMessage($I18N->msg('seo42_redirect_no_sytles_available')); $list->setCaption($I18N->msg('seo42_redirect_list_of_redirects')); $list->addTableAttribute('summary', $I18N->msg('seo42_redirect_list_of_redirects')); $list->setColumnLabel('id', $I18N->msg('seo42_redirect_id')); $list->setColumnLabel('source_url', $I18N->msg('seo42_redirect_source_url')); $list->setColumnLabel('target_url', $I18N->msg('seo42_redirect_target_url')); if (seo42_utils::redirectsDoExpire()) {
/** * Userinfo Addon * * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * @author <a href="http://www.redaxo.de">www.redaxo.de</a> * * @package redaxo4 * @version svn:$Id$ */ $mypage = 'userinfo'; /* Addon Parameter */ $REX['ADDON']['rxid'][$mypage] = '659'; $REX['ADDON']['page'][$mypage] = $mypage; $REX['ADDON']['version'][$mypage] = '1.3'; $REX['ADDON']['author'][$mypage] = 'Markus Staab'; $REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de'; // im backend und eingeloggt? if ($REX["REDAXO"] && $REX["USER"]) { if (rex_request('page', 'string') == 'be_dashboard') { $I18N->appendFile(dirname(__FILE__) . '/lang/'); if (!defined('A659_DEFAULT_LIMIT')) { define('A659_DEFAULT_LIMIT', 7); } require_once dirname(__FILE__) . '/functions/function_userinfo.inc.php'; require_once dirname(__FILE__) . '/classes/class.dashboard.inc.php'; $components = array('rex_articles_component', 'rex_media_component', 'rex_stats_component'); foreach ($components as $compClass) { rex_register_extension('DASHBOARD_COMPONENT', array(new $compClass(), 'registerAsExtension')); } } }
$I18N_COM = new i18n($REX['LANG'], $REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang'); // ----- Community User Funktionen include $REX["INCLUDE_PATH"] . "/addons/community/functions/functions.rex_com_user.inc.php"; include $REX["INCLUDE_PATH"] . "/addons/community/functions/functions.rex_com_replace.inc.php"; include $REX["INCLUDE_PATH"] . "/addons/community/functions/functions.rex_com_blaettern.inc.php"; include $REX["INCLUDE_PATH"] . "/addons/community/functions/functions.rex_com_formatter.inc.php"; if ($REX["REDAXO"]) { $REX['EXTRAPERM'][] = "community[admin]"; $REX['EXTRAPERM'][] = "community[users]"; include $REX["INCLUDE_PATH"] . "/addons/community/functions/functions.userconfig.inc.php"; } // ----- XForm values/action/validations einbinden $REX['ADDON']['community']['xform_path']['value'] = array($REX['INCLUDE_PATH'] . '/addons/community/xform/classes/value/'); $REX['ADDON']['community']['xform_path']['validate'] = array($REX['INCLUDE_PATH'] . '/addons/community/xform/classes/validate/'); $REX['ADDON']['community']['xform_path']['action'] = array($REX['INCLUDE_PATH'] . '/addons/community/xform/classes/action/'); rex_register_extension('ADDONS_INCLUDED', 'rex_com_xform_add'); function rex_com_xform_add($params) { global $REX; foreach ($REX['ADDON']['community']['xform_path']['value'] as $value) { $REX['ADDON']['xform']['classpaths']['value'][] = $value; } foreach ($REX['ADDON']['community']['xform_path']['validate'] as $validate) { $REX['ADDON']['xform']['classpaths']['validate'][] = $validate; } foreach ($REX['ADDON']['community']['xform_path']['action'] as $action) { $REX['ADDON']['xform']['classpaths']['action'][] = $action; } } // ----- PlugIns $REX['ADDON']['community']['subpages'] = array();
<?php /** * Textile Addon * * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * * @package redaxo4 * @version svn:$Id$ */ $mypage = 'textile'; $REX['ADDON']['rxid'][$mypage] = '79'; $REX['ADDON']['page'][$mypage] = $mypage; $REX['ADDON']['name'][$mypage] = 'Textile'; $REX['ADDON']['perm'][$mypage] = 'textile[]'; $REX['ADDON']['version'][$mypage] = "1.2"; $REX['ADDON']['author'][$mypage] = "Markus Staab, Dean Allen www.textism.com"; $REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de'; $REX['PERM'][] = 'textile[]'; $REX['EXTPERM'][] = 'textile[help]'; require_once $REX['INCLUDE_PATH'] . '/addons/textile/classes/class.textile.inc.php'; require_once $REX['INCLUDE_PATH'] . '/addons/textile/functions/function_textile.inc.php'; if ($REX['REDAXO']) { require_once $REX['INCLUDE_PATH'] . '/addons/textile/extensions/function_extensions.inc.php'; require_once $REX['INCLUDE_PATH'] . '/addons/textile/functions/function_help.inc.php'; $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang/'); rex_register_extension('PAGE_HEADER', 'rex_a79_css_add'); }
// favicon create/update if ($REX['WEBSITE_MANAGER_SETTINGS']['colorize_favicon'] && $formValues['color'] != '') { rex_website_manager::createIcon($formValues['color']); } // update init file to reflect changes rex_website_manager::updateInitFile(); return true; }); // delete website (after form submit) rex_register_extension('REX_FORM_DELETED', function ($params) { global $REX; // get values from submitted form $websiteId = $params['form']->params['website_id']; // destroy website rex_website_manager::destroyWebsite($websiteId); // delete clang file for clang fix if (!$REX['WEBSITE_MANAGER_SETTINGS']['identical_clangs']) { rex_website_manager::deleteClangFile($websiteId); } // update init file to reflect changes rex_website_manager::updateInitFile(); return true; }); // output echo '<div class="rex-addon-output-v2">'; if ($REX['WEBSITE_MANAGER']->getCurrentWebsiteId() > 1) { // user can only edit websites if selected website is master website echo rex_info($I18N->msg('website_manager_website_master_msg')); } elseif ($func == '') { // show website list $query = 'SELECT * FROM rex_website ORDER BY priority'; $list = rex_list::factory($query, 10000);
# # simple Benchmark Addon # Shows Script Time in Frontend when activated # ################################################################################ $mypage = "Benchmark"; $REX['ADDON']['rxid'][$mypage] = "REX_BENCHMARK"; $REX['ADDON']['page'][$mypage] = $mypage; $REX['ADDON']['name'][$mypage] = "Benchmark"; $REX['ADDON']['perm'][$mypage] = "benchmark[]"; $REX['PERM'][] = "benchmark[]"; // Nur im Frontend if (!$REX['REDAXO']) { function rex_cached_benchmark($params) { return rex_benchmark($params, true); } function rex_benchmark($params, $cached = false) { $div = '<div style="position: absolute; top: 10px; left: 10px;background-color:#EFEFEF;border:2px solid;padding:4px" onClick="this.style.display=\'none\'">'; $div .= '<b>Redaxo Benchmark Time:</b><br />' . showScripttime() . ' sec'; if ($cached) { $div .= ' (cached)'; } $div .= '</div>'; $params['subject'] = str_replace('</body>', $div . '</body>', $params['subject']); return $params['subject']; } rex_register_extension('OUTPUT_CACHE', 'rex_cached_benchmark'); rex_register_extension('OUTPUT_FILTER', 'rex_benchmark'); }
$REX['ADDON']['page'][$mypage] = $mypage; $REX['ADDON']['name'][$mypage] = "Stellenmarkt"; $REX['ADDON']['version'][$mypage] = '2.0.7'; $REX['ADDON']['perm'][$mypage] = $mypage . '[]'; $REX['ADDON']['author'][$mypage] = "www.design-to-use.de - Tobias Krais - http://www.design-to-use.de/"; $REX['PERM'][] = $mypage . '[]'; // SEO42 Erweiterung if (OOAddon::isActivated('seo42')) { // SEO42 require_once dirname(__FILE__) . "/extensions/seo42.inc.php"; // URLs fuer SEO42 bekannt machen rex_register_extension('SEO42_PATHLIST_CREATED', 'd2u_stellenmarkt_extended_urls'); // URLs in Sitemap eintragen rex_register_extension('SEO42_SITEMAP_ARRAY_CREATED', 'd2u_stellenmarkt_extended_sitemap'); } rex_register_extension('OOMEDIA_IS_IN_USE', 'rex_d2u_stellenmarkt_media_is_in_use'); // add subpages $REX['ADDON'][$mypage]['SUBPAGES'] = array(array('', $I18N_STELLEN->msg('stellenangebote')), array('kategorien', $I18N_STELLEN->msg('kategorien')), array('kontakte', $I18N_STELLEN->msg('kontakte'))); if (OOPlugin::isAvailable('d2u_stellenmarkt', 'hr4you_sync')) { array_push($REX['ADDON'][$mypage]['SUBPAGES'], array('hr4you_sync', 'HR4YOU Sync')); } /** * Prüft ob dieses Addon Medien im Medienpool nutzt. * @global array $REX Redaxo Einstellungen * @param type $params Übergabeparameter des Extension Points * @return string Warnnachricht als Array */ function rex_d2u_stellenmarkt_media_is_in_use($params) { global $REX; $warning = $params['subject'];
<?php // replace funktion // - ersetzt user felder rex_register_extension('OUTPUT_FILTER', 'rex_com_replace'); function rex_com_replace($params) { global $REX; $content = $params['subject']; if (isset($REX["COM_USER"]) && is_object($REX["COM_USER"]) && !$REX["REDAXO"]) { $replace_array = array("id" => $REX["COM_USER"]->getValue("id"), "login" => $REX["COM_USER"]->getValue("login"), "firstname" => $REX["COM_USER"]->getValue("firstname"), "name" => $REX["COM_USER"]->getValue("name"), "email" => $REX["COM_USER"]->getValue("email")); foreach ($replace_array as $search => $value) { $content = str_replace("###" . $search . "###", $value, $content); } } return $content; } function rex_formatter($value, $format = "datetime", $type = "datetime") { $return = $value; if ($type == "timestamp") { $value = date("Y-m-d H:i:s", $value); } if ($format == "cent2euro") { $value = number_format($value / 100, 2, ',', ''); $return = $value . " EUR"; } elseif ($format == "datetime") { // 2000-24-12 13:12:11 $y = substr($value, 0, 4); $m = substr($value, 5, 2); $d = substr($value, 8, 2);
<?php /** * MetaForm Addon * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * * @package redaxo4 * @version svn:$Id$ */ rex_register_extension('OOMEDIA_IS_IN_USE', 'rex_a62_media_is_in_use'); /** * Erstellt den nötigen HTML Code um ein Formular zu erweitern * * @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält * @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt * @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt */ function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams) { global $I18N, $REX; $s = ''; // Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler $media_id = 1; $mlist_id = 1; $link_id = 1; $llist_id = 1; $sqlFields->reset(); for ($i = 0; $i < $sqlFields->getRows(); $i++, $sqlFields->next()) { // Umschliessendes Tag von Label und Formularelement $tag = 'p'; $tag_attr = '';
$baseDir .= "/"; } // immer absolute Urls erzeugen, da relative mit rex_redirect() nicht funktionieren // da dieser den <base href="" /> nicht kennt. return $baseDir . $url; } } /* * Allgemeine EP Definitionen */ if ($REX['REDAXO']) { // Die Pathnames bei folgenden Extension Points aktualisieren $extension = 'rex_rewriter_generate_pathnames'; $extensionPoints = array('CAT_ADDED', 'CAT_UPDATED', 'CAT_DELETED', 'ART_ADDED', 'ART_UPDATED', 'ART_DELETED', 'ALL_GENERATED'); foreach ($extensionPoints as $extensionPoint) { rex_register_extension($extensionPoint, $extension); } } /** * rex_rewriter_generate_pathnames * generiert die Pathlist, abhŠngig von Aktion * @author markus.staab[at]redaxo[dot]de Markus Staab * @package redaxo4.2 */ function rex_rewriter_generate_pathnames($params) { global $REX, $REXPATH; if (file_exists(FULLNAMES_PATHLIST)) { require_once FULLNAMES_PATHLIST; } if (!isset($REXPATH)) {
<?php /** * XForm * @author jan.kristinus[at]redaxo[dot]org Jan Kristinus * @author <a href="http://www.yakamara.de">www.yakamara.de</a> */ rex_register_extension('REX_LIST_CLASSNAME', 'rex_xform_list_ep'); function rex_xform_list_ep($params) { return new rex_xform_list($params['query'], $params['rowsPerPage'], $params['listName'], $params['debug']); } class rex_xform_list extends rex_list { static function factory($query, $rowsPerPage = 30, $listName = null, $debug = false, $class = null) { if (!$class) { // ----- EXTENSION POINT $class = rex_register_extension_point('REX_LIST_CLASSNAME', 'rex_xform_list', array('query' => $query, 'rowsPerPage' => $rowsPerPage, 'listName' => $listName, 'debug' => $debug)); } return new $class($query, $rowsPerPage, $listName, $debug); } function getPagination() { global $I18N; $s = $this->getPlainView(); // $s .= $this->getClassicView(); return $s; } // ------------------------------------------------------- VIEWS function getClassicView()
$REX['ADDON']['image_resize']['max_resizekb'] = 300; $REX['ADDON']['image_resize']['max_resizepixel'] = 500; $REX['ADDON']['image_resize']['jpg_quality'] = 75; // --- /DYN include_once $REX['INCLUDE_PATH'] . '/addons/image_resize/classes/class.thumbnail.inc.php'; if ($REX['GG']) { require_once $REX['INCLUDE_PATH'] . '/addons/image_resize/extensions/extension_wysiwyg.inc.php'; rex_register_extension('OUTPUT_FILTER', 'rex_resize_wysiwyg_output'); } else { // Bei Update Cache loeschen if (!function_exists('rex_image_ep_mediaupdated')) { rex_register_extension('MEDIA_UPDATED', 'rex_image_ep_mediaupdated'); function rex_image_ep_mediaupdated($params) { rex_thumbnail::deleteCache($params["filename"]); } } } // Resize Script $rex_resize = rex_get('rex_resize', 'string'); if ($rex_resize != '') { rex_thumbnail::createFromUrl($rex_resize); } if ($REX['REDAXO']) { if (rex_get('css', 'string') == 'addons/' . $mypage) { $cssfile = $REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/css/image_resize.css'; rex_send_file($cssfile, 'text/css'); exit; } rex_register_extension('PAGE_HEADER', create_function('$params', 'return $params[\'subject\'] .\' <link rel="stylesheet" type="text/css" href="index.php?css=addons/' . $mypage . '" />\'."\\n";')); }
} if ($subject['rex_img_init']) { $image = new rex_image($imagepath); $image_cacher = new rex_image_cacher($cachepath); $image_manager = new rex_image_manager($image_cacher); $image = $image_manager->applyEffects($image, $rex_img_type); $image_manager->sendImage($image, $rex_img_type); exit; } } } if ($REX['REDAXO']) { // delete thumbnails on mediapool changes if (!function_exists('rex_image_manager_ep_mediaupdated')) { rex_register_extension('MEDIA_UPDATED', 'rex_image_manager_ep_mediaupdated'); rex_register_extension('MEDIA_DELETED', 'rex_image_manager_ep_mediaupdated'); function rex_image_manager_ep_mediaupdated($params) { rex_image_cacher::deleteCache($params['filename']); } } // handle backend pages $I18N->appendFile($REX['INCLUDE_PATH'] . '/addons/' . $mypage . '/lang/'); $descPage = new rex_be_page($I18N->msg('imanager_subpage_desc'), array('page' => 'image_manager', 'subpage' => '')); $descPage->setHref('index.php?page=image_manager'); $confPage = new rex_be_page($I18N->msg('imanager_subpage_types'), array('page' => 'image_manager', 'subpage' => array('types', 'effects'))); $confPage->setHref('index.php?page=image_manager&subpage=types'); $settingsPage = new rex_be_page($I18N->msg('imanager_subpage_config'), array('page' => 'image_manager', 'subpage' => 'settings')); $settingsPage->setHref('index.php?page=image_manager&subpage=settings'); $ccPage = new rex_be_page($I18N->msg('imanager_subpage_clear_cache'), array('page' => 'image_manager', 'subpage' => 'clear_cache')); $ccPage->setHref('index.php?page=image_manager&subpage=clear_cache');
$mypage = "stats"; // only for this file include_once $REX['INCLUDE_PATH'] . "/addons/{$mypage}/classes/class.stats.inc.php"; if (!$REX['GG']) { // only backend // CREATE LANG OBJ FOR THIS ADDON $I18N_STATS = new i18n($REX['LANG'], $REX['INCLUDE_PATH'] . "/addons/{$mypage}/lang"); $REX['ADDON']['rxid'][$mypage] = "7"; // unique redaxo addon id $REX['ADDON']['page'][$mypage] = $mypage; $REX['ADDON']['name'][$mypage] = $I18N_STATS->msg("stats_title"); $REX['ADDON']['perm'][$mypage] = "stats[]"; $REX['PERM'][] = "stats[]"; } else { $REX['STATS'] = 1; function rex_addStatEntry($params) { global $REX, $REX_ARTICLE; $content = $params['subject']; $aid = (int) $REX_ARTICLE->getValue("article_id"); if ($REX['STATS'] == 1) { $log = new stats(); $log->writeLog($aid); } return $content; } rex_register_extension('OUTPUT_FILTER', 'rex_addStatEntry'); } // backend and frontend $REX['ADDON']['tbl']['log'][$mypage] = "rex_7_log"; // wir noch nicht benutzt
// TinyMCE-Init-Javascript ausliefern if ($rxa_tinymce['get_tinymceinit'] == 'true') { a52_tinymce_output_init(); exit; } // Im Backend Sprachobjekt anlegen $I18N_A52 = new i18n($REX['LANG'], $REX['INCLUDE_PATH'] . '/addons/' . $rxa_tinymce['name'] . '/lang/'); // Addon-Subnavigation für das REDAXO-Menue $REX['ADDON'][$rxa_tinymce['name']]['SUBPAGES'] = array(array('', $I18N_A52->msg('menu_module')), array('settings', $I18N_A52->msg('menu_settings')), array('css', $I18N_A52->msg('menu_css')), array('tipps', $I18N_A52->msg('menu_tipps')), array('info', $I18N_A52->msg('menu_information'))); // ausgewählte Seiten laut Konfiguration $rxa_tinymce['includepages'] = explode(',', trim(str_replace(' ', '', $REX['ADDON'][$rxa_tinymce['name']]['pages']))); if (!in_array('content', $rxa_tinymce['includepages'])) { $rxa_tinymce['includepages'][] = 'content'; } // TinyMCE ins Backend integrieren, nur in ausgewählten Seiten laut Konfiguration if ($rxa_tinymce['get_page'] != '' and in_array($rxa_tinymce['get_page'], $rxa_tinymce['includepages']) and $REX['ADDON'][$rxa_tinymce['name']]['active'] == 'on') { rex_register_extension('OUTPUT_FILTER', 'a52_tinymce_opf'); } // Outputfilter für Medienpool und Linkmap if ($REX['ADDON'][$rxa_tinymce['name']]['active'] == 'on') { $rxa_tinymce['get_inputfield'] = rex_request('opener_input_field', 'string'); if (strstr($rxa_tinymce['get_inputfield'], 'REX_MEDIA_') or strstr($rxa_tinymce['get_inputfield'], 'LINK_')) { $_SESSION['a52_tinymce'] = false; } if (($rxa_tinymce['get_page'] == $rxa_tinymce['medienpool'] or $rxa_tinymce['get_page'] == $rxa_tinymce['linkmap']) and ($rxa_tinymce['get_tinymce'] == 'true' or isset($_SESSION['a52_tinymce']) and $_SESSION['a52_tinymce'] == 'true')) { rex_register_extension('MEDIA_ADDED', 'a52_tinymce_mediaadded'); rex_register_extension('OUTPUT_FILTER', 'a52_tinymce_opf_media_linkmap'); } } } // Ende nur im Backend
*/ /** * SQLBuddy Lib * @link https://github.com/calvinlough/sqlbuddy * @version 1.3.3 */ // GET PARAMS //////////////////////////////////////////////////////////////////////////////// $mypage = rex_request('page', 'string'); $subpage = rex_request('subpage', 'string'); $faceless = rex_request('faceless', 'string'); if ($faceless != 1) { // BACKEND CSS ////////////////////////////////////////////////////////////////////////////// if ($REX['REDAXO']) { rex_register_extension('PAGE_HEADER', 'mysql_tools_header'); function mysql_tools_header($params) { $params['subject'] .= PHP_EOL . ' <!-- mysql_tools Addon -->' . PHP_EOL . ' <link rel="stylesheet" type="text/css" href="../files/addons/mysql_tools/backend.css" media="screen, projection, print" />' . PHP_EOL . ' <!-- /mysql_tools Addon -->' . PHP_EOL; return $params['subject']; } } // REX BACKEND LAYOUT TOP ////////////////////////////////////////////////////////////////////////////// require $REX['INCLUDE_PATH'] . '/layout/top.php'; // TITLE & SUBPAGE NAVIGATION ////////////////////////////////////////////////////////////////////////////// rex_title($REX['ADDON']['name'][$mypage] . ' <span class="addonversion">' . $REX['ADDON']['version'][$mypage] . '</span>', $REX['ADDON'][$mypage]['SUBPAGES']); // INCLUDE REQUESTED SUBPAGE ////////////////////////////////////////////////////////////////////////////// if (!$subpage) {
if (rex_asd_news_config::isControlPlugin()) { foreach (array('REX_FORM_SAVED', 'REX_FORM_DELETED') as $extension) { rex_register_extension($extension, 'url_generate::generatePathFile'); } } $title = $func == 'add' ? $I18N->msg('add') : $I18N->msg('edit'); $form = new rex_news_form(rex_asd_news_config::getTable(), ucfirst($title), 'id=' . $id . ' AND clang = ' . $clang); $form->divId = 'asd_news-addon-editmode'; $field = $form->addTextField('title'); $field->setLabel($I18N->msg('asd_news_title')); if (OOAddon::isAvailable('metainfo')) { $form->addRawField($form->getMetainfoExtension()); } $form->addHiddenField('clang', (int) $clang); $form->addHiddenField('updatedAt', $now->format('Y-m-d H:i:s')); $form->addHiddenField('updatedBy', $REX['USER']->getValue('user_id')); $form->addParam('clang', (int) $clang); $form->addParam('id', (int) $id); if ($func == 'add') { $id = rex_asd_news::getLastNewsId() + 1; } $form->addHiddenField('id', $id); if ($func == 'add') { $form->addHiddenField('createdAt', $now->format('Y-m-d H:i:s')); $form->addHiddenField('createdBy', $REX['USER']->getValue('user_id')); rex_register_extension('REX_FORM_SAVED', function ($subject) use($clang, $REX, $id) { rex_news_form::saveOverLangValues($subject['form'], $id, $clang); }); } $form->show(); }
<?php /** * REDAXO Version Checker Addon * * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * @author <a href="http://www.redaxo.de">www.redaxo.de</a> * * @package redaxo4 * @version svn:$Id$ */ $mypage = 'version_checker'; /* Addon Parameter */ $REX['ADDON']['rxid'][$mypage] = '657'; $REX['ADDON']['version'][$mypage] = '1.3'; $REX['ADDON']['author'][$mypage] = 'Markus Staab, Jan Kristinus'; $REX['ADDON']['supportpage'][$mypage] = 'forum.redaxo.de'; // im backend und eingeloggt? if ($REX["REDAXO"] && $REX["USER"]) { if (rex_request('page', 'string') == 'be_dashboard') { $I18N->appendFile(dirname(__FILE__) . '/lang/'); require_once dirname(__FILE__) . '/functions/function_version_check.inc.php'; require_once dirname(__FILE__) . '/classes/class.dashboard.inc.php'; rex_register_extension('DASHBOARD_NOTIFICATION', array(new rex_version_checker_notification(), 'registerAsExtension')); } }
<?php /** * MetaForm Addon * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * * @package redaxo4 * @version $Id: extension_cleanup.inc.php,v 1.5 2008/04/04 22:23:48 kills Exp $ */ rex_register_extension('A1_BEFORE_DB_IMPORT', 'rex_a62_metainfo_cleanup'); /** * Alle Metafelder löschen, nicht das nach einem Import in der Parameter Tabelle * noch Datensätze zu Feldern stehen, welche nicht als Spalten in der * rex_article angelegt wurden! */ function rex_a62_metainfo_cleanup($params) { global $REX; // Cleanup nur durchführen, wenn auch die rex_article Tabelle neu angelegt wird if (isset($params['force']) && $params['force'] != true && strpos($params['content'], 'CREATE TABLE `' . $REX['TABLE_PREFIX'] . 'article`') === false && strpos($params['content'], 'CREATE TABLE ' . $REX['TABLE_PREFIX'] . 'article') === false) { return; } require_once $REX['INCLUDE_PATH'] . '/addons/metainfo/classes/class.rex_table_manager.inc.php'; $sql = new rex_sql(); $sql->setQuery('SELECT name FROM ' . $REX['TABLE_PREFIX'] . '62_params'); for ($i = 0; $i < $sql->getRows(); $i++) { if (substr($sql->getValue('name'), 0, 4) == 'med_') { $tableManager = new rex_a62_tableManager($REX['TABLE_PREFIX'] . 'file'); } else { $tableManager = new rex_a62_tableManager($REX['TABLE_PREFIX'] . 'article'); }