mirror of
https://github.com/e107inc/e107.git
synced 2025-08-06 06:38:00 +02:00
SEF URL generation support in e_url.php
This commit is contained in:
@@ -127,6 +127,10 @@ class eurl_admin_ui extends e_admin_controller_ui
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$this->api = e107::getInstance();
|
$this->api = e107::getInstance();
|
||||||
$this->addTitle(LAN_EURL_NAME);
|
$this->addTitle(LAN_EURL_NAME);
|
||||||
|
|
||||||
@@ -144,7 +148,7 @@ class eurl_admin_ui extends e_admin_controller_ui
|
|||||||
* @param input field (title)
|
* @param input field (title)
|
||||||
* @param output field (sef)
|
* @param output field (sef)
|
||||||
*/
|
*/
|
||||||
private function rebuild($table, $primary, $input,$output)
|
private function rebuild($table, $primary='', $input='',$output='')
|
||||||
{
|
{
|
||||||
if(empty($table) || empty($input) || empty($output) || empty($primary))
|
if(empty($table) || empty($input) || empty($output) || empty($primary))
|
||||||
{
|
{
|
||||||
@@ -178,12 +182,12 @@ class eurl_admin_ui extends e_admin_controller_ui
|
|||||||
|
|
||||||
if($success)
|
if($success)
|
||||||
{
|
{
|
||||||
e107::getMessage()->addSuccess($success. LAN_EURL_SURL_UPD);
|
e107::getMessage()->addSuccess(LAN_EURL_TABLE.": <b>".$table."</b><br />".$success. LAN_EURL_SURL_UPD);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($failed)
|
if($failed)
|
||||||
{
|
{
|
||||||
e107::getMessage()->addError($failed. LAN_EURL_SURL_NUPD);
|
e107::getMessage()->addError(LAN_EURL_TABLE.": <b>".$table."</b><br />".$failed. LAN_EURL_SURL_NUPD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -432,6 +436,28 @@ class eurl_admin_ui extends e_admin_controller_ui
|
|||||||
|
|
||||||
public function ConfigObserver()
|
public function ConfigObserver()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(!empty($_POST['generate']))
|
||||||
|
{
|
||||||
|
$gen = e107::getUrlConfig('generate');
|
||||||
|
$id = key($_POST['generate']);
|
||||||
|
|
||||||
|
if(empty($gen[$id]))
|
||||||
|
{
|
||||||
|
e107::getMessage()->addDebug("Empty");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($gen[$id] as $conf)
|
||||||
|
{
|
||||||
|
$this->rebuild($conf['table'], $conf['primary'], $conf['input'], $conf['output']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(isset($_POST['update']))
|
if(isset($_POST['update']))
|
||||||
{
|
{
|
||||||
$config = is_array($_POST['eurl_config']) ? e107::getParser()->post_toForm($_POST['eurl_config']) : '';
|
$config = is_array($_POST['eurl_config']) ? e107::getParser()->post_toForm($_POST['eurl_config']) : '';
|
||||||
@@ -527,6 +553,7 @@ class eurl_admin_ui extends e_admin_controller_ui
|
|||||||
$repl = array(SITEURL,SITEURL.$PLUGINS_DIRECTORY);
|
$repl = array(SITEURL,SITEURL.$PLUGINS_DIRECTORY);
|
||||||
|
|
||||||
$profiles = e107::getUrlConfig('profiles');
|
$profiles = e107::getUrlConfig('profiles');
|
||||||
|
$generate = e107::getUrlConfig('generate');
|
||||||
|
|
||||||
$form = $this->getUI();
|
$form = $this->getUI();
|
||||||
|
|
||||||
@@ -548,7 +575,14 @@ class eurl_admin_ui extends e_admin_controller_ui
|
|||||||
|
|
||||||
$label = e107::getPlugLan($plug,'name');
|
$label = e107::getPlugLan($plug,'name');
|
||||||
|
|
||||||
$text .= "<tr><td>".$label."</td><td>".$selector."</td></tr>";
|
$text .= "<tr><td>".$label."</td><td>".$selector."</td><td>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$text .= (!empty($generate[$plug])) ? $form->admin_button('generate['.$plug.']', $plug,'delete', LAN_EURL_REBUILD) : "";
|
||||||
|
|
||||||
|
$text .= "</td></tr>";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2489,6 +2489,16 @@ class e107
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($mode === 'generate')
|
||||||
|
{
|
||||||
|
if(!empty($obj->generate))
|
||||||
|
{
|
||||||
|
$new_addon[$key] = $obj->generate;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$profile = !empty($url_profiles[$key]) ? $url_profiles[$key] : null;
|
$profile = !empty($url_profiles[$key]) ? $url_profiles[$key] : null;
|
||||||
|
|
||||||
$array = self::callMethod($obj, $methodName,$profile);
|
$array = self::callMethod($obj, $methodName,$profile);
|
||||||
|
@@ -133,3 +133,4 @@ define("LAN_EURL_CORE_INDEX_INFO", "Front Page can't have an alias.");
|
|||||||
define("LAN_EURL_REBUILD", "Rebuild");
|
define("LAN_EURL_REBUILD", "Rebuild");
|
||||||
define("LAN_EURL_REGULAR_EXPRESSION", "Regular Expression");
|
define("LAN_EURL_REGULAR_EXPRESSION", "Regular Expression");
|
||||||
define("LAN_EURL_KEY", "Key");
|
define("LAN_EURL_KEY", "Key");
|
||||||
|
define("LAN_EURL_TABLE", "Table");
|
||||||
|
@@ -33,6 +33,12 @@ class download_url // plugin-folder + '_url'
|
|||||||
'non-numeric' => array('label' => 'Friendly (experimental)', 'examples' => array('{SITEURL}download/my-category/my-sub-category/my-file-name')),
|
'non-numeric' => array('label' => 'Friendly (experimental)', 'examples' => array('{SITEURL}download/my-category/my-sub-category/my-file-name')),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Batch generate SEF URls on tables.
|
||||||
|
public $generate = array(
|
||||||
|
0 => array('table'=> 'download', 'primary'=>'download_id', 'input'=>'download_name', 'output'=>'download_sef'),
|
||||||
|
1 => array('table'=> 'download_category', 'primary'=>'download_category_id', 'input'=>'download_category_name', 'output'=>'download_category_sef')
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
function config($profile=null)
|
function config($profile=null)
|
||||||
{
|
{
|
||||||
@@ -67,7 +73,7 @@ class download_url // plugin-folder + '_url'
|
|||||||
|
|
||||||
|
|
||||||
$config['category'] = array(
|
$config['category'] = array(
|
||||||
'regex' => '^{alias}/category/([\d]*)/(.*)$',
|
'regex' => '^{alias}/([^\/]*)/(.*)$',
|
||||||
'redirect' => '{e_PLUGIN}download/download.php?action=list&id=$1',
|
'redirect' => '{e_PLUGIN}download/download.php?action=list&id=$1',
|
||||||
'sef' => '{alias}/{download_category_sef}',
|
'sef' => '{alias}/{download_category_sef}',
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user