diff --git a/fp-plugins/prettyurls/lang/lang.en-us.php b/fp-plugins/prettyurls/lang/lang.en-us.php index 0a677bb..76c174c 100644 --- a/fp-plugins/prettyurls/lang/lang.en-us.php +++ b/fp-plugins/prettyurls/lang/lang.en-us.php @@ -7,14 +7,30 @@ $lang['admin']['plugin']['submenu']['prettyurls'] = 'PrettyURLs Config'; $lang['admin']['plugin']['prettyurls'] = array( 'head' => 'PrettyURLs Configuration', + 'htaccess' => '.htaccess', 'description'=>'This raw editor let you edit your '. '.htaccess.', 'cantsave' => 'You can\'t edit this file, because it\'s not writable. You can give writing permission or copy and paste to a file and then upload as described here', - 'submit' => 'Save' + 'mode' => 'Mode', + 'auto' => 'Automatic', + 'autodescr' => 'try to guess the best choice for me', + 'pathinfo' => 'Path Info', + 'pathinfodescr' => 'e.g. /index.php/2011/01/01/hello-world/', + 'httpget' => 'HTTP Get', + 'httpgetdescr'=> 'e.g. /?u=/2011/01/01/hello-world/', + 'pretty' => 'Pretty', + 'prettydescr'=> 'e.g. /2011/01/01/hello-world/', + + 'saveopt' => 'Save settings', + + 'submit' => 'Save .htaccess' ); $lang['admin']['plugin']['prettyurls']['msgs'] = array( 1 => '.htaccess saved successfully', - -1 => '.htaccess could not be saved (do you have writing permissions on '. BLOG_ROOT .')?' + -1 => '.htaccess could not be saved (do you have writing permissions on '. BLOG_ROOT .')?', + + 2 => 'Options saved successfully', + -2 => 'An error occurred attempting to save settings', ); -?> \ No newline at end of file +?> diff --git a/fp-plugins/prettyurls/plugin.prettyurls.php b/fp-plugins/prettyurls/plugin.prettyurls.php index 5c4a8c3..3e266a0 100644 --- a/fp-plugins/prettyurls/plugin.prettyurls.php +++ b/fp-plugins/prettyurls/plugin.prettyurls.php @@ -230,6 +230,34 @@ class Plugin_PrettyURLs { $this->fp_params['feed'] = isset($matches[2])? $matches[2]:'rss2'; } + + function get_url() { + $baseurl = BLOG_BASEURL; + $opt = plugin_getoptions('prettyurls', 'mode'); + $url = substr($_SERVER['REQUEST_URI'], strlen(BLOG_ROOT)-1); + + switch($opt) { + case null: + case 0: + $opt = file_exists(ABS_PATH . '.htaccess') ? 3 : 1; + case 1: + $baseurl .= 'index.php/'; + $url = $_SERVER['PATH_INFO']; + break; + case 2: + $baseurl .= '?u=/'; + $url = @$_GET['u']; + /* case 3: do nothing, it's BLOG_BASEURL */ + } + + $this->baseurl = $baseurl; + $this->mode = $opt; + + return $url; + + } + + /* * here is where the real work is done. @@ -251,7 +279,7 @@ class Plugin_PrettyURLs { global $fp_params; $this->fp_params =& $fp_params; - $this->baseurl = PRETTYURLS_PATHINFO? BLOG_BASEURL . 'index.php/' : BLOG_BASEURL; + $url = $this->get_url(); if (PRETTYURLS_TITLES) { #if ($f = io_load_file(PRETTYURLS_CACHE)) @@ -264,21 +292,21 @@ class Plugin_PrettyURLs { $this->categories(false); } - if (!defined('MOD_INDEX')) return; - - # this is not working if you reach flatpress via symlink - # unless you don't edit manually defaults.php - if (strpos($_SERVER['REQUEST_URI'], BLOG_ROOT)!==false) { - $url = $_SERVER['REQUEST_URI']; - $del = BLOG_ROOT; - if (strpos($url, 'index.php')!==false) - $del = $del . 'index.php/'; - $url = substr($url, strlen($del)-1); - } + +// # this is not working if you reach flatpress via symlink +// # unless you don't edit manually defaults.php +// if (strpos($_SERVER['REQUEST_URI'], BLOG_ROOT)!==false) { +// $url = $_SERVER['REQUEST_URI']; +// $del = BLOG_ROOT; +// if (strpos($url, 'index.php')!==false) +// $del = $del . 'index.php/'; +// $url = substr($url, strlen($del)-1); +// } + // removes querystrings if (false !== $i = strpos($url, '?')) $url = substr($url, 0, $i); @@ -549,9 +577,12 @@ if (class_exists('AdminPanelAction')){ class admin_plugin_prettyurls extends AdminPanelAction { var $langres = 'plugin:prettyurls'; + var $_config = array('mode'=>0); function setup() { $this->smarty->assign('admin_resource', "plugin:prettyurls/admin.plugin.prettyurls"); + $this->_config['mode'] = plugin_getoptions('prettyurls', 'mode'); + $this->smarty->assign('pconfig', $this->_config); $blogroot = BLOG_ROOT; $f = ABS_PATH . '.htaccess'; $txt = io_load_file($f); @@ -582,11 +613,21 @@ STR; function onsubmit() { global $fp_config; + + if (isset($_POST['saveopt'])) { + $this->_config['mode'] = (int) $_POST['mode'] ; + plugin_addoption('prettyurls', 'mode', $this->_config['mode']); + if( plugin_saveoptions() ) + $this->smarty->assign('success', 2); + else $this->smarty->assign('success', -2); + } - if (!empty($_POST['htaccess']) && io_write_file(ABS_PATH.'.htaccess', $_POST['htaccess'])){ - $this->smarty->assign('success', 1); - } else { - $this->smarty->assign('success', -1); + if (isset($_POST['htaccess-submit'])) { + if (!empty($_POST['htaccess']) && io_write_file(ABS_PATH.'.htaccess', $_POST['htaccess'])){ + $this->smarty->assign('success', 1); + } else { + $this->smarty->assign('success', -1); + } } return 2; diff --git a/fp-plugins/prettyurls/tpls/admin.plugin.prettyurls.tpl b/fp-plugins/prettyurls/tpls/admin.plugin.prettyurls.tpl index 16aae11..d751dc7 100644 --- a/fp-plugins/prettyurls/tpls/admin.plugin.prettyurls.tpl +++ b/fp-plugins/prettyurls/tpls/admin.plugin.prettyurls.tpl @@ -1,11 +1,36 @@

{$plang.head}

-

{$plang.description}

{include file=shared:errorlist.tpl} {html_form} + +

{$plang.mode}

{debug} +
+
+
{$plang.autodescr}
+
+
{$plang.pathinfodescr}
+
+
{$plang.httpgetdescr}
+
+
{$plang.prettydescr}
+
+ +
+ +
+ + + +

{$plang.htaccess}

+ +

{$plang.description}

@@ -15,8 +40,8 @@ {if $cantsave}

{$plang.cantsave}

{else} - + {/if} - -{/html_form} \ No newline at end of file + +{/html_form}