Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2018-03-13 18:01:42 +01:00
commit 66f478b36a
50 changed files with 689 additions and 138 deletions

View File

@ -91,6 +91,11 @@
- add document list which can be exported as an archive
- search results can be exported
--------------------------------------------------------------------------------
Changes in version 5.1.7
--------------------------------------------------------------------------------
- support for upload/download of extensions
--------------------------------------------------------------------------------
Changes in version 5.1.6
--------------------------------------------------------------------------------

View File

@ -30,7 +30,7 @@ class Controller {
* @return object an object of a class implementing the view
*/
static function factory($class, $params=array()) { /* {{{ */
global $settings, $session, $dms, $user, $EXT_CONF;
global $settings, $session, $EXT_CONF;
if(!$class) {
return null;
}
@ -52,8 +52,6 @@ class Controller {
require($filename);
$controller = new $classname($params);
/* Set some configuration parameters */
$controller->setParam('dms', $dms);
$controller->setParam('user', $user);
$controller->setParam('class', $class);
$controller->setParam('postVars', $_POST);
$controller->setParam('getVars', $_GET);

View File

@ -32,6 +32,12 @@ class SeedDMS_Extension_Mgr {
*/
protected $extdir;
/**
* @var array[] $extconf configuration of all extensions
* @access protected
*/
protected $extconf;
/**
* @var string $cachedir directory where cached extension configuration
* is stored
@ -39,25 +45,89 @@ class SeedDMS_Extension_Mgr {
*/
protected $cachedir;
/**
* @var string[] $errmsg list of error message from last operation
* @access protected
*/
protected $errmsgs;
function __construct($extdir = '', $cachedir = '') {
/**
* Compare two version
*
* This functions compares two version in the format x.x.x
*
* @param string $ver1
* @param string $ver2
* @return int -1 if $ver1 < $ver2, 0 if $ver1 == $ver2, 1 if $ver1 > $ver2
*/
static public function cmpVersion($ver1, $ver2) { /* {{{ */
$tmp1 = explode('.', $ver1);
$tmp2 = explode('.', $ver2);
if(intval($tmp1[0]) < intval($tmp2[0])) {
return -1;
} elseif(intval($tmp1[0]) > intval($tmp2[0])) {
return 1;
} else {
if(intval($tmp1[1]) < intval($tmp2[1])) {
return -1;
} elseif(intval($tmp1[1]) > intval($tmp2[1])) {
return 1;
} else {
if(intval($tmp1[2]) < intval($tmp2[2])) {
return -1;
} elseif(intval($tmp1[2]) > intval($tmp2[2])) {
return 1;
} else {
return 0;
}
}
}
} /* }}} */
/**
* Constructor of extension manager
*
* Reads the configuration of all extensions and creates the
* configuration file if it does not exist and the extension dir
* is given
*/
public function __construct($extdir = '', $cachedir = '') {
$this->cachedir = $cachedir;
$this->extdir = $extdir;
$this->extconf = array();
if($extdir) {
if(!file_exists($this->getExtensionsConfFile())) {
$this->createExtensionConf();
}
include($this->getExtensionsConfFile());
if($EXT_CONF) {
$this->extconf = $EXT_CONF;
}
}
}
function getExtensionsConfFile() { /* {{{ */
protected function getExtensionsConfFile() { /* {{{ */
return $this->cachedir."/extensions.php";
} /* }}} */
/**
* Get the configuration of extensions
*
* @return array[]
*/
public function getExtensionConfiguration() { /* {{{ */
return $this->extconf;
} /* }}} */
/**
* Create the cached file containing extension information
*
* This function will always create a file, even if no extensions
* are installed.
*/
function createExtensionConf() { /* {{{ */
public function createExtensionConf() { /* {{{ */
$extensions = self::getExtensions();
$fp = fopen(self::getExtensionsConfFile(), "w");
$fp = @fopen(self::getExtensionsConfFile(), "w");
if($fp) {
if($extensions) {
foreach($extensions as $_ext) {
@ -74,7 +144,7 @@ class SeedDMS_Extension_Mgr {
}
} /* }}} */
function getExtensions() { /* {{{ */
protected function getExtensions() { /* {{{ */
$extensions = array();
if(file_exists($this->extdir)) {
$handle = opendir($this->extdir);
@ -90,4 +160,189 @@ class SeedDMS_Extension_Mgr {
}
return $extensions;
} /* }}} */
public function createArchive($extname, $version) { /* {{{ */
if(!is_dir($this->extdir ."/". $extname))
return false;
$tmpfile = $this->cachedir."/".$extname."-".$version.".zip";
$cmd = "cd ".$this->extdir."/".$extname."; zip -r ".$tmpfile." .";
exec($cmd);
return $tmpfile;
} /* }}} */
/**
* Check content of extension directory
*
* @param string $dir full path to extension directory or extension name
* @param boolean $noconstraints set to true if constraints to local seeddms
* installation shall not be checked.
*/
public function checkExtension($dir, $noconstraints=false) { /* {{{ */
$this->errmsgs = array();
if(!file_exists($dir)) {
if(!file_exists($this->extdir.'/'.$dir))
return false;
else
$dir = $this->extdir.'/'.$dir;
}
if(!file_exists($dir."/conf.php")) {
$this->errmsgs[] = "Missing extension configuration";
return false;
}
include($dir."/conf.php");
if(!isset($EXT_CONF)) {
$this->errmsgs[] = "Missing \$EXT_CONF in configuration";
return false;
}
$extname = key($EXT_CONF);
if(!$extname || !preg_match('/[a-zA-Z_]*/', $extname)) {
return false;
}
$extconf = $EXT_CONF[$extname];
if(!isset($extconf['constraints']['depends']['seeddms'])) {
$this->errmsgs[] = "Missing dependency on SeedDMS";
}
if(!isset($extconf['constraints']['depends']['php'])) {
$this->errmsgs[] = "Missing dependency on PHP";
}
if(!isset($extconf['version'])) {
$this->errmsgs[] = "Missing version information";
}
if(!isset($extconf['title'])) {
$this->errmsgs[] = "Missing title";
}
if(!isset($extconf['author'])) {
$this->errmsgs[] = "Missing author";
}
if(!empty($extconf['language']['file']) && !file_exists($dir."/".$extconf['language']['file'])) {
$this->errmsgs[] = "Missing language file";
}
if(!empty($extconf['class']['file']) && !file_exists($dir."/".$extconf['class']['file'])) {
$this->errmsgs[] = "Missing class file";
}
if(!$noconstraints && isset($extconf['constraints']['depends'])) {
foreach($extconf['constraints']['depends'] as $dkey=>$dval) {
switch($dkey) {
case 'seeddms':
$version = new SeedDMS_Version;
$tmp = explode('-', $dval, 2);
if(self::cmpVersion($tmp[0], $version->version()) > 0 || ($tmp[1] && self::cmpVersion($tmp[1], $version->version()) < 0))
$this->errmsgs[] = sprintf("Incorrect SeedDMS version (needs version %s)", $extconf['constraints']['depends']['seeddms']);
break;
case 'php':
$tmp = explode('-', $dval, 2);
if(self::cmpVersion($tmp[0], phpversion()) > 0 || ($tmp[1] && self::cmpVersion($tmp[1], phpversion()) < 0))
$this->errmsgs[] = sprintf("Incorrect PHP version (needs version %s)", $extconf['constraints']['depends']['php']);
break;
default:
$tmp = explode('-', $dval, 2);
if(isset($GLOBALS['EXT_CONF'][$dkey]['version'])) {
if(self::cmpVersion($tmp[0], $GLOBALS['EXT_CONF'][$dkey]['version']) > 0 || ($tmp[1] && self::cmpVersion($tmp[1], $GLOBALS['EXT_CONF'][$dkey]['version']) < 0))
$this->errmsgs[] = sprintf("Incorrect version of extension '%s' (needs version '%s' but provides '%s')", $dkey, $dval, $GLOBALS['EXT_CONF'][$dkey]['version']);
} else {
$this->errmsgs[] = sprintf("Missing extension or version for '%s'", $dkey);
}
break;
}
}
}
if($this->errmsgs)
return false;
return true;
} /* }}} */
static protected function rrmdir($dir) { /* {{{ */
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") self::rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
} /* }}} */
/**
* Update an extension
*
* This function will replace an existing extension or add a new extension
* The passed file has to be zipped content of the extension directory not
* including the directory itself.
*
* @param string $file name of extension archive
* @return boolean true on success, othewise false
*/
public function updateExtension($file) { /* {{{ */
$newdir = $this->cachedir ."/ext.new";
if(!mkdir($newdir, 0755)) {
$this->errmsgs[] = "Cannot create temp. extension directory";
return false;
}
$cmd = "cd ".$newdir."; unzip ".$file;
exec($cmd);
if(!self::checkExtension($newdir)) {
self::rrmdir($newdir);
return false;
}
include($newdir."/conf.php");
$extname = key($EXT_CONF);
/* Create the target directory */
if(!is_dir($this->extdir)) {
if(!mkdir($this->extdir, 0755)) {
$this->errmsgs[] = "Cannot create extension directory";
self::rrmdir($newdir);
return false;
}
} elseif(is_dir($this->extdir ."/". $extname)) {
$this->rrmdir($this->extdir ."/". $extname);
}
/* Move the temp. created ext directory to the final location */
rename($newdir, $this->extdir ."/". $extname);
return true;
} /* }}} */
/**
* Import list of extension from repository
*
*/
public function importExtensionList($url) { /* {{{ */
$file = file_get_contents($url."/repository.json");
file_put_contents($this->cachedir."/repository.json", $file);
return file($this->cachedir."/repository.json");
} /* }}} */
/**
* Return last error message
*
* @return string
*/
public function getErrorMsg() { /* {{{ */
if($this->errmsgs)
return $this->errmsgs[0];
else
return '';
} /* }}} */
/**
* Return all error messages
*
* @return string[]
*/
public function getErrorMsgs() { /* {{{ */
return $this->errmsgs;
} /* }}} */
}

View File

@ -17,12 +17,7 @@ require_once "inc.Version.php";
require_once "inc.Utils.php";
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
$extconffile = $extMgr->getExtensionsConfFile();
if(!file_exists($extconffile)) {
$extMgr->createExtensionConf();
}
$EXT_CONF = array();
include($extconffile);
$EXT_CONF = $extMgr->getExtensionConfiguration();
$version = new SeedDMS_Version;
@ -31,7 +26,7 @@ foreach($EXT_CONF as $extname=>$extconf) {
/* check for requirements */
if(!empty($extconf['constraints']['depends']['seeddms'])) {
$t = explode('-', $extconf['constraints']['depends']['seeddms'], 2);
if(cmpVersion($t[0], $version->version()) > 0 || ($t[1] && cmpVersion($t[1], $version->version()) < 0))
if(SeedDMS_Extension_Mgr::cmpVersion($t[0], $version->version()) > 0 || ($t[1] && SeedDMS_Extension_Mgr::cmpVersion($t[1], $version->version()) < 0))
$extconf['disable'] = true;
}
}
@ -48,7 +43,7 @@ foreach($EXT_CONF as $extname=>$extconf) {
if(file_exists($langfile)) {
unset($__lang);
include($langfile);
if($__lang) {
if(isset($__lang) && $__lang) {
foreach($__lang as $lang=>&$data) {
if(isset($GLOBALS['LANG'][$lang]))
$GLOBALS['LANG'][$lang] = array_merge($GLOBALS['LANG'][$lang], $data);

View File

@ -79,39 +79,6 @@ function getReadableDurationArray($secs) { /* {{{ */
return $units;
} /* }}} */
/**
* Compare two version
*
* This functions compares two version in the format x.x.x
*
* @param string $ver1
* @param string $ver2
* @return int -1 if $ver1 < $ver2, 0 if $ver1 == $ver2, 1 if $ver1 > $ver2
*/
function cmpVersion($ver1, $ver2) {
$tmp1 = explode('.', $ver1);
$tmp2 = explode('.', $ver2);
if(intval($tmp1[0]) < intval($tmp2[0])) {
return -1;
} elseif(intval($tmp1[0]) > intval($tmp2[0])) {
return 1;
} else {
if(intval($tmp1[1]) < intval($tmp2[1])) {
return -1;
} elseif(intval($tmp1[1]) > intval($tmp2[1])) {
return 1;
} else {
if(intval($tmp1[2]) < intval($tmp2[2])) {
return -1;
} elseif(intval($tmp1[2]) > intval($tmp2[2])) {
return 1;
} else {
return 0;
}
}
}
}
//
// The original string sanitizer, kept for reference.
//function sanitizeString($string) {

View File

@ -257,6 +257,7 @@ URL: [url]',
'comment' => 'تعليق',
'comment_changed_email' => '',
'comment_for_current_version' => 'تعليق على الاصدار',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'نعم: اود اعادة انشاء فهرس للنص الكامل !',
'confirm_move_document' => '',
@ -399,6 +400,7 @@ URL: [url]',
'does_not_expire' => 'لا ينتهى صلاحيته',
'does_not_inherit_access_msg' => 'صلاحيات موروثة',
'download' => 'تنزيل',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -492,6 +494,7 @@ Parent folder: [folder_path]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - تم تغيير تاريخ الصلاحية',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'ﺇﺩﺍﺭﺓ ﺍﻼﻣﺩﺍﺩﺎﺗ',
'february' => 'فبراير',
'file' => 'ملف',
@ -581,6 +584,7 @@ URL: [url]',
'identical_version' => 'الاصدار الجديد مماثل للاصدار الحالي.',
'import' => 'ﺎﺴﺘﺧﺭﺎﺟ',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'ﻦﺴﺧ ﻢﻧ ﻢﻠﻓ ﺎﻠﻨﻇﺎﻣ',
'import_fs_warning' => '',
'include_content' => '',
@ -1453,6 +1457,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => '',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -242,6 +242,7 @@ $text = array(
'comment' => 'Коментар',
'comment_changed_email' => 'Коментарите са изменени',
'comment_for_current_version' => 'Коментар за версията',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Да, пресъздай пълнотекстов индекс!',
'confirm_move_document' => '',
@ -354,6 +355,7 @@ $text = array(
'does_not_expire' => 'Безсрочен',
'does_not_inherit_access_msg' => 'Наследване нивото на достъп',
'download' => 'Изтегли',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -443,6 +445,7 @@ $text = array(
'expiry_changed_email_body' => '',
'expiry_changed_email_subject' => '',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'управление на добавките',
'february' => 'Февруари',
'file' => 'Файл',
@ -512,6 +515,7 @@ $text = array(
'identical_version' => 'Новата версия е идентична с текущата.',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'добави от файловата система',
'import_fs_warning' => '',
'include_content' => '',
@ -1318,6 +1322,8 @@ $text = array(
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => '',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (738)
// Translators: Admin (741)
$text = array(
'2_factor_auth' => '',
@ -172,7 +172,7 @@ URL: [url]',
'at_least_n_users_of_group' => '',
'august' => 'Agost',
'authentication' => '',
'author' => '',
'author' => 'Autor',
'automatic_status_update' => 'Canvi automátic d\'estat',
'back' => 'Endarrere',
'backup_list' => 'Llista de còpies de seguretat existents',
@ -247,6 +247,7 @@ URL: [url]',
'comment' => 'Comentaris',
'comment_changed_email' => '',
'comment_for_current_version' => 'Comentari de la versió actual',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => '',
'confirm_move_document' => '',
@ -359,6 +360,7 @@ URL: [url]',
'does_not_expire' => 'No caduca',
'does_not_inherit_access_msg' => 'heretar l\'accés',
'download' => 'Descarregar',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -448,6 +450,7 @@ URL: [url]',
'expiry_changed_email_body' => '',
'expiry_changed_email_subject' => '',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Gestiona les Extensions',
'february' => 'Febrer',
'file' => 'Fitxer',
@ -517,6 +520,7 @@ URL: [url]',
'identical_version' => '',
'import' => 'importar',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Importa del sistema d\'arxius',
'import_fs_warning' => 'Només funciona arrastrant carpetes.La operació importarà recursivament totes les carpetes i arxius.',
'include_content' => '',
@ -597,7 +601,7 @@ URL: [url]',
'language' => 'Llenguatge',
'lastaccess' => '',
'last_update' => 'Última modificació',
'legend' => '',
'legend' => 'Llegenda',
'librarydoc' => '',
'linked_documents' => 'Documents relacionats',
'linked_files' => 'Adjunts',
@ -1323,6 +1327,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => '',
'splash_importfs' => '',
'splash_inherit_access' => '',
@ -1358,7 +1364,7 @@ URL: [url]',
'splash_transfer_document' => '',
'splash_transfer_objects' => '',
'state_and_next_state' => '',
'statistic' => '',
'statistic' => 'Estadístiques',
'status' => 'Estat',
'status_approval_rejected' => 'Esborrany rebutjat',
'status_approved' => 'Aprovat',

View File

@ -264,6 +264,7 @@ URL: [url]',
'comment' => 'Komentář',
'comment_changed_email' => '',
'comment_for_current_version' => 'Komentář k aktuální verzi',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Ano, chci znovu vytvořit fulltext indes!',
'confirm_move_document' => '',
@ -406,6 +407,7 @@ URL: [url]',
'does_not_expire' => 'Platnost nikdy nevyprší',
'does_not_inherit_access_msg' => 'Zdědit přístup',
'download' => 'Stáhnout',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -499,6 +501,7 @@ Uživatel: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Datum ukončení platnosti změněn',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Správa rozšíření',
'february' => 'Únor',
'file' => 'Soubor',
@ -588,6 +591,7 @@ URL: [url]',
'identical_version' => 'Nová verze je identická s verzí současnou',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Nahrát ze souboru',
'import_fs_warning' => '',
'include_content' => '',
@ -1462,6 +1466,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Změny složky uloženy',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (2553), dgrutsch (22)
// Translators: Admin (2560), dgrutsch (22)
$text = array(
'2_factor_auth' => '2-Faktor Authentifizierung',
@ -269,6 +269,7 @@ URL: [url]',
'comment' => 'Kommentar',
'comment_changed_email' => '',
'comment_for_current_version' => 'Kommentar zur aktuellen Version',
'configure_extension' => 'Erweiterung konfigurieren',
'confirm_clear_cache' => 'Wollen Sie wirklich den Cache löschen? Dies entfernt alle vorberechneten Vorschaubilder.',
'confirm_create_fulltext_index' => 'Ja, Ich möchte den Volltextindex neu erzeugen!.',
'confirm_move_document' => 'Dokument wirklich verschieben?',
@ -416,6 +417,7 @@ URL: [url]',
'does_not_expire' => 'Kein Ablaufdatum',
'does_not_inherit_access_msg' => 'Berechtigungen wieder erben',
'download' => 'Download',
'download_extension' => 'Erweiterung als zip-Datei herunterladen',
'download_links' => 'Download Links',
'download_link_email_body' => 'Klicken Sie bitte auf den untenstehenden Link, um Version [version] des Dokuments \'[docname]\' herunter zu laden.
@ -515,6 +517,7 @@ Benutzer: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Ablaufdatum geändert',
'export' => 'Export',
'extension_archive' => 'Erweiterung',
'extension_manager' => 'Erweiterungen verwalten',
'february' => 'Februar',
'file' => 'Datei',
@ -604,6 +607,7 @@ URL: [url]',
'identical_version' => 'Neue Version ist identisch zu aktueller Version.',
'import' => 'Importiere',
'importfs' => 'Importiere aus Dateisystem',
'import_extension' => 'Erweiterung importieren',
'import_fs' => 'Aus Dateisystem importieren',
'import_fs_warning' => 'Der Import kann nur für Ordner im Ablageordner erfolgen. Alle Ordner und Dateien werden rekursiv importiert. Dateien werden sofort freigegeben.',
'include_content' => 'Inhalte mit exportieren',
@ -1528,6 +1532,8 @@ Name: [username]
'splash_error_add_to_transmittal' => 'Fehler beim Hinzufügen zur Dokumentenliste',
'splash_error_rm_download_link' => 'Fehler beim Löschen des Download-Links',
'splash_error_send_download_link' => 'Fehler beim Verschicken des Download-Links',
'splash_extension_import' => 'Erweiterung installiert',
'splash_extension_refresh' => 'Liste der Erweiterungen neu geladen',
'splash_folder_edited' => 'Änderungen am Ordner gespeichert',
'splash_importfs' => '[docs] Dokumente und [folders] Ordner importiert',
'splash_inherit_access' => 'Zugriffsrechte werden geerbt',

View File

@ -242,6 +242,7 @@ $text = array(
'comment' => 'Σχόλιο',
'comment_changed_email' => '',
'comment_for_current_version' => '',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => '',
'confirm_move_document' => '',
@ -354,6 +355,7 @@ $text = array(
'does_not_expire' => '',
'does_not_inherit_access_msg' => '',
'download' => '',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -443,6 +445,7 @@ $text = array(
'expiry_changed_email_body' => '',
'expiry_changed_email_subject' => '',
'export' => '',
'extension_archive' => '',
'extension_manager' => '',
'february' => 'Φεβρουάριος',
'file' => 'Αρχείο',
@ -512,6 +515,7 @@ $text = array(
'identical_version' => '',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => '',
'import_fs_warning' => '',
'include_content' => '',
@ -1329,6 +1333,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => '',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1674), archonwang (3), dgrutsch (9), netixw (14)
// Translators: Admin (1681), archonwang (3), dgrutsch (9), netixw (14)
$text = array(
'2_factor_auth' => '2-factor authentication',
@ -269,6 +269,7 @@ URL: [url]',
'comment' => 'Comment',
'comment_changed_email' => '',
'comment_for_current_version' => 'Version comment',
'configure_extension' => 'Configure extension',
'confirm_clear_cache' => 'Would you really like to clear the cache? This will remove all precalculated preview images.',
'confirm_create_fulltext_index' => 'Yes, I would like to recreate the fulltext index!',
'confirm_move_document' => 'Please confirm moving the document.',
@ -416,6 +417,7 @@ URL: [url]',
'does_not_expire' => 'Does not expire',
'does_not_inherit_access_msg' => 'Inherit access',
'download' => 'Download',
'download_extension' => 'Download extension as zip file',
'download_links' => 'Download links',
'download_link_email_body' => 'Click on the link below to download the version [version] of document
\'[docname]\'.
@ -516,6 +518,7 @@ User: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Expiry date changed',
'export' => 'Export',
'extension_archive' => 'Extension',
'extension_manager' => 'Manage extensions',
'february' => 'February',
'file' => 'File',
@ -605,6 +608,7 @@ URL: [url]',
'identical_version' => 'New version is identical to current version.',
'import' => 'Import',
'importfs' => 'Import from Filesystem',
'import_extension' => 'Import extension',
'import_fs' => 'Import from filesystem',
'import_fs_warning' => 'This will only work for folders in the drop folder. The operation recursively imports all folders and files. Files will be released immediately.',
'include_content' => 'Include content',
@ -1523,6 +1527,8 @@ Name: [username]
'splash_error_add_to_transmittal' => 'Error while adding document to transmittal',
'splash_error_rm_download_link' => 'Error when removing download link',
'splash_error_send_download_link' => 'Error while sending download link',
'splash_extension_import' => 'Extensition installed',
'splash_extension_refresh' => 'Refreshed list of extensions',
'splash_folder_edited' => 'Save folder changes',
'splash_importfs' => 'Imported [docs] documents and [folders] folders',
'splash_inherit_access' => 'Access right will be inherited',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: acabello (20), Admin (1056), angel (123), francisco (2), jaimem (14)
// Translators: acabello (20), Admin (1057), angel (123), francisco (2), jaimem (14)
$text = array(
'2_factor_auth' => '',
@ -264,6 +264,7 @@ URL: [url]',
'comment' => 'Comentarios',
'comment_changed_email' => '',
'comment_for_current_version' => 'Comentario de la versión actual',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => '¡Sí, quiero regenerar el índice te texto completo¡',
'confirm_move_document' => '',
@ -406,6 +407,7 @@ URL: [url]',
'does_not_expire' => 'No caduca',
'does_not_inherit_access_msg' => 'heredar el acceso',
'download' => 'Descargar',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -499,6 +501,7 @@ Usuario: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Fecha de caducidad modificada',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Administrar extensiones',
'february' => 'Febrero',
'file' => 'Fichero',
@ -588,6 +591,7 @@ URL: [url]',
'identical_version' => 'La nueva versión es idéntica a la actual.',
'import' => 'Importar',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Importar desde sistema de archivos',
'import_fs_warning' => '',
'include_content' => '',
@ -871,7 +875,7 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado
'pl_PL' => 'Polaco',
'possible_substitutes' => '',
'preset_expires' => 'Establece caducidad',
'preview' => '',
'preview' => 'anterior',
'preview_converters' => 'Vista previa del documento convertido',
'preview_images' => '',
'preview_markdown' => '',
@ -1468,6 +1472,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Cambios a la carpeta guardados',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -269,6 +269,7 @@ URL: [url]',
'comment' => 'Commentaire',
'comment_changed_email' => '',
'comment_for_current_version' => 'Commentaires pour la version actuelle',
'configure_extension' => '',
'confirm_clear_cache' => 'Confirmer l\'effacement du cache',
'confirm_create_fulltext_index' => 'Oui, je souhaite recréer l\'index de recherche plein texte !',
'confirm_move_document' => 'Veuillez confirmer le déplacement du document.',
@ -416,6 +417,7 @@ URL: [url]',
'does_not_expire' => 'N\'expire jamais',
'does_not_inherit_access_msg' => 'Accès hérité',
'download' => 'Téléchargement',
'download_extension' => '',
'download_links' => 'Liens de téléchargement',
'download_link_email_body' => 'Cliquez sur le lien suivant pour télécharger la version [version] du document
« [docname] ».
@ -516,6 +518,7 @@ Utilisateur : [username]
URL : [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Date d\'expiration modifiée',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Gestionnaire d\'extensions',
'february' => 'Février',
'file' => 'Fichier',
@ -605,6 +608,7 @@ URL: [url]',
'identical_version' => 'Nouvelle version identique à l\'actuelle.',
'import' => 'Importer',
'importfs' => 'Importer depuis le système de fichiers',
'import_extension' => '',
'import_fs' => 'Importer depuis le système de fichiers',
'import_fs_warning' => 'Limportation peut se faire à partir du dossier de dépôt personnel uniquement. Tous les sous-dossiers et fichiers seront importés. Les fichiers seront immédiatement publiés.',
'include_content' => 'Inclure le contenu',
@ -1507,6 +1511,8 @@ Nom : [username]
'splash_error_add_to_transmittal' => 'Erreur lors de lajout du document à la transmission',
'splash_error_rm_download_link' => 'Erreur lors de la suppression du lien de téléchargement',
'splash_error_send_download_link' => 'Erreur lors de lenvoi du lien de téléchargement',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Dossier modifié',
'splash_importfs' => '[docs] documents et [folders] dossiers importés',
'splash_inherit_access' => 'Droits daccès hérités',

View File

@ -269,6 +269,7 @@ Internet poveznica: [url]',
'comment' => 'Komentar',
'comment_changed_email' => 'Promjena komentara',
'comment_for_current_version' => 'Verzija komentara',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Da, želim ponovo indeksirati cijeli tekst!',
'confirm_move_document' => '',
@ -411,6 +412,7 @@ Internet poveznica: [url]',
'does_not_expire' => 'Ne istječe',
'does_not_inherit_access_msg' => 'Naslijedi nivo pristupa',
'download' => 'Preuzimanje',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -504,6 +506,7 @@ Korisnik: [username]
Internet poveznica: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Promijenjen datum isteka',
'export' => 'Izvoz',
'extension_archive' => '',
'extension_manager' => 'Upravljanje ekstenzijama',
'february' => 'Veljača',
'file' => 'Datoteka',
@ -593,6 +596,7 @@ Internet poveznica: [url]',
'identical_version' => 'Nova verzija je identična trenutnoj verziji.',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Importaj iz FS-a',
'import_fs_warning' => '',
'include_content' => 'Uključi sadržaj',
@ -1489,6 +1493,8 @@ Internet poveznica: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Pohrani izmjene mape',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -264,6 +264,7 @@ URL: [url]',
'comment' => 'Megjegyzés',
'comment_changed_email' => '',
'comment_for_current_version' => 'Megjegyzés az aktuális verzióhoz',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Igen, szeretném újra létrehozni a teljes szöveg indexet!',
'confirm_move_document' => '',
@ -406,6 +407,7 @@ URL: [url]',
'does_not_expire' => 'Soha nem jár le',
'does_not_inherit_access_msg' => 'Hozzáférés öröklése',
'download' => 'Letöltés',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -499,6 +501,7 @@ Felhasználó: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Lejárati dátum módosítva',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Bővítmények kezelése',
'february' => 'Február',
'file' => 'Állomány',
@ -588,6 +591,7 @@ URL: [url]',
'identical_version' => 'Az új verzió megegyezik az eredetivel.',
'import' => 'Import',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Importálás fájlrendszerből',
'import_fs_warning' => '',
'include_content' => '',
@ -1467,6 +1471,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Mappa változásainak mentése',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -270,6 +270,7 @@ URL: [url]',
'comment' => 'Commento',
'comment_changed_email' => '',
'comment_for_current_version' => 'Commento per la versione',
'configure_extension' => '',
'confirm_clear_cache' => 'Vuoi davvero cancellare la cache? Questo eliminerà tutte le immagini di anteprima precalcolate.',
'confirm_create_fulltext_index' => 'Sì, desidero ricreare l\'indice fulltext!',
'confirm_move_document' => 'Conferma lo spostamento del documento.',
@ -412,6 +413,7 @@ URL: [url]',
'does_not_expire' => 'Nessuna scadenza',
'does_not_inherit_access_msg' => 'Imposta permessi ereditari',
'download' => 'Scarica',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -505,6 +507,7 @@ Utente: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Scadenza cambiata',
'export' => 'Esporta',
'extension_archive' => '',
'extension_manager' => 'Gestisci le estensioni dei files',
'february' => 'Febbraio',
'file' => 'File',
@ -594,6 +597,7 @@ URL: [url]',
'identical_version' => 'La nuova versione è identica a quella attuale.',
'import' => 'Importa',
'importfs' => 'Importa da File System / disco',
'import_extension' => '',
'import_fs' => 'Importa dalla cartella di sistema',
'import_fs_warning' => 'Questo funziona solo per le cartelle nella cartella per lasciare. L\'operazione importa in modo ricorsivo tutte le cartelle e file. I file saranno rilasciati immediatamente.',
'include_content' => 'Includi contenuto',
@ -1501,6 +1505,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => 'Errore durante l\'aggiunta di documento per la trasmissione',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Cartella modificata',
'splash_importfs' => 'Importati [Documenti] documenti e cartelle [cartelle]',
'splash_inherit_access' => '',

View File

@ -271,6 +271,7 @@ URL: [url]',
'comment' => '주석',
'comment_changed_email' => '',
'comment_for_current_version' => '버전 주석',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => '예, 전체 텍스트 인덱스를 다시 만들고 싶습니다!',
'confirm_move_document' => '',
@ -412,6 +413,7 @@ URL: [url]',
'does_not_expire' => '만료 안됨',
'does_not_inherit_access_msg' => '액세스 상속',
'download' => '내려받기',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -505,6 +507,7 @@ URL: [url]',
URL: [url]',
'expiry_changed_email_subject' => '[sitename] : [name] - 유효 기간 변경',
'export' => '내보내기',
'extension_archive' => '',
'extension_manager' => '확장자 관리',
'february' => '2월',
'file' => '파일',
@ -594,6 +597,7 @@ URL: [url]',
'identical_version' => '새 버전은 최신 버전으로 동일하다.',
'import' => '가져오기',
'importfs' => '파일시스템으로부터 가져오기',
'import_extension' => '',
'import_fs' => '파일시스템으로부터 가져오기',
'import_fs_warning' => '',
'include_content' => '내용을 포함',
@ -1483,6 +1487,8 @@ URL : [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => '저장 폴더 변경',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -262,6 +262,7 @@ URL: [url]',
'comment' => 'Commentaar',
'comment_changed_email' => 'Gewijzigde email',
'comment_for_current_version' => 'Versie van het commentaar',
'configure_extension' => '',
'confirm_clear_cache' => 'Ja, ik wil de cache opschonen!',
'confirm_create_fulltext_index' => 'Ja, Ik wil de volledigetekst index opnieuw maken!',
'confirm_move_document' => 'Bevestig verplaatsing van document',
@ -404,6 +405,7 @@ URL: [url]',
'does_not_expire' => 'Verloopt niet',
'does_not_inherit_access_msg' => 'Erft toegang',
'download' => 'Download',
'download_extension' => '',
'download_links' => 'Download-links',
'download_link_email_body' => 'Klik op de link hieronder, dan begint de download vanvversie [version] van het document
\'[docname]\'.
@ -504,6 +506,7 @@ Gebruiker: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Vervaldatum gewijzigd',
'export' => 'export',
'extension_archive' => '',
'extension_manager' => 'Beheer uitbreidingen',
'february' => 'februari',
'file' => 'Bestand',
@ -593,6 +596,7 @@ URL: [url]',
'identical_version' => 'Nieuwe versie is identiek aan de huidige versie',
'import' => 'Importeer',
'importfs' => 'Importeer van bestandssysteem',
'import_extension' => '',
'import_fs' => 'Importeer van bestandssysteem',
'import_fs_warning' => 'Dit werkt alleen in de dropfolder. Mappen en bestanden worden recursief geïmporteerd. Bestanden worden direct ter beschikking gesteld.',
'include_content' => 'inclusief inhoud',
@ -1513,6 +1517,8 @@ Name: [username]
'splash_error_add_to_transmittal' => 'Fout: toevoeging aan verzending',
'splash_error_rm_download_link' => 'Fout bij verwijderen download-link',
'splash_error_send_download_link' => 'Fout bij verzenden download-link',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Opslaan mapwijzigingen',
'splash_importfs' => 'Geïmporteerd: [docs] documenten en [folders] mappen',
'splash_inherit_access' => '',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (787), netixw (84), romi (93), uGn (112)
// Translators: Admin (790), netixw (84), romi (93), uGn (112)
$text = array(
'2_factor_auth' => '',
@ -257,6 +257,7 @@ URL: [url]',
'comment' => 'Opis',
'comment_changed_email' => '',
'comment_for_current_version' => 'Komentarz do wersji',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Tak, chcę ponownie utworzyć indeks pełnotekstowy!',
'confirm_move_document' => '',
@ -281,8 +282,8 @@ URL: [url]',
'confirm_update_transmittalitem' => '',
'content' => 'Zawartość',
'continue' => 'Kontynuuj',
'converter_new_cmd' => '',
'converter_new_mimetype' => '',
'converter_new_cmd' => 'Komenda',
'converter_new_mimetype' => 'Nowy typ MIME',
'copied_to_checkout_as' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Utwórz indeks pełnotekstowy',
@ -399,6 +400,7 @@ URL: [url]',
'does_not_expire' => 'Nigdy nie wygasa',
'does_not_inherit_access_msg' => 'Dziedzicz dostęp',
'download' => 'Pobierz',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -492,6 +494,7 @@ Użytkownik: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Zmiana daty wygaśnięcia',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Zarządzanie rozszerzeniami',
'february' => 'Luty',
'file' => 'Plik',
@ -581,6 +584,7 @@ URL: [url]',
'identical_version' => 'Nowa wersja jest identyczna z obecną',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Import z systemu plików',
'import_fs_warning' => '',
'include_content' => '',
@ -864,7 +868,7 @@ Jeśli nadal będą problemy z zalogowaniem, prosimy o kontakt z administratorem
'pl_PL' => 'Polski',
'possible_substitutes' => '',
'preset_expires' => 'Wygasa',
'preview' => '',
'preview' => 'Podgląd',
'preview_converters' => '',
'preview_images' => '',
'preview_markdown' => '',
@ -1447,6 +1451,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Zapisz zmiany folderu',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -264,6 +264,7 @@ URL: [url]',
'comment' => 'Comentário',
'comment_changed_email' => '',
'comment_for_current_version' => 'Comentário para versão atual',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Sim, eu gostaria de recriar o índice de texto completo!',
'confirm_move_document' => '',
@ -405,6 +406,7 @@ URL: [url]',
'does_not_expire' => 'não Expira',
'does_not_inherit_access_msg' => 'Inherit access',
'download' => 'Download',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -498,6 +500,7 @@ Usuário: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Data de validade mudou',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Gerenciar extensões',
'february' => 'February',
'file' => 'Arquivo',
@ -587,6 +590,7 @@ URL: [url]',
'identical_version' => 'Nova versão é idêntica à versão atual.',
'import' => 'Importar',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Importar do sistema de arquivos',
'import_fs_warning' => '',
'include_content' => '',
@ -1465,6 +1469,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Salvar modificação de pastas',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -269,6 +269,7 @@ URL: [url]',
'comment' => 'Comentariu',
'comment_changed_email' => '',
'comment_for_current_version' => 'Comentariu versiune',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Da, aș dori să recreeze indexul pentru tot textul!',
'confirm_move_document' => '',
@ -411,6 +412,7 @@ URL: [url]',
'does_not_expire' => 'Nu expiră',
'does_not_inherit_access_msg' => 'Acces moștenit',
'download' => 'Descarca',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -504,6 +506,7 @@ Utilizator: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Data de expirare schimbată',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Gestionați extensiile',
'february' => 'Februarie',
'file' => 'Fișier',
@ -593,6 +596,7 @@ URL: [url]',
'identical_version' => 'Noua versiune este identică cu versiunea curentă.',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Import din filesystem',
'import_fs_warning' => '',
'include_content' => '',
@ -1490,6 +1494,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Salvați modificările folderului',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -269,6 +269,7 @@ URL: [url]',
'comment' => 'Комментарий',
'comment_changed_email' => 'Сообщение об изменении комментария',
'comment_for_current_version' => 'Комментарий версии',
'configure_extension' => '',
'confirm_clear_cache' => 'Подтвердить очистку кеша',
'confirm_create_fulltext_index' => 'Да, пересоздать полнотекстовый индекс!',
'confirm_move_document' => 'Подтвердить перемещение документа',
@ -411,6 +412,7 @@ URL: [url]',
'does_not_expire' => 'безсрочный',
'does_not_inherit_access_msg' => 'Наследовать уровень доступа',
'download' => 'Загрузить',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -504,6 +506,7 @@ URL: [url]',
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: изменен срок действия для «[name]»',
'export' => 'Экспорт',
'extension_archive' => '',
'extension_manager' => 'Управление расширениями',
'february' => 'Февраль',
'file' => 'Файл',
@ -593,6 +596,7 @@ URL: [url]',
'identical_version' => 'Новая версия идентична текущей.',
'import' => 'Импорт',
'importfs' => 'Импорт из файлов',
'import_extension' => '',
'import_fs' => 'Импорт из файловой системы',
'import_fs_warning' => 'Предупреждение импорта из ФС',
'include_content' => 'Включая содержимое',
@ -1497,6 +1501,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Изменения каталога сохранены',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -246,6 +246,7 @@ URL: [url]',
'comment' => 'Komentár',
'comment_changed_email' => 'Nepreložené',
'comment_for_current_version' => 'Version comment',
'configure_extension' => '',
'confirm_clear_cache' => 'Chcete naozaj vyčistiť vyrovnávaciu pamäť? Tým sa odstránia všetky predbežne náhľady obrázkov.',
'confirm_create_fulltext_index' => 'Áno, chcel by som obnoviť fullttext index!',
'confirm_move_document' => 'Potvrďte presunutie dokumentu.',
@ -358,6 +359,7 @@ URL: [url]',
'does_not_expire' => 'Platnosť nikdy nevyprší',
'does_not_inherit_access_msg' => 'Zdediť prístup',
'download' => 'Stiahnuť',
'download_extension' => '',
'download_links' => 'Odkazy na stiahnutie',
'download_link_email_body' => '',
'download_link_email_subject' => 'Odkaz na stiahnutie',
@ -447,6 +449,7 @@ URL: [url]',
'expiry_changed_email_body' => '',
'expiry_changed_email_subject' => '[sitename]: [name] - Dátum vypršania platnosti bol zmenený',
'export' => 'Exportovať',
'extension_archive' => '',
'extension_manager' => 'Správa rozšírení',
'february' => 'Február',
'file' => 'Súbor',
@ -516,6 +519,7 @@ URL: [url]',
'identical_version' => '',
'import' => 'Importovať',
'importfs' => 'Importovať zo súborového systému',
'import_extension' => '',
'import_fs' => 'Importovanie zo súborového systému',
'import_fs_warning' => '',
'include_content' => 'Zahrnúť obsah',
@ -1322,6 +1326,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Uložiť zmeny zložky',
'splash_importfs' => 'Importované dokumenty [docs] a zložky [folders]',
'splash_inherit_access' => '',

View File

@ -270,6 +270,7 @@ URL: [url]',
'comment' => 'Kommentar',
'comment_changed_email' => '',
'comment_for_current_version' => 'Kommentar till versionen',
'configure_extension' => '',
'confirm_clear_cache' => 'Vill du verkligen rensa cachen? Detta kommer att ta bort alla förlagrade bilder för förhandsvisning.',
'confirm_create_fulltext_index' => 'Ja, jag vill återskapa fulltext-sökindex!',
'confirm_move_document' => 'Vänligen bekräfta flytt av dokumentet.',
@ -417,6 +418,7 @@ URL: [url]',
'does_not_expire' => 'Löper aldrig ut',
'does_not_inherit_access_msg' => 'Ärv behörighet',
'download' => 'Ladda ner',
'download_extension' => '',
'download_links' => 'Nedladdningslänkar',
'download_link_email_body' => 'Klicka länken nedan för nedladdning av version [version] av dokumentet
\'[docname]\'.
@ -517,6 +519,7 @@ Användare: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Utgångsdatum ändrat',
'export' => 'Exportera',
'extension_archive' => '',
'extension_manager' => 'Hantera tillägg',
'february' => 'februari',
'file' => 'Fil',
@ -606,6 +609,7 @@ URL: [url]',
'identical_version' => 'Ny version är identisk med nuvarande version.',
'import' => 'Importera',
'importfs' => 'Import från filsystem',
'import_extension' => '',
'import_fs' => 'Import från filsystem',
'import_fs_warning' => 'Detta fungerar endast för kataloger i mellanlagringsmappen. Filer och mappar får godkänd status direkt efter importen.',
'include_content' => 'Inkudera innehåll',
@ -1510,6 +1514,8 @@ Kommentar: [comment]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => 'Fel vid borttagande av nedladdningslänk',
'splash_error_send_download_link' => 'Fel vid sändning av nedladdningslänk',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Spara ändringar i katalog',
'splash_importfs' => 'Importerade [docs] dokument och [folders] kataloger',
'splash_inherit_access' => '',

View File

@ -263,6 +263,7 @@ URL: [url]',
'comment' => 'Açıklama',
'comment_changed_email' => '',
'comment_for_current_version' => 'Versiyon açıklaması',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Evet, tam metin indeksini yeniden oluşturmak istiyorum!',
'confirm_move_document' => '',
@ -405,6 +406,7 @@ URL: [url]',
'does_not_expire' => 'Süresiz',
'does_not_inherit_access_msg' => 'Erişim haklarını devir al',
'download' => 'İndir',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -498,6 +500,7 @@ Kullanıcı: [username]
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: [name] - Bitiş tarihi değişti',
'export' => '',
'extension_archive' => '',
'extension_manager' => 'Uzantıları düzenle',
'february' => 'Şubat',
'file' => 'Dosya',
@ -587,6 +590,7 @@ URL: [url]',
'identical_version' => 'Yeni versiyon güncel versiyonla aynı.',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'dosya sisteminden getir',
'import_fs_warning' => '',
'include_content' => '',
@ -1469,6 +1473,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Klasör değişiklikleri kaydedildi',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -269,6 +269,7 @@ URL: [url]',
'comment' => 'Коментар',
'comment_changed_email' => 'Повідомлення про зміну коментаря',
'comment_for_current_version' => 'Коментар версії',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => 'Так, перестворити повнотекстовий індекс!',
'confirm_move_document' => '',
@ -411,6 +412,7 @@ URL: [url]',
'does_not_expire' => 'Без терміну виконання',
'does_not_inherit_access_msg' => 'Наслідувати рівень доступу',
'download' => 'Завантажити',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -504,6 +506,7 @@ URL: [url]',
URL: [url]',
'expiry_changed_email_subject' => '[sitename]: зміна дати терміну виконання для «[name]»',
'export' => 'Експорт',
'extension_archive' => '',
'extension_manager' => 'Керування розширеннями',
'february' => 'Лютий',
'file' => 'Файл',
@ -593,6 +596,7 @@ URL: [url]',
'identical_version' => 'Нова версія ідентична поточній.',
'import' => '',
'importfs' => '',
'import_extension' => '',
'import_fs' => 'Імпортувати з файлової системи',
'import_fs_warning' => '',
'include_content' => 'Включно з вмістом',
@ -1490,6 +1494,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => 'Зміни каталогу збережено',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (737), archonwang (469), fengjohn (5)
// Translators: Admin (738), archonwang (469), fengjohn (5)
$text = array(
'2_factor_auth' => '双重认证',
@ -263,6 +263,7 @@ URL: [url]',
'comment' => '说明',
'comment_changed_email' => '',
'comment_for_current_version' => '版本说明',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => '确认重新创建全文索引',
'confirm_move_document' => '',
@ -407,6 +408,7 @@ URL: [url]',
'does_not_expire' => '永不过期',
'does_not_inherit_access_msg' => '继承访问权限',
'download' => '下载',
'download_extension' => '',
'download_links' => '下载链接',
'download_link_email_body' => '点击以下链接下载文档 \'[docname]\' [version] 版本。
@ -486,7 +488,7 @@ URL: [url]',
'exclude_items' => '排除项目',
'expired' => '过期',
'expired_at_date' => '',
'expired_documents' => '',
'expired_documents' => '过期文档',
'expires' => '有效限期',
'expire_by_date' => '指定过期时间',
'expire_in_1d' => '一天后截止',
@ -502,6 +504,7 @@ URL: [url]',
'expiry_changed_email_body' => '',
'expiry_changed_email_subject' => '',
'export' => '导出',
'extension_archive' => '',
'extension_manager' => '扩展管理器',
'february' => '二 月',
'file' => '文件',
@ -591,6 +594,7 @@ URL: [url]',
'identical_version' => '',
'import' => '导入',
'importfs' => '从文件系统中导入',
'import_extension' => '',
'import_fs' => '从文件系统导入',
'import_fs_warning' => '这将只适用于拖动文件夹。该操作将递归导入所有文件夹和文件。文件将立即释放。',
'include_content' => '',
@ -1473,6 +1477,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '移除下载链接时报错',
'splash_error_send_download_link' => '发送下载链接时报错',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => '更新文件夹',
'splash_importfs' => '已导入文档 [docs] 和文件夹 [folders]',
'splash_inherit_access' => '',

View File

@ -246,6 +246,7 @@ URL: [url]',
'comment' => '說明',
'comment_changed_email' => '',
'comment_for_current_version' => '版本說明',
'configure_extension' => '',
'confirm_clear_cache' => '',
'confirm_create_fulltext_index' => '確認已新增之全文索引',
'confirm_move_document' => '',
@ -358,6 +359,7 @@ URL: [url]',
'does_not_expire' => '永不過期',
'does_not_inherit_access_msg' => '繼承存取權限',
'download' => '下載',
'download_extension' => '',
'download_links' => '',
'download_link_email_body' => '',
'download_link_email_subject' => '',
@ -447,6 +449,7 @@ URL: [url]',
'expiry_changed_email_body' => '',
'expiry_changed_email_subject' => '',
'export' => '',
'extension_archive' => '',
'extension_manager' => '整體索引進度',
'february' => '二 月',
'file' => '文件',
@ -516,6 +519,7 @@ URL: [url]',
'identical_version' => '新版本的內容與舊版本完全相同',
'import' => '匯入',
'importfs' => '',
'import_extension' => '',
'import_fs' => '由檔案系統匯入',
'import_fs_warning' => '',
'include_content' => '',
@ -1322,6 +1326,8 @@ URL: [url]',
'splash_error_add_to_transmittal' => '',
'splash_error_rm_download_link' => '',
'splash_error_send_download_link' => '',
'splash_extension_import' => '',
'splash_extension_refresh' => '',
'splash_folder_edited' => '',
'splash_importfs' => '',
'splash_inherit_access' => '',

View File

@ -31,7 +31,7 @@ include("../inc/inc.ClassUI.php");
include("../inc/inc.ClassController.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
/* Check if the form data comes from a trusted request */
if(!checkFormKey('adddocument')) {

View File

@ -31,7 +31,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
/* Check if the form data comes from a trusted request */
if(!checkFormKey('addsubfolder')) {

View File

@ -644,7 +644,7 @@ switch($command) {
$indexconf = null;
}
$controller = Controller::factory('AddDocument');
$controller = Controller::factory('AddDocument', array('dms'=>$dms, 'user'=>$user));
$controller->setParam('documentsource', 'upload');
$controller->setParam('folder', $folder);
$controller->setParam('index', $index);

View File

@ -28,7 +28,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
if (!$user->isAdmin()) {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
}

View File

@ -30,7 +30,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
if (!isset($_GET["documentid"]) || !is_numeric($_GET["documentid"]) || intval($_GET["documentid"])<1) {
UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id"));

View File

@ -31,7 +31,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
if (!$accessop->check_controller_access($controller, $_POST)) {
UI::exitError(getMLText("document_title", array("documentname" => "")),getMLText("access_denied"));

View File

@ -30,7 +30,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
if (!isset($_POST["documentid"]) || !is_numeric($_POST["documentid"]) || intval($_POST["documentid"])<1) {
UI::exitError(getMLText("document_title", array("documentname" => getMLText("invalid_doc_id"))),getMLText("invalid_doc_id"));

View File

@ -31,7 +31,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
/* Check if the form data comes from a trusted request */
if(!checkFormKey('editdocumentfile')) {

View File

@ -30,7 +30,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
if (!isset($_POST["folderid"]) || !is_numeric($_POST["folderid"]) || intval($_POST["folderid"])<1) {
UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id"));

View File

@ -21,10 +21,13 @@ include("../inc/inc.Language.php");
include("../inc/inc.Init.php");
include("../inc/inc.LogInit.php");
include("../inc/inc.DBInit.php");
include("../inc/inc.Extension.php");
include("../inc/inc.ClassUI.php");
include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
require "../inc/inc.ClassExtensionMgr.php";
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
if (!$user->isAdmin()) {
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
}
@ -34,10 +37,76 @@ if(!checkFormKey('extensionmgr')) {
UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token"));
}
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
$extconffile = $extMgr->getExtensionsConfFile();
$extMgr->createExtensionConf();
if (isset($_POST["action"])) $action=$_POST["action"];
else $action=NULL;
// add new attribute definition ---------------------------------------------
if ($action == "download") {
if (!isset($_POST["extname"])) {
UI::exitError(getMLText("admin_tools"),getMLText("unknown_id"));
}
$extname = trim($_POST["extname"]);
if (!file_exists($settings->_rootDir.'/ext/'.$extname) ) {
UI::exitError(getMLText("admin_tools"),getMLText("missing_extension"));
}
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
$controller->setParam('extmgr', $extMgr);
$controller->setParam('extname', $extname);
if (!$controller($_POST)) {
echo json_encode(array('success'=>false, 'error'=>'Could not download extension'));
}
add_log_line();
} /* }}} */
elseif ($action == "refresh") { /* {{{ */
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
$extMgr->createExtensionConf();
$controller->setParam('extmgr', $extMgr);
if (!$controller($_POST)) {
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
}
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_refresh')));
add_log_line();
header("Location:../out/out.ExtensionMgr.php");
} /* }}} */
elseif ($action == "upload") { /* {{{ */
if($_FILES['userfile']['error']) {
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
}
if($_FILES['userfile']['type'] != 'application/zip') {
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
}
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
$controller->setParam('extmgr', $extMgr);
$controller->setParam('file', $_FILES['userfile']['tmp_name']);
if (!$controller($_POST)) {
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
}
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_import')));
add_log_line();
header("Location:../out/out.ExtensionMgr.php");
} /* }}} */
elseif ($action == "import") { /* {{{ */
if(!$_POST['url']) {
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
}
$reposurl = 'http://seeddms.steinmann.cx/repository';
$content = file_get_contents($reposurl."/".$_POST['url']);
$file = tempnam(sys_get_temp_dir(), '');
file_put_contents($file, $content);
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
$controller->setParam('extmgr', $extMgr);
$controller->setParam('file', $file);
$_POST['action'] = 'upload';
if (!$controller($_POST)) {
unlink($file);
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
}
unlink($file);
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_extension_upload')));
add_log_line();
header("Location:../out/out.ExtensionMgr.php");
} /* }}} */
add_log_line();
header("Location:../out/out.ExtensionMgr.php");
?>

View File

@ -39,7 +39,7 @@ function _printMessage($heading, $message) { /* {{{ */
} /* }}} */
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
if (isset($_REQUEST["sesstheme"]) && strlen($_REQUEST["sesstheme"])>0 && is_numeric(array_search($_REQUEST["sesstheme"],UI::getStyles())) ) {
$theme = $_REQUEST["sesstheme"];

View File

@ -28,7 +28,7 @@ include("../inc/inc.DBInit.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
// Delete session from database
if(isset($_COOKIE['mydms_session'])) {

View File

@ -29,7 +29,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
/* Check if the form data comes from a trusted request */
if(!checkFormKey('removedocument')) {

View File

@ -29,7 +29,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
/* Check if the form data comes from a trusted request */
if(!checkFormKey('removefolder')) {

View File

@ -29,7 +29,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
if (!$user->isAdmin()) {
UI::exitError(getMLText("document"),getMLText("access_denied"));

View File

@ -29,7 +29,7 @@ include("../inc/inc.ClassUI.php");
include("../inc/inc.ClassController.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
/* Check if the form data comes from a trusted request */
if(!checkFormKey('updatedocument')) {

View File

@ -29,7 +29,7 @@ include("../inc/inc.ClassController.php");
include("../inc/inc.Authentication.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$controller = Controller::factory($tmp[1]);
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
if (!$accessop->check_controller_access($controller, $_POST)) {
UI::exitError(getMLText("document_title", array("documentname" => "")),getMLText("access_denied"));

View File

@ -34,11 +34,15 @@ if (!$accessop->check_view_access($view, $_GET)) {
}
$v = new SeedDMS_Version;
$extmgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
$currenttab = 'installed';
if($view) {
$view->setParam('httproot', $settings->_httpRoot);
$view->setParam('version', $v);
$view->setParam('accessobject', $accessop);
$view->setParam('extmgr', $extmgr);
$view->setParam('currenttab', $currenttab);
$view($_GET);
exit;
}

View File

@ -282,7 +282,7 @@ if($settings->_enableFullSearch) {
$indexconf = null;
}
$controller = Controller::factory('AddDocument');
$controller = Controller::factory('AddDocument', array('dms'=>$dms, 'user'=>$user));
$controller->setParam('documentsource', 'script');
$controller->setParam('folder', $folder);
$controller->setParam('index', $index);

View File

@ -27,60 +27,100 @@ require_once("class.Bootstrap.php");
*/
class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
function js() { /* {{{ */
header('Content-Type: application/javascript');
?>
$(document).ready( function() {
$('a.download').click(function(ev){
var element = $(this);
$('#'+element.data('extname')+'-download').submit();
/*
var element = $(this);
ev.preventDefault();
$.ajax({url: '../op/op.ExtensionMgr.php',
type: 'POST',
dataType: "json",
data: {action: 'download', 'formtoken': '<?= createFormKey('extensionmgr') ?>', 'extname': element.data('extname')},
success: function(data) {
noty({
text: data.msg,
type: (data.error) ? 'error' : 'success',
dismissQueue: true,
layout: 'topRight',
theme: 'defaultTheme',
timeout: 1500,
});
}
});
*/
});
$('a.import').click(function(ev){
var element = $(this);
$('#'+element.data('extname')+'-import').submit();
});
});
<?php
} /* }}} */
function show() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$httproot = $this->params['httproot'];
$version = $this->params['version'];
$extmgr = $this->params['extmgr'];
$currenttab = $this->params['currenttab'];
$reposurl = 'http://seeddms.steinmann.cx/repository';
$this->htmlStartPage(getMLText("admin_tools"));
$this->globalNavigation();
$this->contentStart();
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
$this->contentContainerStart();
echo "<table class=\"table table-condensed\">\n";
$this->contentHeading(getMLText("extension_manager"));
?>
<div class="row-fluid">
<div class="span4">
<form class="form-horizontal" method="post" enctype="multipart/form-data" action="../op/op.ExtensionMgr.php">
<?= createHiddenFieldWithKey('extensionmgr') ?>
<input type="hidden" name="action" value="upload" />
<div class="control-group">
<label class="control-label" for="upload"><?= getMLText('extension_archive'); ?></label>
<div class="controls">
<?php $this->printFileChooser('userfile', false); ?>
</div>
</div>
<div class="control-group">
<label class="control-label" for="enddate"></label>
<div class="controls">
<button id="upload" type="_submit" class="btn"><i class="icon-upload"></i> <?= getMLText("import_extension"); ?></button>
</div>
</div>
</form>
</div>
<div class="span8">
<ul class="nav nav-tabs" id="extensionstab">
<li class="<?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>"><a data-target="#installed" data-toggle="tab"><?= getMLText('extensions_installed'); ?></a></li>
<li class="<?php if($currenttab == 'repository') echo 'active'; ?>"><a data-target="#repository" data-toggle="tab"><?= getMLText('extensions_repository'); ?></a></li>
</ul>
<div class="tab-content">
<div class="tab-pane <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>" id="installed">
<?php
// $this->contentContainerStart();
echo "<table class=\"table _table-condensed\">\n";
print "<thead>\n<tr>\n";
print "<th></th>\n";
print "<th>".getMLText('name')."</th>\n";
print "<th>".getMLText('version')."</th>\n";
print "<th>".getMLText('author')."</th>\n";
print "</tr></thead>\n";
print "<th></th>\n";
print "</tr></thead><tbody>\n";
$errmsgs = array();
foreach($GLOBALS['EXT_CONF'] as $extname=>$extconf) {
$errmsgs = array();
if(!isset($extconf['disable']) || $extconf['disable'] == false) {
/* check dependency on specific seeddms version */
if(!isset($extconf['constraints']['depends']['seeddms']))
$errmsgs[] = "Missing dependency on SeedDMS";
if(!isset($extconf['constraints']['depends']['php']))
$errmsgs[] = "Missing dependency on PHP";
if(isset($extconf['constraints']['depends'])) {
foreach($extconf['constraints']['depends'] as $dkey=>$dval) {
switch($dkey) {
case 'seeddms':
$tmp = explode('-', $dval, 2);
if(cmpVersion($tmp[0], $version->version()) > 0 || ($tmp[1] && cmpVersion($tmp[1], $version->version()) < 0))
$errmsgs[] = sprintf("Incorrect SeedDMS version (needs version %s)", $extconf['constraints']['depends']['seeddms']);
break;
case 'php':
$tmp = explode('-', $dval, 2);
if(cmpVersion($tmp[0], phpversion()) > 0 || ($tmp[1] && cmpVersion($tmp[1], phpversion()) < 0))
$errmsgs[] = sprintf("Incorrect PHP version (needs version %s)", $extconf['constraints']['depends']['php']);
break;
default:
$tmp = explode('-', $dval, 2);
if(isset($GLOBALS['EXT_CONF'][$dkey]['version'])) {
if(cmpVersion($tmp[0], $GLOBALS['EXT_CONF'][$dkey]['version']) > 0 || ($tmp[1] && cmpVersion($tmp[1], $GLOBALS['EXT_CONF'][$dkey]['version']) < 0))
$errmsgs[] = sprintf("Incorrect version of extension '%s' (needs version '%s' but provides '%s')", $dkey, $dval, $GLOBALS['EXT_CONF'][$dkey]['version']);
} else {
$errmsgs[] = sprintf("Missing extension or version for '%s'", $dkey);
}
break;
}
}
}
$extmgr->checkExtension($extname);
$errmsgs = $extmgr->getErrorMsgs();
if($errmsgs)
echo "<tr class=\"error\">";
else
@ -89,27 +129,79 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
echo "<tr class=\"warning\">";
echo "<td>";
if($extconf['icon'])
echo "<img src=\"".$httproot."ext/".$extname."/".$extconf['icon']."\">";
echo "<img src=\"".$httproot."ext/".$extname."/".$extconf['icon']."\" alt=\"".$extname."\" title=\"".$extname."\">";
echo "</td>";
echo "<td>".$extconf['title']."<br /><small>".$extconf['description']."</small>";
if($errmsgs)
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $errmsgs)."</div>";
echo "</td>";
echo "<td>".$extconf['version']."<br /><small>".$extconf['releasedate']."</small>";
if($extconf['config'])
echo "<div class=\"list-action\"><a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\"><i class=\"icon-cogs\"></i></a></div>";
echo "<td nowrap>".$extconf['version']."<br /><small>".$extconf['releasedate']."</small>";
echo "</td>";
echo "<td nowrap><a href=\"mailto:".$extconf['author']['email']."\">".$extconf['author']['name']."</a><br /><small>".$extconf['author']['company']."</small></td>";
echo "<td nowrap>";
echo "<div class=\"list-action\">";
if($extconf['config'])
echo "<a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\" title=\"".getMLText('configure_extension')."\"><i class=\"icon-cogs\"></i></a>";
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$extname."-download\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"download\" /><input type=\"hidden\" name=\"extname\" value=\"".$extname."\" /><a class=\"download\" data-extname=\"".$extname."\" title=\"".getMLText('download_extension')."\"><i class=\"icon-download\"></i></a></form>";
echo "</div>";
echo "</td>";
echo "<td><a href=\"mailto:".$extconf['author']['email']."\">".$extconf['author']['name']."</a><br /><small>".$extconf['author']['company']."</small></td>";
echo "</tr>\n";
}
echo "</table>\n";
echo "</tbody></table>\n";
?>
<form action="../op/op.ExtensionMgr.php" name="form1" method="post">
<?php echo createHiddenFieldWithKey('extensionmgr'); ?>
<input type="hidden" name="action" value="refresh" />
<p><button type="submit" class="btn"><i class="icon-refresh"></i> <?php printMLText("refresh");?></button></p>
</form>
<?php
$this->contentContainerEnd();
// $this->contentContainerEnd();
?>
</div>
<div class="tab-pane <?php if($currenttab == 'repository') echo 'active'; ?>" id="repository">
<?php
echo "<table class=\"table _table-condensed\">\n";
print "<thead>\n<tr>\n";
print "<th></th>\n";
print "<th>".getMLText('name')."</th>\n";
print "<th>".getMLText('version')."</th>\n";
print "<th>".getMLText('author')."</th>\n";
print "<th></th>\n";
print "</tr></thead><tbody>\n";
$list = $extmgr->importExtensionList($reposurl);
foreach($list as $e) {
if($e[0] != '#') {
$re = json_decode($e);
$needsupdate = !isset($GLOBALS['EXT_CONF'][$re->name]) || SeedDMS_Extension_Mgr::cmpVersion($re->version, $GLOBALS['EXT_CONF'][$re->name]['version']) > 0;
echo "<tr";
if(isset($GLOBALS['EXT_CONF'][$re->name])) {
if($needsupdate)
echo " class=\"warning\"";
else
echo " class=\"success\"";
}
echo ">";
echo "<td></td>";
echo "<td>".$re->title."<br /><small>".$re->description."</small></td>";
echo "<td nowrap>".$re->version."<br /><small>".$re->releasedate."</small></td>";
echo "<td nowrap>".$re->author->name."<br /><small>".$re->author->company."</small></td>";
echo "<td nowrap>";
echo "<div class=\"list-action\">";
if($needsupdate)
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$extname."-import\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"import\" /><input type=\"hidden\" name=\"url\" value=\"".$re->filename."\" /><a class=\"import\" data-extname=\"".$extname."\" title=\"".getMLText('import_extension')."\"><i class=\"icon-download\"></i></a></form>";
echo "</div>";
echo "</td>";
echo "</tr>";
}
}
echo "</tbody></table>\n";
?>
</div>
</div>
</div>
</div>
<?php
$this->contentEnd();
$this->htmlEndPage();
} /* }}} */

View File

@ -676,7 +676,18 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
return "403 Forbidden";
}
if (!$folder->addSubFolder($name, '', $this->user, 0)) {
$controller = Controller::factory('AddSubFolder');
$controller->setParam('dms', $this->dms);
$controller->setParam('user', $this->user);
$controller->setParam('folder', $folder);
$controller->setParam('name', $name);
$controller->setParam('comment', '');
$controller->setParam('sequence', 0);
$controller->setParam('attributes', array());
$controller->setParam('notificationgroups', array());
$controller->setParam('notificationusers', array());
if(!$subFolder = $controller->run()) {
// if (!$folder->addSubFolder($name, '', $this->user, 0)) {
return "403 Forbidden";
}
@ -710,23 +721,32 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
return "403 Forbidden";
}
if($settings->_enableFullSearch) {
$index = $indexconf['Indexer']::open($settings->_luceneDir);
$indexconf['Indexer']::init($settings->_stopWordsFile);
} else {
$index = null;
$indexconf = null;
}
if (get_class($obj) == $this->dms->getClassname('folder')) {
if($obj->hasDocuments() || $obj->hasSubFolders()) {
return "409 Conflict";
}
if(!$obj->remove()) {
$controller = Controller::factory('RemoveFolder');
$controller->setParam('dms', $this->dms);
$controller->setParam('user', $this->user);
$controller->setParam('folder', $obj);
$controller->setParam('index', $index);
$controller->setParam('indexconf', $indexconf);
if(!$controller->run()) {
// if(!$obj->remove()) {
return "409 Conflict";
}
} else {
if($settings->_enableFullSearch) {
$index = $indexconf['Indexer']::open($settings->_luceneDir);
$indexconf['Indexer']::init($settings->_stopWordsFile);
} else {
$index = null;
$indexconf = null;
}
$controller = Controller::factory('RemoveDocument');
$controller->setParam('dms', $this->dms);
$controller->setParam('user', $this->user);
$controller->setParam('document', $obj);
$controller->setParam('index', $index);
$controller->setParam('indexconf', $indexconf);
@ -935,6 +955,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
}
$controller = Controller::factory('AddDocument');
$controller->setParam('dms', $this->dms);
$controller->setParam('user', $this->user);
$controller->setParam('documentsource', 'webdav');
$controller->setParam('folder', $objdest);
$controller->setParam('index', $index);