+ * @param int $rewrite_mode Mode in what rewrite listener was called. Possbile two modes: REWRITE_MODE_BUILD, REWRITE_MODE_PARSE.
+ * @param string $prefix Prefix, that listener uses for system integration
+ * @param Array $params Params, that are used for url building or created during url parsing.
+ * @param Array $url_parts Url parts to parse (only for parsing).
+ * @param bool $keep_events Keep event names in resulting url (only for building).
+ * @return bool Return true to continue to next listener; return false (when building) not to rewrite given prefix; return false (when parsing) to stop processing at this listener.
+ * @param int $rewrite_mode Mode in what rewrite listener was called. Possbile two modes: REWRITE_MODE_BUILD, REWRITE_MODE_PARSE.
+ * @param string $prefix Prefix, that listener uses for system integration
+ * @param Array $params Params, that are used for url building or created during url parsing.
+ * @param Array $url_parts Url parts to parse (only for parsing).
+ * @param bool $keep_events Keep event names in resulting url (only for building).
+ * @return bool Return true to continue to next listener; return false (when building) not to rewrite given prefix; return false (when parsing) to stop processing at this listener.
+ * @param int $rewrite_mode Mode in what rewrite listener was called. Possbile two modes: REWRITE_MODE_BUILD, REWRITE_MODE_PARSE.
+ * @param string $prefix Prefix, that listener uses for system integration
+ * @param Array $params Params, that are used for url building or created during url parsing.
+ * @param Array $url_parts Url parts to parse (only for parsing).
+ * @return bool Return true to continue to next listener; return false (when building) not to rewrite given prefix; return false (when parsing) to stop processing at this listener.
+ */
+ function WidgetRewriteParser($rewrite_mode = REWRITE_MODE_BUILD, $prefix, &$params, &$url_parts)
+ {
+ if ($url_parts[0] == 'widgets') {
+ $sql = 'SELECT WidgetId
+ FROM ' . TABLE_PREFIX . 'Widgets
+ WHERE Title = ' . $this->Conn->qstr($url_parts[1]);
+ $id = $this->Conn->GetOne($sql);
+ $to_parse = $url_parts;
+
+ if ($id > 0) {
+ // id found
+ $params[$prefix . '_id'] = $id;
+ $to_parse = array_slice($to_parse, 2); // cut off first two parts - "widgets/<widget+name>"
+ $params['pass'][] = $prefix; // otherwise this prefix won't passed when pass="all" parameter used
+ }
+
+ $template = implode('/', $to_parse);
+
+ if ($template) {
+ // let others guess what template is
+ return true;
+ }
+
+ // template missing -> set default
+ $params['t'] = 'widgets/widget_detail';
+ return false;
+ }
+
+ return true;
+ }
+ }
\ No newline at end of file
Property changes on: releases/1.1.0-B1/units/widgets/widget_eh.php