From 630a5aa147ead2d5a495ffc3096f59c22369c692 Mon Sep 17 00:00:00 2001 From: Cameron Date: Mon, 10 Apr 2017 13:28:06 -0700 Subject: [PATCH] Issue #2486 - e_url now supports multiple profiles. --- e107_admin/eurl.php | 84 +++++++++++++++++++++++++++---- e107_core/xml/default_install.xml | 2 + e107_handlers/e107_class.php | 17 ++++++- 3 files changed, 91 insertions(+), 12 deletions(-) diff --git a/e107_admin/eurl.php b/e107_admin/eurl.php index 565927dad..12d0c8304 100644 --- a/e107_admin/eurl.php +++ b/e107_admin/eurl.php @@ -439,13 +439,23 @@ class eurl_admin_ui extends e_admin_controller_ui $locations = eRouter::adminBuildLocations($modules); $aliases = eRouter::adminSyncAliases(e107::getPref('url_aliases'), $config); - + + if(!empty($_POST['eurl_profile'])) + { + e107::getConfig()->set('url_profiles', $_POST['eurl_profile']); + unset($locations['download']); + unset($config['download']); + } + e107::getConfig() ->set('url_aliases', $aliases) ->set('url_config', $config) ->set('url_modules', $modules) ->set('url_locations', $locations) ->save(); + + + eRouter::clearCache(); } @@ -486,7 +496,11 @@ class eurl_admin_ui extends e_admin_controller_ui "; - + + + $text .= $this->renderProfiles(); + + $text .= $this->renderConfig($set['url_config'], $set['url_locations']); $text .= " @@ -502,6 +516,44 @@ class eurl_admin_ui extends e_admin_controller_ui return $text; } + /** + * New in v2.1.6 + */ + private function renderProfiles() + { + + $PLUGINS_DIRECTORY = e107::getFolder("PLUGINS"); + $srch = array("{SITEURL}","{e_PLUGIN_ABS}"); + $repl = array(SITEURL,SITEURL.$PLUGINS_DIRECTORY); + + $profiles = e107::getUrlConfig('profiles'); + + $form = $this->getUI(); + + $text = ''; + + $active = e107::getPref('url_profiles'); + + foreach($profiles as $plug=>$prof) + { + $arr = array(); + foreach($prof as $id=>$val) + { + $arr[$id] = $val['label'].": ". str_replace($srch,$repl,$val['examples'][0]); + } + + $sel = $active[$plug]; + + $selector = $form->select('eurl_profile['.$plug.']',$arr,$sel, array('size'=>'block-level')); + + $text .= "".$plug."".$selector.""; + + } + + return $text; + + } + public function renderConfig($current, $locations) { @@ -637,19 +689,21 @@ class eurl_admin_form_ui extends e_admin_form_ui $id = 'eurl_'.$this->name2id($title); - $text .= ""; + $text = ""; $text .= $title; $text .= ''; $text .= ' -