Version 0.9 ()
------------------------------------------------------------------------
+ * Read/Write permissions for user-groups for specific categories.
+ (garvinhicking)
+
* Fix "DATA_TRACKBACK_APPROVED" showing of constants when approving
trackbacks/comments instead of the properly formatted message.
(Would've required a template change for a "pretty solution", but
* Introduce permission groups with customizable permission sets.
(garvinhicking)
- This Feature is currently declared "unstable" and will definitely
- need finetuning before it usable in restricted environments.
- TODO:
- * Check Plugins like loginform, adduser to use group-functionality.
- * Get rid of as many obsolete userlevel checks in the Admin user/groups
- panel.
- * Chief editors may not join Admin group if forbidden?
- * Chief editors may not enter siteConfiguration if forbidden?
-
* Make bblog importer recognize trackbacks. Thanks to Hanno!
* Spartacus plugin can now properly handle plugins which contain both
if (isset($_POST['SAVE'])) {
$name = $serendipity['POST']['cat']['name'];
$desc = $serendipity['POST']['cat']['description'];
- $authorid = (isset($serendipity['POST']['cat']['all_authors']) && $serendipity['POST']['cat']['all_authors'] == 'true') ? 0 : $serendipity['authorid'];
+
+ if (in_array(0, $serendipity['POST']['cat']['write_authors'])) {
+ $authorid = 0;
+ } else {
+ $authorid = $serendipity['authorid'];
+ }
+
$icon = $serendipity['POST']['cat']['icon'];
$parentid = (isset($serendipity['POST']['cat']['parent_cat']) && is_numeric($serendipity['POST']['cat']['parent_cat'])) ? $serendipity['POST']['cat']['parent_cat'] : 0;
if ( $sql ) {
echo '<div class="serendipityAdminMsgError">'. sprintf(CATEGORY_ALREADY_EXIST, htmlspecialchars($name)) .'</div>';
} else {
- serendipity_addCategory($name, $desc, $authorid, $icon, $parentid);
+ $catid = serendipity_addCategory($name, $desc, $authorid, $icon, $parentid);
+ serendipity_ACLGrant($catid, 'category', 'read', $serendipity['POST']['cat']['read_authors']);
+ serendipity_ACLGrant($catid, 'category', 'write', $serendipity['POST']['cat']['write_authors']);
+
echo '<div class="serendipityAdminMsgSuccess">'. CATEGORY_SAVED .'</div>';
}
AND categoryid <> ". (int)$serendipity['GET']['cid'], true);
if ( $sql ) {
echo '<div class="serendipityAdminMsgError">'. sprintf(CATEGORY_ALREADY_EXIST, htmlspecialchars($name)) .'</div>';
+ } else if (!serendipity_ACLCheck($serendipity['authorid'], $serendipity['GET']['cid'], 'category', 'write')) {
+ echo '<div class="serendipityAdminMsgError">'. PERM_DENIED .'</div>';
} else {
/* Check to make sure parent is not a child of self */
$r = serendipity_db_query("SELECT categoryid FROM {$serendipity['dbPrefix']}category c
echo sprintf(ALREADY_SUBCATEGORY, htmlspecialchars($r[0]['category_name']), htmlspecialchars($name));
} else {
serendipity_updateCategory($serendipity['GET']['cid'], $name, $desc, $authorid, $icon, $parentid);
+ serendipity_ACLGrant($serendipity['GET']['cid'], 'category', 'read', $serendipity['POST']['cat']['read_authors']);
+ serendipity_ACLGrant($serendipity['GET']['cid'], 'category', 'write', $serendipity['POST']['cat']['read_authors']);
echo '<div class="serendipityAdminMsgSuccess">'. CATEGORY_SAVED .'</div>';
}
}
if ($serendipity['GET']['adminAction'] == 'doDelete') {
if ($serendipity['GET']['cid'] != 0) {
$remaining_cat = (int)$serendipity['POST']['cat']['remaining_catid'];
- $category_range = implode(' AND ', serendipity_fetchCategoryRange((int)$serendipity['GET']['cid']));
+ $category_ranges = serendipity_fetchCategoryRange((int)$serendipity['GET']['cid']);
+ $category_range = implode(' AND ', $category_ranges);
if ($serendipity['dbType'] == 'postgres' || $serendipity['dbType'] == 'sqlite') {
$query = "UPDATE {$serendipity['dbPrefix']}entrycat
SET categoryid={$remaining_cat} WHERE entryid IN
}
if ( serendipity_db_query($query) ) {
if (serendipity_deleteCategory($category_range, $admin_category) ) {
+
+ foreach($category_ranges AS $cid) {
+ if (serendipity_ACLCheck($serendipity['authorid'], $cid, 'category', 'write')) {
+ serendipity_ACLGrant($cid, 'category', 'read', array());
+ serendipity_ACLGrant($cid, 'category', 'write', array());
+ }
+ }
+
echo '<div class="serendipityAdminMsgSuccess">'. ($remaining_cat ? sprintf(CATEGORY_DELETED_ARTICLES_MOVED, (int)$serendipity['GET']['cid'], $remaining_cat) : sprintf(CATEGORY_DELETED,(int)$serendipity['GET']['cid'])) .'</div>';
$serendipity['GET']['adminAction'] = 'view';
}
if ( $serendipity['GET']['adminAction'] == 'delete' ) {
$this_cat = serendipity_fetchCategoryInfo($serendipity['GET']['cid']);
if ( (serendipity_checkPermission('adminCategoriesDelete') && serendipity_checkPermission('adminCategoriesMaintainOthers'))
- || (serendipity_checkPermission('adminCategoriesDelete') && ($serendipity['authorid'] == $this_cat['authorid'] || $this_cat['authorid'] == '0')) ) {
+ || (serendipity_checkPermission('adminCategoriesDelete') && ($serendipity['authorid'] == $this_cat['authorid'] || $this_cat['authorid'] == '0'))
+ || (serendipity_checkPermission('adminCategoriesDelete') && serendipity_ACLCheck($serendipity['authorid'], $serendipity['GET']['cid'], 'category', 'write'))) {
?>
<form method="POST" name="serendipityCategory" action="?serendipity[adminModule]=category&serendipity[adminAction]=doDelete&serendipity[cid]=<?php echo $serendipity['GET']['cid'] ?>">
<br />
$this_cat = serendipity_fetchCategoryInfo($cid);
echo '<strong>'. sprintf(EDIT_THIS_CAT, htmlspecialchars($this_cat['category_name'])) .'</strong>';
$save = SAVE;
+ $read_groups = serendipity_ACLGet($cid, 'category', 'read');
+ $write_groups = serendipity_ACLGet($cid, 'category', 'write');
} else {
$cid = false;
$this_cat = array();
echo '<strong>'. CREATE_NEW_CAT .'</strong>';
$save = CREATE;
+ $read_groups = array(0 => 0);
+ $write_groups = array(0 => 0);
}
+
+ $groups = serendipity_getAllGroups();
?>
<form method="POST" name="serendipityCategory">
<table cellpadding="5" width="100%">
</tr>
<tr>
- <td><label for="all_authors"><?php echo ALL_AUTHORS; ?></label></td>
- <td><input id="all_authors" type="checkbox" name="serendipity[cat][all_authors]" value="true" <?php echo (!is_array($this_cat) || (isset($this_cat['authorid']) && $this_cat['authorid'] == '0')) ? 'checked="checked"' : ''; ?> /></td>
+ <td><label for="read_authors"><?php echo PERM_READ; ?></label></td>
+ <td>
+ <select size="6" id="read_authors" multiple="multiple" name="serendipity[cat][read_authors][]">
+ <option value="0" <?php echo (!is_array($this_cat) || (isset($this_cat['authorid']) && $this_cat['authorid'] == '0') || isset($read_groups[0])) ? 'selected="selected"' : ''; ?>><?php echo ALL_AUTHORS; ?></option>
+<?php
+ foreach($groups AS $group) {
+ echo '<option value="' . $group['confkey'] . '" ' . (isset($read_groups[$group['confkey']]) ? 'selected="selected"' : '') . '>' . htmlspecialchars($group['confvalue']) . '</option>' . "\n";
+ }
+?>
+ </select>
+ </td>
</tr>
+
+ <tr>
+ <td><label for="write_authors"><?php echo PERM_WRITE; ?></label></td>
+ <td>
+ <select size="6" id="write_authors" multiple="multiple" name="serendipity[cat][write_authors][]">
+ <option value="0" <?php echo (!is_array($this_cat) || (isset($this_cat['authorid']) && $this_cat['authorid'] == '0') || isset($write_groups[0])) ? 'selected="selected"' : ''; ?>><?php echo ALL_AUTHORS; ?></option>
+<?php
+ foreach($groups AS $group) {
+ echo '<option value="' . $group['confkey'] . '" ' . (isset($write_groups[$group['confkey']]) ? 'selected="selected"' : '') . '>' . htmlspecialchars($group['confvalue']) . '</option>' . "\n";
+ }
+?>
+ </select>
+ </td>
+ </tr>
+
<tr>
<td><label for="parent_cat"><?php echo PARENT_CATEGORY; ?></label></td>
<td>
if (empty($admin_category)) {
$cats = serendipity_fetchCategories('all');
} else {
- $cats = serendipity_fetchCategories();
+ $cats = serendipity_fetchCategories(null, null, null, 'write');
}
if ( is_array($cats) && sizeof($cats) > 0 ) {
</td>
</tr>
</table>
-<?php } ?>
-<?php
+<?php }
+
/* vim: set sts=4 ts=4 expandtab : */
-?>
/* Edit a user */
if (isset($_POST['SAVE_EDIT'])) {
$user = serendipity_fetchUsers($serendipity['POST']['user']);
- if (!serendipity_checkPermission('adminUsersMaintainOthers') && $user[0]['userlevel'] >= $serendipity['serendipityUserlevel'] || !serendipity_checkPermission('adminUsersCreateNew')) {
+ if (!serendipity_checkPermission('adminUsersMaintainOthers') && $user[0]['userlevel'] >= $serendipity['serendipityUserlevel']) {
echo '<div class="serendipityAdminMsgError">' . CREATE_NOT_AUTHORIZED . '</div>';
} elseif ($_POST['userlevel'] > $serendipity['serendipityUserlevel']) {
echo '<div class="serendipityAdminMsgError">' . CREATE_NOT_AUTHORIZED_USERLEVEL . '</div>';
return false;
}
-function serendipity_updateGroups($groups, $authorid) {
+function serendipity_updateGroups($groups, $authorid, $apply_acl = true) {
global $serendipity;
- if (!serendipity_checkPermission('adminUsersMaintainOthers')) {
+ if ($apply_acl && !serendipity_checkPermission('adminUsersMaintainOthers')) {
return false;
}
return true;
}
+function serendipity_ACLGrant($artifact_id, $artifact_type, $artifact_mode, $groups) {
+ global $serendipity;
+
+ if (empty($groups) || !is_array($groups)) {
+ return false;
+ }
+
+ // Delete all old existing relations.
+ serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}access
+ WHERE artifact_id = " . (int)$artifact_id . "
+ AND artifact_type = '" . serendipity_db_escape_string($artifact_type) . "'
+ AND artifact_mode = '" . serendipity_db_escape_string($artifact_mode) . "'");
+
+ $data = array(
+ 'artifact_id' => (int)$artifact_id,
+ 'artifact_type' => $artifact_type,
+ 'artifact_mode' => $artifact_mode,
+ 'artifact_index' => ''
+ );
+
+ if (count($data) < 1) {
+ return true;
+ }
+
+ foreach($groups AS $group) {
+ $data['groupid'] = $group;
+ serendipity_db_insert('access', $data);
+ }
+
+ return true;
+}
+
+function serendipity_ACLGet($artifact_id, $artifact_type, $artifact_mode) {
+ global $serendipity;
+
+ $sql = "SELECT groupid, artifact_index FROM {$serendipity['dbPrefix']}access
+ WHERE artifact_type = '" . serendipity_db_escape_string($artifact_type) . "'
+ AND artifact_id = '" . (int)$artifact_id . "'
+ AND artifact_mode = '" . serendipity_db_escape_string($artifact_mode) . "'";
+ $rows = serendipity_db_query($sql, false, 'assoc');
+
+ if (!is_array($rows)) {
+ return false;
+ }
+
+ $acl = array();
+ foreach($rows AS $row) {
+ $acl[$row['groupid']] = $row['artifact_index'];
+ }
+
+ return $acl;
+}
+
+function serendipity_ACLCheck($authorid, $artifact_id, $artifact_type, $artifact_mode) {
+ global $serendipity;
+
+ $artifact_sql = array();
+ switch($artifact_type) {
+ default:
+ case 'category':
+ $artifact_sql['unique']= "atf.categoryid";
+ $artifact_sql['cond'] = "atf.categoryid = " . (int)$artifact_id;
+ $artifact_sql['where'] = "OR a.artifact_type IS NULL AND (atf.authorid = " . (int)$authorid . " OR atf.authorid = 0)";
+ $artifact_sql['table'] = 'category';
+ }
+
+ $sql = "SELECT {$artifact_sql['unique']} AS result
+ FROM {$serendipity['dbPrefix']}{$artifact_sql['table']} AS atf
+ LEFT OUTER JOIN {$serendipity['dbPrefix']}authorgroups AS ag
+ ON ag.authorid = ". (int)$authorid . "
+ LEFT OUTER JOIN {$serendipity['dbPrefix']}access AS a
+ ON (ag.groupid = a.groupid OR a.groupid = 0)
+
+ WHERE {$artifact_sql['cond']}
+ AND ((
+ a.artifact_id = " . (int)$artifact_id . "
+ AND a.artifact_type = '" . serendipity_db_escape_string($artifact_type) . "'
+ AND a.artifact_mode = '" . serendipity_db_escape_string($artifact_mode) . "'
+ )
+ {$artifact_sql['where']}
+ )
+ GROUP BY result";
+
+ $res = serendipity_db_query($sql, true, 'assoc');
+ if (is_array($res) && !empty($res['result'])) {
+ return true;
+ }
+
+ return false;
+}
+
+function serendipity_ACL_SQL(&$cond, $append_category = false) {
+ global $serendipity;
+
+ if (!isset($serendipity['enableACL']) || $serendipity['enableACL'] === true) {
+ if ($_SESSION['serendipityAuthedUser'] === true) {
+ $read_id = (int)$serendipity['authorid'];
+ $read_id_sql = 'acl_a.groupid';
+ } else {
+ // "0" as category property counts as "anonymous viewers"
+ $read_id = 0;
+ $read_id_sql = 0;
+ }
+
+ if ($append_category) {
+ if ($append_category !== 'limited') {
+ $cond['joins'] .= " LEFT JOIN {$serendipity['dbPrefix']}entrycat ec
+ ON e.id = ec.entryid";
+ }
+
+ $cond['joins'] .= " LEFT JOIN {$serendipity['dbPrefix']}category c
+ ON ec.categoryid = c.categoryid";
+ }
+
+ $cond['joins'] .= " LEFT JOIN {$serendipity['dbPrefix']}authorgroups AS acl_a
+ ON acl_a.authorid = " . $read_id . "
+ LEFT JOIN {$serendipity['dbPrefix']}access AS acl_acc
+ ON acl_acc.groupid = " . $read_id_sql;
+
+ if (empty($cond['and'])) {
+ $cond['and'] .= ' WHERE ';
+ } else {
+ $cond['and'] .= ' AND ';
+ }
+
+ $cond['and'] .= " (
+ c.categoryid IS NULL
+ OR (acl_acc.artifact_type = 'category'
+ AND acl_acc.artifact_mode = 'read'
+ AND acl_acc.artifact_id = c.categoryid)
+ OR (acl_acc.artifact_id IS NULL
+ AND (c.authorid = 0 OR c.authorid = " . $read_id . ")
+ )
+ )";
+ return true;
+ }
+
+ return false;
+}
+
/* vim: set sts=4 ts=4 expandtab : */
-?>
\ No newline at end of file
$group = 'GROUP BY e.id';
$distinct = '';
}
+
+ serendipity_ACL_SQL($cond);
// Store the unique query condition for entries for later reference, like getting the total article count.
$serendipity['fullCountQuery'] = "
$cond['and'] = " AND e.authorid = '" . $serendipity['authorid'] . "'";
}
+ serendipity_ACL_SQL($cond, true);
+
serendipity_plugin_api::hook_event('frontend_fetchentry', $cond, array('noSticky' => true));
$querystring = "SELECT
/**
* Fetches a users categories
**/
-function serendipity_fetchCategories($authorid = null, $name = '', $order = 'category_name ASC') {
+function serendipity_fetchCategories($authorid = null, $name = null, $order = null, $artifact_mode = 'write') {
global $serendipity;
+ if ($name === null) {
+ $name = '';
+ }
+
+ if ($order === null) {
+ $order = 'category_name ASC';
+ }
+
if (!isset($authorid) || $authorid === null) {
$authorid = ((isset($serendipity['authorid']) && !empty($serendipity['GET']['adminModule'])) ? $serendipity['authorid'] : 1);
}
}
if ($authorid != 'all' && is_numeric($authorid)) {
- $where = " WHERE (c.authorid = $authorid OR c.authorid = 0)";
+ if (!serendipity_checkPermission('adminCategoriesMaintainOthers', $authorid)) {
+ $where = " WHERE (c.authorid = $authorid OR c.authorid = 0)";
+ $where .= "OR (
+ acl.artifact_type = 'category'
+ AND acl.artifact_mode = '" . serendipity_db_escape_string($artifact_mode) . "'
+ )";
+
+ }
} else {
$where = '';
}
a.realname
FROM {$serendipity['dbPrefix']}category AS c
LEFT OUTER JOIN {$serendipity['dbPrefix']}authors AS a
- ON c.authorid = a.authorid $where";
+ ON c.authorid = a.authorid
+ LEFT OUTER JOIN {$serendipity['dbPrefix']}authorgroups AS ag
+ ON ag.authorid = a.authorid
+ LEFT OUTER JOIN {$serendipity['dbPrefix']}access AS acl
+ ON (ag.groupid = acl.groupid AND acl.artifact_id = c.categoryid)
+ $where
+ GROUP BY c.categoryid";
if (!empty($order)) {
$querystring .= "\n ORDER BY $order";
$cond['and'] = " AND isdraft = 'false' " . (!serendipity_db_bool($serendipity['showFutureEntries']) ? " AND timestamp <= " . time() : '');
serendipity_plugin_api::hook_event('frontend_fetchentries', $cond, array('source' => 'search'));
+ serendipity_ACL_SQL($cond, 'limited');
+
$serendipity['fullCountQuery'] = "
FROM
{$serendipity['dbPrefix']}entries e
'type' => 'bool',
'default' => false,
'permission' => 'blogConfiguration'),
+
+ array('var' => 'enableACL',
+ 'title' => INSTALL_ACL,
+ 'description' => INSTALL_ACL_DESC,
+ 'type' => 'bool',
+ 'default' => true,
+ 'permission' => 'blogConfiguration'),
));
$res['imagehandling'] =
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
-<?php # $Id: serendipity_lang_de.inc.php 446 2005-09-05 09:54:17Z garvinhicking $
+<?php # $Id: serendipity_lang_de.inc.php 454 2005-09-07 13:22:24Z garvinhicking $
# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
# Translation (c) Jannis Hermanns, Garvin Hicking and others
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_EXTEVENT_DESC', 'Si está habilitada, esta opción permite que las extensiones se conecten con el calendario para mostrar sus eventos resaltados. Utilizalo sólo si has instalado extensiones que lo necesitan, de otra forma sólo disminuye el desempeño.');
/*Translate*/
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'فعال کردن API افزونه چنگکی');
@define('CALENDAR_EXTEVENT_DESC', 'در صورت فعال بودن، افزونه ها می توانند از تقویم برای نشان دادن وقایع استفاده کنند. این افزونه فقط در حالتی کار می کند که افزونه هایی که لازمش دارند، نصب شده باشند در غیر این صورت، فقط قدرت سیستم کمی پایین می آید.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'افزونه XML-RPC API برای Serendipity به دلیل مشکلات امنیتی، پشتیبانی نمی شود، ضمن اینکه کاربران کمی نیز از آن استفاده می کردند. به هر حال، برای استفاده از XML-RPC API باید افزونه XML-RPC را نصب کنید. آدرس استفاده شده در برنامه تغییر نخواهد کرد - تا زمانی که شما افزونه را نصب دارید، می توانید از API استفاده کنید.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'プラグインの API フックを有効にする');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', '開啟外掛 API');
@define('CALENDAR_EXTEVENT_DESC', '如果開啟,外掛可以在日曆內以顏色突顯它的事件。如果沒有使用這些特殊的外掛,建議不要使用。');
@define('XMLRPC_NO_LONGER_BUNDLED', 'XML-RPC API 功能已不加在 s9y 的安裝裡,因為漏洞和不多人使用的關係。所以您必須安裝 XML-RPC 的外掛如果要使用 XML-RPC API。所有的 URL 不會因此改變,安裝這個外掛後可以馬上使用。');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('INSTALL_CHARSET_DESC', '這裡可以讓您轉換 UTF-8 或預設語系 (ISO, EUC, ...)。有些語言只有 UTF-8 語系檔,所以換成預設語系不會改變任何東西。新安裝的網誌建議使用 UTF-8 語系。記得不要改變這個設定如果您已經發佈了文章。詳情請看 http://www.s9y.org/index.php?node=46。');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', '開啟外掛 API');
@define('CALENDAR_EXTEVENT_DESC', '如果開啟,外掛可以在日曆內以顏色突顯它的事件。如果沒有使用這些特殊的外掛,建議不要使用。');
-@define('XMLRPC_NO_LONGER_BUNDLED', 'XML-RPC API 功能已不加在 s9y 的安裝裡,因為漏洞和不多人使用的關係。所以您必須安裝 XML-RPC 的外掛如果要使用 XML-RPC API。所有的 URL 不會因此改變,安裝這個外掛後可以馬上使用。');
\ No newline at end of file
+@define('XMLRPC_NO_LONGER_BUNDLED', 'XML-RPC API 功能已不加在 s9y 的安裝裡,因為漏洞和不多人使用的關係。所以您必須安裝 XML-RPC 的外掛如果要使用 XML-RPC API。所有的 URL 不會因此改變,安裝這個外掛後可以馬上使用。');@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
-@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');\r
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_EXTEVENT_DESC', 'Si está habilitada, esta opción permite que las extensiones se conecten con el calendario para mostrar sus eventos resaltados. Utilizalo sólo si has instalado extensiones que lo necesitan, de otra forma sólo disminuye el desempeño.');
/*Translate*/
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'فعال کردن API افزونه چنگکی');
@define('CALENDAR_EXTEVENT_DESC', 'در صورت فعال بودن، افزونه ها می توانند از تقویم برای نشان دادن وقایع استفاده کنند. این افزونه فقط در حالتی کار می کند که افزونه هایی که لازمش دارند، نصب شده باشند در غیر این صورت، فقط قدرت سیستم کمی پایین می آید.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'افزونه XML-RPC API برای Serendipity به دلیل مشکلات امنیتی، پشتیبانی نمی شود، ضمن اینکه کاربران کمی نیز از آن استفاده می کردند. به هر حال، برای استفاده از XML-RPC API باید افزونه XML-RPC را نصب کنید. آدرس استفاده شده در برنامه تغییر نخواهد کرد - تا زمانی که شما افزونه را نصب دارید، می توانید از API استفاده کنید.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'プラグインの API フックを有効にする');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', '開啟外掛 API');
@define('CALENDAR_EXTEVENT_DESC', '如果開啟,外掛可以在日曆內以顏色突顯它的事件。如果沒有使用這些特殊的外掛,建議不要使用。');
@define('XMLRPC_NO_LONGER_BUNDLED', 'XML-RPC API 功能已不加在 s9y 的安裝裡,因為漏洞和不多人使用的關係。所以您必須安裝 XML-RPC 的外掛如果要使用 XML-RPC API。所有的 URL 不會因此改變,安裝這個外掛後可以馬上使用。');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('INSTALL_CHARSET_DESC', '³o¸Ì¥i¥HÅý±zÂà´« UTF-8 ©Î¹w³]»y¨t (ISO, EUC, ...)¡C¦³¨Ç»y¨¥¥u¦³ UTF-8 »y¨tÀÉ¡A©Ò¥H´«¦¨¹w³]»y¨t¤£·|§ïÅÜ¥ô¦óªF¦è¡C·s¦w¸Ëªººô»x«ØÄ³¨Ï¥Î UTF-8 »y¨t¡C°O±o¤£n§ïÅܳoÓ³]©w¦pªG±z¤w¸gµo§G¤F¤å³¹¡C¸Ô±¡½Ð¬Ý http://www.s9y.org/index.php?node=46¡C');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', '¶}±Ò¥~±¾ API');
@define('CALENDAR_EXTEVENT_DESC', '¦pªG¶}±Ò¡A¥~±¾¥i¥H¦b¤é¾ä¤º¥HÃC¦â¬ðÅ㥦ªº¨Æ¥ó¡C¦pªG¨S¦³¨Ï¥Î³o¨Ç¯S®íªº¥~±¾¡A«ØÄ³¤£n¨Ï¥Î¡C');
-@define('XMLRPC_NO_LONGER_BUNDLED', 'XML-RPC API ¥\¯à¤w¤£¥[¦b s9y ªº¦w¸Ë¸Ì¡A¦]¬°º|¬}©M¤£¦h¤H¨Ï¥ÎªºÃö«Y¡C©Ò¥H±z¥²¶·¦w¸Ë XML-RPC ªº¥~±¾¦pªGn¨Ï¥Î XML-RPC API¡C©Ò¦³ªº URL ¤£·|¦]¦¹§ïÅÜ¡A¦w¸Ë³oÓ¥~±¾«á¥i¥H°¨¤W¨Ï¥Î¡C');
\ No newline at end of file
+@define('XMLRPC_NO_LONGER_BUNDLED', 'XML-RPC API ¥\¯à¤w¤£¥[¦b s9y ªº¦w¸Ë¸Ì¡A¦]¬°º|¬}©M¤£¦h¤H¨Ï¥ÎªºÃö«Y¡C©Ò¥H±z¥²¶·¦w¸Ë XML-RPC ªº¥~±¾¦pªGn¨Ï¥Î XML-RPC API¡C©Ò¦³ªº URL ¤£·|¦]¦¹§ïÅÜ¡A¦w¸Ë³oÓ¥~±¾«á¥i¥H°¨¤W¨Ï¥Î¡C');@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
@define('CALENDAR_ENABLE_EXTERNAL_EVENTS', 'Enable Plugin API hook');
@define('CALENDAR_EXTEVENT_DESC', 'If enabled, plugins can hook into the calendar to display their own events highlighted. Only enable if you have installed plugins that need this, otherwise it just decreases performance.');
@define('XMLRPC_NO_LONGER_BUNDLED', 'The XML-RPC API Interface to Serendipity is no longer bundled because of ongoing security issues with this API and not many people using it. Thus you need to install the XML-RPC Plugin to use the XML-RPC API. The URL to use in your applications will NOT change - as soon as you have installed the plugin, you will again be able to use the API.');
+@define('PERM_READ', 'Read permission');
+@define('PERM_WRITE', 'Write permission');
+
+@define('PERM_DENIED', 'Permission denied.');
+@define('INSTALL_ACL', 'Apply read-permissions for categories');
+@define('INSTALL_ACL_DESC', 'If enabled, the usergroup permission settings you setup for categories will be applied when logged-in users view your blog. If disabled, the read-permissions of the categories are NOT applied, but the positive effect is a little speedup on your blog. So if you don\'t need multi-user read permissions for your blog, disable this setting.');
if (!isset($serendipity['GET']['category']) && !isset($serendipity['GET']['adminModule']) && $event == 'frontend_fetchentries') {
$conds[] = " (ep_no_frontpage.property IS NULL OR ep_no_frontpage.value != 'true') ";
- $joins[] = "LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_no_frontpage
- ON (e.id = ep_no_frontpage.entryid AND ep_no_frontpage.property = 'ep_no_frontpage')";
+ $joins[] = " LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_no_frontpage
+ ON (e.id = ep_no_frontpage.entryid AND ep_no_frontpage.property = 'ep_no_frontpage')";
}
if (count($conds) > 0) {
}
if ($is_cache && (!isset($addData['noCache']) || !$addData['noCache'])) {
- $joins[] = "LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_cache_extended
- ON (e.id = ep_cache_extended.entryid AND ep_cache_extended.property = 'ep_cache_extended')";
- $joins[] = "LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_cache_body
- ON (e.id = ep_cache_body.entryid AND ep_cache_body.property = 'ep_cache_body')";
+ $joins[] = " LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_cache_extended
+ ON (e.id = ep_cache_extended.entryid AND ep_cache_extended.property = 'ep_cache_extended')";
+ $joins[] = " LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_cache_body
+ ON (e.id = ep_cache_body.entryid AND ep_cache_body.property = 'ep_cache_body')";
}
- $joins[] = "LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_access
- ON (e.id = ep_access.entryid AND ep_access.property = 'ep_access')";
+ $joins[] = " LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_access
+ ON (e.id = ep_access.entryid AND ep_access.property = 'ep_access')";
if ($use_groups) {
- $joins[] = "LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_access_groups
- ON (e.id = ep_access_groups.entryid AND ep_access_groups.property = 'ep_access_groups')";
+ $joins[] = " LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_access_groups
+ ON (e.id = ep_access_groups.entryid AND ep_access_groups.property = 'ep_access_groups')";
}
if ($use_users) {
- $joins[] = "LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_access_users
- ON (e.id = ep_access_users.entryid AND ep_access_users.property = 'ep_access_users')";
+ $joins[] = " LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties ep_access_users
+ ON (e.id = ep_access_users.entryid AND ep_access_users.property = 'ep_access_users')";
}
if (!isset($addData['noSticky']) || $addData['noSticky'] !== true) {
- $joins[] = "LEFT JOIN {$serendipity['dbPrefix']}entryproperties ep_sticky
- ON (e.id = ep_sticky.entryid AND ep_sticky.property = 'ep_is_sticky')";
+ $joins[] = " LEFT JOIN {$serendipity['dbPrefix']}entryproperties ep_sticky
+ ON (e.id = ep_sticky.entryid AND ep_sticky.property = 'ep_is_sticky')";
}
$cond = implode("\n", $joins);
include_once(S9Y_INCLUDE_PATH . 'include/compat.inc.php');
// The version string
-$serendipity['version'] = '0.9-alpha4';
+$serendipity['version'] = '0.9-alpha5';
// Name of folder for the default theme
$serendipity['defaultTemplate'] = 'default';
CREATE INDEX authorgroup_idxA ON {PREFIX}authorgroups (groupid);
CREATE INDEX authorgroup_idxB ON {PREFIX}authorgroups (authorid);
+create table {PREFIX}access (
+ groupid int(10) {UNSIGNED} not null default '0',
+ artifact_id int(10) {UNSIGNED} not null default '0',
+ artifact_type varchar(64) NOT NULL default '',
+ artifact_mode varchar(64) NOT NULL default '',
+ artifact_index varchar(64) NOT NULL default ''
+);
+
+CREATE INDEX accessgroup_idx ON {PREFIX}access(groupid);
+CREATE INDEX accessgroupT_idx ON {PREFIX}access(artifact_id,artifact_type,artifact_mode);
+CREATE INDEX accessforeign_idx ON {PREFIX}access(artifact_id);
+
+
#
# table structure for table '{PREFIX}comments'
#
--- /dev/null
+create table {PREFIX}access (
+ groupid int(10) {UNSIGNED} not null default '0',
+ artifact_id int(10) {UNSIGNED} not null default '0',
+ artifact_type varchar(64) NOT NULL default '',
+ artifact_mode varchar(64) NOT NULL default '',
+ artifact_index varchar(64) NOT NULL default ''
+);
+
+CREATE INDEX accessgroup_idx ON {PREFIX}access(groupid);
+CREATE INDEX accessgroupT_idx ON {PREFIX}access(artifact_id,artifact_type,artifact_mode);
+CREATE INDEX accessforeign_idx ON {PREFIX}access(artifact_id);
+