Compare commits
86 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 80676e4c91 | |||
| ee21a59222 | |||
| 902d1799fc | |||
| 05840cb189 | |||
| 6c15c802d5 | |||
| 62543dbd28 | |||
| ef1279fbec | |||
| c66451e203 | |||
| 64b5d56e00 | |||
| 891b72574c | |||
| 6a8e9637f1 | |||
| b446e6333f | |||
| 6ad0f0514f | |||
| 37a04ec0a9 | |||
| 5340fe4507 | |||
| b9037fb158 | |||
| 2b0f489e39 | |||
| a2d7383c79 | |||
| c7c6a08c10 | |||
| b0971b67e9 | |||
| b22d51fbc0 | |||
| 3d4e6b8f65 | |||
| 364dda8595 | |||
| 0562dc0ca6 | |||
| 9155a7b8a4 | |||
| cb7819b4d9 | |||
| a5f28d3eb0 | |||
| d4b1f7cd35 | |||
| a32bcadd75 | |||
| 25931b33c7 | |||
| c9a7a44334 | |||
| d319b9677b | |||
| 1632a172f3 | |||
| 95c71c36c9 | |||
| 9709592b7c | |||
| 307f1c3dad | |||
| 1f31fd19c3 | |||
| 67aea1b623 | |||
| d462580606 | |||
| 6accc81ad6 | |||
| 3bf067c6ea | |||
| ac81762eaa | |||
| 5934de7a4e | |||
| 89351eb77b | |||
| a45c545ee3 | |||
| d319ad16f1 | |||
| 66494fdbe3 | |||
| cad25673cf | |||
| 4daa718362 | |||
| a1677ff0eb | |||
| 15bc67ce8d | |||
| d7b4e93292 | |||
| 26c7f9af75 | |||
| 4b1641b5bf | |||
| 2ea886396b | |||
| 4a8616214f | |||
| 5f8744e414 | |||
| a2ad0bd9b5 | |||
| d36895b321 | |||
| f55c17ee4f | |||
| 38a7a3f60b | |||
| 2b9616276f | |||
| f26a306026 | |||
| f30de8449f | |||
| ae0077f836 | |||
| 63217ef9c9 | |||
| ce191330c8 | |||
| 9a27978179 | |||
| b653ed867c | |||
| 7e6027ebf9 | |||
| 7ce5408609 | |||
| e2c0c82aeb | |||
| 40113925b6 | |||
| a3a2b51848 | |||
| f944eb4cd3 | |||
| 2e5e601ea2 | |||
| 1bc7c4bd0f | |||
| 4e662bf17c | |||
| cd3464be70 | |||
| b88f789655 | |||
| 19fe3715bd | |||
| 2d4285bd52 | |||
| 71331f5e07 | |||
| 90b35f7933 | |||
| 15f0be45a2 | |||
| 0240816507 |
@@ -22,3 +22,4 @@ DEADJOE
|
||||
.editorconfig
|
||||
*.git
|
||||
tests/phpunit.xml
|
||||
vagrant/*
|
||||
|
||||
@@ -1,4 +1,152 @@
|
||||
Version 2.3.0 (10.08.2019)
|
||||
Version 2.3.5 (April 25th, 2020)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* Fix: CSS: Restrict block display of summary to trackbacks. (#703)
|
||||
|
||||
* Fix: Don't strip HTML from comments body in serendipity_plugin_comments
|
||||
before serendipity_event_unstrip_tags can convert the HTML tags
|
||||
(being called via frontend_display hook). (#702)
|
||||
|
||||
* Fix: [CKE] Don't remove <details> and <summary> elements from
|
||||
WYSIWYG editor.
|
||||
|
||||
* Fix: Don't delete extend properties from the entryproperties
|
||||
plugin when publishing from dashboard (or sending
|
||||
delayed trackbacks). (#695)
|
||||
|
||||
* Fix: SQL error in serendipity_plugin_history present since we
|
||||
"don't allow requesting an archive page that doesn't exist"
|
||||
(2.3.3). (#694)
|
||||
|
||||
* Fix: Entry title in backend list of entries was double escaped.
|
||||
|
||||
* Fix: Don't drop upgraded_version from local plugin cache.
|
||||
|
||||
* Fix: Regular expression in functions_routing.inc.php
|
||||
|
||||
* Fix: Truncate extension of media items to 5 chars (which ist the
|
||||
max length of the corresponding database field). (#609)
|
||||
Thanks to @mmitch!
|
||||
|
||||
Version 2.3.4 (March 25th, 2020)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* Security: Fix RCE on Windows.
|
||||
Thanks to Junyu Zhang <rgdz.eye@gmail.com>!
|
||||
|
||||
* Fix: ML: Fixed filename generation when renaming and added
|
||||
some error messages on rename failures.
|
||||
|
||||
* Display source of plugins (Spartacus, bundled or locally installed).
|
||||
|
||||
Version 2.3.3 (March 22nd, 2020)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* #651: When using checkboxes to insert multiple media files, if only
|
||||
one asset has been selected, do not use the gallery mode,
|
||||
but instead single-asset view. Also improves to click the title
|
||||
of an asset to select its checkbox, and hides the 'Insert all'
|
||||
button when no assets are selected. (garvinhicking)
|
||||
|
||||
* Use the video tag for videos in the Medialibrary, also when
|
||||
inserting such a video into an entry
|
||||
|
||||
* media_choose.tpl: Fixes bad usage of
|
||||
{serendipity_hookPlugin eventData=...} to {serendipity_hookPlugin eventData=}
|
||||
and allow plugins to skip HTML block insertion to use their own
|
||||
markup
|
||||
|
||||
* Updates mailer event plugin to support force sending mails on
|
||||
published blog entries and ability to prepend a mail body.
|
||||
Also fixes missing "keep strip tags" configuration option
|
||||
|
||||
* Fix serendipity_killPath().
|
||||
Thanks to @surrim!
|
||||
|
||||
* Don't allow requesting an archive page that doesn't exist.
|
||||
Thanks to @lotharsm!
|
||||
|
||||
* Fix: Set action to empty in functions_routing.php when serving JS;
|
||||
otherwise the default page has been generated at every call.
|
||||
|
||||
* Fix: Add valid HTTP referrer when trying to delete a
|
||||
trackback from the frontend.
|
||||
|
||||
* Fix: Wordwrap at word boundaries only in bundled plugin
|
||||
serendipity_plugin_comments.
|
||||
|
||||
* Fix: Force empty limit to "" in serendipity_fetchEntries().
|
||||
|
||||
* Fix: Escape version string in update notifier to avoid XSS.
|
||||
|
||||
* Fix: Prevent renaming a ML object into an existing file,
|
||||
resulting in deletion of both from disk and database.
|
||||
|
||||
* Fix: Items in Medialibrary that are not images now get
|
||||
the correct link
|
||||
|
||||
* Fix: Remember where you stored images last (#652)
|
||||
|
||||
* Fix: [bbcode] Get roman numerals working in bbcode plugin.
|
||||
Thanks to Fabien Chabreuil!
|
||||
|
||||
* Fix: Force positive limits for number of entries shown on
|
||||
title page and in RSS feed. s9y doesn't work with 0 or
|
||||
negative numbers, so force our default (15) in this case,
|
||||
(#646)
|
||||
|
||||
Version 2.3.2 (October 16th, 2019)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* Fix: Auto-generated mails submitted to qmail as MTA will get
|
||||
mangled if encoded to quoted-printable due to qmail
|
||||
changing "\r\n" linebreaks to "\r\r\n". Submit just "\n"
|
||||
as linebreaks; other MTAs should cope with that.
|
||||
|
||||
* fix: Rotating an image did not rotate all responsive thumbnails
|
||||
|
||||
* fix: The wysiwyg editor stripped the figcaption element used
|
||||
for image captions
|
||||
|
||||
* Only populate $serendipity['GET'], $serendipity['POST'] and
|
||||
$serendipity['COOKIE'] with references to $_GET['serendipity'],
|
||||
$_POST['serendipity'], $_COOKIE['serendipity'] if they are
|
||||
transmitted as an array. Else, an empty array is used.
|
||||
Prevents PHP warnings (Issue 642) thanks to @hannob
|
||||
|
||||
* Escape category images to avoid backend XSS.
|
||||
Thanks to @hannob!
|
||||
|
||||
* Only allows .txt and .log files for spamblock logging.
|
||||
Thanks to Gary O'Leary-Steele (CVE TBD)
|
||||
|
||||
* Fixes not properly displaying plugin save errors (validation)
|
||||
|
||||
* Fix autologin when using MySQL (thanks @Eike Rathke,
|
||||
https://github.com/s9y/Serendipity/pull/632)
|
||||
|
||||
Version 2.3.1 (August 21st, 2019)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* Enhance i18n of ML multimove.
|
||||
|
||||
* Fix ML multidelete.
|
||||
|
||||
* Change footer_info and prev/next links for archive pages for
|
||||
"stable archives" sort order.
|
||||
|
||||
* Fix pagination in core for "stable archives" sort order and fix
|
||||
prev/next links for pagination in timeline and bulletproof themes
|
||||
when "stable archives" are active.
|
||||
|
||||
* Add Spartacus links ("more info") to plugin lists.
|
||||
|
||||
* Fix/Change: Wording of plugin display ("version") and PHP/smarty
|
||||
variable names.
|
||||
|
||||
* Spartacus: Fix caching of plugin lists in getCachedPlugins().
|
||||
|
||||
Version 2.3.0 (August 10th, 2019)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* Fix: Don't show "Array" under Update notification if autoupdate
|
||||
@@ -6,7 +154,7 @@ Version 2.3.0 (10.08.2019)
|
||||
|
||||
* Fix PHP 7.4 issue in PEAR HTTP_Request2
|
||||
|
||||
Version 2.3-rc1 (03.08.2019)
|
||||
Version 2.3-rc1 (August 3rd, 2019)
|
||||
------------------------------------------------------------------------
|
||||
|
||||
* spamblock: Minor code change for PHP 7.4 compatibility (thanks
|
||||
@@ -16,14 +164,14 @@ Version 2.3-rc1 (03.08.2019)
|
||||
|
||||
* bulletproof theme: Fix preview iframe.
|
||||
|
||||
Version 2.3-beta1 (26.04.2019)
|
||||
Version 2.3-beta1 (April 26th 2019)
|
||||
------------------------------------------------------------------------
|
||||
* Activate stablearchive option by default for new blogs
|
||||
|
||||
* Fix: Smarty reference and PHP7.2 compatibility issue in timeline theme.
|
||||
|
||||
|
||||
* Fix: PHP7.2 compatibility issue in clean-blog theme.
|
||||
|
||||
|
||||
* Security: Fix XSS in Editor Preview by interpreted EXIF tags
|
||||
(thanks @hannob!)
|
||||
|
||||
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
stable:2.3.0
|
||||
beta:2.3.0
|
||||
stable:2.3.5
|
||||
beta:2.3.5
|
||||
|
||||
@@ -63,9 +63,10 @@ CKEDITOR.editorConfig = function( config ) {
|
||||
- Allowed <span> to make life a bit easier!
|
||||
- Reset <img[height,width]> Media Library image inserts to avoid ACF OFF removement of height attributes. (Dependency in ckeditor_s9y_plugin.js)
|
||||
- Allow <pre[*attributes](*classes)> for custom attributes/classes in code blocks
|
||||
- Allow <details> and <summary>
|
||||
*/
|
||||
// protect
|
||||
config.extraAllowedContent = 'mediainsert[*]{*}(*);gallery[*]{*}(*);media[*]{*}(*);script[*]{*}(*);audio[*]{*}(*);div[*]{*}(*);span[*]{*}(*);img[height,width];pre[*](*);code;';
|
||||
config.extraAllowedContent = 'mediainsert[*]{*}(*);gallery[*]{*}(*);media[*]{*}(*);script[*]{*}(*);audio[*]{*}(*);div[*]{*}(*);span[*]{*}(*);img[height,width];pre[*](*);code;figure[*]{*}(*);figcaption[*]{*}(*);details[*]{*}(*);summary[*]{*}(*);';
|
||||
// Do not use auto paragraphs, added to these allowed tags (only!). Please regard that this was marked deprecated by CKE 4.4.5, but is a need for (our use of) extraAllowedContent - check this again by future versions!
|
||||
config.autoParagraph = false; // defaults(true)
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ switch ($serendipity['GET']['adminAction']) {
|
||||
break;
|
||||
}
|
||||
// case bulk multimove (leave the fake oldDir being send as an empty dir)
|
||||
if (isset($serendipity['POST']['newDir'])) {
|
||||
if (!empty($serendipity['POST']['newDir'])) {
|
||||
$messages = array();
|
||||
$multiMoveImages = $serendipity['POST']['multiDelete']; // The 'multiDelete' key name should better be renamed to 'multiCheck', but this would need to change 2k11/admin/serendipity_editor.js, images.inc.tpl, media_items.tpl, media_pane.tpl and this file
|
||||
unset($serendipity['POST']['multiDelete']);
|
||||
@@ -181,7 +181,11 @@ switch ($serendipity['GET']['adminAction']) {
|
||||
if (!serendipity_checkFormToken() || !serendipity_checkPermission('adminImagesDelete')) {
|
||||
return;
|
||||
}
|
||||
serendipity_renameFile($serendipity['GET']['fid'], $serendipity['GET']['newname']);
|
||||
$result = serendipity_renameFile($serendipity['GET']['fid'], $serendipity['GET']['newname']);
|
||||
if (!empty($result) && $result !== TRUE) {
|
||||
# serendipity_renameFile returned an error
|
||||
$data['messages'] = $result;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'properties':
|
||||
|
||||
@@ -155,6 +155,7 @@ if (isset($_GET['serendipity']['plugin_to_conf'])) {
|
||||
$data['adminAction'] = 'addnew';
|
||||
$data['type'] = $serendipity['GET']['type'];
|
||||
|
||||
# get plugin data from Spartacus
|
||||
$foreignPlugins = $pluginstack = $errorstack = array();
|
||||
serendipity_plugin_api::hook_event('backend_plugins_fetchlist', $foreignPlugins);
|
||||
$pluginstack = array_merge((array)$foreignPlugins['pluginstack'], $pluginstack);
|
||||
@@ -173,6 +174,7 @@ if (isset($_GET['serendipity']['plugin_to_conf'])) {
|
||||
$foreignPlugins = array_merge($foreignPlugins, $foreignPluginsTemp);
|
||||
}
|
||||
|
||||
# load data for installed plugins
|
||||
$plugins = serendipity_plugin_api::get_installed_plugins();
|
||||
$classes = serendipity_plugin_api::enum_plugin_classes(($serendipity['GET']['type'] === 'event'));
|
||||
if ($serendipity['GET']['only_group'] == 'UPGRADE') {
|
||||
@@ -192,7 +194,7 @@ if (isset($_GET['serendipity']['plugin_to_conf'])) {
|
||||
$plugin->introspect($bag);
|
||||
|
||||
// If a foreign plugin is upgradable, keep the new version number.
|
||||
if (isset($foreignPlugins['pluginstack'][$class_data['name']]) && $foreignPlugins['pluginstack'][$class_data['name']]['upgradable']) {
|
||||
if (isset($foreignPlugins['pluginstack'][$class_data['name']]) && isset($foreignPlugins['pluginstack'][$class_data['name']]['upgrade_version'])) {
|
||||
$class_data['upgrade_version'] = $foreignPlugins['pluginstack'][$class_data['name']]['upgrade_version'];
|
||||
}
|
||||
|
||||
@@ -237,7 +239,6 @@ if (isset($_GET['serendipity']['plugin_to_conf'])) {
|
||||
$props['local_documentation'] = 'plugins/' . $props['pluginPath'] . '/README';
|
||||
}
|
||||
}
|
||||
|
||||
$pluginstack[$class_data['true_name']] = $props;
|
||||
} else {
|
||||
// False is returned if a plugin could not be instantiated
|
||||
@@ -249,6 +250,18 @@ if (isset($_GET['serendipity']['plugin_to_conf'])) {
|
||||
$pluggroups = array();
|
||||
$pluggroups[''] = array();
|
||||
foreach($pluginstack AS $plugname => $plugdata) {
|
||||
# add pluginsource to pluginstack
|
||||
if (isset($foreignPlugins['pluginstack'][$plugdata['class_name']])) {
|
||||
# remote plugin
|
||||
$plugdata['pluginsource'] = 'Spartacus';
|
||||
} elseif (serendipity_plugin_api::is_bundled_plugin($plugdata['class_name'])) {
|
||||
# bundled plugin
|
||||
$plugdata['pluginsource'] = PLUGIN_SOURCE_BUNDLED;
|
||||
} else {
|
||||
# everything else must be "local"
|
||||
$plugdata['pluginsource'] = PLUGIN_SOURCE_LOCAL;
|
||||
}
|
||||
# create pluggroups
|
||||
if ($serendipity['GET']['only_group'] == 'ALL') {
|
||||
$pluggroups['ALL'][] = $plugdata;
|
||||
} elseif ($serendipity['GET']['only_group'] == 'UPGRADE' && $plugdata['upgradable']) {
|
||||
@@ -308,7 +321,7 @@ if (isset($_GET['serendipity']['plugin_to_conf'])) {
|
||||
|
||||
}
|
||||
}
|
||||
$data['requirements_failues'] = $requirement_failures;
|
||||
$data['requirement_failures'] = $requirement_failures;
|
||||
} elseif ( $serendipity['GET']['adminAction'] == 'renderOverlay' ) {
|
||||
$data['adminAction'] = 'overlay';
|
||||
} else {
|
||||
|
||||
+24
-6
@@ -156,18 +156,18 @@ if (!function_exists('errorToExceptionHandler')) {
|
||||
break;
|
||||
}
|
||||
|
||||
// NOTE: We do NOT use ini_get('error_reporting'), because that would return the global error reporting,
|
||||
// NOTE: We do NOT use ini_get('error_reporting'), because that would return the global error reporting,
|
||||
// and not the one in our current content. @-silenced errors would otherwise never be caught on.
|
||||
$rep = error_reporting();
|
||||
|
||||
// Bypass error processing because it's @-silenced.
|
||||
if ($rep == 0) {
|
||||
return false;
|
||||
if ($rep == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// if not using Serendipity testing and user or ISP has set PHPs display_errors to show no errors at all, respect this:
|
||||
if ($serendipity['production'] === true && ini_get('display_errors') == 0) {
|
||||
return false;
|
||||
if ($serendipity['production'] === true && ini_get('display_errors') == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Several plugins might not adapt to proper style. This should not completely kill our execution.
|
||||
@@ -178,7 +178,7 @@ if (!function_exists('errorToExceptionHandler')) {
|
||||
|
||||
$args = func_get_args();
|
||||
|
||||
/*
|
||||
/*
|
||||
* $serendipity['production'] can be:
|
||||
*
|
||||
* (bool) TRUE: Live-blog, conceal error messages
|
||||
@@ -373,8 +373,26 @@ if (ini_get('magic_quotes_gpc')) {
|
||||
}
|
||||
|
||||
// Merge get and post into the serendipity array
|
||||
// It is vital that also an empty array is mapped as a reference
|
||||
// because the s9y core actually sets new array key values sometimes in $_GET and
|
||||
// sometimes in $serendipity['GET'] (and POST/COOKIE).
|
||||
// TODO: This is being worked on currently to be unified see #650
|
||||
if (!array_key_exists('serendipity', $_GET) || !is_array($_GET['serendipity'])) {
|
||||
$_GET['serendipity'] = array();
|
||||
}
|
||||
|
||||
$serendipity['GET'] = &$_GET['serendipity'];
|
||||
|
||||
if (!array_key_exists('serendipity', $_POST) || !is_array($_POST['serendipity'])) {
|
||||
$_POST['serendipity'] = array();
|
||||
}
|
||||
|
||||
$serendipity['POST'] = &$_POST['serendipity'];
|
||||
|
||||
if (!array_key_exists('serendipity', $_COOKIE) || !is_array($_COOKIE['serendipity'])) {
|
||||
$_COOKIE['serendipity'] = array();
|
||||
}
|
||||
|
||||
$serendipity['COOKIE'] = &$_COOKIE['serendipity'];
|
||||
|
||||
// Attempt to fix IIS compatibility
|
||||
|
||||
@@ -538,7 +538,7 @@ function serendipity_sendMail($to, $subject, $message, $fromMail, $headers = NUL
|
||||
if (LANG_CHARSET == 'UTF-8') {
|
||||
if (function_exists('imap_8bit') && !$serendipity['forceBase64']) {
|
||||
$maildata['headers'][] = 'Content-Transfer-Encoding: quoted-printable';
|
||||
$maildata['message'] = imap_8bit($maildata['message']);
|
||||
$maildata['message'] = str_replace("\r\n","\n",imap_8bit($maildata['message']));
|
||||
} else {
|
||||
$maildata['headers'][] = 'Content-Transfer-Encoding: base64';
|
||||
$maildata['message'] = chunk_split(base64_encode($maildata['message']));
|
||||
|
||||
@@ -435,8 +435,11 @@ function serendipity_issueAutologin($user) {
|
||||
// Delete possible current cookie. Also delete any autologin keys that smell like 3-week-old, dead fish.
|
||||
if (stristr($serendipity['dbType'], 'sqlite')) {
|
||||
$cast = "okey";
|
||||
} elseif (stristr($serendipity['dbType'], 'mysqli')) {
|
||||
// Adds explicit casting for mysql.
|
||||
$cast = "cast(okey as unsigned)";
|
||||
} else {
|
||||
// Adds explicits casting for mysql, postgresql and others.
|
||||
// Adds explicit casting for postgresql and others.
|
||||
$cast = "cast(okey as integer)";
|
||||
}
|
||||
|
||||
@@ -460,8 +463,11 @@ function serendipity_checkAutologin($user) {
|
||||
|
||||
if (stristr($serendipity['dbType'], 'sqlite')) {
|
||||
$cast = "okey";
|
||||
} elseif (stristr($serendipity['dbType'], 'mysqli')) {
|
||||
// Adds explicit casting for mysql.
|
||||
$cast = "cast(okey as unsigned)";
|
||||
} else {
|
||||
// Adds explicits casting for mysql, postgresql and others.
|
||||
// Adds explicit casting for postgresql and others.
|
||||
$cast = "cast(okey as integer)";
|
||||
}
|
||||
|
||||
|
||||
@@ -404,10 +404,31 @@ function &serendipity_fetchEntries($range = null, $full = true, $limit = '', $fe
|
||||
|
||||
if (!empty($limit)) {
|
||||
if (isset($serendipity['GET']['page']) && ($serendipity['GET']['page'] > 1 || serendipity_db_bool($serendipity['archiveSortStable'])) && !strstr($limit, ',')) {
|
||||
if (serendipity_db_bool($serendipity['archiveSortStable'])) {
|
||||
$totalEntries = serendipity_getTotalEntries();
|
||||
|
||||
$totalPages = ceil($totalEntries / $limit);
|
||||
// serendipity_fetchEntries() is mostly called in page context to
|
||||
// deliver a list of entries to display on archive, search result
|
||||
// or other pages, where $limit means the number of entries to
|
||||
// display on each page. This code depends on that notion,
|
||||
// catches request for non-existing pages and applies
|
||||
// pagination.
|
||||
// If you don't work in a page context, e.g. you just want to fetch
|
||||
// a list of entries to display in a sidebar, you should think
|
||||
// about saving and unsetting $serendipity['GET']['page'] before
|
||||
// calling serendipity_fetchEntries() and reset it to the saved
|
||||
// value afterwards.
|
||||
// See https://github.com/s9y/Serendipity/issues/693 for context.
|
||||
|
||||
$totalEntries = serendipity_getTotalEntries();
|
||||
$totalPages = ceil($totalEntries / $limit);
|
||||
|
||||
// Do not allow requesting a page that doesn't exist
|
||||
// and do a fallback to the highest page number available
|
||||
if ($totalPages > 0 && $serendipity['GET']['page'] > $totalPages) {
|
||||
$serendipity['GET']['page'] = $totalPages;
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($serendipity['archiveSortStable'])) {
|
||||
|
||||
if ($totalPages <= 0 ) {
|
||||
$totalPages = 1;
|
||||
}
|
||||
@@ -425,6 +446,15 @@ function &serendipity_fetchEntries($range = null, $full = true, $limit = '', $fe
|
||||
}
|
||||
|
||||
$limit = serendipity_db_limit_sql($limit);
|
||||
|
||||
} else {
|
||||
# if $limit was empty(), no limit was set;
|
||||
# but empty() may also mean FALSE, "" or 0,
|
||||
# so set it to "" to remove the LIMIT
|
||||
# statement completely; should catch errors
|
||||
# with a limit of 0 and some database drivers
|
||||
# see <https://github.com/s9y/Serendipity/issues/636>
|
||||
$limit = '';
|
||||
}
|
||||
|
||||
$query = "SELECT $select_key
|
||||
@@ -973,13 +1003,9 @@ function serendipity_printEntryFooter($suffix = '.html', $totalEntries = null) {
|
||||
$uriArguments[] = 'P%s';
|
||||
$serendipity['smarty']->assign('footer_totalEntries', $totalEntries);
|
||||
$serendipity['smarty']->assign('footer_totalPages', $totalPages);
|
||||
if (serendipity_db_bool($serendipity['archiveSortStable']) && $serendipity['GET']['action'] != 'search') {
|
||||
$serendipity['smarty']->assign('footer_currentPage', $totalPages - $serendipity['GET']['page']);
|
||||
} else {
|
||||
$serendipity['smarty']->assign('footer_currentPage', $serendipity['GET']['page']);
|
||||
}
|
||||
$serendipity['smarty']->assign('footer_currentPage', $serendipity['GET']['page']);
|
||||
$serendipity['smarty']->assign('footer_pageLink', str_replace('%2A', '*', serendipity_rewriteURL(implode('/', $uriArguments) . $suffix)));
|
||||
$serendipity['smarty']->assign('footer_info', sprintf(PAGE_BROWSE_ENTRIES, serendipity_db_bool($serendipity['archiveSortStable']) && $serendipity['GET']['action'] != 'search' ? $totalPages - (int)$serendipity['GET']['page'] +1 : (int)$serendipity['GET']['page'], $totalPages, $totalEntries));
|
||||
$serendipity['smarty']->assign('footer_info', sprintf(PAGE_BROWSE_ENTRIES, (int)$serendipity['GET']['page'], $totalPages, $totalEntries));
|
||||
|
||||
if ($serendipity['GET']['page'] < $totalPages) {
|
||||
$uriArguments = $serendipity['uriArguments'];
|
||||
@@ -987,11 +1013,6 @@ function serendipity_printEntryFooter($suffix = '.html', $totalEntries = null) {
|
||||
$serendipity['smarty']->assign('footer_next_page', serendipity_rewriteURL(str_replace('//', '/', implode('/', $uriArguments)) . $suffix));
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($serendipity['archiveSortStable']) && $serendipity['GET']['action'] != 'search') {
|
||||
$temp = $serendipity['smarty']->getTemplateVars('footer_prev_page');
|
||||
$serendipity['smarty']->assign('footer_prev_page', $serendipity['smarty']->getTemplateVars('footer_next_page'));
|
||||
$serendipity['smarty']->assign('footer_next_page', $temp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -309,7 +309,7 @@ function serendipity_updateImageInDatabase($updates, $id) {
|
||||
foreach ($updates AS $k => $v) {
|
||||
$q[] = $k ." = '" . serendipity_db_escape_string($v) . "'";
|
||||
}
|
||||
serendipity_db_query("UPDATE {$serendipity['dbPrefix']}images SET ". implode($q, ',') ." WHERE id = " . (int)$id . " $admin");
|
||||
serendipity_db_query("UPDATE {$serendipity['dbPrefix']}images SET ". implode(',', $q) ." WHERE id = " . (int)$id . " $admin");
|
||||
$i++;
|
||||
|
||||
// Check if this update changes important directory or filename attributes.
|
||||
@@ -807,16 +807,19 @@ function serendipity_rotateImg($id, $degrees) {
|
||||
}
|
||||
|
||||
$infile = $outfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']);
|
||||
$infileThumb = $outfileThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . (empty($file['extension']) ? '' : '.' . $file['extension']);
|
||||
$thumbnails = serendipity_getThumbnails($id);
|
||||
|
||||
if ($serendipity['magick'] !== true) {
|
||||
serendipity_rotate_image_gd($infile, $outfile, $degrees);
|
||||
serendipity_rotate_image_gd($infileThumb, $outfileThumb, $degrees);
|
||||
foreach($thumbnails as $thumbnail) {
|
||||
$infileThumb = $outfileThumb = $thumbnail;
|
||||
serendipity_rotate_image_gd($infileThumb, $outfileThumb, $degrees);
|
||||
}
|
||||
} else {
|
||||
/* Why can't we just all agree on the rotation direction? */
|
||||
$degrees = (360 - $degrees);
|
||||
|
||||
/* Resize main image */
|
||||
/* rotate main image */
|
||||
$cmd = escapeshellcmd($serendipity['convert']) . ' -rotate ' . serendipity_escapeshellarg($degrees) . ' ' . serendipity_escapeshellarg($infile) . ' ' . serendipity_escapeshellarg($outfile);
|
||||
exec($cmd, $output, $result);
|
||||
if ( $result != 0 ) {
|
||||
@@ -824,13 +827,16 @@ function serendipity_rotateImg($id, $degrees) {
|
||||
}
|
||||
unset($output, $result);
|
||||
|
||||
/* Resize thumbnail */
|
||||
$cmd = escapeshellcmd($serendipity['convert']) . ' -rotate ' . serendipity_escapeshellarg($degrees) . ' ' . serendipity_escapeshellarg($infileThumb) . ' ' . serendipity_escapeshellarg($outfileThumb);
|
||||
exec($cmd, $output, $result);
|
||||
if ( $result != 0 ) {
|
||||
echo '<span class="msg_error"><span class="icon-attention-circled" aria-hidden="true"></span> ' . sprintf(IMAGICK_EXEC_ERROR, $cmd, $output[0], $result) ."</span>\n";
|
||||
/* rotate thumbnail */
|
||||
foreach($thumbnails as $thumbnail) {
|
||||
$infileThumb = $outfileThumb = $thumbnail;
|
||||
$cmd = escapeshellcmd($serendipity['convert']) . ' -rotate ' . serendipity_escapeshellarg($degrees) . ' ' . serendipity_escapeshellarg($infileThumb) . ' ' . serendipity_escapeshellarg($outfileThumb);
|
||||
exec($cmd, $output, $result);
|
||||
if ( $result != 0 ) {
|
||||
echo '<span class="msg_error"><span class="icon-attention-circled" aria-hidden="true"></span> ' . sprintf(IMAGICK_EXEC_ERROR, $cmd, $output[0], $result) ."</span>\n";
|
||||
}
|
||||
unset($output, $result);
|
||||
}
|
||||
unset($output, $result);
|
||||
|
||||
}
|
||||
|
||||
@@ -1833,6 +1839,7 @@ function serendipity_killPath($basedir, $directory = '', $forceDelete = false) {
|
||||
static $serious = true;
|
||||
|
||||
if ($handle = @opendir($basedir . $directory)) {
|
||||
$filestack = [];
|
||||
while (false !== ($file = @readdir($handle))) {
|
||||
if ($file != '.' && $file != '..') {
|
||||
if (is_dir($basedir . $directory . $file)) {
|
||||
@@ -2020,6 +2027,7 @@ function serendipity_uploadSecure($var, $strip_paths = true, $append_slash = fal
|
||||
|
||||
$var = str_replace(' ', '_', $var);
|
||||
$var = preg_replace('@[^0-9a-z\._/-]@i', '', $var);
|
||||
$var = preg_replace('@\.+$@i', '', $var); # remove trailing dots
|
||||
if ($strip_paths) {
|
||||
$var = preg_replace('@(\.+[/\\\\]+)@', '/', $var);
|
||||
}
|
||||
@@ -2032,6 +2040,13 @@ function serendipity_uploadSecure($var, $strip_paths = true, $append_slash = fal
|
||||
}
|
||||
}
|
||||
|
||||
# truncate extensions to 5 chars
|
||||
# 1) (\.[^./\\\]{5}) up to five chars after a dot are captured
|
||||
# 2) expression matches only if followed by anything that is no dot
|
||||
# and has no / or \ at the end
|
||||
# 3) if epxression matches, everything after the capture group is deleted
|
||||
$var = preg_replace('@(\.[^./\\\]{5})[^./\\\]+$@', '$1', $var);
|
||||
|
||||
return $var;
|
||||
}
|
||||
|
||||
@@ -2252,14 +2267,29 @@ function serendipity_renameFile($id, $newName, $path = null) {
|
||||
$newName = serendipity_uploadSecure(serendipity_makeFilename($newName), true);
|
||||
$imgBase = $serendipity['serendipityPath'] . $serendipity['uploadPath'];
|
||||
|
||||
$newPath = "{$imgBase}{$path}{$newName}.{$file['extension']}";
|
||||
$newPath = $imgBase . $path . $newName . (empty($file['extension']) ? '' : '.' . $file['extension']);
|
||||
|
||||
if (serendipity_isActiveFile($newPath)) {
|
||||
return sprintf('<span class="msg_error"><span class="icon-attention-circled" aria-hidden="true"></span> ' . ERROR_FILE_FORBIDDEN . "</span>\n", $newName);
|
||||
}
|
||||
|
||||
if (file_exists($newPath)) {
|
||||
return sprintf('<span class="msg_error"><span class="icon-attention-circled" aria-hidden="true"></span> ' . ERROR_FILE_EXISTS . "</span>\n", $newName);
|
||||
}
|
||||
|
||||
rename("{$imgBase}{$file['path']}{$file['realname']}", $newPath);
|
||||
|
||||
serendipity_renameThumbnails($id, "{$path}$newName");
|
||||
|
||||
serendipity_updateImageInDatabase(array('name' => $newName, 'realname' => basename($newPath)), $id);
|
||||
serendipity_updateImageInEntries($id, $file);
|
||||
if (rename("{$imgBase}{$file['path']}{$file['realname']}", $newPath)) {
|
||||
# if renaming was successfull, rename thumbnails and update
|
||||
# databases and entries
|
||||
|
||||
serendipity_renameThumbnails($id, "{$path}$newName");
|
||||
|
||||
serendipity_updateImageInDatabase(array('name' => $newName, 'realname' => basename($newPath)), $id);
|
||||
serendipity_updateImageInEntries($id, $file);
|
||||
} else {
|
||||
return '<span class="msg_error"><span class="icon-attention-circled" aria-hidden="true"></span> ' . MEDIA_RENAME_FAILED . "</span>\n";
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -156,7 +156,17 @@ function show_plugins($event_only = false, $sidebars = null)
|
||||
$desc = '<details class="plugin_data">';
|
||||
$desc .= '<summary><var class="perm_name">'.$cname[0].'</var></summary>';
|
||||
$desc .= '<div class="plugin_desc clearfix">' . serendipity_specialchars($bag->get('description')) . '</div>';
|
||||
$desc .= '<span class="block_level">' . VERSION . ': ' . $bag->get('version') . '</span>';
|
||||
if (!empty($plugin_data['path'])) {
|
||||
if ($event_only) {
|
||||
$spartacus_type = 'event';
|
||||
} else {
|
||||
$spartacus_type = 'sidebar';
|
||||
}
|
||||
$desc .= sprintf('<span class="block_level"><a href="http://spartacus.s9y.org/index.php?mode=bygroups_%s_%s#%s">%s</a></span>',
|
||||
$spartacus_type, $serendipity['lang'], $plugin_data['path'], (defined('PLUGIN_LINK_SPARTACUS') ? PLUGIN_LINK_SPARTACUS : 'PLUGIN_LINK_SPARTACUS'));
|
||||
}
|
||||
$desc .= '<span class="block_level"><b>' . ucfirst(AUTHOR) . '</b>: ' . serendipity_specialchars($bag->get('author')) . '</span>';
|
||||
$desc .= '<span class="block_level"><b>' . ucfirst(VERSION) . '</b>: ' . $bag->get('version') . '</span>';
|
||||
$desc .= '</details>';
|
||||
|
||||
$title = serendipity_plugin_api::get_plugin_title($plugin, '[' . $name . ']');
|
||||
|
||||
@@ -78,7 +78,7 @@ function serveComments() {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (preg_match('@^(last|f|t|from|to)[\s_-]*([\d-/ ]+)$@', strtolower(urldecode($v)), $m)) {
|
||||
if (preg_match('@^(last|f|t|from|to)[\s_-]*([\d/ -]+)$@', strtolower(urldecode($v)), $m)) {
|
||||
if ($m[1] == 'last') {
|
||||
$usetime = time() - ($m[2]*86400);
|
||||
$serendipity['GET']['commentStartTime'] = $usetime;
|
||||
@@ -132,6 +132,10 @@ function serveJS($js_mode) {
|
||||
header('Content-type: application/javascript; charset=' . LANG_CHARSET);
|
||||
|
||||
$out = "";
|
||||
// FIXFIX: including genpage without any given action will generate the
|
||||
// default page which is unneccessary, set action to empty to only make
|
||||
// the fix below
|
||||
$serendipity['GET']['action'] = 'empty';
|
||||
|
||||
include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
|
||||
|
||||
|
||||
@@ -551,7 +551,11 @@ function serendipity_smarty_hookPlugin($params, $smarty) {
|
||||
}
|
||||
|
||||
if (!isset($params['data'])) {
|
||||
$params['data'] = &$serendipity;
|
||||
if (isset($params['eventData'])) {
|
||||
$params['data'] = &$params['eventData'];
|
||||
} else {
|
||||
$params['data'] = &$serendipity;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($params['addData'])) {
|
||||
@@ -1225,4 +1229,4 @@ function serendipity_smarty_show($template, $data = null, $debugtype = null, $de
|
||||
}
|
||||
|
||||
return $debug . $serendipity['smarty']->fetch('file:'. $tplfile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,40 @@ if (IN_serendipity !== true) {
|
||||
die ('Don\'t hack!');
|
||||
}
|
||||
|
||||
// List of bundled core plugins
|
||||
define('BUNDLED_PLUGINS',
|
||||
array(
|
||||
'serendipity_event_bbcode',
|
||||
'serendipity_event_creativecommons',
|
||||
'serendipity_event_emoticate',
|
||||
'serendipity_event_entryproperties',
|
||||
'serendipity_event_mailer',
|
||||
'serendipity_event_nl2br',
|
||||
'serendipity_event_responsiveimages',
|
||||
'serendipity_event_s9ymarkup',
|
||||
'serendipity_event_spamblock',
|
||||
'serendipity_event_spartacus',
|
||||
'serendipity_event_templatechooser',
|
||||
'serendipity_event_textile',
|
||||
'serendipity_event_xhtmlcleanup',
|
||||
'serendipity_plugin_archives',
|
||||
'serendipity_plugin_calendar',
|
||||
'serendipity_plugin_categories',
|
||||
'serendipity_plugin_comments',
|
||||
'serendipity_plugin_creativecommons',
|
||||
'serendipity_plugin_entrylinks',
|
||||
'serendipity_plugin_eventwrapper',
|
||||
'serendipity_plugin_history',
|
||||
'serendipity_plugin_html_nugget',
|
||||
'serendipity_plugin_plug',
|
||||
'serendipity_plugin_recententries',
|
||||
'serendipity_plugin_remoterss',
|
||||
'serendipity_plugin_superuser',
|
||||
'serendipity_plugin_syndication',
|
||||
'serendipity_plugin_templatedropdown'
|
||||
)
|
||||
);
|
||||
|
||||
include_once S9Y_INCLUDE_PATH . 'include/functions.inc.php';
|
||||
|
||||
/* Core API function mappings
|
||||
@@ -671,7 +705,7 @@ class serendipity_plugin_api
|
||||
* @access public
|
||||
* @param string The filename of the plugin to get information about
|
||||
* @param array A referenced array that holds information about the plugin instance (self::load_plugin() response)
|
||||
* @param type The type of the plugin (local|spartacus|...)
|
||||
* @param type The type of the plugin (sidebar|event)
|
||||
* @return array Information about the plugin
|
||||
*/
|
||||
static function &getPluginInfo(&$pluginFile, &$class_data, $type)
|
||||
@@ -999,6 +1033,18 @@ class serendipity_plugin_api
|
||||
return $title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a plugin is bundled with s9y core
|
||||
*
|
||||
* @access public
|
||||
* @param string Name of a plugin
|
||||
* @return boolean
|
||||
*/
|
||||
static function is_bundled_plugin($name)
|
||||
{
|
||||
return in_array ($name, BUNDLED_PLUGINS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a plugin is an event plugin
|
||||
*
|
||||
|
||||
@@ -108,3 +108,5 @@ foreach($const['missing'] AS $file => $constants) {
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1120,3 +1120,5 @@ $i18n_filename_to = array('-', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1159,3 +1159,5 @@ $i18n_filename_to = array (
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1160,3 +1160,5 @@ $i18n_filename_to = array (
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1127,3 +1127,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
@define('CREATE_NEW_CAT', 'Neue Kategorie');
|
||||
@define('I_WANT_THUMB', 'Ich möchte die Vorschau im Eintrag haben.');
|
||||
@define('I_WANT_BIG_IMAGE', 'Ich möchte das große Bild im Eintrag haben.');
|
||||
@define('I_WANT_NO_LINK', 'Das Bild soll kein Link sein');
|
||||
@define('I_WANT_NO_LINK', 'Das Bild soll kein Link sein.');
|
||||
@define('I_WANT_IT_TO_LINK', 'Das Bild soll hierhin linken:');
|
||||
@define('BACK', 'Zurück');
|
||||
@define('FORWARD', 'Vorwärts');
|
||||
@@ -79,7 +79,7 @@
|
||||
@define('YOUR_SEARCH_RETURNED_BLAHBLAH', 'Die Suche nach "%s" ergab %s Treffer:');
|
||||
@define('IMAGE', 'Bild');
|
||||
@define('ERROR_FILE_NOT_EXISTS', ' Alte Datei existiert nicht!');
|
||||
@define('ERROR_FILE_EXISTS', 'Fehler: Neuer Dateiname existiert schon, bitte einen anderen wählen.');
|
||||
@define('ERROR_FILE_EXISTS', 'Fehler: Neuer Dateiname "%s" existiert schon, bitte einen anderen wählen.');
|
||||
@define('ERROR_SOMETHING', 'Fehler: Irgend etwas stimmt nicht.');
|
||||
@define('ADDING_IMAGE', 'Bild hinzufügen ...');
|
||||
@define('THUMB_CREATED_DONE', 'Vorschau erstellt.<br />Fertig.');
|
||||
@@ -645,7 +645,7 @@
|
||||
@define('NONE', 'keine');
|
||||
@define('USERCONF_CAT_DEFAULT_NEW_ENTRY', 'Voreinstellungen für neue Einträge');
|
||||
@define('UPGRADE', 'Aktualisieren');
|
||||
@define('UPGRADE_TO_VERSION', 'Aktuelle version %s');
|
||||
@define('UPGRADE_TO_VERSION', 'Aktualisierbar auf Version %s.');
|
||||
@define('DELETE_DIRECTORY', 'Verzeichnis löschen');
|
||||
@define('DELETE_DIRECTORY_DESC', 'Sie sind dabei, den Inhalt eines Verzeichnisses zu löschen, in welchem Dateien enthalten sind, die möglicherweise in Blog-Einträgen verwendet werden!');
|
||||
@define('FORCE_DELETE', 'ALLE Dateien dieses Verzeichnisses löschen, inklusive der Dateien, die Serendipity nicht katalogisiert hat');
|
||||
@@ -858,8 +858,8 @@
|
||||
|
||||
@define('PLUGIN_AVAILABLE_COUNT', 'Gesamt: %d Plugins.');
|
||||
|
||||
@define('SYNDICATION_RFC2616', 'Strikte RFC2616 RSS-Feed Kompatibilität');
|
||||
@define('SYNDICATION_RFC2616_DESC', 'Falls RFC2616 NICHT strikt ausgelegt wird, können alle Conditional GET Anfragen zu Serendipity die letzten Einträge seit dem letzten Client-Abruf zurückliefern - für Benutzer, die auch nach ihrem Urlaub alle Artikel lesen wollen, ist dies eine tolle Sache. Jedoch können dadurch einige spezielle Clients wie z.B. Planet aus dem Tritt gebracht werden, und neue Artikel ihres RSS-Feeds falsch interpretieren. Wenn diese Option also auf JA gesetzt wird, wird zwar die RFC befolgt, aber ihre RSS-Leser könnten Einträge verpassen wenn Sie länger nicht auf ihrer Seite waren. Wie auch immer sie sich entscheiden, entweder ärgern Sie damit Clients wie Planet oder Ihre Benutzer. Referenz: <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1461728&group_id=75065&atid=542822" target="_blank" rel="nofollow">SourceForge</a>');
|
||||
@define('SYNDICATION_RFC2616', 'Strikte RFC2616-RSS-Feed-Kompatibilität');
|
||||
@define('SYNDICATION_RFC2616_DESC', 'Falls RFC2616 NICHT strikt ausgelegt wird, können alle Conditional-GET-Anfragen zu Serendipity die letzten Einträge seit dem letzten Client-Abruf zurückliefern - für Benutzer, die auch nach ihrem Urlaub alle Artikel lesen wollen, ist dies eine tolle Sache. Jedoch können dadurch einige spezielle Clients, wie z.B. Planet, aus dem Tritt gebracht werden, und neue Artikel ihres RSS-Feeds falsch interpretieren. Wenn diese Option also auf JA gesetzt wird, wird zwar der RFC befolgt, aber ihre RSS-Leser könnten Einträge verpassen, wenn Sie länger nicht auf ihrer Seite waren. Wie auch immer sie sich entscheiden, entweder ärgern Sie damit Clients wie Planet oder Ihre Benutzer.');
|
||||
@define('MEDIA_PROPERTY_DATE', 'Verknüpftes Datum');
|
||||
@define('MEDIA_PROPERTY_RUN_LENGTH', 'Laufzeit');
|
||||
@define('FILENAME_REASSIGNED', 'Automagisch zugewiesener Dateiname: %s');
|
||||
@@ -953,27 +953,27 @@
|
||||
@define('MEDIA_PROPERTY_ALT', 'Bildinhalt (im ALT-Attribut)');
|
||||
@define('MEDIA_TITLE', 'TITLE-Attribut (wird beim Überfahren mit der Maus angezeigt)');
|
||||
|
||||
@define('QUICKSEARCH_SORT', 'How should search-results be sorted?');
|
||||
@define('QUICKSEARCH_SORT', 'Wie sollen Suchergebnisse sortiert werden?');
|
||||
|
||||
@define('QUICKSEARCH_SORT_RELEVANCE', 'Relevance');
|
||||
@define('QUICKSEARCH_SORT_RELEVANCE', 'Relevanz');
|
||||
|
||||
@define('PERMISSION_HIDDENGROUP', 'Hidden group / Non-Author');
|
||||
|
||||
@define('SEARCH_FULLENTRY', 'Show full entry');
|
||||
@define('SEARCH_FULLENTRY', 'Gesamten Eintrag anzeigen');
|
||||
@define('NAVLINK_AMOUNT', 'Anzahl der Links in der Navigationsleiste (Themes verwalten-Seite muss danach neu geladen werden)');
|
||||
@define('NAV_LINK_TEXT', 'Text des Navigationsleisten-Links');
|
||||
@define('NAV_LINK_URL', 'URL des Navigationsleisten-Links');
|
||||
@define('MODERATE_SELECTED_COMMENTS', 'Markierte Kommentare freischalten');
|
||||
@define('WEBLOG', 'Weblog');
|
||||
@define('ACTIVE_COMMENT_SUBSCRIPTION', 'Subscribed');
|
||||
@define('PENDING_COMMENT_SUBSCRIPTION', 'Pending confirmation');
|
||||
@define('NO_COMMENT_SUBSCRIPTION', 'Not subscribed');
|
||||
@define('SUMMARY', 'Summary');
|
||||
@define('ACTIVE_COMMENT_SUBSCRIPTION', 'Abonniert');
|
||||
@define('PENDING_COMMENT_SUBSCRIPTION', 'Wartet auf Bestätigung');
|
||||
@define('NO_COMMENT_SUBSCRIPTION', 'Nicht abonniert');
|
||||
@define('SUMMARY', 'Übersicht');
|
||||
|
||||
// Next lines were translated on 2012/05/29
|
||||
@define('ABOUT_TO_DELETE_FILES', 'Sie beabsichtigen mehrere Dateien auf einmal zu löschen.<br />Wenn Sie diese in ihren Einträgen verwenden, wird das Löschen Lücken erzeugen.<br />Soll trotzdem fortgefahren werden?<br /><br />');
|
||||
@define('ARCHIVE_SORT_STABLE', 'Stable Archives');
|
||||
@define('ARCHIVE_SORT_STABLE_DESC', 'Sort the archive-pages descending, so they are stable and search-crawler do not have to reindex them.');
|
||||
@define('ARCHIVE_SORT_STABLE', 'Unveränderliche Archiv-Seiten');
|
||||
@define('ARCHIVE_SORT_STABLE_DESC', 'Archiv-Seiten absteigend sortieren, so dass die ältesten Einträge sich auf Seite 1 finden, so dass sich die Inhalte nicht mehr ändern und Suchmaschinen die Seiten nicht ständig neu indizieren müssen.');
|
||||
|
||||
// added 2012-11-29
|
||||
@define('PLAIN_ASCII_NAMES', '(keine Sonderzeichen, Umlaute)');
|
||||
@@ -1009,7 +1009,7 @@
|
||||
@define('PUBLISH_ERROR', 'Fehler bei der Veröffentlichung:');
|
||||
@define('UPDATE_NOTIFICATION', 'Update-Hinweis');
|
||||
@define('NEW_VERSION_AVAILABLE', 'Neue stabile Serendipity version verfügbar: ');
|
||||
@define('MOVE', 'Bewegen');
|
||||
@define('MOVE', 'Verschieben');
|
||||
@define('MOVE_UP', 'Nach oben');
|
||||
@define('MOVE_DOWN', 'Nach unten');
|
||||
@define('INSTALL_NEW_SIDEBAR_PLUGIN', 'Seitenleisten-Plugin installieren');
|
||||
@@ -1130,3 +1130,11 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Wartungsmodus aktiv bis');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Aktivieren');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deaktivieren');
|
||||
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'Weitere Informationen');
|
||||
@define('PLUGIN_ALL_UPDATED', 'Alle Plugins aktualisiert');
|
||||
@define('MEDIA_DIRECTORY_MOVE', 'Dateien verschieben');
|
||||
@define('SOURCE', 'Quelle');
|
||||
@define('PLUGIN_SOURCE_BUNDLED', 'mitgeliefertes Plugin');
|
||||
@define('PLUGIN_SOURCE_LOCAL', 'lokal installiert');
|
||||
@define('MEDIA_RENAME_FAILED', 'Umbenennen fehlgeschlagen!');
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
@define('SEARCH_TOO_SHORT', 'Your search-query must be longer than 3 characters. You can try to append * to shorter words, like: s9y* to trick the search into using shorter words.');
|
||||
@define('IMAGE', 'Image');
|
||||
@define('ERROR_FILE_NOT_EXISTS', 'Error: Old filename does not exist!');
|
||||
@define('ERROR_FILE_EXISTS', 'Error: New filename already used, pick another!');
|
||||
@define('ERROR_FILE_EXISTS', 'Error: New filename "%s" already used, pick another!');
|
||||
@define('ERROR_SOMETHING', 'Error: Something is wrong.');
|
||||
@define('ADDING_IMAGE', 'Adding image...');
|
||||
@define('THUMB_CREATED_DONE', 'Thumbnail created.<br/>Done.');
|
||||
@@ -1129,3 +1129,11 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
@define('MEDIA_DIRECTORY_MOVE', 'Move files to another directory');
|
||||
@define('SOURCE', 'Source');
|
||||
@define('PLUGIN_SOURCE_BUNDLED', 'bundled core plugin');
|
||||
@define('PLUGIN_SOURCE_LOCAL', 'locally installed');
|
||||
@define('MEDIA_RENAME_FAILED', 'Renaming failed!');
|
||||
|
||||
@@ -1146,3 +1146,5 @@ Melvin TODO [20060128]: What spanish word do we use for "referrers" ??
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1135,3 +1135,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1126,3 +1126,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1131,3 +1131,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1126,3 +1126,5 @@ $i18n_filename_to = array('_', 'a', 'A', 'a', 'A', 'b', 'B', 'c', 'C', 'c', 'C
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1139,3 +1139,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1131,3 +1131,5 @@ $i18n_filename_to = array('_', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1047,3 +1047,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1118,3 +1118,5 @@ $i18n_filename_to = array (
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1127,3 +1127,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@ $i18n_unknown = 'tw';
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1133,3 +1133,5 @@ $i18n_unknown = 'tw';
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -81,30 +81,3 @@ foreach($const['missing'] AS $file => $constants) {
|
||||
echo "---------------------------\n";
|
||||
}
|
||||
|
||||
@define('SYNDICATION_PLUGIN_XML_DESC', 'Set to "none" if you only want to show a text link.');
|
||||
@define('MULTICHECK_NO_ITEM', 'No item selected, please check at least one. <a href="%s">Return to previous page</a>.');
|
||||
@define('MULTICHECK_NO_DIR', 'No directory selected, please choose one. <a href="%s">Return to previous page</a>.');
|
||||
@define('BULKMOVE_INFO', 'Bulk-move info');
|
||||
@define('BULKMOVE_INFO_DESC', 'You can select multiple files to bulk-move them to a new location. <strong>Note:</strong> This action cannot be undone, just like bulk-deletion of multiple files. All checked files will be physically moved, and referring blog entries are rewritten to point to the new location.');
|
||||
@define('FIRST_PAGE', 'First Page');
|
||||
@define('LAST_PAGE', 'Last Page');
|
||||
@define('MEDIA_PROPERTIES_DONE', 'Properties of #%d changed.');
|
||||
@define('DIRECTORY_INFO', 'Directory info');
|
||||
@define('DIRECTORY_INFO_DESC', 'Directories reflect their physical folder directory name. If you want to change or move directories which contain items, you have two choices. Either create the directory or subdirectory you want, then move the items to the new directory via the media library and afterwards, delete the empty old directory there. Or completely change the whole old directory via the edit directory button below and rename it to whatever you like (existing subdir/ + newname). This will move all directories and items and change referring blog entries.');
|
||||
@define('MEDIA_RESIZE_EXISTS', 'File dimensions already exist!');
|
||||
@define('USE_CACHE', 'Enable caching');
|
||||
@define('USE_CACHE_DESC', 'Enables an internal cache to not repeat specific database queries. This reduces the load on servers with medium to high traffic and improves page load time.');
|
||||
@define('CONFIG_PERMALINK_PATH_DESC', 'Please note that you have to use a prefix so that Serendipity can properly map the URL to the proper action. You may change the prefix to any unique name, but not remove it. This applies to all path prefix definitions.');
|
||||
@define('CONFIG_ALLOW_LOCAL_URL', 'Allow to fetch data from local URLs');
|
||||
@define('CONFIG_ALLOW_LOCAL_URL_DESC', 'By default, it is forbidden due to security constrains to fetch data from local URLs to prevent Server Side Request Forgers (SSRF). If you use a local intranet, you can enable this option to allow fetching data.');
|
||||
@define('REMOTE_FILE_INVALID', 'The given URL appears to be local and is not allowed to be fetched. You can allow this by setting the option "Allow to fetch data from local URLs" in your blog configuration.');
|
||||
@define('URL_NOT_FOUND', 'The requested page could not be found (404). This is the default page.');
|
||||
@define('INSERT_ALL', 'Insert All');
|
||||
@define('COMMENT_NOT_DELETED', 'Could not delete comment #%s .');
|
||||
@define('MAINTENANCE_MODE', 'Maintenance Mode');
|
||||
@define('MAINTENANCE_MODE_DESC', 'Activate maintenance mode to prevent access from users that are not logged in.');
|
||||
@define('MAINTENANCE_MODE_WARNING', "Do not log out, as you won't be able to log in again until maintenance mode expires!");
|
||||
@define('MAINTENANCE_MODE_DURATION', 'Duration (in hours):');
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
|
||||
@@ -1120,3 +1120,5 @@ $i18n_filename_to = array('-', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1159,3 +1159,5 @@ $i18n_filename_to = array (
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1160,3 +1160,5 @@ $i18n_filename_to = array (
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1127,3 +1127,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
@define('CREATE_NEW_CAT', 'Neue Kategorie');
|
||||
@define('I_WANT_THUMB', 'Ich möchte die Vorschau im Eintrag haben.');
|
||||
@define('I_WANT_BIG_IMAGE', 'Ich möchte das große Bild im Eintrag haben.');
|
||||
@define('I_WANT_NO_LINK', 'Das Bild soll kein Link sein');
|
||||
@define('I_WANT_NO_LINK', 'Das Bild soll kein Link sein.');
|
||||
@define('I_WANT_IT_TO_LINK', 'Das Bild soll hierhin linken:');
|
||||
@define('BACK', 'Zurück');
|
||||
@define('FORWARD', 'Vorwärts');
|
||||
@@ -79,7 +79,7 @@
|
||||
@define('YOUR_SEARCH_RETURNED_BLAHBLAH', 'Die Suche nach "%s" ergab %s Treffer:');
|
||||
@define('IMAGE', 'Bild');
|
||||
@define('ERROR_FILE_NOT_EXISTS', ' Alte Datei existiert nicht!');
|
||||
@define('ERROR_FILE_EXISTS', 'Fehler: Neuer Dateiname existiert schon, bitte einen anderen wählen.');
|
||||
@define('ERROR_FILE_EXISTS', 'Fehler: Neuer Dateiname "%s" existiert schon, bitte einen anderen wählen.');
|
||||
@define('ERROR_SOMETHING', 'Fehler: Irgend etwas stimmt nicht.');
|
||||
@define('ADDING_IMAGE', 'Bild hinzufügen ...');
|
||||
@define('THUMB_CREATED_DONE', 'Vorschau erstellt.<br />Fertig.');
|
||||
@@ -645,7 +645,7 @@
|
||||
@define('NONE', 'keine');
|
||||
@define('USERCONF_CAT_DEFAULT_NEW_ENTRY', 'Voreinstellungen für neue Einträge');
|
||||
@define('UPGRADE', 'Aktualisieren');
|
||||
@define('UPGRADE_TO_VERSION', 'Aktuelle version %s');
|
||||
@define('UPGRADE_TO_VERSION', 'Aktualisierbar auf Version %s.');
|
||||
@define('DELETE_DIRECTORY', 'Verzeichnis löschen');
|
||||
@define('DELETE_DIRECTORY_DESC', 'Sie sind dabei, den Inhalt eines Verzeichnisses zu löschen, in welchem Dateien enthalten sind, die möglicherweise in Blog-Einträgen verwendet werden!');
|
||||
@define('FORCE_DELETE', 'ALLE Dateien dieses Verzeichnisses löschen, inklusive der Dateien, die Serendipity nicht katalogisiert hat');
|
||||
@@ -858,8 +858,8 @@
|
||||
|
||||
@define('PLUGIN_AVAILABLE_COUNT', 'Gesamt: %d Plugins.');
|
||||
|
||||
@define('SYNDICATION_RFC2616', 'Strikte RFC2616 RSS-Feed Kompatibilität');
|
||||
@define('SYNDICATION_RFC2616_DESC', 'Falls RFC2616 NICHT strikt ausgelegt wird, können alle Conditional GET Anfragen zu Serendipity die letzten Einträge seit dem letzten Client-Abruf zurückliefern - für Benutzer, die auch nach ihrem Urlaub alle Artikel lesen wollen, ist dies eine tolle Sache. Jedoch können dadurch einige spezielle Clients wie z.B. Planet aus dem Tritt gebracht werden, und neue Artikel ihres RSS-Feeds falsch interpretieren. Wenn diese Option also auf JA gesetzt wird, wird zwar die RFC befolgt, aber ihre RSS-Leser könnten Einträge verpassen wenn Sie länger nicht auf ihrer Seite waren. Wie auch immer sie sich entscheiden, entweder ärgern Sie damit Clients wie Planet oder Ihre Benutzer. Referenz: <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1461728&group_id=75065&atid=542822" target="_blank" rel="nofollow">SourceForge</a>');
|
||||
@define('SYNDICATION_RFC2616', 'Strikte RFC2616-RSS-Feed-Kompatibilität');
|
||||
@define('SYNDICATION_RFC2616_DESC', 'Falls RFC2616 NICHT strikt ausgelegt wird, können alle Conditional-GET-Anfragen zu Serendipity die letzten Einträge seit dem letzten Client-Abruf zurückliefern - für Benutzer, die auch nach ihrem Urlaub alle Artikel lesen wollen, ist dies eine tolle Sache. Jedoch können dadurch einige spezielle Clients, wie z.B. Planet, aus dem Tritt gebracht werden, und neue Artikel ihres RSS-Feeds falsch interpretieren. Wenn diese Option also auf JA gesetzt wird, wird zwar der RFC befolgt, aber ihre RSS-Leser könnten Einträge verpassen, wenn Sie länger nicht auf ihrer Seite waren. Wie auch immer sie sich entscheiden, entweder ärgern Sie damit Clients wie Planet oder Ihre Benutzer.');
|
||||
@define('MEDIA_PROPERTY_DATE', 'Verknüpftes Datum');
|
||||
@define('MEDIA_PROPERTY_RUN_LENGTH', 'Laufzeit');
|
||||
@define('FILENAME_REASSIGNED', 'Automagisch zugewiesener Dateiname: %s');
|
||||
@@ -953,27 +953,27 @@
|
||||
@define('MEDIA_PROPERTY_ALT', 'Bildinhalt (im ALT-Attribut)');
|
||||
@define('MEDIA_TITLE', 'TITLE-Attribut (wird beim Überfahren mit der Maus angezeigt)');
|
||||
|
||||
@define('QUICKSEARCH_SORT', 'How should search-results be sorted?');
|
||||
@define('QUICKSEARCH_SORT', 'Wie sollen Suchergebnisse sortiert werden?');
|
||||
|
||||
@define('QUICKSEARCH_SORT_RELEVANCE', 'Relevance');
|
||||
@define('QUICKSEARCH_SORT_RELEVANCE', 'Relevanz');
|
||||
|
||||
@define('PERMISSION_HIDDENGROUP', 'Hidden group / Non-Author');
|
||||
|
||||
@define('SEARCH_FULLENTRY', 'Show full entry');
|
||||
@define('SEARCH_FULLENTRY', 'Gesamten Eintrag anzeigen');
|
||||
@define('NAVLINK_AMOUNT', 'Anzahl der Links in der Navigationsleiste (Themes verwalten-Seite muss danach neu geladen werden)');
|
||||
@define('NAV_LINK_TEXT', 'Text des Navigationsleisten-Links');
|
||||
@define('NAV_LINK_URL', 'URL des Navigationsleisten-Links');
|
||||
@define('MODERATE_SELECTED_COMMENTS', 'Markierte Kommentare freischalten');
|
||||
@define('WEBLOG', 'Weblog');
|
||||
@define('ACTIVE_COMMENT_SUBSCRIPTION', 'Subscribed');
|
||||
@define('PENDING_COMMENT_SUBSCRIPTION', 'Pending confirmation');
|
||||
@define('NO_COMMENT_SUBSCRIPTION', 'Not subscribed');
|
||||
@define('SUMMARY', 'Summary');
|
||||
@define('ACTIVE_COMMENT_SUBSCRIPTION', 'Abonniert');
|
||||
@define('PENDING_COMMENT_SUBSCRIPTION', 'Wartet auf Bestätigung');
|
||||
@define('NO_COMMENT_SUBSCRIPTION', 'Nicht abonniert');
|
||||
@define('SUMMARY', 'Übersicht');
|
||||
|
||||
// Next lines were translated on 2012/05/29
|
||||
@define('ABOUT_TO_DELETE_FILES', 'Sie beabsichtigen mehrere Dateien auf einmal zu löschen.<br />Wenn Sie diese in ihren Einträgen verwenden, wird das Löschen Lücken erzeugen.<br />Soll trotzdem fortgefahren werden?<br /><br />');
|
||||
@define('ARCHIVE_SORT_STABLE', 'Stable Archives');
|
||||
@define('ARCHIVE_SORT_STABLE_DESC', 'Sort the archive-pages descending, so they are stable and search-crawler do not have to reindex them.');
|
||||
@define('ARCHIVE_SORT_STABLE', 'Unveränderliche Archiv-Seiten');
|
||||
@define('ARCHIVE_SORT_STABLE_DESC', 'Archiv-Seiten absteigend sortieren, so dass die ältesten Einträge sich auf Seite 1 finden, so dass sich die Inhalte nicht mehr ändern und Suchmaschinen die Seiten nicht ständig neu indizieren müssen.');
|
||||
|
||||
// added 2012-11-29
|
||||
@define('PLAIN_ASCII_NAMES', '(keine Sonderzeichen, Umlaute)');
|
||||
@@ -1009,7 +1009,7 @@
|
||||
@define('PUBLISH_ERROR', 'Fehler bei der Veröffentlichung:');
|
||||
@define('UPDATE_NOTIFICATION', 'Update-Hinweis');
|
||||
@define('NEW_VERSION_AVAILABLE', 'Neue stabile Serendipity version verfügbar: ');
|
||||
@define('MOVE', 'Bewegen');
|
||||
@define('MOVE', 'Verschieben');
|
||||
@define('MOVE_UP', 'Nach oben');
|
||||
@define('MOVE_DOWN', 'Nach unten');
|
||||
@define('INSTALL_NEW_SIDEBAR_PLUGIN', 'Seitenleisten-Plugin installieren');
|
||||
@@ -1130,3 +1130,11 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Wartungsmodus aktiv bis');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Aktivieren');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deaktivieren');
|
||||
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'Weitere Informationen');
|
||||
@define('PLUGIN_ALL_UPDATED', 'Alle Plugins aktualisiert');
|
||||
@define('MEDIA_DIRECTORY_MOVE', 'Dateien verschieben');
|
||||
@define('SOURCE', 'Quelle');
|
||||
@define('PLUGIN_SOURCE_BUNDLED', 'mitgeliefertes Plugin');
|
||||
@define('PLUGIN_SOURCE_LOCAL', 'lokal installiert');
|
||||
@define('MEDIA_RENAME_FAILED', 'Umbenennen fehlgeschlagen!');
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
@define('SEARCH_TOO_SHORT', 'Your search-query must be longer than 3 characters. You can try to append * to shorter words, like: s9y* to trick the search into using shorter words.');
|
||||
@define('IMAGE', 'Image');
|
||||
@define('ERROR_FILE_NOT_EXISTS', 'Error: Old filename does not exist!');
|
||||
@define('ERROR_FILE_EXISTS', 'Error: New filename already used, pick another!');
|
||||
@define('ERROR_FILE_EXISTS', 'Error: New filename "%s" already used, pick another!');
|
||||
@define('ERROR_SOMETHING', 'Error: Something is wrong.');
|
||||
@define('ADDING_IMAGE', 'Adding image...');
|
||||
@define('THUMB_CREATED_DONE', 'Thumbnail created.<br/>Done.');
|
||||
@@ -859,7 +859,7 @@
|
||||
@define('PLUGIN_AVAILABLE_COUNT', 'Total: %d plugins.');
|
||||
|
||||
@define('SYNDICATION_RFC2616', 'Activate strict RFC2616 RSS-Feed compliance');
|
||||
@define('SYNDICATION_RFC2616_DESC', 'NOT Enforcing RFC2616 means that all Conditional GETs to Serendipity will return entries last modified since the time of the last request. With that setting to "false", your visitors will get all articles since their last request, which is considered a good thing. However, some Agents like Planet act weird, if that happens, at it also violates RFC2616. So if you set this option to "TRUE" you will comply with that RFC, but readers of your RSS feed might miss items in their holidays. So either way, either it hearts Aggregators like Planet, or it hurts actual readers of your blog. If you are facing complaints from either side, you can toggle this option. Reference: <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1461728&group_id=75065&atid=542822" target="_blank" rel="nofollow">SourceForge</a>');
|
||||
@define('SYNDICATION_RFC2616_DESC', 'NOT Enforcing RFC2616 means that all Conditional GETs to Serendipity will return entries last modified since the time of the last request. With that setting to "false", your visitors will get all articles since their last request, which is considered a good thing. However, some Agents like Planet act weird, if that happens, at it also violates RFC2616. So if you set this option to "TRUE" you will comply with that RFC, but readers of your RSS feed might miss items in their holidays. So either way, either it hearts Aggregators like Planet, or it hurts actual readers of your blog. If you are facing complaints from either side, you can toggle this option.');
|
||||
@define('MEDIA_PROPERTY_DATE', 'Associated Date');
|
||||
@define('MEDIA_PROPERTY_RUN_LENGTH', 'Run-Length');
|
||||
@define('FILENAME_REASSIGNED', 'Automagically assigned new file name: %s');
|
||||
@@ -1129,3 +1129,11 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
@define('MEDIA_DIRECTORY_MOVE', 'Move files to another directory');
|
||||
@define('SOURCE', 'Source');
|
||||
@define('PLUGIN_SOURCE_BUNDLED', 'bundled core plugin');
|
||||
@define('PLUGIN_SOURCE_LOCAL', 'locally installed');
|
||||
@define('MEDIA_RENAME_FAILED', 'Renaming failed!');
|
||||
|
||||
@@ -1146,3 +1146,5 @@ Melvin TODO [20060128]: What spanish word do we use for "referrers" ??
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1135,3 +1135,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1126,3 +1126,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1131,3 +1131,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1126,3 +1126,5 @@ $i18n_filename_to = array('_', 'a', 'A', 'a', 'A', 'b', 'B', 'c', 'C', 'c', 'C
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1139,3 +1139,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1130,3 +1130,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1131,3 +1131,5 @@ $i18n_filename_to = array('_', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1047,3 +1047,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1118,3 +1118,5 @@ $i18n_filename_to = array (
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1127,3 +1127,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@ $i18n_unknown = 'tw';
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1132,3 +1132,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1133,3 +1133,5 @@ $i18n_unknown = 'tw';
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -1128,3 +1128,5 @@
|
||||
@define('MAINTENANCE_MODE_TIME', 'Will be active until');
|
||||
@define('MAINTENANCE_MODE_ACTIVATE', 'Activate');
|
||||
@define('MAINTENANCE_MODE_DEACTIVATE', 'Deactivate');
|
||||
@define('PLUGIN_LINK_SPARTACUS', 'More information');
|
||||
@define('PLUGIN_ALL_UPDATED', 'All Plugins updated');
|
||||
|
||||
@@ -17,7 +17,7 @@ class serendipity_event_bbcode extends serendipity_event
|
||||
$propbag->add('description', PLUGIN_EVENT_BBCODE_DESC);
|
||||
$propbag->add('stackable', false);
|
||||
$propbag->add('author', 'Jez Hancock, Garvin Hicking');
|
||||
$propbag->add('version', '2.10');
|
||||
$propbag->add('version', '2.11');
|
||||
$propbag->add('requirements', array(
|
||||
'serendipity' => '1.6',
|
||||
'smarty' => '2.6.7',
|
||||
@@ -304,6 +304,12 @@ class serendipity_event_bbcode extends serendipity_event
|
||||
.bb-list-ordered-ua {
|
||||
list-style-type: upper-alpha;
|
||||
}
|
||||
.bb-list-ordered-lr {
|
||||
list-style-type:lower-roman;
|
||||
}
|
||||
.bb-list-ordered-ur {
|
||||
list-style-type:upper-roman;
|
||||
}
|
||||
|
||||
/* serendipity_event_bbcode end */
|
||||
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
1.41.5:
|
||||
-------
|
||||
* Fix accidental deletion of extended properties.
|
||||
|
||||
[1.41.4 not backported]
|
||||
|
||||
1.41.3:
|
||||
-------
|
||||
* Add missing English language constant.
|
||||
|
||||
1.38:
|
||||
-----
|
||||
* Fixed preview of extended properties by 1.37
|
||||
@@ -5,4 +15,4 @@
|
||||
|
||||
1.37:
|
||||
-----
|
||||
* Added image preview to extended properties if value is image format (Don Chambers)
|
||||
* Added image preview to extended properties if value is image format (Don Chambers)
|
||||
|
||||
@@ -19,7 +19,7 @@ class serendipity_event_entryproperties extends serendipity_event
|
||||
$propbag->add('description', PLUGIN_EVENT_ENTRYPROPERTIES_DESC);
|
||||
$propbag->add('stackable', false);
|
||||
$propbag->add('author', 'Garvin Hicking');
|
||||
$propbag->add('version', '1.41.2');
|
||||
$propbag->add('version', '1.41.5');
|
||||
$propbag->add('requirements', array(
|
||||
'serendipity' => '1.6',
|
||||
'smarty' => '2.6.27',
|
||||
@@ -244,8 +244,12 @@ class serendipity_event_entryproperties extends serendipity_event
|
||||
$property = serendipity_fetchEntryProperties($eventData['id']);
|
||||
$supported_properties = serendipity_event_entryproperties::getSupportedProperties();
|
||||
|
||||
// serendipity_updertEntry may have been called from a plugin so $serendipity['POST']['properties']
|
||||
// is not completely filled, so we_ always_ have to check that $serendipity['POST']['propertyform']
|
||||
// is set (which will only happen if the form has been submitted) - not just in the foreach() below
|
||||
|
||||
// Cleanup properties first, if none disable_markups plugins were set, or a previous selected one was re-set
|
||||
if (is_array($serendipity['POST']['properties']) && !is_array($serendipity['POST']['properties']['disable_markups'])) {
|
||||
if (isset($serendipity['POST']['propertyform']) && is_array($serendipity['POST']['properties']) && !is_array($serendipity['POST']['properties']['disable_markups'])) {
|
||||
$q = "DELETE FROM {$serendipity['dbPrefix']}entryproperties WHERE entryid = " . (int)$eventData['id'] . " AND property LIKE 'ep_disable_markup_%'";
|
||||
serendipity_db_query($q);
|
||||
}
|
||||
@@ -253,14 +257,14 @@ class serendipity_event_entryproperties extends serendipity_event
|
||||
// Special case for input type checkbox entryproperties
|
||||
$reset_properties = array('is_sticky', 'no_frontpage', 'hiderss');
|
||||
foreach($reset_properties AS $property) {
|
||||
if (!isset($serendipity['POST']['propertyform']) && is_array($serendipity['POST']['properties']) && !in_array($property, $serendipity['POST']['properties'])) {
|
||||
if (isset($serendipity['POST']['propertyform']) && is_array($serendipity['POST']['properties']) && !in_array($property, $serendipity['POST']['properties'])) {
|
||||
$q = "DELETE FROM {$serendipity['dbPrefix']}entryproperties WHERE entryid = " . (int)$eventData['id'] . " AND property = 'ep_{$property}'";
|
||||
serendipity_db_query($q);
|
||||
}
|
||||
}
|
||||
|
||||
// Special case for disable markups.
|
||||
if (is_array($properties['disable_markups'])) {
|
||||
if (isset($serendipity['POST']['propertyform']) && is_array($properties['disable_markups'])) {
|
||||
$q = "DELETE FROM {$serendipity['dbPrefix']}entryproperties WHERE entryid = " . (int)$eventData['id'] . " AND property LIKE 'ep_disable_markup_%'";
|
||||
serendipity_db_query($q);
|
||||
|
||||
@@ -370,7 +374,7 @@ class serendipity_event_entryproperties extends serendipity_event
|
||||
|
||||
case 'password':
|
||||
?>
|
||||
<div class="entryproperties_access_pw adv_opts_box adv_opts_box form_field">
|
||||
<div class="entryproperties_access_pw adv_opts_box form_field">
|
||||
<label for="properties_access_pw"><?php echo PASSWORD; ?>:</label>
|
||||
<input type="password" name="ignore_password" value="" style="visibility: hidden; width: 1px">
|
||||
<input id="properties_access_pw" name="serendipity[properties][entrypassword]" type="password" autocomplete="off" value="<?php echo serendipity_specialchars($password); ?>">
|
||||
@@ -1034,4 +1038,4 @@ class serendipity_event_entryproperties extends serendipity_event
|
||||
}
|
||||
|
||||
/* vim: set sts=4 ts=4 expandtab : */
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
1.60:
|
||||
-----
|
||||
|
||||
* Add new field to prepend a mail body message for each mail
|
||||
|
||||
* Adds checkbox to allow force sending e-mails even when a blog entry is published already
|
||||
|
||||
* Fixes missing "Keep stripped tags" description
|
||||
@@ -16,6 +16,9 @@
|
||||
@define('PLUGIN_EVENT_MAILER_ISTOSENDIT', 'Diesen Eintrag per E-Mail versenden');
|
||||
@define('PLUGIN_EVENT_MAILER_SENDTOALL', 'An alle Redakteure schicken');
|
||||
|
||||
@define('PLUGIN_EVENT_MAILER_STRIPTAGS', 'Bilder und Hyperlinks beibehalten, wenn HTML entfernt wird?');
|
||||
@define('PLUGIN_EVENT_MAILER_STRIPTAGSDESC', 'Gilt nur, wenn HTML entfernt wird. Falls aktiviert, werden Bilder und Hyperlinks in der Mail enthalten bleiben (in eckigen Klammern). Falls deaktiviert, werden alle Bilder und Hyperlinks auch entfernt.');
|
||||
@define('PLUGIN_EVENT_MAILER_KEEPSTRIPTAGS', 'Bilder und Hyperlinks beibehalten, wenn HTML entfernt wird?');
|
||||
@define('PLUGIN_EVENT_MAILER_KEEPSTRIPTAGSDESC', 'Gilt nur, wenn HTML entfernt wird. Falls aktiviert, werden Bilder und Hyperlinks in der Mail enthalten bleiben (in eckigen Klammern). Falls deaktiviert, werden alle Bilder und Hyperlinks auch entfernt.');
|
||||
|
||||
@define('PLUGIN_EVENT_MAILER_FORCESEND', 'E-Mail-Versand erzwingen');
|
||||
@define('PLUGIN_EVENT_MAILER_FORCESEND_DESC', 'Standardmäßig werden E-Mails nur beim erstmaligen Veröffentlichen eines Artikels versendet.');
|
||||
@define('PLUGIN_EVENT_MAILER_MAILTEXT', 'Optionaler Text am Anfang der E-Mail (z.B. eine Grußbotschaft oder Begründung, warum der Blog-Artikel per E-Mail geschickt wird)');
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
@define('PLUGIN_EVENT_MAILER_ISTOSENDIT', 'Diesen Eintrag per E-Mail versenden');
|
||||
@define('PLUGIN_EVENT_MAILER_SENDTOALL', 'An alle Redakteure schicken');
|
||||
|
||||
@define('PLUGIN_EVENT_MAILER_STRIPTAGS', 'Bilder und Hyperlinks beibehalten, wenn HTML entfernt wird?');
|
||||
@define('PLUGIN_EVENT_MAILER_STRIPTAGSDESC', 'Gilt nur, wenn HTML entfernt wird. Falls aktiviert, werden Bilder und Hyperlinks in der Mail enthalten bleiben (in eckigen Klammern). Falls deaktiviert, werden alle Bilder und Hyperlinks auch entfernt.');
|
||||
@define('PLUGIN_EVENT_MAILER_KEEPSTRIPTAGS', 'Bilder und Hyperlinks beibehalten, wenn HTML entfernt wird?');
|
||||
@define('PLUGIN_EVENT_MAILER_KEEPSTRIPTAGSDESC', 'Gilt nur, wenn HTML entfernt wird. Falls aktiviert, werden Bilder und Hyperlinks in der Mail enthalten bleiben (in eckigen Klammern). Falls deaktiviert, werden alle Bilder und Hyperlinks auch entfernt.');
|
||||
|
||||
@define('PLUGIN_EVENT_MAILER_FORCESEND', 'E-Mail-Versand erzwingen');
|
||||
@define('PLUGIN_EVENT_MAILER_FORCESEND_DESC', 'Standardmäßig werden E-Mails nur beim erstmaligen Veröffentlichen eines Artikels versendet.');
|
||||
@define('PLUGIN_EVENT_MAILER_MAILTEXT', 'Optionaler Text am Anfang der E-Mail (z.B. eine Grußbotschaft oder Begründung, warum der Blog-Artikel per E-Mail geschickt wird)');
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
@define('PLUGIN_EVENT_MAILER_SENDING', 'Sending');
|
||||
@define('PLUGIN_EVENT_MAILER_ISTOSENDIT', 'Send this entry via E-Mail');
|
||||
@define('PLUGIN_EVENT_MAILER_SENDTOALL', 'Send to all authors');
|
||||
@define('PLUGIN_EVENT_MAILER_STRIPTAGS', 'Keep images and hyperlinks when removing html?');
|
||||
@define('PLUGIN_EVENT_MAILER_STRIPTAGSDESC', 'Only applies when removing HTML-tags from the mail. If enabled, images and hyperlinks will be put inside the text, when disabled those placeholders will also be removed.');
|
||||
|
||||
@define('PLUGIN_EVENT_MAILER_KEEPSTRIPTAGS', 'Keep images and hyperlinks when removing html?');
|
||||
@define('PLUGIN_EVENT_MAILER_KEEPSTRIPTAGSDESC', 'Only applies when removing HTML-tags from the mail. If enabled, images and hyperlinks will be put inside the text, when disabled those placeholders will also be removed.');
|
||||
@define('PLUGIN_EVENT_MAILER_FORCESEND', 'Forces sending an E-Mail on save');
|
||||
@define('PLUGIN_EVENT_MAILER_FORCESEND_DESC', 'By default, E-Mails are only sent when publishing an entry for the first time');
|
||||
@define('PLUGIN_EVENT_MAILER_MAILTEXT', 'Optional custom text to prepend to the E-Mail (like a greeting or explaining why this entry is being mailed)');
|
||||
|
||||
@@ -19,7 +19,7 @@ class serendipity_event_mailer extends serendipity_event
|
||||
$propbag->add('description', PLUGIN_EVENT_MAILER_DESC);
|
||||
$propbag->add('stackable', false);
|
||||
$propbag->add('author', 'Sebastian Nohn, Kristian Koehntopp, Garvin Hicking');
|
||||
$propbag->add('version', '1.54');
|
||||
$propbag->add('version', '1.60');
|
||||
$propbag->add('requirements', array(
|
||||
'serendipity' => '1.6',
|
||||
'smarty' => '2.6.7',
|
||||
@@ -28,10 +28,11 @@ class serendipity_event_mailer extends serendipity_event
|
||||
$propbag->add('event_hooks', array(
|
||||
'backend_publish' => true,
|
||||
'backend_display' => true,
|
||||
'backend_save' => true,
|
||||
));
|
||||
$propbag->add('groups', array('FRONTEND_ENTRY_RELATED'));
|
||||
|
||||
$config = array('what', 'mailto', 'sendtoall', 'includelink', 'striptags', 'convertp', 'keepstriptags');
|
||||
$config = array('what', 'mailto', 'sendtoall', 'includelink', 'striptags', 'keepstriptags', 'convertp', 'mailerbody');
|
||||
$propbag->add('configuration', $config);
|
||||
}
|
||||
|
||||
@@ -128,6 +129,13 @@ class serendipity_event_mailer extends serendipity_event
|
||||
$propbag->add('default', 'false');
|
||||
break;
|
||||
|
||||
case 'mailerbody':
|
||||
$propbag->add('type', 'text');
|
||||
$propbag->add('name', PLUGIN_EVENT_MAILER_MAILTEXT);
|
||||
$propbag->add('description', '');
|
||||
$propbag->add('default', '');
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -139,6 +147,110 @@ class serendipity_event_mailer extends serendipity_event
|
||||
$title = $this->title;
|
||||
}
|
||||
|
||||
function sendMail($eventData)
|
||||
{
|
||||
global $serendipity;
|
||||
|
||||
$mails = explode(' ', str_replace(',', '', $this->get_config('mailto')));
|
||||
$to = array();
|
||||
foreach($mails AS $mailto) {
|
||||
$mailto = trim($mailto);
|
||||
if (!empty($mailto)) {
|
||||
$to[] = $mailto;
|
||||
}
|
||||
}
|
||||
|
||||
$this->performConfig($to);
|
||||
if (is_array($this->data['cat'])) {
|
||||
$selected = array();
|
||||
if (is_array($eventData['categories'])) {
|
||||
foreach($eventData['categories'] AS $idx => $cid) {
|
||||
$selected[$cid] = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($this->data['cat'] AS $cid => $cat) {
|
||||
$mailto = trim($this->get_config('category_' . $cid));
|
||||
|
||||
if (!empty($mailto) && isset($selected[$cid])) {
|
||||
$tos = explode(' ', str_replace(',', '', $mailto));
|
||||
foreach($tos AS $mailtopart) {
|
||||
$to[] = trim($mailtopart);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($serendipity['POST']['properties']['sendentry_all']) {
|
||||
$mails = serendipity_db_query("SELECT DISTINCT email FROM {$serendipity['dbPrefix']}authors");
|
||||
foreach($mails AS $mail) {
|
||||
$to[] = trim($mail['email']);
|
||||
}
|
||||
}
|
||||
|
||||
$mail = array(
|
||||
'subject' => $eventData['title'],
|
||||
'body' => $eventData['body'] . $eventData['extended'],
|
||||
// 'from' => $serendipity['blogTitle'] . ' - ' . $eventData['author'] . ' <' . $serendipity['serendipityEmail'] . '>'
|
||||
'from' => $serendipity['serendipityEmail']
|
||||
);
|
||||
|
||||
switch($this->get_config('what')) {
|
||||
case 'all':
|
||||
$mail['body'] = $eventData['body'] . $eventData['extended'];
|
||||
break;
|
||||
case 'body':
|
||||
$mail['body'] = $eventData['body'];
|
||||
break;
|
||||
case 'extended':
|
||||
$mail['body'] = $eventData['extended'];
|
||||
break;
|
||||
case 'none':
|
||||
$mail['body'] = '';
|
||||
break;
|
||||
}
|
||||
|
||||
if (!empty($serendipity['POST']['properties']['mailerbody'])) {
|
||||
$mail['body'] = $serendipity['POST']['properties']['mailerbody'] . "\n" . $mail['body'];
|
||||
}
|
||||
|
||||
if (isset($serendipity['POST']['properties']['mailto'])) {
|
||||
$mails = explode(' ', str_replace(',', '', $serendipity['POST']['properties']['mailto']));
|
||||
foreach($mails as $mailto) {
|
||||
$mailto = trim($mailto);
|
||||
if (!in_array($mailto, $to)) {
|
||||
$to[] = $mailto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($this->get_config('convertp', 'false'))) {
|
||||
$mail['body'] = str_replace('</p>', "</p>\n", $mail['body']);
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($this->get_config('striptags', 'false'))) {
|
||||
if (serendipity_db_bool($this->get_config('keepstriptags', 'true'))) {
|
||||
$mail['body'] = preg_replace('@<a[^>]+href=["\']([^"\']*)["\'][^>]*>([^<]*)</a>@i', "$2 [$1]", $mail['body']);
|
||||
$mail['body'] = preg_replace('@<img[^>]+src=["\']([^"\']*)["\'][^>]*>@i', "[" . IMAGE . ": $1]", $mail['body']);
|
||||
} else {
|
||||
$mail['body'] = preg_replace('@<a[^>]+href=["\']([^"\']*)["\'][^>]*>([^<]*)</a>@i', "", $mail['body']);
|
||||
$mail['body'] = preg_replace('@<img[^>]+src=["\']([^"\']*)["\'][^>]*>@i', "", $mail['body']);
|
||||
}
|
||||
$mail['body'] = strip_tags($mail['body']);
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($this->get_config('includelink', 'false'))) {
|
||||
$mail['body'] = serendipity_archiveURL($eventData['id'], $eventData['title'], 'baseURL', true, array('timestamp' => $eventData['timestamp'])) . "\n\n" . $mail['body'];
|
||||
}
|
||||
|
||||
foreach($to AS $mailto) {
|
||||
if (!empty($mailto)) {
|
||||
echo serendipity_specialchars($mailto) . '...<br />';
|
||||
serendipity_sendMail($mailto, $mail['subject'], $mail['body'], $mail['from']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function event_hook($event, &$bag, &$eventData, $addData = null)
|
||||
{
|
||||
global $serendipity;
|
||||
@@ -162,7 +274,13 @@ class serendipity_event_mailer extends serendipity_event
|
||||
$sendtoall = serendipity_db_bool($this->get_config('sendtoall'));
|
||||
}
|
||||
|
||||
?>
|
||||
if (isset($serendipity['POST']['properties']['mailerbody'])) {
|
||||
$mailerbody = $serendipity['POST']['properties']['mailerbody'];
|
||||
} else {
|
||||
$mailerbody = $this->get_config('mailerbody');
|
||||
}
|
||||
|
||||
?>
|
||||
<fieldset class="entryproperties">
|
||||
<span class="wrap_legend"><legend><?php echo PLUGIN_EVENT_MAILER_NAME; ?></legend></span>
|
||||
|
||||
@@ -178,108 +296,40 @@ class serendipity_event_mailer extends serendipity_event
|
||||
<input id="sendall" type="checkbox" value="true" name="serendipity[properties][sendentry_all]" <?php echo ($sendtoall ? 'checked="checked"': ''); ?>>
|
||||
<label title="<?php echo PLUGIN_EVENT_MAILER_SENDTOALL; ?>" for="sendall"><?php echo PLUGIN_EVENT_MAILER_SENDTOALL; ?></label>
|
||||
</div>
|
||||
<?php if (!serendipity_db_bool($eventData['isdraft'])) { // Only show this for entries that are published ?>
|
||||
<div class="form_check">
|
||||
<input id="forcesend" type="checkbox" value="true" name="serendipity[properties][forcesend]">
|
||||
<label title="<?php echo PLUGIN_EVENT_MAILER_FORCESEND; ?>" for="forcesend"><?php echo PLUGIN_EVENT_MAILER_FORCESEND; ?></label>
|
||||
<br />
|
||||
<em><?php echo PLUGIN_EVENT_MAILER_FORCESEND_DESC; ?></em>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="form_check">
|
||||
<label for="mailerbody"><?= PLUGIN_EVENT_MAILER_MAILTEXT; ?></label>
|
||||
<textarea id="mailerbody" rows="5" name="serendipity[properties][mailerbody]" ><?php echo serendipity_specialchars($mailerbody); ?></textarea>
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php
|
||||
break;
|
||||
|
||||
case 'backend_save':
|
||||
if (serendipity_db_bool($eventData['isdraft'])) {
|
||||
// Never send e-mails for drafts.
|
||||
return true;
|
||||
}
|
||||
|
||||
if (isset($serendipity['POST']['properties']['forcesend']) && $serendipity['POST']['properties']['forcesend']) {
|
||||
$this->sendMail($eventData);
|
||||
} else {
|
||||
echo PLUGIN_EVENT_MAILER_NOTSENDDECISION . '<br />';
|
||||
}
|
||||
break;
|
||||
|
||||
case 'backend_publish':
|
||||
if (isset($serendipity['POST']['properties']) && !isset($serendipity['POST']['properties']['sendentry'])) {
|
||||
echo PLUGIN_EVENT_MAILER_NOTSENDDECISION . '<br />';
|
||||
} else {
|
||||
$mails = explode(' ', str_replace(',', '', $this->get_config('mailto')));
|
||||
$to = array();
|
||||
foreach($mails AS $mailto) {
|
||||
$mailto = trim($mailto);
|
||||
if (!empty($mailto)) {
|
||||
$to[] = $mailto;
|
||||
}
|
||||
}
|
||||
|
||||
$this->performConfig($to);
|
||||
if (is_array($this->data['cat'])) {
|
||||
$selected = array();
|
||||
if (is_array($eventData['categories'])) {
|
||||
foreach($eventData['categories'] AS $idx => $cid) {
|
||||
$selected[$cid] = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($this->data['cat'] AS $cid => $cat) {
|
||||
$mailto = trim($this->get_config('category_' . $cid));
|
||||
|
||||
if (!empty($mailto) && isset($selected[$cid])) {
|
||||
$tos = explode(' ', str_replace(',', '', $mailto));
|
||||
foreach($tos AS $mailtopart) {
|
||||
$to[] = trim($mailtopart);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($serendipity['POST']['properties']['sendentry_all']) {
|
||||
$mails = serendipity_db_query("SELECT DISTINCT email FROM {$serendipity['dbPrefix']}authors");
|
||||
foreach($mails AS $mail) {
|
||||
$to[] = trim($mail['email']);
|
||||
}
|
||||
}
|
||||
|
||||
$mail = array(
|
||||
'subject' => $eventData['title'],
|
||||
'body' => $eventData['body'] . $eventData['extended'],
|
||||
// 'from' => $serendipity['blogTitle'] . ' - ' . $eventData['author'] . ' <' . $serendipity['serendipityEmail'] . '>'
|
||||
'from' => $serendipity['serendipityEmail']
|
||||
);
|
||||
|
||||
switch($this->get_config('what')) {
|
||||
case 'all':
|
||||
$mail['body'] = $eventData['body'] . $eventData['extended'];
|
||||
break;
|
||||
case 'body':
|
||||
$mail['body'] = $eventData['body'];
|
||||
break;
|
||||
case 'extended':
|
||||
$mail['body'] = $eventData['extended'];
|
||||
break;
|
||||
case 'none':
|
||||
$mail['body'] = '';
|
||||
break;
|
||||
}
|
||||
|
||||
if (isset($serendipity['POST']['properties']['mailto'])) {
|
||||
$mails = explode(' ', str_replace(',', '', $serendipity['POST']['properties']['mailto']));
|
||||
foreach($mails as $mailto) {
|
||||
$mailto = trim($mailto);
|
||||
if (!in_array($mailto, $to)) {
|
||||
$to[] = $mailto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($this->get_config('convertp', 'false'))) {
|
||||
$mail['body'] = str_replace('</p>', "</p>\n", $mail['body']);
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($this->get_config('striptags', 'false'))) {
|
||||
if (serendipity_db_bool($this->get_config('keepstriptags', 'true'))) {
|
||||
$mail['body'] = preg_replace('§<a[^>]+href=["\']([^"\']*)["\'][^>]*>([^<]*)</a>§i', "$2 [$1]", $mail['body']);
|
||||
$mail['body'] = preg_replace('§<img[^>]+src=["\']([^"\']*)["\'][^>]*>§i', "[" . IMAGE . ": $1]", $mail['body']);
|
||||
} else {
|
||||
$mail['body'] = preg_replace('§<a[^>]+href=["\']([^"\']*)["\'][^>]*>([^<]*)</a>§i', "", $mail['body']);
|
||||
$mail['body'] = preg_replace('§<img[^>]+src=["\']([^"\']*)["\'][^>]*>§i', "", $mail['body']);
|
||||
}
|
||||
$mail['body'] = strip_tags($mail['body']);
|
||||
}
|
||||
|
||||
if (serendipity_db_bool($this->get_config('includelink', 'false'))) {
|
||||
$mail['body'] = serendipity_archiveURL($eventData['id'], $eventData['title'], 'baseURL', true, array('timestamp' => $eventData['timestamp'])) . "\n\n" . $mail['body'];
|
||||
}
|
||||
|
||||
foreach($to AS $mailto) {
|
||||
if (!empty($mailto)) {
|
||||
echo serendipity_specialchars($mailto) . '...<br />';
|
||||
serendipity_sendMail($mailto, $mail['subject'], $mail['body'], $mail['from']);
|
||||
}
|
||||
}
|
||||
$this->sendMail($eventData);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -295,4 +345,3 @@ class serendipity_event_mailer extends serendipity_event
|
||||
}
|
||||
|
||||
/* vim: set sts=4 ts=4 expandtab : */
|
||||
?>
|
||||
@@ -0,0 +1,2 @@
|
||||
1.88.2: Don't overwrite "moderate" flags from other plugins.
|
||||
($serendipity['csuccess'])
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @version
|
||||
* @version
|
||||
* @author Translator Name <yourmail@example.com>
|
||||
* EN-Revision: Revision of lang_en.inc.php
|
||||
*/
|
||||
@@ -147,3 +147,4 @@
|
||||
@define('PLUGIN_EVENT_SPAMBLOCK_SPAM', 'Spam');
|
||||
@define('PLUGIN_EVENT_SPAMBLOCK_NOT_SPAM', 'Not spam');
|
||||
|
||||
@define('PLUGIN_EVENT_SPAMBLOCK_LOGFILE_VALIDATE', 'Only file extensions .log and .txt are allowed');
|
||||
|
||||
@@ -25,7 +25,7 @@ class serendipity_event_spamblock extends serendipity_event
|
||||
'smarty' => '2.6.7',
|
||||
'php' => '4.1.0'
|
||||
));
|
||||
$propbag->add('version', '1.88.1');
|
||||
$propbag->add('version', '1.88.2');
|
||||
$propbag->add('event_hooks', array(
|
||||
'frontend_saveComment' => true,
|
||||
'external_plugin' => true,
|
||||
@@ -353,6 +353,8 @@ class serendipity_event_spamblock extends serendipity_event
|
||||
$propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_LOGFILE);
|
||||
$propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_LOGFILE_DESC);
|
||||
$propbag->add('default', $serendipity['serendipityPath'] . 'spamblock-%Y-%m-%d.log');
|
||||
$propbag->add('validate', '@\.(log|txt)$@imsU');
|
||||
$propbag->add('validate_error', PLUGIN_EVENT_SPAMBLOCK_LOGFILE_VALIDATE);
|
||||
break;
|
||||
|
||||
case 'logtype':
|
||||
@@ -876,7 +878,9 @@ class serendipity_event_spamblock extends serendipity_event
|
||||
if (!is_array($eventData) || serendipity_db_bool($eventData['allow_comments'])) {
|
||||
$this->checkScheme();
|
||||
|
||||
$serendipity['csuccess'] = 'true';
|
||||
if (!isset($serendipity['csuccess'])) {
|
||||
$serendipity['csuccess'] = 'true';
|
||||
}
|
||||
$logfile = $this->logfile = $this->get_config('logfile', $serendipity['serendipityPath'] . 'spamblock.log');
|
||||
$required_fields = $this->get_config('required_fields', '');
|
||||
$checkmail = $this->get_config('checkmail');
|
||||
@@ -1122,8 +1126,8 @@ class serendipity_event_spamblock extends serendipity_event
|
||||
}
|
||||
|
||||
// Check for forced comment moderation (X days)
|
||||
if ($addData['type'] == 'NORMAL' && $moderation_auto == true && (
|
||||
( $forcemoderation == 0 ) ||
|
||||
if ($addData['type'] == 'NORMAL' && $moderation_auto == true && (
|
||||
( $forcemoderation == 0 ) ||
|
||||
( $forcemoderation > 0 && $eventData['timestamp'] < (time() - ($forcemoderation * 60 * 60 * 24)) ) ) ) {
|
||||
$this->log($logfile, $eventData['id'], $forcemoderation_treat, PLUGIN_EVENT_SPAMBLOCK_REASON_FORCEMODERATION, $addData);
|
||||
if ($forcemoderation_treat == 'reject') {
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
2.37.6:
|
||||
-------
|
||||
* Fix wrong caching of plugin lists regardless of type.
|
||||
|
||||
2.37.5:
|
||||
-------
|
||||
* Fix missing reset to default after dropping netmirror.
|
||||
|
||||
@@ -27,7 +27,7 @@ class serendipity_event_spartacus extends serendipity_event
|
||||
$propbag->add('description', PLUGIN_EVENT_SPARTACUS_DESC);
|
||||
$propbag->add('stackable', false);
|
||||
$propbag->add('author', 'Garvin Hicking');
|
||||
$propbag->add('version', '2.37.5');
|
||||
$propbag->add('version', '2.37.6');
|
||||
$propbag->add('requirements', array(
|
||||
'serendipity' => '1.6',
|
||||
));
|
||||
@@ -711,6 +711,12 @@ class serendipity_event_spartacus extends serendipity_event
|
||||
{
|
||||
global $serendipity;
|
||||
static $pluginlist = null;
|
||||
static $cachedtype = null;
|
||||
|
||||
if (isset($cachedtype) && $cachedtype != $type) {
|
||||
// bust cache if called with other type
|
||||
$pluginlist = null;
|
||||
}
|
||||
|
||||
if ($pluginlist === null) {
|
||||
$pluginlist = array();
|
||||
@@ -736,6 +742,8 @@ class serendipity_event_spartacus extends serendipity_event
|
||||
}
|
||||
}
|
||||
}
|
||||
// save type of cached pluginlist
|
||||
$cachedtype = $type;
|
||||
|
||||
return $pluginlist;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Version 1.17:
|
||||
------------------------------------------------------------------------
|
||||
* Fix: Don't strip HTML tags from comment body before truncating if
|
||||
serendipity_event_unstrip_tags is active, so it may actually
|
||||
preserve the tags (and replace them with entities).
|
||||
Version 1.16:
|
||||
------------------------------------------------------------------------
|
||||
* Fix: wordwrap at word boundaries instead of "truncating" the lines
|
||||
|
||||
@@ -20,7 +20,7 @@ class serendipity_plugin_comments extends serendipity_plugin
|
||||
$propbag->add('description', PLUGIN_COMMENTS_BLAHBLAH);
|
||||
$propbag->add('stackable', true);
|
||||
$propbag->add('author', 'Garvin Hicking, Tadashi Jokagi, Judebert, G. Brockhaus');
|
||||
$propbag->add('version', '1.15');
|
||||
$propbag->add('version', '1.17');
|
||||
$propbag->add('requirements', array(
|
||||
'serendipity' => '1.6',
|
||||
'smarty' => '2.6.7',
|
||||
@@ -193,10 +193,17 @@ class serendipity_plugin_comments extends serendipity_plugin
|
||||
|
||||
if ($sql && is_array($sql)) {
|
||||
foreach($sql AS $key => $row) {
|
||||
if (function_exists('mb_strimwidth')) {
|
||||
$comment = mb_strimwidth(strip_tags($row['comment']), 0, $max_chars, " [...]", LANG_CHARSET);
|
||||
# don't strip HTML tags if serendipity_event_unstrip_tags is active
|
||||
if (!class_exists('serendipity_event_unstrip_tags')) {
|
||||
$comment = strip_tags($row['comment']);
|
||||
} else {
|
||||
$comments = wordwrap(strip_tags($row['comment']), $max_chars, '@@@', 1);
|
||||
$comment = $row['comment'];
|
||||
}
|
||||
# truncate comment to $max_chars
|
||||
if (function_exists('mb_strimwidth')) {
|
||||
$comment = mb_strimwidth($comment, 0, $max_chars, " [...]", LANG_CHARSET);
|
||||
} else {
|
||||
$comments = wordwrap($comment, $max_chars, '@@@', 1);
|
||||
$aComment = explode('@@@', $comments);
|
||||
$comment = $aComment[0];
|
||||
if (count($aComment) > 1) {
|
||||
@@ -228,14 +235,29 @@ class serendipity_plugin_comments extends serendipity_plugin
|
||||
$user = PLUGIN_COMMENTS_ANONYMOUS;
|
||||
}
|
||||
|
||||
if (function_exists('mb_strimwidth')) {
|
||||
# wrap lines at $wordwrap
|
||||
if (function_exists('mb_strimwidth') && function_exists('mb_strrpos') && function_exists('mb_substr')) {
|
||||
$pos = 0;
|
||||
$parts = array();
|
||||
$enc = LANG_CHARSET;
|
||||
$comment_len = mb_strlen($comment, $enc);
|
||||
# iterate over the (truncated) comment and wrap each line at $wordwrap
|
||||
while ($pos < $comment_len) {
|
||||
$part = mb_strimwidth($comment, $pos, $wordwrap, '', $enc);
|
||||
# do we still need to wrap this line or is it shorter than $wordwrap?
|
||||
if ($comment_len - $pos > $wordwrap) {
|
||||
# location of first space
|
||||
$spacepos = mb_strrpos(mb_substr($comment, $pos, $wordwrap, $enc), ' ', $enc);
|
||||
# wrap at word boundary if we have at least one space
|
||||
$part = ( $spacepos > 0 ) ? mb_substr($comment, $pos, $spacepos, $enc) : mb_strimwidth($comment, $pos, $wordwrap, '', $enc);;
|
||||
} else {
|
||||
# wrap "hard", i.e. truncate words that are too long
|
||||
$part = mb_substr($comment, $pos, $wordwrap, $enc);
|
||||
}
|
||||
# forward the pointer
|
||||
$pos += mb_strlen($part, $enc);
|
||||
# remove leading spaces
|
||||
$part = ltrim($part);
|
||||
# re-assemble the lines, i.e. add our current line
|
||||
$parts[] = $part;
|
||||
}
|
||||
$comment = implode("\n", $parts);
|
||||
|
||||
@@ -174,12 +174,19 @@ class serendipity_plugin_history extends serendipity_plugin
|
||||
}
|
||||
|
||||
$oldLim = $serendipity['fetchLimit'];
|
||||
if (isset($serendipity['GET']['page'])) {
|
||||
$oldPage = $serendipity['GET']['page'];
|
||||
unset($serendipity['GET']['page']);
|
||||
}
|
||||
$nowts = serendipity_serverOffsetHour();
|
||||
$maxts = mktime(23, 59, 59, date('m', $nowts), date('d', $nowts), date('Y', $nowts));
|
||||
$mints = mktime(0, 0, 0, date('m', $nowts), date('d', $nowts), date('Y', $nowts));
|
||||
$e = serendipity_fetchEntries(array(($mints-$max_age*86400),
|
||||
($maxts-$min_age*86400)), $full, $max_entries);
|
||||
$serendipity['fetchLimit'] = $oldLim;
|
||||
if (isset($oldPage)) {
|
||||
$serendipity['GET']['page'] = $oldPage;
|
||||
}
|
||||
echo (empty($intro)) ? '' : '<div class="serendipity_history_intro">' . $intro . '</div>' . "\n";
|
||||
|
||||
if (!is_array($e)) {
|
||||
|
||||
@@ -47,7 +47,7 @@ if (defined('USE_MEMSNAP')) {
|
||||
}
|
||||
|
||||
// The version string
|
||||
$serendipity['version'] = '2.3.0';
|
||||
$serendipity['version'] = '2.3.5';
|
||||
|
||||
|
||||
// Setting this to 'false' will enable debugging output. All alpha/beta/cvs snapshot versions will emit debug information by default. To increase the debug level (to enable Smarty debugging), set this flag to 'debug'.
|
||||
@@ -376,9 +376,11 @@ if (isset($_SESSION['serendipityAuthorid'])) {
|
||||
$serendipity['lang'] = serendipity_getPostAuthSessionLanguage();
|
||||
}
|
||||
|
||||
// Ensure that these limits do not contain strings
|
||||
// Ensure that these limits do not contain strings and have positive values
|
||||
$serendipity['fetchLimit'] = (int)$serendipity['fetchLimit'];
|
||||
if ($serendipity['fetchLimit'] < 1) $serendipity['fetchLimit'] = 1;
|
||||
$serendipity['RSSfetchLimit'] = (int)$serendipity['RSSfetchLimit'];
|
||||
if ($serendipity['RSSfetchLimit'] < 1) $serendipity['RSSfetchLimit'] = 1;
|
||||
|
||||
// Try to fix some path settings. It seems common users have this setting wrong
|
||||
// when s9y is installed into the root directory, especially 0.7.1 upgrade users.
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<h3><a href="?serendipity[action]=admin&serendipity[adminModule]=entries&serendipity[adminAction]=edit&serendipity[id]={$entry.id}" title="#{$entry.id}: {$entry.title|escape}">{$entry.title|escape}</a></h3>
|
||||
<h3><a href="?serendipity[action]=admin&serendipity[adminModule]=entries&serendipity[adminAction]=edit&serendipity[id]={$entry.id}" title="#{$entry.id}: {$entry.title}">{$entry.title}</a></h3>
|
||||
|
||||
<ul class="plainList clearfix actions">
|
||||
{if $entry.preview || (!$showFutureEntries && ($entry.timestamp >= $serverOffsetHour))}
|
||||
|
||||
@@ -3,13 +3,29 @@
|
||||
{else}
|
||||
{if $medias}
|
||||
<script>
|
||||
block = '<ul class="s9y_gallery plainList">';
|
||||
var blockSkip = false;
|
||||
var block = '';
|
||||
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_prepend' addData="galleryListing"}
|
||||
if (!blockSkip) {
|
||||
block = '<ul class="s9y_gallery plainList">';
|
||||
}
|
||||
|
||||
{foreach $medias as $media}
|
||||
{* generate the images of the gallery with their markup *}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' eventData=$media}
|
||||
block += '<li class="s9y_gallery_item"><a class="serendipity_image_link" href="{$media.file.links.imagelinkurl}"><!-- s9ymdb:{$media.file.id} --><img class="s9y_gallery_image" src="{$media.file.full_thumbHTTP|escape}" alt=""></a></li>';
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' data=$media addData="galleryListing"}
|
||||
if (blockSkip) {
|
||||
// Plugins can emit this variable and also assign their own "block" variable, which will override the s9y default
|
||||
} else {
|
||||
block += '<li class="s9y_gallery_item"><a class="serendipity_image_link" href="{$media.file.links.imagelinkurl}"><!-- s9ymdb:{$media.file.id} --><img class="s9y_gallery_image" src="{$media.file.full_thumbHTTP|escape}" alt=""></a></li>';
|
||||
}
|
||||
{/foreach}
|
||||
block += '</ul>';
|
||||
|
||||
blockSkip = false;
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_append' addData="galleryListing"}
|
||||
if (!blockSkip) {
|
||||
block += '</ul>';
|
||||
}
|
||||
|
||||
if (parent.self.opener == undefined) {
|
||||
// in iframes, there is no opener, and the magnific popup is wrapped
|
||||
@@ -29,13 +45,13 @@
|
||||
|
||||
<div class="clearfix">
|
||||
{if $media.file.is_image}
|
||||
{serendipity_hookPlugin hook="frontend_image_selector" eventData=$media.file hookAll=true}
|
||||
{serendipity_hookPlugin hook="frontend_image_selector" data=$media.file hookAll=true}
|
||||
<h1>{$CONST.YOU_CHOSE|sprintf:$media.file.realname}</h1>
|
||||
|
||||
<img src="{$media.file.imgsrc}" alt="">
|
||||
|
||||
<form id="imageForm" name="serendipity[selForm]" action="#" method="GET">
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_hiddenfields' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_hiddenfields' data=$media.file}
|
||||
<input name="imgThumbWidth" type="hidden" value="{$media.file.thumbWidth}">
|
||||
<input name="imgThumbHeight" type="hidden" value="{$media.file.thumbHeight}">
|
||||
<input name="imgWidth" type="hidden" value="{$media.file.dimensions_width}">
|
||||
@@ -54,7 +70,7 @@
|
||||
{/if}
|
||||
{if $media.file.fast_select}
|
||||
<script>
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' data=$media.file}
|
||||
serendipity.serendipity_imageSelector_done('{$media.textarea|escape}');
|
||||
</script>
|
||||
{else}
|
||||
@@ -72,7 +88,7 @@
|
||||
<label for="radio_link_yes">{$CONST.I_WANT_BIG_IMAGE}</label>
|
||||
</div>
|
||||
</div>
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagesize' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagesize' data=$media.file}
|
||||
</fieldset>
|
||||
{if NOT $media.filename_only}
|
||||
<fieldset id="image_alignment">
|
||||
@@ -94,7 +110,7 @@
|
||||
<label for="image_align_right"><img src="{serendipity_getFile file='img/img_align_right.png'}" alt="{$CONST.ALIGN_RIGHT}"></label>
|
||||
</div>
|
||||
</div>
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagealign' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagealign' data=$media.file}
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="image_as_link">
|
||||
@@ -116,7 +132,7 @@
|
||||
{if $media.file.hotlink}
|
||||
<input id="media_file_path" name="serendipity[url]" type="text" value="{$media.file.path}">
|
||||
{else}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_link_url' eventData=$media.file.links}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_link_url' data=$media.file.links}
|
||||
<input id="media_file_path" name="serendipity[url]" type="text" value="{$media.file.links.imagelinkurl}">
|
||||
{/if}
|
||||
</div>
|
||||
@@ -130,7 +146,7 @@
|
||||
<option value="plugin" {'target'|ifRemember:'plugin':false:'selected'}>{$CONST.MEDIA_ENTRY}</option>
|
||||
<option value="_blank" {'target'|ifRemember:'_blank':false:'selected'}>{$CONST.MEDIA_TARGET_BLANK}</option>
|
||||
</select>
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagelink2' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagelink2' data=$media.file}
|
||||
<label for="select_image_target">{$CONST.MEDIA_TARGET}</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -138,33 +154,33 @@
|
||||
<div id="image_comment" class="form_area">
|
||||
<label for="serendipity_imagecomment">{$CONST.COMMENT}</label>
|
||||
<textarea id="serendipity_imagecomment" name="serendipity[imagecomment]" rows="5">{$media.file.props.base_property.COMMENT1|escape|escape}</textarea>
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagecomment' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagecomment' data=$media.file}
|
||||
</div>
|
||||
|
||||
<div id="image_alttext" class="form_field">
|
||||
<label for="serendipity_alt">{$CONST.MEDIA_ALT}</label>
|
||||
<input id="serendipity_alt" name="serendipity[alt]" type="text" value="{$media.file.props.base_property.ALT|escape}">
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_alt' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_alt' data=$media.file}
|
||||
</div>
|
||||
|
||||
<div id="image_title" class="form_field">
|
||||
<label for="serendipity_title">{$CONST.MEDIA_TITLE}</label>
|
||||
<input id="serendipity_title" name="serendipity[title]" type="text" value="{$media.file.props.base_property.TITLE|escape}">
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_title' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_title' data=$media.file}
|
||||
</div>
|
||||
{/if}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_more' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_more' data=$media.file}
|
||||
<div class="form_buttons">
|
||||
<input class="go_back" type="button" value="{$CONST.BACK}">
|
||||
<input type="button" value="{$CONST.DONE}" onclick="serendipity.rememberMediaOptions(); {$media.file.origfinishJSFunction}">
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_submit' eventData=$media.file}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_selector_submit' data=$media.file}
|
||||
</div>
|
||||
{/if}{* else fast_select end *}
|
||||
</form>
|
||||
{else}{* if $media.file.is_image end *}
|
||||
{if $media.filename_only}
|
||||
<script>
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media}
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' data=$media}
|
||||
if (parent.self.opener == undefined) {
|
||||
// in iframes, there is no opener, and the magnific popup is wrapped
|
||||
parent.self = window.parent.parent.$.magnificPopup;
|
||||
@@ -174,21 +190,40 @@
|
||||
parent.self.close();
|
||||
</script>
|
||||
{else}
|
||||
<script>
|
||||
block = '<a class="block_level opens_window" href="{$media.file.full_file}" title="{$media.file.realname|escape}"><!-- s9ymdb:{$media.file.id} -->{$media.file.realname|escape}</a>';
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' eventData=$media}
|
||||
if (parent.self.opener == undefined) {
|
||||
// in iframes, there is no opener, and the magnific popup is wrapped
|
||||
parent.self = window.parent.parent.$.magnificPopup;
|
||||
parent.self.opener = window.parent.parent;
|
||||
}
|
||||
if (parent.self.opener.editorref) {
|
||||
parent.self.opener.editorref.surroundHTML(block, '');
|
||||
} else {
|
||||
parent.self.opener.serendipity.serendipity_imageSelector_addToBody(block, '{$media.textarea}');
|
||||
}
|
||||
parent.self.close();
|
||||
</script>
|
||||
{if $media.file.mediatype == 'video'}
|
||||
<script>
|
||||
block = '<video src="{$media.file.full_file}" controls><!-- s9ymdb:{$media.file.id} --><a class="block_level opens_window" href="{$media.file.full_file}" title="{$media.file.realname|escape}">{$media.file.realname|escape}</a></video>';
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' data=$media}
|
||||
if (parent.self.opener == undefined) {
|
||||
// in iframes, there is no opener, and the magnific popup is wrapped
|
||||
parent.self = window.parent.parent.$.magnificPopup;
|
||||
parent.self.opener = window.parent.parent;
|
||||
}
|
||||
if (parent.self.opener.editorref) {
|
||||
parent.self.opener.editorref.surroundHTML(block, '');
|
||||
} else {
|
||||
parent.self.opener.serendipity.serendipity_imageSelector_addToBody(block, '{$media.textarea}');
|
||||
}
|
||||
parent.self.close();
|
||||
</script>
|
||||
|
||||
{else}
|
||||
<script>
|
||||
block = '<a class="block_level opens_window" href="{$media.file.full_file}" title="{$media.file.realname|escape}"><!-- s9ymdb:{$media.file.id} -->{$media.file.realname|escape}</a>';
|
||||
{serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' data=$media}
|
||||
if (parent.self.opener == undefined) {
|
||||
// in iframes, there is no opener, and the magnific popup is wrapped
|
||||
parent.self = window.parent.parent.$.magnificPopup;
|
||||
parent.self.opener = window.parent.parent;
|
||||
}
|
||||
if (parent.self.opener.editorref) {
|
||||
parent.self.opener.editorref.surroundHTML(block, '');
|
||||
} else {
|
||||
parent.self.opener.serendipity.serendipity_imageSelector_addToBody(block, '{$media.textarea}');
|
||||
}
|
||||
parent.self.close();
|
||||
</script>
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}{* if $media.file.is_image is something else end *}
|
||||
</div>
|
||||
|
||||
@@ -55,10 +55,6 @@
|
||||
{$img_alt="{$file.mime}"}
|
||||
{/if}
|
||||
{/if}
|
||||
{* builds a ML objects link for step 1, to pass to media_choose.tpl file section: passthrough media.filename_only scripts - do not use "empty($link) AND" here, since that would require a reset before! *}
|
||||
{if (!$file.is_image OR $file.is_image == 0) AND $file.mediatype != 'image' AND $file.realfile}
|
||||
{$link="?serendipity[adminModule]=images&serendipity[adminAction]=choose&serendipity[noBanner]=true&serendipity[noSidebar]=true&serendipity[noFooter]=true&serendipity[fid]={$file.id}&serendipity[filename_only]={$media.filename_only}&serendipity[textarea]={$media.textarea}&serendipity[htmltarget]={$media.htmltarget}"}
|
||||
{/if}
|
||||
|
||||
<article id="media_{$file.id}" class="media_file {if $media.manage AND $media.multiperm}manage {/if}{cycle values="odd,even"}">
|
||||
<header class="clearfix">
|
||||
@@ -84,9 +80,23 @@
|
||||
|
||||
<div class="clearfix equal_heights media_file_wrap">
|
||||
<div class="media_file_preview">
|
||||
<a {if $media.manage AND $media.multiperm}class="media_fullsize"{/if} href="{$link}" title="{$CONST.MEDIA_FULLSIZE}: {$file.realname}" data-pwidth="{$file.popupWidth}" data-pheight="{$file.popupHeight}">
|
||||
<img src="{$img_src}" title="{$img_title}" alt="{$img_alt}">
|
||||
</a>
|
||||
{if $file.mediatype == 'video'}
|
||||
<video src="{$file.imgsrc}" controls>
|
||||
<img src="{$img_src}" title="{$img_title}" alt="{$img_alt}">
|
||||
</video>
|
||||
<br />
|
||||
{if NOT $media.manage}
|
||||
{* we need a link to go to the next step when inserting into an entry *}
|
||||
<a {if $media.manage AND $media.multiperm}class="media_fullsize"{/if} href="{$link}" title="{$CONST.MEDIA_FULLSIZE}: {$file.realname}" data-pwidth="{$file.popupWidth}" data-pheight="{$file.popupHeight}">
|
||||
{$CONST.VIDEO}
|
||||
</a>
|
||||
{/if}
|
||||
{else}
|
||||
<a {if $media.manage AND $media.multiperm}class="media_fullsize"{/if} href="{$link}" title="{$CONST.MEDIA_FULLSIZE}: {$file.realname}" data-pwidth="{$file.popupWidth}" data-pheight="{$file.popupHeight}">
|
||||
{* even files that are not images get aplaceholder image from the backend *}
|
||||
<img src="{$img_src}" title="{$img_title}" alt="{$img_alt}">
|
||||
</a>
|
||||
{/if}
|
||||
<footer id="media_file_meta_{$file.id}" class="media_file_meta additional_info">
|
||||
<ul class="plainList">
|
||||
{if $file.hotlink}
|
||||
|
||||
@@ -287,7 +287,7 @@
|
||||
<input type="hidden" id="newDir" name="serendipity[newDir]">
|
||||
</form>
|
||||
<div id="move-popup" class="mfp-hide">
|
||||
<h3>Move images to directory</h3>
|
||||
<h3>{$CONST.MEDIA_DIRECTORY_MOVE}</h3>
|
||||
<form>
|
||||
<div class="form_select">
|
||||
<select >
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user