can allow viewers to select multiple categories to view.
Multiple categories are separated by ";" inside the URL. Values are still
turned to (int)s later on.
Version 0.9 ()
------------------------------------------------------------------------
+ * Allow to view and fetch multiple categories. Categories plugin
+ can allow viewers to select multiple categories to view.
+ (garvinhicking)
+
* Added hooks into the image selector admin popup for plugins to
support additional options. serendipity_event_imageselectorplus
accesses those hooks already. (garvinhicking)
global $serendipity;
/* Explode the path into sections, to later be able to check for arguments and add our own */
- preg_match('/^'. preg_quote($serendipity['serendipityHTTPPath'], '/') . '(' . preg_quote($serendipity['indexFile'], '/') . '\?\/)?(' . ($wildcard ? '.+' : '[a-z0-9\-*\/%\+]+') . ')/i', $uri, $_res);
+ preg_match('/^'. preg_quote($serendipity['serendipityHTTPPath'], '/') . '(' . preg_quote($serendipity['indexFile'], '/') . '\?\/)?(' . ($wildcard ? '.+' : '[;a-z0-9\-*\/%\+]+') . ')/i', $uri, $_res);
if (strlen($_res[2]) != 0) {
$args = explode('/', $_res[2]);
if ($args[0] == 'index') {
return array('category_left' => $res[0]['category_left'], 'category_right' => $res[0]['category_right']);
}
+function serendipity_getMultiCategoriesSQL($cats) {
+ global $serendipity;
+
+ $mcategories = explode(';', $cats);
+ $cat_sql_array = array();
+ foreach($mcategories AS $categoryid) {
+ $categoryid = (int)$categoryid;
+
+ if ($categoryid != 0) {
+ $cat_sql_array[] = " c.category_left BETWEEN " . implode(' AND ', serendipity_fetchCategoryRange($categoryid));
+ }
+ }
+
+ return implode(' OR ', $cat_sql_array);
+}
+
function serendipity_fetchCategoryInfo($categoryid, $categoryname = '') {
global $serendipity;
$ret = serendipity_db_query($query);
return $ret[0];
- } else if (is_numeric($categoryid)) {
+ } else {
$query = "SELECT
c.authorid,
c.categoryid,
c.category_icon,
c.parentid
FROM {$serendipity['dbPrefix']}category AS c
- WHERE categoryid = {$categoryid}";
+ WHERE categoryid = " . (int)$categoryid;
$ret = serendipity_db_query($query);
return $ret[0];
if (isset($serendipity['GET']['category'])) {
- $categoryid = (int)$serendipity['GET']['category'];
-
- if ($categoryid != 0) {
- if (!empty($cond['and'])) {
- $cond['and'] .= " AND c.category_left BETWEEN " . implode(' AND ', serendipity_fetchCategoryRange($categoryid));
- } else {
- $cond['and'] = "WHERE c.category_left BETWEEN " . implode(' AND ', serendipity_fetchCategoryRange($categoryid));
- }
+ $cat_sql = serendipity_getMultiCategoriesSQL($serendipity['GET']['category']);
+ if (!empty($cond['and'])) {
+ $cond['and'] .= " AND ($cat_sql)";
+ } else {
+ $cond['and'] = "WHERE ($cat_sql)";
}
}
serendipity_plugin_api::hook_event('frontend_fetchentries', $cond, array('noCache' => false, 'noSticky' => false));
if (isset($serendipity['GET']['category'])) {
- $categoryid = serendipity_db_escape_string($serendipity['GET']['category']);
-
- if (is_numeric($categoryid)) {
- $base_query = 'C' . $categoryid;
- $add_query = '/' . $base_query;
- $querystring = "SELECT timestamp
- FROM {$serendipity['dbPrefix']}category c,
- {$serendipity['dbPrefix']}entrycat ec,
- {$serendipity['dbPrefix']}entries e
- {$cond['joins']}
- {$cond['and']}
- AND e.id = ec.entryid
- AND c.categoryid = ec.categoryid
- AND c.category_left BETWEEN " . implode(' AND ', serendipity_fetchCategoryRange($categoryid));
- }
+ $base_query = 'C' . $categoryid;
+ $add_query = '/' . $base_query;
+ $querystring = "SELECT timestamp
+ FROM {$serendipity['dbPrefix']}category c,
+ {$serendipity['dbPrefix']}entrycat ec,
+ {$serendipity['dbPrefix']}entries e
+ {$cond['joins']}
+ {$cond['and']}
+ AND e.id = ec.entryid
+ AND c.categoryid = ec.categoryid
+ AND (" . serendipity_getMultiCategoriesSQL($serendipity['GET']['category']) . ")";
}
if (!isset($querystring)) {
$propbag->add('stackable', true);
$propbag->add('author', 'Serendipity Team');
$propbag->add('version', '1.0');
- $propbag->add('configuration', array('authorid', 'image', 'sort_order', 'sort_method'));
+ $propbag->add('configuration', array('authorid', 'image', 'sort_order', 'sort_method', 'allow_select'));
}
function introspect_config_item($name, &$propbag)
$propbag->add('default', 'all');
break;
+ case 'allow_select':
+ $propbag->add('type', 'boolean');
+ $propbag->add('name', CATEGORIES_ALLOW_SELECT);
+ $propbag->add('description', CATEGORIES_ALLOW_SELECT_DESC);
+ $propbag->add('default', true);
+ break;
+
case 'sort_order':
$select = array();
$select['category_name'] = CATEGORY;
} else {
$sort .= ' ' . $this->get_config('sort_method');
}
+ $is_form = serendipity_db_bool($this->get_config('allow_select'));
$categories = serendipity_fetchCategories(empty($which_category) ? 'all' : $which_category, '', $sort);
$title = $this->title;
+
$html = '';
+
+ if ($is_form) {
+ $html .= '<form action="' . $serendipity['baseURL'] . $serendipity['indexFile'] . '" method="POST"><div>';
+ }
+
$image = $this->get_config('image', serendipity_getTemplateFile('img/xml.gif'));
$image = (($image == "'none'" || $image == 'none') ? '' : $image);
if (is_array($categories) && count($categories)) {
$categories = serendipity_walkRecursive($categories, 'categoryid', 'parentid', VIEWMODE_THREADED);
foreach ( $categories as $cat ) {
$html .= '<div style="padding-bottom: 2px;">';
+
+ if ($is_form) {
+ $html .= '<input style="width: 15px" type="checkbox" name="serendipity[multiCat][]" value="' . $cat['categoryid'] . '" />';
+ }
+
if ( !empty($image) ) {
$html .= '<a href="'. serendipity_rewriteURL(PATH_FEEDS .'/'. PATH_CATEGORIES .'/'. serendipity_makePermalink(PERM_FEEDS_CATEGORIES, array('id' => $cat['categoryid'], 'title' => $cat['category_name']))) .'"><img src="'. $image .'" alt="XML" style="border: 0px" /></a> ';
}
}
}
+ if ($is_form) {
+ $html .= '<br /><input type="submit" name="serendipity[isMultiCat]" value="' . GO . '" /><br />';
+ }
+
$html .= sprintf(
'<br /><a href="%s" title="%s">%s</a>',
ALL_CATEGORIES
);
+ if ($is_form) {
+ $html .= '</div></form>';
+ }
print $html;
}
}
}
}
+if (isset($serendipity['POST']['isMultiCat']) && is_array($serendipity['POST']['multiCat'])) {
+ $is_multicat = true;
+} else {
+ $is_multicat = false;
+}
if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range']) && is_numeric($serendipity['GET']['range'])) {
$_args = $serendipity['uriArguments'];
} else if (preg_match(PAT_PLUGIN, $uri, $matches)) {
serendipity_plugin_api::hook_event('external_plugin', $matches[1]);
exit;
-} else if (preg_match(PAT_CATEGORIES, $uri, $matches)) {
+} else if ($is_multicat || preg_match(PAT_CATEGORIES, $uri, $matches)) {
+
+ if ($is_multicat) {
+ $serendipity['GET']['category'] = implode(';', $serendipity['POST']['multiCat']);
+ $serendipity['uriArguments'][] = PATH_CATEGORIES;
+ $serendipity['uriArguments'][] = serendipity_db_escape_string($serendipity['GET']['category']) . '-multi';
+ } else {
+ $serendipity['GET']['category'] = $matches[1];
+ }
+ $serendipity['GET']['action'] = 'read';
+
$_args = $serendipity['uriArguments'];
/* Attempt to locate hidden variables within the URI */
}
}
- $serendipity['GET']['category'] = $matches[1];
- $serendipity['GET']['action'] = 'read';
$cInfo = serendipity_fetchCategoryInfo($serendipity['GET']['category']);
$serendipity['head_title'] = $cInfo['category_name'];
$serendipity['head_subtitle'] = $serendipity['blogTitle'];
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
-
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images');
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
@define('BACKEND_TITLE', 'Additional information in Plugin Configuration screen'); // Translate
@define('BACKEND_TITLE_FOR_NUGGET', 'Here you can define a custom string which is displayed in the Plugin Configuration screen together with the description of the HTML Nugget plugin. If you have multiple HTML nuggets with an empty title, this helps to distinct the plugins from another.'); // Translate
+@define('CATEGORIES_ALLOW_SELECT', 'Allow visitors to display multiple categories at once?'); // Translate
+@define('CATEGORIES_ALLOW_SELECT_DESC', 'If this option is enabled, a checkbox will be put next to each category in this sidebar plugin. Users can check those boxes and then see entries belonging to their selection.'); // Translate
/* vim: set sts=4 ts=4 expandtab : */
?>
\ No newline at end of file
@define('PAT_AUTHORS', '@/'.PATH_AUTHORS.'/([0-9]+)@');
@define('PAT_COMMENTSUB', '@/([0-9]+)[_\-][' . PAT_FILENAME . ']*\.html@i');
@define('PAT_FEEDS', '@/'.PATH_FEEDS.'/@');
-@define('PAT_FEEDS_CATEGORIES', '@/'.PATH_FEEDS.'\/'. PATH_CATEGORIES .'/([0-9]+)@');
+@define('PAT_FEEDS_CATEGORIES', '@/'.PATH_FEEDS.'\/'. PATH_CATEGORIES .'/([0-9;]+)@');
@define('PAT_FEED', '@/(index|atom|rss|b2rss|b2rdf).(rss|rdf|rss2|xml)$@');
@define('PAT_ADMIN', '@/(' . PATH_ADMIN . '|'. PATH_ENTRIES .')(/.+)?@');
@define('PAT_ARCHIVE', '@/'.PATH_ARCHIVE.'$@');
-@define('PAT_CATEGORIES', '@/'.PATH_CATEGORIES.'/([0-9]+)@');
+@define('PAT_CATEGORIES', '@/'.PATH_CATEGORIES.'/([0-9;]+)@');
@define('PAT_PLUGIN', '@/' . PATH_PLUGIN . '/(.*)@');
@define('PAT_SEARCH', '@/' . PATH_SEARCH . '/(.*)@');
@define('PAT_CSS', '@/(serendipity\.css|serendipity_admin\.css)@');