Included missed language constant in checksum verification

This commit is contained in:
Jude Anthony 2008-04-29 19:42:57 +00:00
parent b97fe45e5b
commit 0e67b071dd
66 changed files with 309 additions and 5 deletions

View File

@ -40,8 +40,20 @@ else
echo " serious harm! Only use it, if you are a developer and about"
echo " to bundle a new release version!"
echo ""
echo "Hit [ENTER] to continue, or abort this script"
echo "Hit [ENTER] to continue, or abort this script (CTRL-C)"
read -n 1
gensums=0
which php > /dev/null
if [ $? -ne 0 ]
then
gensums=-1
echo "NOTICE: Checksums will not be generated because PHP is not available."
echo " Install PHP to generate checksums for file validation, or "
echo " run serendipity_generateFTPChecksums.php manually."
echo ""
echo "Hit [ENTER] to continue, or abort this script (CTRL-C)"
read -n 1
fi
echo "1. Operating on basedirectory ../../$2"
cd ../../
@ -81,7 +93,21 @@ else
echo " [DONE]"
echo ""
echo "6. Altering CVS to be useful for anonymous users..."
echo "6. Generating checksums..."
if [ $gensums -ne 0 ]
then
echo " [SKIP]"
else
if (echo "true" | php -B "define('IN_serendipity', true);" -F serendipity_generateFTPChecksums.php)
then
echo " [DONE]"
else
rm -rf checksums.inc.php
echo " [FAIL]"
fi
fi
echo ""
echo "7. Altering CVS to be useful for anonymous users..."
echo " - Removing CVS branch tag, so that a user can upgrade to latest CVS"
find "$2" -type f -name Tag -exec rm {} \;
echo " [DONE]"
@ -93,12 +119,12 @@ else
echo " [DONE]"
echo ""
echo "7. Creating .tgz file $1"
echo "8. Creating .tgz file $1"
tar --owner=$3 --group=$4 -czf "$1" "$2"
echo " [DONE]"
echo ""
echo "8. All Done. Bybe-Bye."
echo "9. All Done. Bye-Bye."
else
echo "Basedirectory ../../$2 not found. Check parameters"
fi

View File

@ -0,0 +1,59 @@
<?php
# Copyright (c) 2008 Judebert (on behalf of the Serendipity development team)
# All rights reserved. See LICENSE file for licensing details
// Call this file from the base directory with
// echo "true" | 'php -B "define('IN_serendipity', true);" -F bundled-libs/serendipity_generateFTPChecksums.php'
if (IN_serendipity !== true) {
die ("Don't hack!\n");
}
$basedir = realpath(dirname(__FILE__) . '/../') . '/';
require_once $basedir . 'include/functions_installer.inc.php';
require_once $basedir . 'include/functions_images.inc.php';
// Find all the files in the serendipity directory and calculate their md5 sums
$sums = array();
$excludes = array(
'CHANGELOG',
'checksums.inc.php',
);
$files = serendipity_traversePath($basedir, '', false);
foreach ($files as $fdata) {
// Don't take checksums of directories
if ($fdata['directory']) {
continue;
}
$fname = $fdata['name'];
$prel = $fdata['relpath'];
$path = $basedir . $prel;
if ($fname[0] == '.' || !is_readable($path)) {
// serendipity_traversePath already excludes CVS and svn directories
continue;
}
// Are we SURE we should checksum this file?
if (is_file($path) && !in_array($fname, $excludes)) {
$sum = serendipity_FTPChecksum($path);
// If you find the valid file with an MD5 sum of 0, let me know. ;)
if ($sum) {
$sums[$prel] = $sum;
}
continue;
}
}
if (!empty($sums)) {
$file = fopen($basedir . '/' . 'checksums.inc.php', 'w');
if (!$file) {
die('Unable to open output file!');
}
fwrite($file, '<?php' . "\n" . 'global $serendipity;' . "\n" . '$serendipity[\'checksums\'] = array (' . "\n");
foreach ($sums as $fname => $sum) {
fwrite($file, "'$fname' => '$sum',\n");
}
fwrite($file, ');');
fclose($file);
}
/* vim: set sts=4 ts=4 sw=4 expandtab : */
?>

View File

@ -264,6 +264,25 @@ if (($showAbort && $serendipity['GET']['action'] == 'ignore') || $serendipity['G
?>
<div align="center">
<table class="serendipity_admin_list_item serendipity_admin_list_item_even" width="90%" align="center">
<?php if (is_readable($basedir . 'checksums.inc.php')) {
$badsums = serendipity_verifyFTPChecksums();
?>
<tr>
<td colspan="2" style="font-weight: bold"><?php echo INTEGRITY ?></td>
</tr>
<tr>
<td width="200"><?php
if ( empty($badsums) ) {
echo serendipity_upgraderResultDiagnose(S9Y_U_SUCCESS, CHECKSUMS_PASS);
} else {
foreach ($badsums as $rfile => $sum) {
echo serendipity_upgraderResultDiagnose(S9Y_U_ERROR, sprintf(CHECKSUM_FAILED, $rfile));
}
}
?></td>
</tr>
<?php } // End if checksums
?>
<tr>
<td colspan="2" style="font-weight: bold"><?php echo PERMISSIONS ?></td>
</tr>

View File

@ -688,6 +688,11 @@ function serendipity_checkInstallation() {
$errs = array();
$badsums = serendipity_verifyFTPChecksums();
foreach ($badsums as $rfile => $sum) {
$errs[] = sprintf(CHECKSUM_FAILED, $rfile);
}
serendipity_initPermalinks();
// Check dirs
@ -1182,3 +1187,113 @@ global $serendipity;
}
}
/**
* Retrieve an FTP-compatible checksum for a file.
*
* @access public
* @param string filename is the path to the file to checksum
* @param string type forces a particular interpretation of newlines. Mime
* types and strings starting with 'text' will cause newlines to be stripped
* before the checksum is calculated (default: null, determine from finfo
* and extension)
* @return string An MD5 checksum of the file, with newlines removed if it's
* an ASCII type; or false if the file cannot be read
*/
function serendipity_FTPChecksum($filename, $type = null) {
/** Only read the finfo database once */
static $debug_exts = array();
// Must be able to read the file
if (!is_readable($filename)) {
return false;
}
// Figure out whether it's binary or text by extension
if ($type == null) {
$parts = pathinfo($filename);
$ext = '';
// Some PHP versions throw a warning if the index doesn't exist
if (isset($parts['extension'])) {
$ext = $parts['extension'];
}
// If they're case-insensitive equal, strcasecmp() returns 0, or
// 'false'. So I use && to find if any of them are 0, in the
// most likely fail-fast order.
if (strcasecmp($ext, 'php') &&
strcasecmp($ext, 'tpl') &&
strcasecmp($ext, 'sql') &&
strcasecmp($ext, 'js') &&
strcasecmp($ext, 'txt') &&
strcasecmp($ext, 'htc') &&
strcasecmp($ext, 'css') &&
strcasecmp($ext, 'dist') &&
strcasecmp($ext, 'lib') &&
strcasecmp($ext, 'sh') &&
strcasecmp($ext, 'html') &&
strcasecmp($ext, 'htm') &&
!empty($ext)) {
if (!in_array($ext, array_keys($debug_exts))) {
$debug_exts[$ext] = $filename;
}
$type = 'bin';
} else {
$type = 'text';
}
}
// Calculate the checksum
$md5 = false;
if (stristr($type, 'text')) {
// This is a text-type file. We need to remove linefeeds before
// calculating a checksum, to account for possible FTP conversions
// that are inconvenient, but still valid. But we don't want to
// allow newlines anywhere; just different *kinds* of newlines.
$newlines = array("#\r\n#", "#\r#", "#\n#");
$file = file_get_contents($filename);
$file = preg_replace($newlines, ' ', $file);
$md5 = md5($file);
} else {
// Just get its md5sum
$md5 = md5_file($filename);
}
return $md5;
}
/**
* Validate checksums for all required files.
*
* @return A list of all files that failed checksum, where keys are the
* relative path of the file, and values are the bad checksum
*/
function serendipity_verifyFTPChecksums() {
// Load the checksums
require_once S9Y_INCLUDE_PATH . 'checksums.inc.php';
// Verify that every file in the checksum list was uploaded correctly
$badsums = array();
$basedir = realpath(dirname(__FILE__) . '/../');
foreach ($serendipity['checksums'] as $prel => $sum) {
$path = $basedir . '/' . $prel;
// Don't take checksums of directories
if (is_dir($path)) {
// Weird that it's even here.
continue;
}
// Can't checksum unreadable or nonexistent files
if (!is_readable($path)) {
$badsums[$prel] = 'missing';
continue;
}
// Validate checksum
$calcsum = serendipity_FTPChecksum($path);
if ($sum != $calcsum) {
$badsums[$prel] = $calcsum;
continue;
}
}
return $badsums;
}
/* vim: set sts=4 ts=4 sw=4 expandtab : */

View File

@ -368,6 +368,7 @@ $i18n_filename_to = array('-', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
@define('SYNDICATION_PLUGIN_GENERIC_FEED', 'Емисия %s');
@define('PERMISSIONS', 'Права');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Новите настройки са записани в %s');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '权限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新设定已经被保存到 %s');

View File

@ -326,6 +326,7 @@ $i18n_filename_to = array (
@define('FOUND_FILE', 'Založit nový/změnit soubor: %s.');
@define('PERMISSIONS', 'Oprávnění');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -326,6 +326,7 @@ $i18n_filename_to = array (
@define('FOUND_FILE', 'Založit nový/změnit soubor: %s.');
@define('PERMISSIONS', 'Oprávnění');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -295,6 +295,7 @@
@define('ENTRIES_PER_PAGE', 'artikler per side');
@define('PERMISSIONS', 'Rettigheder');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -320,6 +320,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s Feed');
@define('PERMISSIONS', 'Rechte');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('XML_IMAGE_TO_DISPLAY', 'XML-Button');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permissions');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'The new settings have been saved at %s');

View File

@ -320,6 +320,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permisos');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -334,6 +334,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s');
@define('PERMISSIONS', 'دسترسی ها');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'تنظیمات جدید در %s ثبت شد');

View File

@ -332,6 +332,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s');
@define('PERMISSIONS', 'Oikeudet');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Uudet asetukset on tallettetu %s');

View File

@ -427,6 +427,7 @@
@define('PERMISSIONS', 'Permissions');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('USERCONF_ALLOWPUBLISH', 'Publication de billets ?');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s hírcsatorna');
@define('PERMISSIONS', 'Jogosultságok');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Az új beállításokat elmentettük ekkor: %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s straumur');
@define('PERMISSIONS', 'Réttindi');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Nýju stillingarnar voru vistaðar klukkan %s');

View File

@ -322,6 +322,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', 'feed %s');
@define('PERMISSIONS', 'Permessi');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Le nuove impostazioni sono state salvate in %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s フィード');
@define('PERMISSIONS', '許可');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新しい設定は %s に保存されました。');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s 피드');
@define('PERMISSIONS', '권한 설정');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '새로운 설정이 %s에 저장되었습니다');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s-toevoer');
@define('PERMISSIONS', 'Toegangsrechten');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'De instellingen zijn opgeslagen in %s');

View File

@ -295,6 +295,7 @@
/* TRANSLATE */
@define('PERMISSIONS', 'Rettigheter');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -335,6 +335,7 @@ $i18n_filename_to = array('_', 'a', 'A', 'a', 'A', 'b', 'B', 'c', 'C', 'c', 'C
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Uprawnienia');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Ustawienia zostały zapisane o %s');

View File

@ -318,6 +318,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permissões');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -324,6 +324,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permissões');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'As novas preferências foram guardadas em %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permisiuni');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Noile preferinţe au fost salvate în %s');

View File

@ -336,6 +336,7 @@ $i18n_filename_to = array('_', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
@define('SYNDICATION_PLUGIN_GENERIC_FEED', 'лента %s');
@define('PERMISSIONS', 'Права доступа');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Новые настройки были сохранены в %s');

View File

@ -334,6 +334,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'الصلاحيات');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'تم حفظ الاعدادات الجديدة في %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s matning');
@define('PERMISSIONS', 'Rättigheter');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'De nya inställningarna har sparats på %s');

View File

@ -331,6 +331,7 @@
@define('IN_REPLY_TO', 'இக்கருத்தைப் பற்றி');
@define('TOP_LEVEL', 'குறிப்பு பற்றி');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');

View File

@ -335,6 +335,7 @@ $i18n_unknown = 'tw';
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '權限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新設定已經儲存於 %s');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s beslemesi');
@define('PERMISSIONS', 'izinler');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Yeni ayarlarınız kaydedildi %s');

View File

@ -335,6 +335,7 @@ $i18n_unknown = 'tw';
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '權限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新設定已經儲存於 %s');

View File

@ -334,6 +334,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '权限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新设定已经被保存到 %s');

View File

@ -368,6 +368,7 @@ $i18n_filename_to = array('-', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
@define('SYNDICATION_PLUGIN_GENERIC_FEED', 'Åìèñèÿ %s');
@define('PERMISSIONS', 'Ïðàâà');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Íîâèòå íàñòðîéêè ñà çàïèñàíè â %s');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '权限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新设定已经被保存到 %s');

View File

@ -326,6 +326,7 @@ $i18n_filename_to = array (
@define('FOUND_FILE', 'Založit nový/zmìnit soubor: %s.');
@define('PERMISSIONS', 'Oprávnìní');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -326,6 +326,7 @@ $i18n_filename_to = array (
@define('FOUND_FILE', 'Zalo¾it nový/zmìnit soubor: %s.');
@define('PERMISSIONS', 'Oprávnìní');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -295,6 +295,7 @@
@define('ENTRIES_PER_PAGE', 'artikler per side');
@define('PERMISSIONS', 'Rettigheder');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -320,6 +320,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s Feed');
@define('PERMISSIONS', 'Rechte');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('XML_IMAGE_TO_DISPLAY', 'XML-Button');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permissions');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'The new settings have been saved at %s');

View File

@ -320,6 +320,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permisos');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -334,6 +334,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s');
@define('PERMISSIONS', 'دسترسی ها');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'تنظیمات جدید در %s ثبت شد');

View File

@ -332,6 +332,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s');
@define('PERMISSIONS', 'Oikeudet');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Uudet asetukset on tallettetu %s');

View File

@ -427,6 +427,7 @@
@define('PERMISSIONS', 'Permissions');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('USERCONF_ALLOWPUBLISH', 'Publication de billets ?');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s hírcsatorna');
@define('PERMISSIONS', 'Jogosultságok');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Az új beállításokat elmentettük ekkor: %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s straumur');
@define('PERMISSIONS', 'Réttindi');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Nýju stillingarnar voru vistaðar klukkan %s');

View File

@ -322,6 +322,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', 'feed %s');
@define('PERMISSIONS', 'Permessi');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Le nuove impostazioni sono state salvate in %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s フィード');
@define('PERMISSIONS', '許可');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新しい設定は %s に保存されました。');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s 피드');
@define('PERMISSIONS', '권한 설정');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '새로운 설정이 %s에 저장되었습니다');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s-toevoer');
@define('PERMISSIONS', 'Toegangsrechten');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'De instellingen zijn opgeslagen in %s');

View File

@ -295,6 +295,7 @@
/* TRANSLATE */
@define('PERMISSIONS', 'Rettigheter');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -335,6 +335,7 @@ $i18n_filename_to = array('_', 'a', 'A', 'a', 'A', 'b', 'B', 'c', 'C', 'c', 'C
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Uprawnienia');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Ustawienia zosta³y zapisane o %s');

View File

@ -318,6 +318,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permissões');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');

View File

@ -324,6 +324,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permissões');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'As novas preferências foram guardadas em %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'Permisiuni');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Noile preferinţe au fost salvate în %s');

View File

@ -336,6 +336,7 @@ $i18n_filename_to = array('_', 'a', 'A', 'b', 'B', 'v', 'V', 'g', 'G', 'd', 'D
@define('SYNDICATION_PLUGIN_GENERIC_FEED', 'лента %s');
@define('PERMISSIONS', 'Права доступа');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Новые настройки были сохранены в %s');

View File

@ -334,6 +334,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', 'ÇáÕáÇÍíÇÊ');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Êã ÍÝÙ ÇáÇÚÏÇÏÇÊ ÇáÌÏíÏÉ Ýí %s');

View File

@ -333,6 +333,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s matning');
@define('PERMISSIONS', 'Rättigheter');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'De nya inställningarna har sparats på %s');

View File

@ -331,6 +331,7 @@
@define('IN_REPLY_TO', 'இக்கருத்தைப் பற்றி');
@define('TOP_LEVEL', 'குறிப்பு பற்றி');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');

View File

@ -335,6 +335,7 @@ $i18n_unknown = 'tw';
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '權限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新設定已經儲存於 %s');

View File

@ -335,6 +335,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s beslemesi');
@define('PERMISSIONS', 'izinler');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', 'Yeni ayarlarınız kaydedildi %s');

View File

@ -335,6 +335,7 @@ $i18n_unknown = 'tw';
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '權限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新設定已經儲存於 %s');

View File

@ -334,6 +334,7 @@
@define('SYNDICATION_PLUGIN_GENERIC_FEED', '%s feed');
@define('PERMISSIONS', '权限');
@define('INTEGRITY', 'Verify Installation Integrity');
@define('CHECKSUMS_NOT_FOUND', 'Unable to compare checksums! (No checksums.inc.php in main directory)');
@define('CHECKSUMS_PASS', 'All required files verified.');
@define('CHECKSUM_FAILED', '%s corrupt or modified: failed verification');
@define('SETTINGS_SAVED_AT', '新设定已经被保存到 %s');

View File

@ -215,6 +215,25 @@ if (!$use_installer && $is_logged_in) {
echo LOGGEDOUT;
break;
case 'integrity':
echo '<div class="serendipity_admin_title">' . INTEGRITY . '</div>';
$badsums = array();
if (!is_readable(S9Y_INCLUDE_PATH . 'checksums.inc.php')) {
echo '<span class="serendipityAdminMsgNote">' . CHECKSUMS_NOT_FOUND . '</span>';
break;
}
$badsums = serendipity_verifyFTPChecksums();
if (count($badsums) == 0) {
echo '<span class="serendipityAdminMsgSuccess">' . CHECKSUMS_PASS . '</span>';
} else {
echo '<ul>';
foreach ($badsums as $rpath => $calcsum) {
echo '<li class="serendipityAdminMsgError">' . sprintf(CHECKSUM_FAILED, $rpath) . '</li>';
}
echo '</ul>';
}
break;
default:
include S9Y_INCLUDE_PATH . 'include/admin/overview.inc.php';
break;
@ -435,6 +454,9 @@ if ($use_installer) {
<?php if (serendipity_checkPermission('adminImport')) { ?>
<li class="serendipitySideBarMenuLink serendipitySideBarMenuUserManagementLinks"><a href="serendipity_admin.php?serendipity[adminModule]=import"><?php echo IMPORT_ENTRIES; ?></a></li>
<li class="serendipitySideBarMenuLink serendipitySideBarMenuUserManagementLinks"><a href="serendipity_admin.php?serendipity[adminModule]=export"><?php echo EXPORT_ENTRIES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('siteConfiguration') || serendipity_checkPermission('blogConfiguration')) { ?>
<li class="serendipitySideBarMenuLink serendipitySideBarMenuUserManagementLinks"><a href="serendipity_admin.php?serendipity[adminModule]=integrity"><?php echo INTEGRITY; ?></a></li>
<?php } ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_admin', $serendipity); ?>
<li class="serendipitySideBarMenuFoot serendipitySideBarMenuUserManagement" style="display:none"></li>

View File

@ -207,6 +207,9 @@
<li class="serendipitySideBarMenuLink serendipitySideBarMenuUserManagementLinks"><a href="serendipity_admin.php?serendipity[adminModule]=import">{$CONST.IMPORT_ENTRIES}</a></li>
<li class="serendipitySideBarMenuLink serendipitySideBarMenuUserManagementLinks"><a href="serendipity_admin.php?serendipity[adminModule]=export">{$CONST.EXPORT_ENTRIES}</a></li>
{/if}
{if 'siteConfiguration'|checkPermission || 'blogConfiguration'|checkPermission}
<li class="serendipitySideBarMenuLink serendipitySideBarMenuUserManagementLinks"><a href="serendipity_admin.php?serendipity[adminModule]=integrity">{$CONST.INTEGRITY}</a></li>
{/if}
{if $admin_vars.no_create !== true} {serendipity_hookPlugin hook="backend_sidebar_admin" hookAll="true"}{/if}
<li class="serendipitySideBarMenuFoot serendipitySideBarMenuUserManagement" style="display:none"></li>
</ul>
@ -244,4 +247,4 @@
</div>
</body>
<!-- ADMIN-ENTRY TEMPLATE: index.tpl END -->
</html>
</html>