Hi!

There are some bugs with prefix routing and pagination. For short: It
doesn't work for other prefix routes then the admin prefix.

I found a patch for this at the bug tracker (#5115), but it didn't
worked for me.

I've played a bit with router php and the patch, and got a version, that
work's most the time for me!

I don't think it is the right way to do it, but I attach the diff to
this mail. It's my first diff, if it doesn't work, please tell me how to
do a better one.

Bye
Marcus

--- router.php
+++ router.php
@@ -779,6 +779,24 @@
 					unset($url[$admin]);
 				}
 			}
+			// check for prefixes that are not 'Admin.routing'
+			$prefixes = array();
+			foreach ($_this->routes as $route) {
+				if (array_key_exists('prefix', $route[3]))
+				{
+					$prefixes[$route[3]['prefix']] = $route[3]['prefix'];
+				}
+			}
+			foreach ($prefixes as $cur_prefix)
+			{
+                                if (!isset($url[$cur_prefix]) && !empty($params[$cur_prefix])) {
+					$url[$cur_prefix] = true;
+                                        $admin = $cur_prefix;
+				} elseif (isset($url[$cur_prefix]) && !$url[$cur_prefix]) {
+					unset($url[$cur_prefix]);
+				}
+			}
+
 			$plugin = false;
 
 			if (array_key_exists('plugin', $url)) {
@@ -810,7 +828,10 @@
 				$url = $originalUrl;
 			}
 			$named = $args = array();
+                        
+                        // ME: Prefixes berücksichtigen
 			$skip = array('bare', 'action', 'controller', 'plugin', 'ext', '?', '#', 'prefix', $admin);
+                        if (is_array($prefixes)) $skip = array_merge($skip, $prefixes);
 
 			$keys = array_values(array_diff(array_keys($url), $skip));
 			$count = count($keys);

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to