diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1187c59 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +/nbproject/private/ +/data/config/production/config.php +/_dev/ +/conlite/plugins/pluginmanager/_src +/.project +/_api/ +/cl-releasetool +/data/config/production/config.local.php +/cms/data/modules/up-download/ +/cms/captcha/ +!/cms/data/modules/ +/cms/data/modules/* +!/cms/data/layouts/ +/cms/data/layouts/* diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..6762b78 --- /dev/null +++ b/.htaccess @@ -0,0 +1,61 @@ +################################################################################ +# ConLite AMR plugin simple rewrite rules set. +# +# Contains few easy to handle rewrite rules. +# +# @version 1.0.0 +# @author Ortwin Pinke +# @author Murat Purc +# @copyright 2019 ConLite Team +# @link http://www.conlite.org +# +# Versions before 1.0 copyright 4fb, author Murat Purc +# +# $Id: htaccess_simple.txt 145 2019-10-25 16:00:47Z oldperl $ +################################################################################ + +#SetEnv CONLITE_ENVIRONMENT development + + + + # Enable rewrite engine + RewriteEngine on + + # Specify a base URL-path for the rules + RewriteBase /cms + + # Catch some common exploits in query string to get rid of them + # NOTE: Conditions to prevent protocols (ftp, http[s]) in query string could + # be a disadvantage in some cases + RewriteCond %{QUERY_STRING} contenido_path=.*$ [NC,OR] + RewriteCond %{QUERY_STRING} cfg\[path\]=.*$ [NC,OR] + RewriteCond %{QUERY_STRING} _PHPLIB\[libdir\]=.*$ [NC,OR] + RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] + RewriteCond %{QUERY_STRING} ftp://.*$ [NC,OR] + RewriteCond %{QUERY_STRING} http[s]*://.*$ [NC] + RewriteRule ^.* - [F,L] # all matching conditions from above will end in nirvana + + # Rewrite request to root to front_content.php + RewriteRule ^$ front_content.php [QSA,L] + + # Exclude following request from rewriting + # tests for favicon.ico, valid symlinks (-s), not empty files (-l) and folders (-d) + RewriteCond %{REQUEST_URI} ^/favicon.ico$ [OR] + RewriteCond %{REQUEST_FILENAME} -s [OR] + RewriteCond %{REQUEST_FILENAME} -l [OR] + RewriteCond %{REQUEST_FILENAME} -d + RewriteRule ^.*$ - [NC,L] + + # Pass other requests to front_content.php + RewriteRule ^.*$ front_content.php [QSA,NC,L] + + + +# Some rules to compress files. +# NOTE: Following settings are not mod rewrite specific, but enabling mod_deflate +# for some file types can help to reduce bandwith. + + + SetOutputFilter DEFLATE + + diff --git a/README.md b/README.md index e7ed9fc..1c781dc 100644 --- a/README.md +++ b/README.md @@ -1 +1,83 @@ -# ConLite +---------------------------------------------------------------------------------------------------- +This is the readme file for ConLite 2.1.2 + +Any help you need you may find by visiting the following links. + +CL-Portal http//conlite.org +CL-Forum http://forum.conlite.org +CL-Bugtracker http://bugs.conlite.org +CL-API-Doc http://conlite.conrepo.org/api/4.8.16CL + +!!! Attention !!! +We tried to fix all known bugs of Contenido 4.8 and earlier but cannot give any garanties for that. So use +it on your own risk. If you find any bug or have any idea to enhance ConLite, feel free to visit our +bugtracker and register at http://bugs.conlite.org +Any help and ideas are welcome :) + +** Mini FAQ ** + +What is ConLite? + +CL (short for ConLite) is dedicated to close the gap between Contenido 4.8 and the version 4.10. +In downloadable 4.8.20 (and former 4.8.15) are still a lot of bugs and some missing feautures and +enhancements so one cannot use the version without problems. Our goal is to give you a bugfixed and +really stable version of Contenido till the 4.9 or 4.10 is stable. By the way, there are still a lot of big sides +build with 4.8.x out there where upgrading to 4.10.x is not possible or cost a lot of money. + +Why i have to use ConLite? + +You don't have to, but feel free to do it. ConLite will show you an easier way to upgrade step by step to Contenido +4.10. The new version of Contenido has a lot of changes, so you have to do a lot of work +with modules or custom plugins to adapt them to the new version. That's not what ConLite does nor will +do in the future. ConLite will do changes step by step, or better version by version to adapt your +4.8.x or higher installation to work with the new 4.9 of Contenido. And ConLite will try to give you a +stable and bugfixed Content-Management-System in the future. + +Who are the people behind ConLite? + +The Team behind the CL-version are some well known guys from CONTENIDO-forum, working since many years with +and within CONTENIDO core or coding modules and plugins for CONTENIDO. +And we love CONTENIDO :) + + +** Copyright ** + +The copyright for the code of CONTENIDO still remains to 4fb and the named coders for all codes coming +from 4.8.15 and/or from svn- or git-repository of CONTENDIO. +All ads, enhancements or new parts, coded by the CL-Team are copyright by their named coders or +by CL-Team and conlite.org. + + +** Know Bugs ** +FS#25 - Collision with pre-installed AMR after Migration + !!! Attention !!! + If you want to upgrade with an installed AMR-plugin, uninstall AMR before upgrade. + We will include a fix for that in one of the next versions of CL + + +** History / Changelog ** +ConLite 2.1.2 +ConLite 2.1.1 +ConLite 2.1.0 +* see https://gitport.de/ConLite/ConLite/milestones + +ConLite 2.0 +ConLite 1.0 +* old svn history lost + +CONTENIDO 4.8.16 CL +* 20 Bug Report genericdb: urlencode() expects parameter 1 to be string ... +* 16 Enhancement RSS-Reader austauschen/überarbeiten +* 31 Optimization Test CL installation with newest PHP and SQL on XAMPP +* 3 Bug Report Genericdb caching not working +* 37 Bug Report Upgrade: valid_from and valid_to fields are set to NULL +* 33 Bug Report Missing include.subnav_blank.php +* 22 Bug Report Modul xhtml which is not choosable in modularea +* 10 Optimization Generate API-Doc +* 34 Bug Report Error when searching article with no criteria +* 24 Bug Report No reset of subnavigation if a layout is deleted +* 15 Optimization Add CL readme file +* 13 Bug Report FEUser-Plugins valide_to and valide_from saving wrong t ... +* 9 Enhancement Check all translations (i18n) +* 8 Bug Report adapt genericdb from 4.8.17 CL +* 5 Bug Report Buttontranslations missing or wrong \ No newline at end of file diff --git a/README_.txt b/README_.txt deleted file mode 100644 index 7654580..0000000 --- a/README_.txt +++ /dev/null @@ -1,78 +0,0 @@ -$Id$ ----------------------------------------------------------------------------------------------------- -This is the readme file for ConLite 2.1 - -Any help you need you may find by visiting the following links. - -CL-Portal http//conlite.org -CL-Forum http://forum.conlite.org -CL-Bugtracker http://bugs.conlite.org -CL-API-Doc http://conlite.conrepo.org/api/4.8.16CL - -!!! Attention !!! -We tried to fix all known bugs of 4.8.15 and earlier but cannot give any garanties for that. So use -it on your own risk. If you find any bug or have any idea to enhance ConLite, feel free to visit our -bugtracker and register at http://bugs.conlite.org -Any help and ideas are welcome :) - -** Mini FAQ ** - -What is ConLite (-Edition) of CONTENIDO? - -CL (short for ConLite) is dedicated to close the gap between CONTENIDO 4.8.15 and the version 4.9. -In downloadable 4.8.20 (and former 4.8.15) are still a lot of bugs and some missing feautures and -enhancements so one cannot use the version without problems. Our goal is to give you a bugfixed and -really stable version of CONTENIDO till the 4.9 is stable. By the way, there are still a lot of big sides -build with 4.8.x out there where upgrading to 4.9.x is not possible or cost a lot of money. - -Why i have to use ConLite? - -You don't have to, but feel free to do it. ConLite will show you an easier way to upgrade to CONTENIDO -4.9. The new version of CONTENIDO will have a lot of changes, so you have to do a lot of work -with modules or custom plugins to adapt them to the new version. That's not what ConLite does nor will -do in the future. ConLite will do changes step by step, or better version by version to adapt your -4.8.15 or higher installation to work with the new 4.9 of CONTENIDO. And ConLite will try to give you a -stable and bugfixed CONTENIDO 4.8.x in the future. - -Who are the people behind ConLite? - -The Team behind the CL-version are some well known guys from CONTENIDO-forum, working since many years with -and within CONTENIDO core or coding modules and plugins for CONTENIDO. -And we love CONTENIDO :) - - -** Copyright ** - -The copyright for the code of CONTENIDO still remains to 4fb and the named coders for all codes coming -from 4.8.15 and/or from svn-repository of CONTENDIO. -All ads, enhancements or new parts, coded by the CL-Team are copyright by their named coders or -by CL-Team and conlite.org. - - -** Know Bugs ** -FS#25 - Collision with pre-installed AMR after Migration - !!! Attention !!! - If you want to upgrade with an installed AMR-plugin, uninstall AMR before upgrade. - We will include a fix for that in one of the next versions of CL - - -** History / Changelog ** - -ConLite 1.0 - -CONTENIDO 4.8.16 CL - 20 Bug Report genericdb: urlencode() expects parameter 1 to be string ... - 16 Enhancement RSS-Reader austauschen/überarbeiten - 31 Optimization Test CL installation with newest PHP and SQL on XAMPP - 3 Bug Report Genericdb caching not working - 37 Bug Report Upgrade: valid_from and valid_to fields are set to NULL - 33 Bug Report Missing include.subnav_blank.php - 22 Bug Report Modul xhtml which is not choosable in modularea - 10 Optimization Generate API-Doc - 34 Bug Report Error when searching article with no criteria - 24 Bug Report No reset of subnavigation if a layout is deleted - 15 Optimization Add CL readme file - 13 Bug Report FEUser-Plugins valide_to and valide_from saving wrong t ... - 9 Enhancement Check all translations (i18n) - 8 Bug Report adapt genericdb from 4.8.17 CL - 5 Bug Report Buttontranslations missing or wrong \ No newline at end of file diff --git a/cms/cache/.gitignore b/cms/cache/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/cms/cache/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/cms/data/.htaccess b/cms/data/.htaccess new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cms/data/.htaccess @@ -0,0 +1 @@ + diff --git a/cms/data/config/.gitignore b/cms/data/config/.gitignore new file mode 100644 index 0000000..5493b99 --- /dev/null +++ b/cms/data/config/.gitignore @@ -0,0 +1,2 @@ +/local +/localhost diff --git a/cms/data/config/production/.keep b/cms/data/config/production/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cms/data/config/production/.keep @@ -0,0 +1 @@ + diff --git a/cms/data/layouts/.keep b/cms/data/layouts/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cms/data/layouts/.keep @@ -0,0 +1 @@ + diff --git a/cms/data/modules/.keep b/cms/data/modules/.keep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cms/data/modules/.keep @@ -0,0 +1 @@ + diff --git a/cms/front_content.php b/cms/front_content.php index 0fb2500..eaeeccd 100644 --- a/cms/front_content.php +++ b/cms/front_content.php @@ -1,4 +1,5 @@ 'Contenido_Session', 'auth' => 'Contenido_Challenge_Crypt_Auth', 'perm' => 'Contenido_Perm')); - i18nInit($cfg["path"]["contenido"].$cfg["path"]["locale"], $belang); -} -else -{ + page_open(array('sess' => 'Contenido_Session', 'auth' => 'Contenido_Challenge_Crypt_Auth', 'perm' => 'Contenido_Perm')); + i18nInit($cfg["path"]["contenido"] . $cfg["path"]["locale"], $belang); +} else { //Frontend - page_open(array ('sess' => 'Contenido_Frontend_Session', 'auth' => 'Contenido_Frontend_Challenge_Crypt_Auth', 'perm' => 'Contenido_Perm')); + page_open(array('sess' => 'Contenido_Frontend_Session', 'auth' => 'Contenido_Frontend_Challenge_Crypt_Auth', 'perm' => 'Contenido_Perm')); } /** @@ -106,20 +102,19 @@ $sess->register("errsite_idcat"); $sess->register("errsite_idart"); $sess->register("encoding"); -if ($cfgClient["set"] != "set") -{ +if ($cfgClient["set"] != "set") { rereadClients(); } # Check if this request is for a compressed file if ($_GET['action'] == 'get_compressed') { # Get the calling parameters - $sFilename = ((isset($_GET['f'])) ? $_GET['f'] : $_GET['amp;f']); - $sContentType = ((isset($_GET['c'])) ? $_GET['c'] : $_GET['amp;c']); - + $sFilename = ((isset($_GET['f'])) ? $_GET['f'] : $_GET['amp;f']); + $sContentType = ((isset($_GET['c'])) ? $_GET['c'] : $_GET['amp;c']); + # Output the file using the class output() function Output_Compressor::output($cfgClient[$client]['path']['frontend'] . 'cache/', $sFilename, $sContentType); - + # Don't do anything else exit(); } @@ -127,8 +122,7 @@ if ($_GET['action'] == 'get_compressed') { // Call hook after plugins are loaded, added by Murat Purc, 2008-09-07 CEC_Hook::execute('Contenido.Frontend.AfterLoadPlugins'); -if (!isset($encoding) || !is_array($encoding) || count($encoding) == 0) -{ +if (!isset($encoding) || !is_array($encoding) || count($encoding) == 0) { // get encodings of all languages $encoding = array(); $sql = "SELECT idlang, encoding FROM " . $cfg["tab"]["lang"]; @@ -152,18 +146,18 @@ Contenido_Url::getInstance()->getUrlBuilder()->setHttpBasePath($cfgClient[$clien if (!isset($lang)) { // if there is an entry load_lang in frontend/config.php use it, else use the first language of this client - if(isset($load_lang)){ + if (isset($load_lang)) { // load_client is set in frontend/config.php $lang = $load_lang; - }else{ + } else { $sql = "SELECT B.idlang FROM - ".$cfg["tab"]["clients_lang"]." AS A, - ".$cfg["tab"]["lang"]." AS B + " . $cfg["tab"]["clients_lang"] . " AS A, + " . $cfg["tab"]["lang"] . " AS B WHERE - A.idclient='".Contenido_Security::toInteger($client)."' AND + A.idclient='" . Contenido_Security::toInteger($client) . "' AND A.idlang = B.idlang LIMIT 0,1"; @@ -175,11 +169,12 @@ if (!isset($lang)) { } } -if (!$sess->is_registered("lang") ) $sess->register("lang"); -if (!$sess->is_registered("client") ) $sess->register("client"); +if (!$sess->is_registered("lang")) + $sess->register("lang"); +if (!$sess->is_registered("client")) + $sess->register("client"); -if (isset ($username)) -{ +if (isset($username)) { $auth->login_if(true); } @@ -192,8 +187,7 @@ header("Content-Type: text/html; charset={$encoding[$lang]}"); * if http global logout is set e.g. front_content.php?logout=true * log out the current user. */ -if (isset ($logout)) -{ +if (isset($logout)) { $auth->logout(true); $auth->unauth(true); $auth->auth["uname"] = "nobody"; @@ -202,8 +196,7 @@ if (isset ($logout)) /* * local configuration */ -if (file_exists("config.local.php")) -{ +if (file_exists("config.local.php")) { @ include ("config.local.php"); } @@ -211,32 +204,26 @@ if (file_exists("config.local.php")) * If the path variable was passed, try to resolve it to a Category Id * e.g. front_content.php?path=/company/products/ */ -if (isset($path) && strlen($path) > 1) -{ +if (isset($path) && strlen($path) > 1) { /* Which resolve method is configured? */ - if ($cfg["urlpathresolve"] == true) - { + if ($cfg["urlpathresolve"] == true) { $iLangCheck = 0; $idcat = prResolvePathViaURLNames($path, $iLangCheck); - - } - else - { + } else { $iLangCheck = 0; $idcat = prResolvePathViaCategoryNames($path, $iLangCheck); - if(($lang != $iLangCheck) && ((int)$iLangCheck != 0)){ + if (($lang != $iLangCheck) && ((int) $iLangCheck != 0)) { $lang = $iLangCheck; } - } } // error page -$aParams = array ( - 'client' => $client, 'idcat' => $errsite_idcat[$client], 'idart' => $errsite_idart[$client], - 'lang' => $lang, 'error'=> '1' +$aParams = array( + 'client' => $client, 'idcat' => $errsite_idcat[$client], 'idart' => $errsite_idart[$client], + 'lang' => $lang, 'error' => '1' ); $errsite = 'Location: ' . Contenido_Url::getInstance()->buildRedirect($aParams); @@ -246,66 +233,58 @@ $errsite = 'Location: ' . Contenido_Url::getInstance()->buildRedirect($aParams); * Note: These variables can be set via http globals e.g. front_content.php?idcat=41&idart=34&idcatart=35&idartlang=42 * If not the values will be computed. */ -if ($idart && !$idcat && !$idcatart) -{ +if ($idart && !$idcat && !$idcatart) { /* Try to fetch the first idcat */ - $sql = "SELECT idcat FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '".Contenido_Security::toInteger($idart)."'"; + $sql = "SELECT idcat FROM " . $cfg["tab"]["cat_art"] . " WHERE idart = '" . Contenido_Security::toInteger($idart) . "'"; $db->query($sql); - if ($db->next_record()) - { + if ($db->next_record()) { $idcat = $db->f("idcat"); } } -unset ($code); -unset ($markscript); +unset($code); +unset($markscript); -if (!$idcatart) -{ - if (!$idart) - { - if (!$idcat) - { +if (!$idcatart) { + if (!$idart) { + if (!$idcat) { # Note: In earlier Contenido versions the information if an article is startarticle of a category has been stored # in relation con_cat_art. - if ($cfg["is_start_compatible"] == true) - { + if ($cfg["is_start_compatible"] == true) { $sql = "SELECT idart, B.idcat FROM - ".$cfg["tab"]["cat_art"]." AS A, - ".$cfg["tab"]["cat_tree"]." AS B, - ".$cfg["tab"]["cat"]." AS C + " . $cfg["tab"]["cat_art"] . " AS A, + " . $cfg["tab"]["cat_tree"] . " AS B, + " . $cfg["tab"]["cat"] . " AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND is_start='1' AND - idclient='".Contenido_Security::toInteger($client)."' + idclient='" . Contenido_Security::toInteger($client) . "' ORDER BY idtree ASC"; - } - else - { + } else { # Note: Now the information if an article is startarticle of a category is stored in relation con_cat_lang. $sql = "SELECT A.idart, B.idcat FROM - ".$cfg["tab"]["cat_art"]." AS A, - ".$cfg["tab"]["cat_tree"]." AS B, - ".$cfg["tab"]["cat"]." AS C, - ".$cfg["tab"]["cat_lang"]." AS D, - ".$cfg["tab"]["art_lang"]." AS E + " . $cfg["tab"]["cat_art"] . " AS A, + " . $cfg["tab"]["cat_tree"] . " AS B, + " . $cfg["tab"]["cat"] . " AS C, + " . $cfg["tab"]["cat_lang"] . " AS D, + " . $cfg["tab"]["art_lang"] . " AS E WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND D.startidartlang = E.idartlang AND - D.idlang='".Contenido_Security::toInteger($lang)."' AND + D.idlang='" . Contenido_Security::toInteger($lang) . "' AND E.idart=A.idart AND - E.idlang='".Contenido_Security::toInteger($lang)."' AND - idclient='".Contenido_Security::toInteger($client)."' + E.idlang='" . Contenido_Security::toInteger($lang) . "' AND + idclient='" . Contenido_Security::toInteger($client) . "' ORDER BY idtree ASC"; } @@ -316,40 +295,34 @@ if (!$idcatart) $idart = $db->f("idart"); $idcat = $db->f("idcat"); } else { - if($contenido) { + if ($contenido) { cInclude("includes", "functions.i18n.php"); die(i18n("No start article for this category")); } else { - if($error == 1) { + if ($error == 1) { die("Fatal error: Could not display error page. Error to display was: 'No start article in this category'"); } else { header($errsite); - exit; + exit; } } } } else { $idart = -1; - if ($cfg["is_start_compatible"] == true) - { - $sql = "SELECT idart FROM ".$cfg["tab"]["cat_art"]." WHERE idcat='".Contenido_Security::toInteger($idcat)."' AND is_start='1'"; + if ($cfg["is_start_compatible"] == true) { + $sql = "SELECT idart FROM " . $cfg["tab"]["cat_art"] . " WHERE idcat='" . Contenido_Security::toInteger($idcat) . "' AND is_start='1'"; $db->query($sql); - if ($db->next_record()) - { + if ($db->next_record()) { $idart = $db->f("idart"); } - } - else - { - $sql = "SELECT startidartlang FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".Contenido_Security::toInteger($idcat)."' AND idlang='".Contenido_Security::toInteger($lang)."'"; + } else { + $sql = "SELECT startidartlang FROM " . $cfg["tab"]["cat_lang"] . " WHERE idcat='" . Contenido_Security::toInteger($idcat) . "' AND idlang='" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); - if ($db->next_record()) - { - if ($db->f("startidartlang") != 0) - { - $sql = "SELECT idart FROM ".$cfg["tab"]["art_lang"]." WHERE idartlang='".Contenido_Security::toInteger($db->f("startidartlang"))."'"; + if ($db->next_record()) { + if ($db->f("startidartlang") != 0) { + $sql = "SELECT idart FROM " . $cfg["tab"]["art_lang"] . " WHERE idartlang='" . Contenido_Security::toInteger($db->f("startidartlang")) . "'"; $db->query($sql); $db->next_record(); $idart = $db->f("idart"); @@ -357,36 +330,26 @@ if (!$idcatart) } } - if ($idart != -1) - { - } - else - { + if ($idart != -1) { + + } else { // error message in backend - if ($contenido) - { + if ($contenido) { cInclude("includes", "functions.i18n.php"); die(i18n("No start article for this category")); - } - else - { - if ($error == 1) - { + } else { + if ($error == 1) { echo "Fatal error: Could not display error page. Error to display was: 'No start article in this category'"; - } - else - { + } else { header($errsite); - exit; + exit; } } } } } -} -else -{ - $sql = "SELECT idcat, idart FROM ".$cfg["tab"]["cat_art"]." WHERE idcatart='".Contenido_Security::toInteger($idcatart)."'"; +} else { + $sql = "SELECT idcat, idart FROM " . $cfg["tab"]["cat_art"] . " WHERE idcatart='" . Contenido_Security::toInteger($idcatart) . "'"; $db->query($sql); $db->next_record(); @@ -396,9 +359,8 @@ else } /* Get idcatart */ -if (0 != $idart && 0 != $idcat) -{ - $sql = "SELECT idcatart FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '".Contenido_Security::toInteger($idart)."' AND idcat = '".Contenido_Security::toInteger($idcat)."'"; +if (0 != $idart && 0 != $idcat) { + $sql = "SELECT idcatart FROM " . $cfg["tab"]["cat_art"] . " WHERE idart = '" . Contenido_Security::toInteger($idart) . "' AND idcat = '" . Contenido_Security::toInteger($idcat) . "'"; $db->query($sql); $db->next_record(); @@ -408,10 +370,9 @@ if (0 != $idart && 0 != $idcat) $idartlang = getArtLang($idart, $lang); -if ($idartlang === false) -{ +if ($idartlang === false) { header($errsite); - exit; + exit; } /* @@ -427,8 +388,6 @@ if ($cfg["cache"]["disable"] != '1') { $oCacheHandler->start($iStartTime); // $iStartTime ist optional und ist die startzeit des scriptes, z. b. am anfang von fron_content.php } // END: concache - - ############################################## # BACKEND / FRONTEND EDITING ############################################## @@ -443,44 +402,39 @@ if ($cfg["cache"]["disable"] != '1') { * The reason is to avoid cross-site scripting errors in the backend, if the backend domain differs from * the frontend domain. */ -if ($contenido) -{ +if ($contenido) { $perm->load_permissions(); /* Change mode edit / view */ - if (isset ($changeview)) - { + if (isset($changeview)) { $sess->register("view"); $view = $changeview; } $col = new InUseCollection; - if ($overrideid != "" && $overridetype != "") - { + if ($overrideid != "" && $overridetype != "") { $col->removeItemMarks($overridetype, $overrideid); } /* Remove all own marks */ $col->removeSessionMarks($sess->id); /* If the override flag is set, override a specific InUseItem */ - list ($inUse, $message) = $col->checkAndMark("article", $idartlang, true, i18n("Article is in use by %s (%s)"), true, $cfg['path']['contenido_fullhtml']."external/backendedit/front_content.php?changeview=edit&action=con_editart&idartlang=$idartlang&type=$type&typenr=$typenr&idart=$idart&idcat=$idcat&idcatart=$idcatart&client=$client&lang=$lang"); + list ($inUse, $message) = $col->checkAndMark("article", $idartlang, true, i18n("Article is in use by %s (%s)"), true, $cfg['path']['contenido_fullhtml'] . "external/backendedit/front_content.php?changeview=edit&action=con_editart&idartlang=$idartlang&type=$type&typenr=$typenr&idart=$idart&idcat=$idcat&idcatart=$idcatart&client=$client&lang=$lang"); $sHtmlInUse = ''; $sHtmlInUseMessage = ''; - if ($inUse == true) - { + if ($inUse == true) { $disabled = 'disabled="disabled"'; - $sHtmlInUseCss = ''; + $sHtmlInUseCss = ''; $sHtmlInUseMessage = $message; } - $sql = "SELECT locked FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".Contenido_Security::toInteger($idart)."' AND idlang = '".Contenido_Security::toInteger($lang)."'"; + $sql = "SELECT locked FROM " . $cfg["tab"]["art_lang"] . " WHERE idart='" . Contenido_Security::toInteger($idart) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); $db->next_record(); $locked = $db->f("locked"); - if ($locked == 1) - { + if ($locked == 1) { $inUse = true; $disabled = 'disabled="disabled"'; } @@ -488,47 +442,40 @@ if ($contenido) // CEC to check if the user has permission to edit articles in this category CEC_Hook::setBreakCondition(false, true); // break at "false", default value "true" $allow = CEC_Hook::executeWhileBreakCondition( - 'Contenido.Frontend.AllowEdit', $lang, $idcat, $idart, $auth->auth['uid'] + 'Contenido.Frontend.AllowEdit', $lang, $idcat, $idart, $auth->auth['uid'] ); - if ($perm->have_perm_area_action_item("con_editcontent", "con_editart", $idcat) && $inUse == false && $allow == true) - { + if ($perm->have_perm_area_action_item("con_editcontent", "con_editart", $idcat) && $inUse == false && $allow == true) { /* Create buttons for editing */ $edit_preview = ''; - if ($view == "edit") - { + if ($view == "edit") { $edit_preview = ''; - } - else - { + } else { $edit_preview = ''; } /* Display articles */ - if ($cfg["is_start_compatible"] == true) - { - $sql = "SELECT idart, is_start FROM ".$cfg["tab"]["cat_art"]." WHERE idcat='".Contenido_Security::toInteger($idcat)."' ORDER BY idart"; + if ($cfg["is_start_compatible"] == true) { + $sql = "SELECT idart, is_start FROM " . $cfg["tab"]["cat_art"] . " WHERE idcat='" . Contenido_Security::toInteger($idcat) . "' ORDER BY idart"; $db->query($sql); - } - else - { - $sql = "SELECT idart FROM ".$cfg["tab"]["cat_art"]." WHERE idcat='".Contenido_Security::toInteger($idcat)."' ORDER BY idart"; + } else { + $sql = "SELECT idart FROM " . $cfg["tab"]["cat_art"] . " WHERE idcat='" . Contenido_Security::toInteger($idcat) . "' ORDER BY idart"; $db->query($sql); } @@ -537,53 +484,41 @@ if ($contenido) $edit_preview .= '
- Preview + Preview - Preview + Preview
- Preview + Preview - Edit + Edit
Articles in category:
'; - while ($db->next_record() && ($db->affected_rows() != 1)) - { + while ($db->next_record() && ($db->affected_rows() != 1)) { $class = "font-family:'Verdana'; font-size:10; color:#000000; text-decoration: underline; font-weight:normal"; - if (!isset ($idart)) - { - if (isStartArticle(getArtLang($idart, $lang), $idcat, $lang)) - { + if (!isset($idart)) { + if (isStartArticle(getArtLang($idart, $lang), $idcat, $lang)) { $class = "font-family: verdana; font-size:10; color:#000000; text-decoration: underline ;font-weight:bold"; } - } - else - { - if ($idart == $db->f("idart")) - { + } else { + if ($idart == $db->f("idart")) { $class = "font-family: verdana; font-size:10; color:#000000; text-decoration: underline; font-weight:bold"; } } - $edit_preview .= "url("front_content.php?idart=".$db->f("idart")."&idcat=$idcat")."\">$a "; - $a ++; + $edit_preview .= "url("front_content.php?idart=" . $db->f("idart") . "&idcat=$idcat") . "\">$a "; + $a++; } $edit_preview .= '
'; - } - } // end if $contenido /* If mode is 'edit' and user has permission to edit articles in the current category */ -if ($inUse == false && $allow == true && $view == "edit" && ($perm->have_perm_area_action_item("con_editcontent", "con_editart", $idcat))) -{ +if ($inUse == false && $allow == true && $view == "edit" && ($perm->have_perm_area_action_item("con_editcontent", "con_editart", $idcat))) { cInclude("includes", "functions.tpl.php"); cInclude("includes", "functions.con.php"); - include ($cfg["path"]["contenido"].$cfg["path"]["includes"]."include.con_editcontent.php"); -} -else -{ + include ($cfg["path"]["contenido"] . $cfg["path"]["includes"] . "include.con_editcontent.php"); +} else { ############################################## # FRONTEND VIEW ############################################## /* Mark submenuitem 'Preview' in the Contenido Backend (Area: Contenido --> Articles --> Preview) */ - if ($contenido) - { + if ($contenido) { $markscript = markSubMenuItem(4, true); } @@ -593,10 +528,10 @@ else $sql = "SELECT createcode FROM - ".$cfg["tab"]["cat_art"]." + " . $cfg["tab"]["cat_art"] . " WHERE - idcat = '".Contenido_Security::toInteger($idcat)."' AND - idart = '".Contenido_Security::toInteger($idart)."'"; + idcat = '" . Contenido_Security::toInteger($idcat) . "' AND + idart = '" . Contenido_Security::toInteger($idart) . "'"; $db->query($sql); $db->next_record(); @@ -606,44 +541,36 @@ else ############################################## /* Check if code is expired, create new code if needed */ - if($db->f("createcode") == 0 && $force == 0 && $cfg['dceModEdit']['use'] !== true && $cfg['dceLayEdit']['use'] !== true) { - $sql = "SELECT code FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".Contenido_Security::toInteger($idcatart)."' AND idlang = '".Contenido_Security::toInteger($lang)."'"; + if ($db->f("createcode") == 0 && $force == 0 && $cfg['dceModEdit']['use'] !== true && $cfg['dceLayEdit']['use'] !== true) { + $sql = "SELECT code FROM " . $cfg["tab"]["code"] . " WHERE idcatart = '" . Contenido_Security::toInteger($idcatart) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); - if ($db->num_rows() == 0) - { + if ($db->num_rows() == 0) { /* Include here for performance reasons */ cInclude("includes", "functions.tpl.php"); conGenerateCode($idcat, $idart, $lang, $client); - $sql = "SELECT code FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".Contenido_Security::toInteger($idcatart)."' AND idlang = '".Contenido_Security::toInteger($lang)."'"; + $sql = "SELECT code FROM " . $cfg["tab"]["code"] . " WHERE idcatart = '" . Contenido_Security::toInteger($idcatart) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); } - if ($db->next_record()) - { + if ($db->next_record()) { $code = stripslashes($db->f("code")); - } - else - { + } else { if ($contenido) $code = "echo \"No code available.\";"; - else - { - if ($error == 1) - { + else { + if ($error == 1) { echo "Fatal error: Could not display error page. Error to display was: 'No code available'"; - } - else - { + } else { header($errsite); - exit; + exit; } } } } else { - $sql = "DELETE FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".Contenido_Security::toInteger($idcatart)."'"; + $sql = "DELETE FROM " . $cfg["tab"]["code"] . " WHERE idcatart = '" . Contenido_Security::toInteger($idcatart) . "'"; $db->query($sql); cInclude("includes", "functions.con.php"); @@ -652,7 +579,7 @@ else conGenerateCode($idcat, $idart, $lang, $client); - $sql = "SELECT code FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".Contenido_Security::toInteger($idcatart)."' AND idlang = '".Contenido_Security::toInteger($lang)."'"; + $sql = "SELECT code FROM " . $cfg["tab"]["code"] . " WHERE idcatart = '" . Contenido_Security::toInteger($idcatart) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); $db->next_record(); @@ -670,7 +597,7 @@ else } /* Check if category is public */ - $sql = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".Contenido_Security::toInteger($idcat)."' AND idlang='".Contenido_Security::toInteger($lang)."'"; + $sql = "SELECT public FROM " . $cfg["tab"]["cat_lang"] . " WHERE idcat='" . Contenido_Security::toInteger($idcat) . "' AND idlang='" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); $db->next_record(); @@ -680,80 +607,68 @@ else ############################################## # protected categories ############################################## - if ($public == 0) - { - if ($auth->auth["uid"] == "nobody") - { - $sql = "SELECT user_id, value FROM ".$cfg["tab"]["user_prop"]." WHERE type='frontend' and name='allowed_ip'"; + if ($public == 0) { + if ($auth->auth["uid"] == "nobody") { + $sql = "SELECT user_id, value FROM " . $cfg["tab"]["user_prop"] . " WHERE type='frontend' and name='allowed_ip'"; $db->query($sql); - while ($db->next_record()) - { + while ($db->next_record()) { $user_id = $db->f("user_id"); $range = urldecode($db->f("value")); $slash = strpos($range, "/"); - if ($slash == false) - { + if ($slash == false) { $netmask = "255.255.255.255"; $network = $range; - } - else - { + } else { $network = substr($range, 0, $slash); - $netmask = substr($range, $slash +1, strlen($range) - $slash -1); + $netmask = substr($range, $slash + 1, strlen($range) - $slash - 1); } - if (IP_match($network, $netmask, $_SERVER["REMOTE_ADDR"])) - { + if (IP_match($network, $netmask, $_SERVER["REMOTE_ADDR"])) { $sql = "SELECT idright - FROM ".$cfg["tab"]["rights"]." AS A, - ".$cfg["tab"]["actions"]." AS B, - ".$cfg["tab"]["area"]." AS C - WHERE B.name = 'front_allow' AND C.name = 'str' AND A.user_id = '".Contenido_Security::escapeDB($user_id, $db2)."' AND A.idcat = '".Contenido_Security::toInteger($idcat)."' + FROM " . $cfg["tab"]["rights"] . " AS A, + " . $cfg["tab"]["actions"] . " AS B, + " . $cfg["tab"]["area"] . " AS C + WHERE B.name = 'front_allow' AND C.name = 'str' AND A.user_id = '" . Contenido_Security::escapeDB($user_id, $db2) . "' AND A.idcat = '" . Contenido_Security::toInteger($idcat) . "' AND A.idarea = C.idarea AND B.idaction = A.idaction"; $db2 = new DB_Contenido; $db2->query($sql); - if ($db2->num_rows() > 0) - { + if ($db2->num_rows() > 0) { $auth->auth["uid"] = $user_id; $validated = 1; } } } - if ($validated != 1) - { + if ($validated != 1) { // CEC to check category access CEC_Hook::setBreakCondition(true, false); // break at "true", default value "false" $allow = CEC_Hook::executeWhileBreakCondition( - 'Contenido.Frontend.CategoryAccess', $lang, $idcat, $auth->auth['uid'] + 'Contenido.Frontend.CategoryAccess', $lang, $idcat, $auth->auth['uid'] ); $auth->login_if(!$allow); } - } - else - { + } else { // CEC to check category access CEC_Hook::setBreakCondition(true, false); // break at "true", default value "false" $allow = CEC_Hook::executeWhileBreakCondition( - 'Contenido.Frontend.CategoryAccess', $lang, $idcat, $auth->auth['uid'] + 'Contenido.Frontend.CategoryAccess', $lang, $idcat, $auth->auth['uid'] ); /* - added 2008-11-18 Timo Trautmann - in backendeditmode also check if logged in backenduser has permission to view preview of page - */ + added 2008-11-18 Timo Trautmann + in backendeditmode also check if logged in backenduser has permission to view preview of page + */ if ($allow == false && $contenido && $perm->have_perm_area_action_item("con_editcontent", "con_editart", $idcat)) { $allow = true; } - if (!$allow) - { + if (!$allow) { header($errsite); - exit; + exit; } } } @@ -767,24 +682,18 @@ else /* * Check if an article is start article of the category */ - if ($cfg["is_start_compatible"] == true) - { - $sql = "SELECT is_start FROM ".$cfg["tab"]["cat_art"]." WHERE idcatart='".Contenido_Security::toInteger($idcatart)."'"; + if ($cfg["is_start_compatible"] == true) { + $sql = "SELECT is_start FROM " . $cfg["tab"]["cat_art"] . " WHERE idcatart='" . Contenido_Security::toInteger($idcatart) . "'"; $db->query($sql); $db->next_record(); $isstart = $db->f("is_start"); - } - else - { - $sql = "SELECT startidartlang FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".Contenido_Security::toInteger($idcat)."' AND idlang = '".Contenido_Security::toInteger($lang)."'"; + } else { + $sql = "SELECT startidartlang FROM " . $cfg["tab"]["cat_lang"] . " WHERE idcat='" . Contenido_Security::toInteger($idcat) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); $db->next_record(); - if ($db->f("idartlang") == $idartlang) - { + if ($db->f("idartlang") == $idartlang) { $isstart = 1; - } - else - { + } else { $isstart = 0; } } @@ -792,18 +701,15 @@ else ############################################## # time management ############################################## - $sql = "SELECT timemgmt FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".Contenido_Security::toInteger($idart)."' AND idlang = '".Contenido_Security::toInteger($lang)."'"; + $sql = "SELECT timemgmt FROM " . $cfg["tab"]["art_lang"] . " WHERE idart='" . Contenido_Security::toInteger($idart) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "'"; $db->query($sql); $db->next_record(); - if (($db->f("timemgmt") == "1") && ($isstart != 1)) - { - $sql = "SELECT online, redirect, redirect_url FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".Contenido_Security::toInteger($idart)."' AND idlang = '".Contenido_Security::toInteger($lang)."' + if (($db->f("timemgmt") == "1") && ($isstart != 1)) { + $sql = "SELECT online, redirect, redirect_url FROM " . $cfg["tab"]["art_lang"] . " WHERE idart='" . Contenido_Security::toInteger($idart) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "' AND NOW() > datestart AND NOW() < dateend"; - } - else - { - $sql = "SELECT online, redirect, redirect_url FROM ".$cfg["tab"]["art_lang"]." WHERE idart='".Contenido_Security::toInteger($idart)."' AND idlang = '".Contenido_Security::toInteger($lang)."'"; + } else { + $sql = "SELECT online, redirect, redirect_url FROM " . $cfg["tab"]["art_lang"] . " WHERE idart='" . Contenido_Security::toInteger($idart) . "' AND idlang = '" . Contenido_Security::toInteger($lang) . "'"; } $db->query($sql); @@ -813,15 +719,14 @@ else $redirect = $db->f("redirect"); $redirect_url = $db->f("redirect_url"); - @ eval ("\$"."redirect_url = \"$redirect_url\";"); // transform variables + @ eval("\$" . "redirect_url = \"$redirect_url\";"); // transform variables $insert_base = getEffectiveSetting('generator', 'basehref', "true"); /* * generate base url */ - if ($insert_base == "true") - { + if ($insert_base == "true") { $is_XHTML = getEffectiveSetting('generator', 'xhtml', "false"); $str_base_uri = $cfgClient[$client]["path"]["htmlpath"]; @@ -830,21 +735,19 @@ else $str_base_uri = CEC_Hook::executeAndReturn('Contenido.Frontend.BaseHrefGeneration', $str_base_uri); if ($is_XHTML == "true") { - $baseCode = ''; + $baseCode = ''; } else { - $baseCode = ''; + $baseCode = ''; } - $code = str_ireplace_once("", "\n".$baseCode, $code); + $code = str_ireplace_once("", "\n" . $baseCode, $code); } /* * Handle online (offline) articles */ - if ($online) - { - if ($redirect == '1' && $redirect_url != '') - { + if ($online) { + if ($redirect == '1' && $redirect_url != '') { page_close(); /* * Redirect to the URL defined in article properties @@ -860,12 +763,9 @@ else } header("Location: $redirect_url"); exit; - } - else - { - if ($cfg["debug"]["codeoutput"]) - { - echo ""; + } else { + if ($cfg["debug"]["codeoutput"]) { + echo ""; } /* @@ -876,11 +776,11 @@ else $aExclude = explode(',', getEffectiveSetting('frontend.no_outputbuffer', 'idart', '')); if (in_array(Contenido_Security::toInteger($idart), $aExclude)) { - eval ("?>\n".$code."\n\n" . $code . "\n\n".$code."\n\n" . $code . "\n\n".$code."\n\n" . $code . "\n 0) - { - $sSQL = "SELECT tblArtLang.title AS title, tblArtLang.idartlang AS idartlang, tblCatArt.idcat AS idcat, "; - $sSQL .= "tblCatArt.idcatart AS idcatart, tblCatArt.is_start AS isstart, tblArtLang.online AS online, "; - $sSQL .= "tblCatLang.startidartlang as idstartartlang "; - $sSQL .= "FROM ".$cfg["tab"]["art_lang"]." AS tblArtLang, ".$cfg["tab"]["cat_art"]." AS tblCatArt, "; - $sSQL .= $cfg["tab"]["cat_lang"]." AS tblCatLang "; - $sSQL .= "WHERE tblCatArt.idcat = '".Contenido_Security::toInteger($iIDCat)."' AND tblCatLang.idcat = tblCatArt.idcat AND tblCatLang.idlang = tblArtLang.idlang AND "; + if (is_numeric($iIDCat) && $iIDCat > 0) { + $sSQL = "SELECT tblArtLang.title AS title, tblArtLang.idartlang AS idartlang, tblCatArt.idcat AS idcat, "; + $sSQL .= "tblCatArt.idcatart AS idcatart, tblCatArt.is_start AS isstart, tblArtLang.online AS online, "; + $sSQL .= "tblCatLang.startidartlang as idstartartlang "; + $sSQL .= "FROM " . $cfg["tab"]["art_lang"] . " AS tblArtLang, " . $cfg["tab"]["cat_art"] . " AS tblCatArt, "; + $sSQL .= $cfg["tab"]["cat_lang"] . " AS tblCatLang "; + $sSQL .= "WHERE tblCatArt.idcat = '" . Contenido_Security::toInteger($iIDCat) . "' AND tblCatLang.idcat = tblCatArt.idcat AND tblCatLang.idlang = tblArtLang.idlang AND "; - if ($bArtOnline) { - $sSQL .= "tblArtLang.online = '1' AND "; - } + if ($bArtOnline) { + $sSQL .= "tblArtLang.online = '1' AND "; + } - $sSQL .= "tblArtLang.idart = tblCatArt.idart AND tblArtLang.idlang = '".Contenido_Security::escapeDB($lang, $oDB)."' "; - if ($cfg["is_start_compatible"] == true) { - $sSQL .= "ORDER BY tblCatArt.is_start DESC, tblArtLang.title"; // Getting start article as first article - } else { - $sSQL .= "ORDER BY tblArtLang.title"; - } + $sSQL .= "tblArtLang.idart = tblCatArt.idart AND tblArtLang.idlang = '" . Contenido_Security::escapeDB($lang, $oDB) . "' "; + if ($cfg["is_start_compatible"] == true) { + $sSQL .= "ORDER BY tblCatArt.is_start DESC, tblArtLang.title"; // Getting start article as first article + } else { + $sSQL .= "ORDER BY tblArtLang.title"; + } - $oDB->query($sSQL); + $oDB->query($sSQL); - $iCount = $oDB->num_rows(); - if ($iCount == 0) { - return 0; - } else { - $iCounter = count($this->_options); - while ($oDB->next_record()) - { - // Generate new option element - $oOption = new cHTMLOptionElement($sSpaces."   ".substr(urldecode($oDB->f("title")), 0, 32), $oDB->f("idcatart")); + $iCount = $oDB->num_rows(); + if ($iCount == 0) { + return 0; + } else { + $iCounter = count($this->_options); + while ($oDB->next_record()) { + // Generate new option element + $oOption = new cHTMLOptionElement($sSpaces . "   " . substr(urldecode($oDB->f("title")), 0, 32), $oDB->f("idcatart")); - if ($bColored) - { - $bIsStartArticle = false; - if ($cfg["is_start_compatible"] == true && $oDB->f("isstart") == 1) { - // Compatible mode and "start article" flag is set - $bIsStartArticle = true; - } else if ($cfg["is_start_compatible"] != true && $oDB->f("idstartartlang") == $oDB->f("idartlang")) { - // No compatible mode and current article is start article (idstartartlang is the same for all records within a category) - $bIsStartArticle = true; - } + if ($bColored) { + $bIsStartArticle = false; + if ($cfg["is_start_compatible"] == true && $oDB->f("isstart") == 1) { + // Compatible mode and "start article" flag is set + $bIsStartArticle = true; + } else if ($cfg["is_start_compatible"] != true && $oDB->f("idstartartlang") == $oDB->f("idartlang")) { + // No compatible mode and current article is start article (idstartartlang is the same for all records within a category) + $bIsStartArticle = true; + } - if ($bIsStartArticle) - { - if ($oDB->f("online") == 0) { - // Start article, but offline -> red - $oOption->setStyle("color: #ff0000;"); - } else { - // Start article -> blue - $oOption->setStyle("color: #0000ff;"); - } - } else if ($oDB->f("online") == 0) { - // Offline article -> grey - $oOption->setStyle("color: #666666;"); - } - } + if ($bIsStartArticle) { + if ($oDB->f("online") == 0) { + // Start article, but offline -> red + $oOption->setStyle("color: #ff0000;"); + } else { + // Start article -> blue + $oOption->setStyle("color: #0000ff;"); + } + } else if ($oDB->f("online") == 0) { + // Offline article -> grey + $oOption->setStyle("color: #666666;"); + } + } - // Add option element to the list - $this->addOptionElement($iCounter, $oOption); - $iCounter++; - } - return $iCount; - } - } else { - return 0; - } - } + // Add option element to the list + $this->addOptionElement($iCounter, $oOption); + $iCounter++; + } + return $iCount; + } + } else { + return 0; + } + } - /** - * Function addCategories. Adds category elements (optionally including articles) to select box values. - * Note: Using "with articles" adds the articles also - but the categories will get a negative value! - * There is no way to distinguish between a category id and an article id... - * - * @param int $iMaxLevel Max. level shown (to be exact: except this level) - * @param bool $bColored Add color information to option elements - * @param bool $bCatVisible If true, only add idcat as value, if cat is visible - * @param bool $bCatPublic If true, only add idcat as value, if cat is public - * @param bool $bWithArt Add also articles per category - * @param bool $bArtOnline If true, show only online articles - * - * @return int Number of items added - **/ - function addCategories ($iMaxLevel = 0, $bColored = false, $bCatVisible = true, $bCatPublic = true, - $bWithArt = false, $bArtOnline = true) - { - global $cfg, $client, $lang; + /** + * Function addCategories. Adds category elements (optionally including articles) to select box values. + * Note: Using "with articles" adds the articles also - but the categories will get a negative value! + * There is no way to distinguish between a category id and an article id... + * + * @param int $iMaxLevel Max. level shown (to be exact: except this level) + * @param bool $bColored Add color information to option elements + * @param bool $bCatVisible If true, only add idcat as value, if cat is visible + * @param bool $bCatPublic If true, only add idcat as value, if cat is public + * @param bool $bWithArt Add also articles per category + * @param bool $bArtOnline If true, show only online articles + * + * @return int Number of items added + * */ + function addCategories($iMaxLevel = 0, $bColored = false, $bCatVisible = true, $bCatPublic = true, + $bWithArt = false, $bArtOnline = true) { + global $cfg, $client, $lang; - $oDB = new DB_Contenido; + $oDB = new DB_Contenido; - $sSQL = "SELECT tblCat.idcat AS idcat, tblCatLang.name AS name, "; - $sSQL .= "tblCatLang.visible AS visible, tblCatLang.public AS public, tblCatTree.level AS level "; - $sSQL .= "FROM ".$cfg["tab"]["cat"]." AS tblCat, ".$cfg["tab"]["cat_lang"]." AS tblCatLang, "; - $sSQL .= $cfg["tab"]["cat_tree"]." AS tblCatTree "; - $sSQL .= "WHERE tblCat.idclient = '".Contenido_Security::escapeDB($client, $oDB)."' AND tblCatLang.idlang = '".Contenido_Security::escapeDB($lang, $oDB)."' AND "; - $sSQL .= "tblCatLang.idcat = tblCat.idcat AND tblCatTree.idcat = tblCat.idcat "; + $sSQL = "SELECT tblCat.idcat AS idcat, tblCatLang.name AS name, "; + $sSQL .= "tblCatLang.visible AS visible, tblCatLang.public AS public, tblCatTree.level AS level "; + $sSQL .= "FROM " . $cfg["tab"]["cat"] . " AS tblCat, " . $cfg["tab"]["cat_lang"] . " AS tblCatLang, "; + $sSQL .= $cfg["tab"]["cat_tree"] . " AS tblCatTree "; + $sSQL .= "WHERE tblCat.idclient = '" . Contenido_Security::escapeDB($client, $oDB) . "' AND tblCatLang.idlang = '" . Contenido_Security::escapeDB($lang, $oDB) . "' AND "; + $sSQL .= "tblCatLang.idcat = tblCat.idcat AND tblCatTree.idcat = tblCat.idcat "; - if ($iMaxLevel > 0) { - $sSQL .= "AND tblCatTree.level < '".Contenido_Security::escapeDB($iMaxLevel, $oDB)."' "; - } - $sSQL .= "ORDER BY tblCatTree.idtree"; + if ($iMaxLevel > 0) { + $sSQL .= "AND tblCatTree.level < '" . Contenido_Security::escapeDB($iMaxLevel, $oDB) . "' "; + } + $sSQL .= "ORDER BY tblCatTree.idtree"; - $oDB->query($sSQL); + $oDB->query($sSQL); - $iCount = $oDB->num_rows(); - if ($iCount == 0) { - return false; - } else { - $iCounter = count($this->_options); - while ($oDB->next_record()) - { - $sSpaces = ""; - $sStyle = ""; - $iID = $oDB->f("idcat"); + $iCount = $oDB->num_rows(); + if ($iCount == 0) { + return false; + } else { + $iCounter = count($this->_options); + while ($oDB->next_record()) { + $sSpaces = ""; + $sStyle = ""; + $iID = $oDB->f("idcat"); - for ($i = 0; $i < $oDB->f("level"); $i++) { - $sSpaces .= "   "; - } + for ($i = 0; $i < $oDB->f("level"); $i++) { + $sSpaces .= "   "; + } - // Generate new option element - if (($bCatVisible && $oDB->f("visible") == 0) || - ($bCatPublic && $oDB->f("public") == 0)) { - // If category has to be visible or public and it isn't, don't add value - $sValue = ""; - } else if ($bWithArt) { - // If article will be added, set negative idcat as value - $sValue = "-".$iID; - } else { - // Show only categories - and everything is fine... - $sValue = $iID; - } - $oOption = new cHTMLOptionElement($sSpaces."> ".urldecode($oDB->f("name")), $sValue); + // Generate new option element + if (($bCatVisible && $oDB->f("visible") == 0) || ($bCatPublic && $oDB->f("public") == 0)) { + // If category has to be visible or public and it isn't, don't add value + $sValue = ""; + } else if ($bWithArt) { + // If article will be added, set negative idcat as value + $sValue = "-" . $iID; + } else { + // Show only categories - and everything is fine... + $sValue = $iID; + } + $oOption = new cHTMLOptionElement($sSpaces . "> " . urldecode($oDB->f("name")), $sValue); - // Coloring option element, restricted shows grey color - $oOption->setStyle("background-color: #EFEFEF"); - if ($bColored && ($oDB->f("visible") == 0 || $oDB->f("public") == 0)) { - $oOption->setStyle("color: #666666;"); - } + // Coloring option element, restricted shows grey color + $oOption->setStyle("background-color: #EFEFEF"); + if ($bColored && ($oDB->f("visible") == 0 || $oDB->f("public") == 0)) { + $oOption->setStyle("color: #666666;"); + } - // Add option element to the list - $this->addOptionElement($iCounter, $oOption); + // Add option element to the list + $this->addOptionElement($iCounter, $oOption); - if ($bWithArt) { - $iArticles = $this->addArticles($iID, $bColored, $bArtOnline, $sSpaces); - $iCount += $iArticles; - } - $iCounter = count($this->_options); - } - } - return $iCount; - } + if ($bWithArt) { + $iArticles = $this->addArticles($iID, $bColored, $bArtOnline, $sSpaces); + $iCount += $iArticles; + } + $iCounter = count($this->_options); + } + } + return $iCount; + } - /** - * Function addTypesFromArt. Adds types and type ids which are available for the specified article - * - * @param int $iIDCatArt Article id - * @param string $sTypeRange Komma separated list of Contenido type ids which may be in the resulting list (e.g. '1','17','28') - * - * @return int Number of items added - **/ - function addTypesFromArt ($iIDCatArt, $sTypeRange = "") - { - global $cfg, $lang; + /** + * Function addTypesFromArt. Adds types and type ids which are available for the specified article + * + * @param int $iIDCatArt Article id + * @param string $sTypeRange Komma separated list of Contenido type ids which may be in the resulting list (e.g. '1','17','28') + * + * @return int Number of items added + * */ + function addTypesFromArt($iIDCatArt, $sTypeRange = "") { + global $cfg, $lang; - $oDB = new DB_Contenido; + $oDB = new DB_Contenido; - if (is_numeric($iIDCatArt) && $iIDCatArt > 0) - { - $sSQL = "SELECT tblContent.typeid AS typeid, tblContent.idtype AS idtype, tblType.type AS type, tblType.description AS description, "; - $sSQL .= "tblContent.value AS value "; - $sSQL .= "FROM ".$cfg["tab"]["content"]." AS tblContent, ".$cfg["tab"]["art_lang"]." AS tblArtLang, "; - $sSQL .= $cfg["tab"]["cat_art"]." AS tblCatArt, ".$cfg["tab"]["type"]." AS tblType "; - $sSQL .= "WHERE tblContent.idtype = tblType.idtype AND tblContent.idartlang = tblArtLang.idartlang AND "; - $sSQL .= "tblArtLang.idart = tblCatArt.idart AND tblArtLang.idlang = '". Contenido_Security::escapeDB($lang, $oDB)."' AND tblCatArt.idcatart = '". Contenido_Security::toInteger($iIDCatArt)."' "; + if (is_numeric($iIDCatArt) && $iIDCatArt > 0) { + $sSQL = "SELECT tblContent.typeid AS typeid, tblContent.idtype AS idtype, tblType.type AS type, tblType.description AS description, "; + $sSQL .= "tblContent.value AS value "; + $sSQL .= "FROM " . $cfg["tab"]["content"] . " AS tblContent, " . $cfg["tab"]["art_lang"] . " AS tblArtLang, "; + $sSQL .= $cfg["tab"]["cat_art"] . " AS tblCatArt, " . $cfg["tab"]["type"] . " AS tblType "; + $sSQL .= "WHERE tblContent.idtype = tblType.idtype AND tblContent.idartlang = tblArtLang.idartlang AND "; + $sSQL .= "tblArtLang.idart = tblCatArt.idart AND tblArtLang.idlang = '" . Contenido_Security::escapeDB($lang, $oDB) . "' AND tblCatArt.idcatart = '" . Contenido_Security::toInteger($iIDCatArt) . "' "; - if ($sTypeRange != "") { - $sSQL .= "AND tblContent.idtype IN (". Contenido_Security::escapeDB($sTypeRange, $oDB).") "; - } + if ($sTypeRange != "") { + $sSQL .= "AND tblContent.idtype IN (" . Contenido_Security::escapeDB($sTypeRange, $oDB) . ") "; + } - $sql .= "ORDER BY tblContent.idtype, tblContent.typeid"; + $sql .= "ORDER BY tblContent.idtype, tblContent.typeid"; - $oDB->query($sSQL); + $oDB->query($sSQL); - $iCount = $oDB->num_rows(); - if ($iCount == 0) { - return false; - } else { - while ($oDB->next_record()) - { - $sTypeIdentifier = "tblData.idtype = '".$oDB->f('idtype')."' AND tblData.typeid = '".$oDB->f('typeid')."'"; + $iCount = $oDB->num_rows(); + if ($iCount == 0) { + return false; + } else { + while ($oDB->next_record()) { + $sTypeIdentifier = "tblData.idtype = '" . $oDB->f('idtype') . "' AND tblData.typeid = '" . $oDB->f('typeid') . "'"; - // Generate new option element - $oOption = new cHTMLOptionElement($oDB->f('type')."[".$oDB->f('typeid')."]: ".substr(strip_tags(urldecode($oDB->f("value"))), 0, 50), $sTypeIdentifier); + // Generate new option element + $oOption = new cHTMLOptionElement($oDB->f('type') . "[" . $oDB->f('typeid') . "]: " . substr(strip_tags(urldecode($oDB->f("value"))), 0, 50), $sTypeIdentifier); - // Add option element to the list - $this->addOptionElement($sTypeIdentifier, $oOption); - } - return $iCount; - } - } else { - return false; - } - } + // Add option element to the list + $this->addOptionElement($sTypeIdentifier, $oOption); + } + return $iCount; + } + } else { + return false; + } + } + + /** + * Selects specified elements as selected + * + * @param array $aElements Array with "values" of the cHTMLOptionElement to set + * + * @return none + */ + function setSelected($aElements) { + if (is_array($this->_options) && is_array($aElements)) { + foreach ($this->_options as $sKey => $oOption) { + if (in_array($oOption->getAttribute("value"), $aElements)) { + $oOption->setSelected(true); + $this->_options[$sKey] = $oOption; + } else { + $oOption->setSelected(false); + $this->_options[$sKey] = $oOption; + } + } + } + } - /** - * Selects specified elements as selected - * - * @param array $aElements Array with "values" of the cHTMLOptionElement to set - * - * @return none - */ - function setSelected($aElements) - { - if (is_array($this->_options) && is_array($aElements)) - { - foreach ($this->_options as $sKey => $oOption) - { - if (in_array($oOption->getAttribute("value"), $aElements)) - { - $oOption->setSelected(true); - $this->_options[$sKey] = $oOption; - } else { - $oOption->setSelected(false); - $this->_options[$sKey] = $oOption; - } - } - } - } } -class UI_Config_Table -{ - var $_sTplCellCode; - var $_sTplTableFile; - - var $_sWidth; - var $_sBorder; - var $_sBorderColor; - var $_bSolidBorder; - var $_sPadding; - var $_aCells; - var $_aCellAlignment; - var $_aCellVAlignment; - var $_aCellColSpan; - var $_aCellClass; - var $_aRowBgColor; - var $_aRowExtra; - var $_bAddMultiSelJS; - - var $_sColorLight; - var $_sColorDark; +class UI_Config_Table { - function __construct() - { - global $cfg; + var $_sTplCellCode; + var $_sTplTableFile; + var $_sWidth; + var $_sBorder; + var $_sBorderColor; + var $_bSolidBorder; + var $_sPadding; + var $_aCells; + var $_aCellAlignment; + var $_aCellVAlignment; + var $_aCellColSpan; + var $_aCellClass; + var $_aRowBgColor; + var $_aRowExtra; + var $_bAddMultiSelJS; + var $_sColorLight; + var $_sColorDark; - $this->_sPadding = 2; - $this->_sBorder = 0; - $this->_sBorderColor = $cfg['color']['table_border']; - $this->_sTplCellCode = ' {CONTENT}'."\n"; - $this->_sTplTableFile = $cfg['path']['contenido'].$cfg['path']['templates'].$cfg['templates']['generic_list']; - $this->_sColorLight = $cfg['color']['table_light']; - $this->_sColorDark = $cfg['color']['table_dark']; - } + function __construct() { + global $cfg; - function setCellTemplate($sCode) - { - $this->_sTplCellCode = $sCode; - } + $this->_sPadding = 2; + $this->_sBorder = 0; + $this->_sBorderColor = $cfg['color']['table_border']; + $this->_sTplCellCode = ' {CONTENT}' . "\n"; + $this->_sTplTableFile = $cfg['path']['contenido'] . $cfg['path']['templates'] . $cfg['templates']['generic_list']; + $this->_sColorLight = $cfg['color']['table_light']; + $this->_sColorDark = $cfg['color']['table_dark']; + } + function setCellTemplate($sCode) { + $this->_sTplCellCode = $sCode; + } - function setTableTemplateFile($sPath) - { - $this->_sTplTableFile = $sPath; - } - - function setLightColor($sColor) - { - $this->_sColorLight = $sColor; - } - - function setDarkColor($sColor) - { - $this->_sColorDark = $sColor; - } + function setTableTemplateFile($sPath) { + $this->_sTplTableFile = $sPath; + } - function setAddMultiSelJS($bEnabled = true) - { - $this->_bAddMultiSelJS = (bool)$bEnabled; - } + function setLightColor($sColor) { + $this->_sColorLight = $sColor; + } - function setWidth ($sWidth) - { - $this->_sWidth = $sWidth; - } - - function setPadding ($sPadding) - { - $this->_sPadding = $sPadding; - } + function setDarkColor($sColor) { + $this->_sColorDark = $sColor; + } - function setBorder ($sBorder) - { - $this->_sBorder = $sBorder; - } + function setAddMultiSelJS($bEnabled = true) { + $this->_bAddMultiSelJS = (bool) $bEnabled; + } - function setBorderColor ($sBorderColor) - { - $this->_sBorderColor = $sBorderColor; - } - - function setSolidBorder ($bSolidBorder = true) - { - $this->_bSolidBorder = (bool)$bSolidBorder; - } + function setWidth($sWidth) { + $this->_sWidth = $sWidth; + } - function setCell ($sRow, $sCell, $sContent) - { - $this->_aCells[$sRow][$sCell] = $sContent; - $this->_aCellAlignment[$sRow][$sCell] = ""; - } + function setPadding($sPadding) { + $this->_sPadding = $sPadding; + } - function setCellAlignment ($sRow, $sCell, $sAlignment) - { - $this->_aCellAlignment[$sRow][$sCell] = $sAlignment; - } + function setBorder($sBorder) { + $this->_sBorder = $sBorder; + } - function setCellVAlignment ($sRow, $sCell, $sAlignment) - { - $this->_aCellVAlignment[$sRow][$sCell] = $sAlignment; - } + function setBorderColor($sBorderColor) { + $this->_sBorderColor = $sBorderColor; + } - function setCellColspan ($sRow, $sCell, $iColSpan) - { - $this->_aCellColSpan[$sRow][$sCell] = $iColSpan; - } + function setSolidBorder($bSolidBorder = true) { + $this->_bSolidBorder = (bool) $bSolidBorder; + } - function setCellClass ($sRow, $sCell, $sClass) - { - $this->_aCellClass[$sRow][$sCell] = $sClass; - } + function setCell($sRow, $sCell, $sContent) { + $this->_aCells[$sRow][$sCell] = $sContent; + $this->_aCellAlignment[$sRow][$sCell] = ""; + } - function setRowBgColor ($sRow, $sColor) - { - $this->_aRowBgColor[$sRow] = $sColor; - } - - function setRowExtra ($sRow, $sExtra) - { - $this->_aRowExtra[$sRow] = $sExtra; - } + function setCellAlignment($sRow, $sCell, $sAlignment) { + $this->_aCellAlignment[$sRow][$sCell] = $sAlignment; + } - function _addMultiSelJS() - { - // Trick: To save multiple selections in -Element, add some JS which saves the + // selection, comma separated in a hidden input field on change. + // Try ... catch prevents error messages, if function is added more than once + // if (!fncUpdateSel) in JS has not worked... - if ($this->_bSolidBorder) - { - if ($iCount < count($aCells)) - { - if ($iColCount < count($this->_aCells)) { - $sTplCell = str_replace('{EXTRA}', 'border: 0px; border-right: 1px; border-bottom: 1px; border-color: '.$this->_sBorderColor.'; border-style: solid;', $sTplCell); - } else { - $sTplCell = str_replace('{EXTRA}', 'border: 0px; border-right: 1px; border-color: '.$this->_sBorderColor.'; border-style: solid;', $sTplCell); - } - } else if ($iColCount < count($this->_aCells)) { - $sTplCell = str_replace('{EXTRA}', 'border: 0px; border-bottom: 1px; border-color: '.$this->_sBorderColor.'; border-style: solid;', $sTplCell); - } else { - $sTplCell = str_replace('{EXTRA}', '', $sTplCell); - } - } - - if ($this->_aCellAlignment[$sRow][$sCell] != "") { - $sTplCell = str_replace('{ALIGN}', $this->_aCellAlignment[$sRow][$sCell], $sTplCell); - } else { - $sTplCell = str_replace('{ALIGN}', 'left', $sTplCell); - } - - if ($this->_aCellVAlignment[$sRow][$sCell] != "") { - $sTplCell = str_replace('{VALIGN}', $this->_aCellVAlignment[$sRow][$sCell], $sTplCell); - } else { - $sTplCell = str_replace('{VALIGN}', 'top', $sTplCell); - } + $sSkript = ' ' . "\n"; - if ($this->_aCellColSpan[$sRow][$sCell] != "") { - $sTplCell = str_replace('{COLSPAN}', $this->_aCellColSpan[$sRow][$sCell], $sTplCell); - } else { - $sTplCell = str_replace('{COLSPAN}', '1', $sTplCell); - } + return $sSkript; + } - if ($this->_aCellClass[$sRow][$sCell] != "") { - $sTplCell = str_replace('{CLASS}', $this->_aCellClass[$sRow][$sCell], $sTplCell); - } else { - $sTplCell = str_replace('{CLASS}', 'text', $sTplCell); - } + function render($bPrint = false) { + $oTable = new Template; + $oTable->reset(); - // Multi selection javascript - if ($this->_bAddMultiSelJS) { - $sData = $this->_addMultiSelJS() . $sData; - $this->_bAddMultiSelJS = false; - } + $oTable->set('s', 'CELLPADDING', $this->_sPadding); + $oTable->set('s', 'BORDER', $this->_sBorder); + $oTable->set('s', 'BORDERCOLOR', $this->_sBorderColor); + + $iColCount = 0; + $bDark = false; + $sBgColor = ""; + $bMultiSelJSAdded = false; + if (is_array($this->_aCells)) { + foreach ($this->_aCells as $sRow => $aCells) { + $iColCount++; + //$bDark = !$bDark; + $sLine = ""; + $iCount = 0; + + foreach ($aCells as $sCell => $sData) { + $iCount++; + $sTplCell = $this->_sTplCellCode; + + if ($this->_bSolidBorder) { + if ($iCount < count($aCells)) { + if ($iColCount < count($this->_aCells)) { + $sTplCell = str_replace('{EXTRA}', 'border: 0px; border-right: 1px; border-bottom: 1px; border-color: ' . $this->_sBorderColor . '; border-style: solid;', $sTplCell); + } else { + $sTplCell = str_replace('{EXTRA}', 'border: 0px; border-right: 1px; border-color: ' . $this->_sBorderColor . '; border-style: solid;', $sTplCell); + } + } else if ($iColCount < count($this->_aCells)) { + $sTplCell = str_replace('{EXTRA}', 'border: 0px; border-bottom: 1px; border-color: ' . $this->_sBorderColor . '; border-style: solid;', $sTplCell); + } else { + $sTplCell = str_replace('{EXTRA}', '', $sTplCell); + } + } + + if ($this->_aCellAlignment[$sRow][$sCell] != "") { + $sTplCell = str_replace('{ALIGN}', $this->_aCellAlignment[$sRow][$sCell], $sTplCell); + } else { + $sTplCell = str_replace('{ALIGN}', 'left', $sTplCell); + } + + if ($this->_aCellVAlignment[$sRow][$sCell] != "") { + $sTplCell = str_replace('{VALIGN}', $this->_aCellVAlignment[$sRow][$sCell], $sTplCell); + } else { + $sTplCell = str_replace('{VALIGN}', 'top', $sTplCell); + } + + if ($this->_aCellColSpan[$sRow][$sCell] != "") { + $sTplCell = str_replace('{COLSPAN}', $this->_aCellColSpan[$sRow][$sCell], $sTplCell); + } else { + $sTplCell = str_replace('{COLSPAN}', '1', $sTplCell); + } + + if ($this->_aCellClass[$sRow][$sCell] != "") { + $sTplCell = str_replace('{CLASS}', $this->_aCellClass[$sRow][$sCell], $sTplCell); + } else { + $sTplCell = str_replace('{CLASS}', 'text', $sTplCell); + } + + // Multi selection javascript + if ($this->_bAddMultiSelJS) { + $sData = $this->_addMultiSelJS() . $sData; + $this->_bAddMultiSelJS = false; + } + + $sTplCell = str_replace('{CONTENT}', $sData, $sTplCell); + $sLine .= $sTplCell; + } + + // Row + $oTable->set('d', 'ROWS', $sLine); + + if ($this->_aRowBgColor[$sRow] != "") { + $sBgColor = $this->_aRowBgColor[$sRow]; + } else if ($sBgColor == $this->_sColorLight) { + $sBgColor = $this->_sColorDark; + } else { + $sBgColor = $this->_sColorLight; + } + $oTable->set('d', 'BGCOLOR', $sBgColor); + + if ($this->_aRowExtra[$sRow] != "") { + $oTable->set('d', 'EXTRA', $this->_aRowExtra[$sRow]); + } else { + $oTable->set('d', 'EXTRA', ''); + } + + $oTable->next(); + } + } + + if ($this->_sWidth) { + // Table: Width + $oTable->set('s', 'EXTRA', 'width: ' . $this->_sWidth . ';'); + } else { + $oTable->set('s', 'EXTRA', ''); + } + $sRendered = $oTable->generate($this->_sTplTableFile, true, false); + + if ($bPrint == true) { + echo $sRendered; + } else { + return $sRendered; + } + } - $sTplCell = str_replace('{CONTENT}', $sData, $sTplCell); - $sLine .= $sTplCell; - } - - // Row - $oTable->set('d', 'ROWS', $sLine); - - if ($this->_aRowBgColor[$sRow] != "") { - $sBgColor = $this->_aRowBgColor[$sRow]; - } else if ($sBgColor == $this->_sColorLight) { - $sBgColor = $this->_sColorDark; - } else { - $sBgColor = $this->_sColorLight; - } - $oTable->set('d', 'BGCOLOR', $sBgColor); - - if ($this->_aRowExtra[$sRow] != "") { - $oTable->set('d', 'EXTRA', $this->_aRowExtra[$sRow]); - } else { - $oTable->set('d', 'EXTRA', ''); - } - - $oTable->next(); - } - } - - if ($this->_sWidth) { - // Table: Width - $oTable->set('s', 'EXTRA', 'width: '.$this->_sWidth.';'); - } else { - $oTable->set('s', 'EXTRA', ''); - } - $sRendered = $oTable->generate($this->_sTplTableFile, true, false); - - if ($bPrint == true) { - echo $sRendered; - } else { - return $sRendered; - } - } } + ?> \ No newline at end of file diff --git a/cms/includes/spider-it.functions.inc.php b/cms/includes/spider-it.functions.inc.php deleted file mode 100644 index 3803fdb..0000000 --- a/cms/includes/spider-it.functions.inc.php +++ /dev/null @@ -1,859 +0,0 @@ - - * @copyright Spider IT Deutschland - * @license MIT - * (see below) - * @link http://www.Spider-IT.de - * @link http://www.conlite.org - * @link http://www.contenido.org - * - * @file spider-it.functions.inc.php - * @version 1.2 - * @date 2012-11-21 - * - * {@internal - * created 2012-09-14 - * modified 2012-10-10 - * modified 2012-10-14 - * modified 2012-10-22 - * modified 2012-10-24 - * modified 2012-10-30 - * modified 2012-11-21 - * - * $Id$: - * } - * - */ - -/* - * Copyright (c) 2012 Spider IT Deutschland - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated - * documentation files (the "Software"), to deal in the Software without restriction, including without - * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED - * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * - * Hiermit wird unentgeltlich, jeder Person, die eine Kopie der Software und der zugehörigen Dokumentationen (die - * "Software") erhält, die Erlaubnis erteilt, sie uneingeschränkt zu benutzen, inklusive und ohne Ausnahme, dem - * Recht, sie zu verwenden, kopieren, ändern, fusionieren, verlegen, verbreiten, unterlizenzieren und/oder zu - * verkaufen, und Personen, die diese Software erhalten, diese Rechte zu geben, unter den folgenden Bedingungen: - * - * Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in allen Kopien oder Teilkopien der Software - * beizulegen. - * - * DIE SOFTWARE WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT, EINSCHLIESSLICH DER GARANTIE - * ZUR BENUTZUNG FÜR DEN VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, JEDOCH NICHT - * DARAUF BESCHRÄNKT. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FÜR JEGLICHEN SCHADEN ODER SONSTIGE - * ANSPRÜCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES ODER ANDERS IM ZUSAMMENHANG - * MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN. - */ - -# Functions in this file: -# debug() -# sitCascadedArraySort() -# sitConvertCmykJpgToSrgbJpg() -# sitExplodeAssociative() -# sitExplodeCascading() -# sitExplodeLines() -# sitGetFilesInDirectory() -# sitGetImageDescription() -# sitGetRemoteContentToFile() -# sitGetSubdirs() -# sitImgScale() -# sitMoveAllUploadFiles() -# sitSafeStringEscape() -# sitSendHtmlMail() -# sitSetClientProperty() -# sitTeaserText() - -if (!defined('CON_FRAMEWORK')) { - die('Illegal call'); -} - -# debug() -# -# Zeigt Debugging-Informationen auf der Webseite -# -# Parameter: -# $value - Der anzuzeigende Wert -# $type - Der Typ des Wertes (optional) -# Möglichkeiten: -# '' - Text / Array / Object -# 'sql' - SQL-Anweisungen (Aufruf sollte nach $db->query() erfolgen) -# -# Der Wert wird aufbereitet per echo auf der Webseite -# ausgegeben, wobei die Funktion selbstständig zwischen -# einzelnen Werte, Arrays und Objekte unterscheidet. -# Der 2. Parameter $type dient besondere Fälle, wie z.B. -# 'sql' für SQL-Anweisungen, welche dann individuell -# aufbereitet werden. -function debug($value, $type = '') { - global $db, $debug; - - if ($debug) { - echo '
'; - switch (strtolower($type)) { - case 'sql': - echo '
' . str_replace(array(str_repeat(chr(32), 4), chr(9)), '', $value) . '
Records: ' . intval(@$db->num_rows()); - break; - default: - if (is_array($value)) { - echo '
'; var_dump($value); echo '
'; - } elseif (is_object($value)) { - echo 'Object:
'; var_dump($value); echo '
'; - } else { - echo $value; - } - break; - } - echo '
'; - } -} - -# sitCascadedArraySort() -# -# Sortiert ein kaskadiertes Array nach Spalten -# -# Parameter: -# Zu sortierendes Array -# Liste aus Feldnamen, Sortierarten und Sortierrichtungen (siehe -# array_multisort, de.php.net/manual/de/function.array-multisort.php) -# -# Sortiert ein mehrdimentionales Array nach den angegebenen Spalten -# nach den vorgegebenen Sortierarten und -richtungen (je Spalte anzugeben) -# Beispiel: -# $x = sitCascadedArraySort($x, 'Name', SORT_STRING, SORT_ASC, 'Vorname', SORT_STRING, SORT_ASC); -function sitCascadedArraySort() { - $args = func_get_args(); - $marray = array_shift($args); - if (count($marray)) { - $msortline = 'return(array_multisort('; - foreach ($args as $arg) { - $i ++; - if (is_string($arg)) { - foreach ($marray as $row) { - $sortarr[$i][] = $row[$arg]; - } - } else { - $sortarr[$i] = $arg; - } - $msortline .= '$sortarr['.$i.'],'; - } - $msortline .= '$marray));'; - eval($msortline); - } - return $marray; -} - -# sitConvertCmykJpgToSrgbJpg() -# -# Wandelt JPG-Bilder mit CMYK Farbprofil in sRGB Farbprofil um -# -# Parameter: -# $path - Kompletter Pfad zum Bild -# -# Da der Internet Explorer keine JPG-Bilder (.jpg / .jpeg) mit CMYK Farbprofil -# darstellen kann, müssen diese Bilder in das sRGB Farbprofil (für das Web) -# umgewandelt werden. Diese Funktion prüft das Bild und wandelt es ggf. um. -function sitConvertCmykJpgToSrgbJpg($path) { - if ((strtolower(substr($path, -4)) == '.jpg') || (strtolower(substr($path, -5)) == '.jpeg')) { - exec('identify -verbose ' . $path . ' >' . $path . '.txt'); - $tmp = file($path . '.txt'); - unlink($path . '.txt'); - for ($i = 0, $n = count($tmp); $i < $n; $i ++) { - $a = explode(':', $tmp[$i]); - if (trim($a[0]) == 'Colorspace') { - if (strpos($a[1], 'RGB') === false) { - # Bild ist in CMYK - exec('convert ' . $path . ' -profile sRGB.icc -colorspace sRGB ' . $path . '.jpg'); - unlink($path); - rename($path . '.jpg', $path); - } - break; - } - } - } -} - -# sitExplodeAssociative() -# -# Zerlegt eine Zeichenfolge in ein assoziatives Array. -# -# Parameter: -# $delimiter - Array mit Trennzeichen zum Zerlegen der Zeichenfolge -# $string - Zu zerlegende Zeichenfolge -# -# Das erste Trennzeichen bildet das Array, das zweite Trennzeichen -# splittet auf Key und Value. -function sitExplodeAssociative($delimiters = array(), $string = '') { - $tmp = explode($delimiters[0], $string); - $ret = array(); - for ($i = 0, $n = count($tmp); $i < $n; $i ++) { - $t = explode($delimiters[1], $tmp[$i]); - $ret[$t[0]] = $t[1]; - } - return $ret; -} - -# sitExplodeCascading() -# -# Zerlegt eine Zeichenfolge in ein kaskadiertes Array. -# -# Parameter: -# $delimiter - Array mit Trennzeichen zum Zerlegen der Zeichenfolge -# $string - Zu zerlegende Zeichenfolge -# -# Das erste Trennzeichen bildet das Hauptarray, jedes weitere -# Trennzeichen darin ein Unterarray (mehrere Ebenen). -function sitExplodeCascading($delimiters = array(), $string = '') { - $tmp = explode($delimiters[0], $string); - array_shift($delimiters); - for ($i = 0, $n = count($tmp); $i < $n; $i ++) { - $tmp[$i] = sitMultipleExplode($delimiters, $tmp[$i]); - } - return $tmp; -} - -# sitExplodeLines() -# -# Zerlegt einen Text in einzelnen Zeilen -# -# Parameter: -# $string - Zu zerlegende Zeichenfolge -# -# Zerlegt den Text unabhängig der Zeilenumbruchart in ein Array -# mit den einzelnen Zeilen. -function sitExplodeLines($string) { - return explode("\n", str_replace("\r\n", "\n", $string)); -} - -# sitGetFilesInDirectory() -# -# Liest Dateien in ein Verzeichnis -# -# Parameter: -# $path - Kompletter Pfad des zu lesenden Verzeichnisses -# $filter - Filter für gefundenen Dateien (optional) -# $sort - Sortierreihenfolge (optional) -# -# Liest die Dateien in ein Verzeichnis und filtert und sortiert diese bei Bedarf. -# $filter kann ein Array mit mehrere Filter sein, z.B. array('*.jp*g', '*.gif', '*.png'). -# $sort kann 'asc', 'desc', SORT_ASC oder SORT_DESC sein, oder weggelassen werden. -function sitGetFilesInDirectory($path, $filter = '*', $sort = '') { - define('FNM_CASEFOLD', 16); - $aFiles = array(); - if (is_dir($path)) { - if (!is_array($filter)) { - $filter = array($filter); - } - if ($oDir = opendir($path)) { - while (($sFile = readdir($oDir)) !== false) { - if (is_dir($path . $sFile)) { - continue; - } else { - for ($i = 0, $n = count($filter); $i < $n; $i ++) { - if (fnmatch($filter[$i], $sFile, FNM_CASEFOLD)) { - $aFiles[] = $sFile; - break; - } - } - } - } - closedir($oDir); - if (strlen($sort)) { - sort($aFiles, SORT_STRING); - if (($sort == 'desc') || ($sort == SORT_DESC)) { - $aFiles = array_reverse($aFiles); - } - } - } - } - return $aFiles; -} - -# sitGetImageDescription() -# -# Liest die Bildbeschreibung aus der Datenbank -# -# Parameter: -# $idupl - ID des Bildeintrags in der Datenbank -# -# Liest die zum Bild gehörenden Beschreibung entweder aus der Tabelle ..._upl_meta -# oder (falls leer) aus der Tabelle ..._upl und liefert diese zurück. -function sitGetImageDescription($idupl) { - global $db, $cfg; - - $sDesc = ''; - $sql = 'SELECT description - FROM ' . $cfg['tab']['upl_meta'] . ' - WHERE (idupl=' . $idupl . ')'; - $db->query($sql); - if ($db->next_record()) { - $sDesc = urldecode(str_replace(array('%0D%0A', '%0D', '%0A'), '
', $db->f('description'))); - } - if (strlen(trim($sDesc)) == 0) { - $sql = 'SELECT description - FROM ' . $cfg['tab']['upl'] . ' - WHERE (idupl=' . $idupl . ')'; - $db->query($sql); - if ($db->next_record()) { - $sDesc = $db->f('description'); - } - } - return $sDesc; -} - -# sitGetRemoteContentToFile() -# -# Holt entfernten Inhalt ab und speichert diesen lokal -# -# Parameter: -# $url - Die Adresse von wo der Inhalt geholt werden soll -# $file - Die Datei in der gespeichert werden soll (inkl. Pfad) -# $errno - Die Fehlernummer (Rückgabe) -# $errmsg - Die Fehlerbeschreibung (Rückgabe) -# -# Die Daten (Webseite, Bild, Feed usw) werden per cURL geholt, -# wobei Weiterleitungen gefolgt werden. -# Diese Methode ist unabhängig von allow_url_fopen und verarbeitet -# auch Anfragen per https (SSL). -function sitGetRemoteContentToFile($url, $file, $errno, $errmsg) { - $options = array( - CURLOPT_RETURNTRANSFER => true, // return web page - CURLOPT_HEADER => false, // don't return headers - CURLOPT_FOLLOWLOCATION => true, // follow redirects - CURLOPT_ENCODING => "", // handle compressed - CURLOPT_USERAGENT => "spider", // who am i - CURLOPT_AUTOREFERER => true, // set referer on redirect - CURLOPT_CONNECTTIMEOUT => 10, // timeout on connect - CURLOPT_TIMEOUT => 10, // timeout on response - CURLOPT_MAXREDIRS => 10, // stop after 10 redirects - ); - - $ch = curl_init($url); - curl_setopt_array($ch, $options); - $content = curl_exec($ch); - $errno = curl_errno($ch); - $errmsg = curl_error($ch); - $header = curl_getinfo($ch); - curl_close($ch); - - if (($errno == 0) && ($header['http_code'] == 200)) { - # Content in Datei speichern - if ($fp = fopen($file, 'w')) { - fputs($fp, $content); - fclose($fp); - return true; - } else { - $errno = -1; - $errmsg = 'Can\'t write to file ' . $file; - return false; - } - } else { - return false; - } -} - -# sitGetSubdirs() -# -# Listet Unterverzeichnisse eines Verzeichnisses -# -# Parameter: -# $dir - Übergeordnetes Verzeichnis -# $levels - Anzahl Ebenen an Unterverzeichnisse die mit aufgelistet werden sollen -# $__dirs - interner Parameter für Rekursion -# -# Listet die Unterverzeichnisse eines Verzeichnisses inkl. aller Unterverzeichnisse -# bis zu der angegebenen Anzahl an Ebenen (die Tiefe). -function sitGetSubdirs($dir, $levels = 1, $__dirs = array()) { - $a = array(); - $p = opendir($dir); - while (($s = readdir($p)) !== false) { - if (($s == '.') || ($s == '..')) { - continue; - } - if (is_dir($dir . ((substr($dir, -1) == '/') ? '' : '/') . $s)) { - $a[] = $dir . ((substr($dir, -1) == '/') ? '' : '/') . $s . '/'; - } - } - closedir($p); - sort($a, SORT_STRING); - for ($i = 0; $i < count($a); $i ++) { - $__dirs[] = $a[$i]; - if ($levels > 1) { - $__dirs = sitGetSubdirs($a[$i], ($levels - 1), $__dirs); - } - } - return $__dirs; -} - -# sitImgScale() -# -# Skaliert oder zoomt ein Bild auch mit Transparenz -# -# Parameter: -# $img - Pfad und Dateiname der Originaldatei relativ zum Mandantenverzeichnis -# $maxX - Maximale Breite des neuen Bildes -# $maxY - Maximale Höhe des neuen Bildes -# $crop - Bild darf beschnitten werden (optional) -# $expand - Bild darf vergrößert werden -# $cacheTime - Ältere Version nutzen oder überschreiben -# $wantHQ - Bild soll in hoher Qualität sein -# $quality - Qualität bei JPG und GIF -# $keepType - Dateityp beibehalten -# $fixedSize - Zielbild wird auf angegebene Größe erstellt und transparent (GIF und PNG) gefüllt -# $fixedBG - Bei $fixedSize und JPG wird dies die Hintergrundfarbe des umgebenden Bereichs -# -# Erstellt im cache Verzeichnis eine skalierte Version des Originalbildes -# wie auch die Con-Funktion capiImgScale(), aber behält Transparenz in GIF -# und PNG Bilder bei. Der zusätzliche Parameter $fixedSize ermöglicht es, -# das Zielbild mit fixe Abmessungen zu erstellen und das skalierte Bild -# darin zu zentrieren, wobei der umgebenden Bereich bei GIF und PNG Bilder -# transparent, bei JPG Bilder mit der in $fixedBG angegebenen Farbe gefüllt -# wird. Ist $fixedBG nicht angegeben, wird weiß (#FFF) angenommen. -function sitImgScale($img, $maxX = 0, $maxY = 0, $crop = false, $expand = false, $cacheTime = 10, $wantHQ = true, $quality = 75, $keepType = false, $fixedSize = false, $fixedBG = 'FFFFFF') { - global $cfgClient, $client, $lang; - - if (($maxX <= 0) && ($maxY <= 0)) { - return false; - } - - # Cache - $md5 = capiImgScaleGetMD5CacheFile($img, $maxX, $maxY, $crop, $expand); - list($oWidth, $oHeight, $oType) = @getimagesize($cfgClient[$client]['path']['frontend'] . $img); - switch ($oType) { - case IMAGETYPE_GIF: - $cfileName = $md5 . '.gif'; - break; - case IMAGETYPE_JPEG: - if ($keepType) { - $cfileName = $md5 . '.jpg'; - } else { - $cfileName = $md5 . '.png'; - } - break; - case IMAGETYPE_PNG: - $cfileName = $md5 . '.png'; - break; - default: - return false; - } - $cacheFile = $cfgClient[$client]['path']['frontend'] . 'cache/' . $cfileName; - $webFile = $cfgClient[$client]['path']['htmlpath'] . 'cache/' . $cfileName; - if (file_exists($cacheFile)) { - if ($cacheTime == 0) { - # Datei läuft nicht ab, also direkt ausgeben - return $webFile; - } elseif ((filemtime($cacheFile) + (60 * $cacheTime)) < time()) { - # Datei ist abgelaufen - unlink($cacheFile); - } else { - # Datei ist noch nicht abgelaufen - return $webFile; - } - } - - # Bild neu aufbauen - $nLeft = 0; - $nTop = 0; - $nWidth = 0; - $nHeight = 0; - if ($fixedSize) { - $iWidth = $maxX; - $iHeight = $maxY; - # Abmessung und Position in neues Bild berechnen - if (($oWidth > $maxX) || ($oHeight > $maxY) || ($expand)) { - # Bild ist größer oder soll vergrößert werden - if ($crop) { - $faktor = max($maxX / $oWidth, $maxY / $oHeight); - } else { - $faktor = min($maxX / $oWidth, $maxY / $oHeight); - } - if ($faktor == ($maxX / $oWidth)) { - $nLeft = 0; - $nWidth = $maxX; - $nHeight = floor($oHeight * $faktor); - $nTop = floor(($maxY - $nHeight) / 2); - } else { - $nTop = 0; - $nHeight = $maxY; - $nWidth = floor($oWidth * $faktor); - $nLeft = floor(($maxX - $nWidth) / 2); - } - } else { - $nLeft = floor(($maxX - $oWidth) / 2); - $nTop = floor(($maxY / $oHeight) / 2); - $nWidth = $oWidth; - $nHeight = $oHeight; - } - } else { - # Abmessung des neuen Bildes berechnen - if (($oWidth > $maxX) || ($oHeight > $maxY) || ($expand)) { - if ($crop) { - $faktor = max($maxX / $oWidth, $maxY / $oHeight); - } else { - $faktor = min($maxX / $oWidth, $maxY / $oHeight); - } - if ($faktor == ($maxX / $oWidth)) { - $nWidth = $maxX; - $nHeight = floor($oHeight * $faktor); - $iWidth = $maxX; - $iHeight = (($nHeight > $maxY) ? $maxY : $nHeight); - $nTop = (($nHeight > $maxY) ? floor(($maxY - $nHeight) / 2) : 0); - } else { - $nHeight = $maxY; - $nWidth = floor($oWidth * $faktor); - $iHeight = $maxY; - $iWidth = (($nWidth > $maxX) ? $maxX : $nWidth); - $nLeft = (($nWidth > $maxX) ? floor(($maxX - $nWidth) / 2) : 0); - } - } else { - # Bild ist kleiner und soll nicht vergrößert werden - $iWidth = $nWidth = $oWidth; - $iHeight = $nHeight = $oHeight; - } - } - # Bild einlesen - switch ($oType) { - case IMAGETYPE_GIF: - $image = imagecreatefromgif($img); - break; - case IMAGETYPE_JPEG: - $image = imagecreatefromjpeg($img); - break; - case IMAGETYPE_PNG: - $image = imagecreatefrompng($img); - break; - default: - return false; - } - # Neues Bild erzeugen und Hintergrundfarbe einstellen - $nImage = imagecreatetruecolor($iWidth, $iHeight); - if (($oType == IMAGETYPE_GIF) || ($oType == IMAGETYPE_PNG)) { - $transIdx = imagecolortransparent($image); - if ($transIdx >= 0) { - # Es gibt eine transparente Farbe (GIF oder PNG8) - $transColor = imagecolorsforindex($image, $transIdx); - $transIdx = imagecolorallocate($nImage, $transColor['red'], $transColor['green'], $transColor['blue']); - imagefill($nImage, 0, 0, $transIdx); - imagecolortransparent($nImage, $transIdx); - } elseif ($oType == IMAGETYPE_PNG) { - # Ein PNG24 kriegt ein transparenter Hintergrund per Alpha-Kanal - imagealphablending($nImage, false); - $oColor = imagecolorallocatealpha($nImage, 0, 0, 0, 127); - imagefill($nImage, 0, 0, $oColor); - imagesavealpha($nImage, true); - } - } else { -$debug = 1; - if ($keepType) { - # Andere Bilder (JPG) kriegen eine Hintergrundfarbe - $oColor = imagecolorallocate($nImage, hexdec(substr($fixedBG, 0, 2)), hexdec(substr($fixedBG, 2, 2)), hexdec(substr($fixedBG, 4, 2))); -#debug('imagecolorallocate($nImage, ' . hexdec(substr($fixedBG, 0, 2)) . ', ' . hexdec(substr($fixedBG, 2, 2)) . ', ' . hexdec(substr($fixedBG, 4, 2)) . ') = ' . $oColor); -# imagefill($nImage, 0, 0, $oColor); - imagefilledrectangle($nImage, 0, 0, $iWidth, $iHeight, $oColor); - } else { - # JPG-Bilder werden in PNG24 umgewandelt - $oType = IMAGETYPE_PNG; - imagealphablending($nImage, false); - $oColor = imagecolorallocatealpha($nImage, 0, 0, 0, 127); -# imagefill($nImage, 0, 0, $oColor); - imagefilledRectangle($nImage, 0, 0, $iWidth, $iHeight, $oColor); - imagesavealpha($nImage, true); - } - } - # Das Originalbild skaliert hinein kopieren - imagecopyresampled($nImage, $image, $nLeft, $nTop, 0, 0, $nWidth, $nHeight, $oWidth, $oHeight); - # Das neue Bild speichern - switch ($oType) { - case IMAGETYPE_GIF: - imagegif($nImage, $cacheFile); - break; - case IMAGETYPE_JPEG: - imagejpeg($nImage, $cacheFile); - break; - case IMAGETYPE_PNG: - imagepng($nImage, $cacheFile); - break; - } - # Aufräumen - imagedestroy($image); - imagedestroy($nImage); - # Pfad zurück liefern - return $webFile; -} - -# sitMoveAllUploadFiles() -# -# Verschiebt alle Dateien eines Verzeichnisses -# -# Parameter: -# $source - Quellverzeichnis -# $dest - Zielverzeichnis -# -# Verschiebt alle Dateien eines Verzeichnisses im Upload-Bereich (unter /upload/) -# und passt die Einträge in der Datenbank entsprechend an. -function sitMoveAllUploadFiles($source, $dest) { - global $cfgClient, $client, $db, $cfg; - - $source .= ((substr($source, -1) == '/') ? '' : '/'); - $dest .= ((substr($dest, -1) == '/') ? '' : '/'); - - $a = array(); - $p = opendir($cfgClient[$client]['upl']['path'] . $source); - while (($s = readdir($p)) !== false) { - if (is_dir($cfgClient[$client]['upl']['path'] . $source . $s)) { - continue; - } elseif (strlen($s) > 2) { - $a[] = $s; - } - } - for ($i = 0, $n = count($a); $i < $n; $i ++) { - rename($cfgClient[$client]['upl']['path'] . $source . $a[$i], $cfgClient[$client]['upl']['path'] . $dest . $a[$i]); - $sql = 'UPDATE ' . $cfg['tab']['upl'] . ' - SET dirname = "' . $dest . '" - WHERE ((dirname="' . $source . '") - AND (filename="' . $a[$i] . '"))'; - $db->query($sql); - } -} - -# sitSafeStringEscape() -# -# Escaped eine Zeichenfolge für SQL-Anweisungen -# -# Parameter: -# $string - Zu escapenden Zeichenfolge -# -# Escaped eine Zeichenfolge so, dass diese sicher in die Datenbank eingetragen -# werden kann. -function sitSafeStringEscape($string) { - $escapeCount = 0; - $targetString = ''; - for($offset = 0; $offset < strlen($string); $offset ++) { - switch ($c = $string{$offset}) { - case "'": - if ($escapeCount % 2 == 0) { - $targetString .= "\\"; - } - $escapeCount = 0; - $targetString .= $c; - break; - case '"': - if ($escapeCount % 2 == 0) { - $targetString .= "\\"; - } - $escapeCount = 0; - $targetString .= $c; - break; - case '\\': - $escapeCount ++ ; - $targetString .= $c; - break; - default: - $escapeCount = 0; - $targetString .= $c; - } - } - return $targetString; -} - -# sitSendHtmlMail() -# -# Sendet eine HTML-Mail mit HTML- und Textteil -# -# Parameter: -# $html - HTML-Teil der Mail -# $subject - Betreffzeile der Mail -# $receipients - Array von Empfänger ('name' und 'email', mehrere möglich) -# $attachments - Dateipfad oder Array von Dateipfade für Anhänge (optional) -# $sname - Absendername (optional) -# $smail - Absenderadresse (optional) -# $mailer - Versandmethode ('mail' / 'qmail' / 'sendmail' / 'smtp') (optional) -# $sserver - SMTP-Server Adresse (optional) -# $slogin - SMTP Login (optional) -# $spass - SMTP Passwort (optional) -# $sport - SMTP Port (optional) -# -# Sendet eine HTML-Mail mit HTML- und Textteil an einen oder mehrere Empfänger -# mit keinen oder mehrere Anhänge und liefert den Erfolgsstatus zurück. -# Die Angaben zum Absender und den Mailer werden, sofern sie nicht mit angegeben -# sind, aus den Mandanten- bzw. Systemeinstellungen ausgelesen. -# - email - absende-name -# - email - absender-email -# - email - mailer -# - email - smtp-server -# - email - smtp-login -# - email - smtp-passwort -# - email - smtp-port - 25 -# Die Empfänger werden als Array aus Name(n) und Email-Adresse(n) übergeben. -# Beispiel 1: array('name' => 'xyz', 'email' => 'xyz@abc.de'); -# Beispiel 2: array(array('name' => 'xyz', 'email' => 'xyz@abc.de'), array('name'... -function sitSendHtmlMail($html, $subject, $receipients, $attachments = '', $sname = '', $smail = '', $mailer = '', $sserver = '', $slogin = '', $spass = '', $sport = '') { - # Eingaben ergänzen - if (!is_array($attachments)) { - $attachments = array($attachments); - } - $sname = ((strlen($sname)) ? $sname : getEffectiveSetting('email', 'absender-name')); - $smail = ((strlen($smail)) ? $smail : getEffectiveSetting('email', 'absender-email')); - if (strlen($sname) == 0) { - $sname = $smail; - } - $mailer = strtolower(((strlen($mailer)) ? $mailer : getEffectiveSetting('email', 'mailer'))); - if (strlen($mailer) == 0) { - $mailer = 'mail'; - } - if ($mailer == 'smtp') { - $sserver = ((strlen($sserver)) ? $sserver : getEffectiveSetting('email', 'smtp-server')); - $slogin = ((strlen($slogin)) ? $slogin : getEffectiveSetting('email', 'smtp-login')); - $spass = ((strlen($spass)) ? $spass : getEffectiveSetting('email', 'smtp-passwort')); - $sport = intval(((strlen($sport)) ? $sport : getEffectiveSetting('email', 'smtp-port'))); - if ($sport == 0) { - $sport = 25; - } - } - # Prüfen, ob genügend Angaben vorliegen - if ((strlen($html) == 0) || (strlen($subject) == 0)) { - return false; - } - if ((!is_array($receipients)) || ((strlen($receipients['email']) == 0) && (strlen($receipients[0]['email']) == 0))) { - return false; - } - if (strlen($smail) == 0) { - return false; - } - if (($mailer == 'smtp') && ((strlen($sserver) == 0) || (strlen($slogin) == 0) || (strlen($spass) == 0))) { - return false; - } - # Mail aufbereiten und versenden - $oMail = new PHPMailer(); - $oMail->IsHTML(true); - $oMail->Mailer = $mailer; - if ($mailer == 'smtp') { - $oMail->SMTPAuth = true; - $oMail->Host = $sserver; - $oMail->Port = $sport; - $oMail->Username = $slogin; - $oMail->Password = $spass; - } - $oMail->Subject = $subject; - $oMail->From = $smail; - $oMail->FromName = $sname; - if (is_array($receipients[0])) { - for ($i = 0, $n = count($receipients); $i < $n; $i ++) { - if (strlen($receipients[$i]['email'])) { - $oMail->AddAddress($receipients[$i]['email'], ((strlen($receipients[$i]['name'])) ? $receipients[$i]['name'] : $receipients[$i]['email'])); - } - } - } else { - $oMail->AddAddress($receipients['email'], ((strlen($receipients['name'])) ? $receipients['name'] : $receipients['email'])); - } - $oMail->Body = $html; - # Nur-Text-Bereich --> - $sMsg = substr($html, strpos($html, '', '
', '
'), array('', "

\n\n", "\n", "\n"), $sMsg); - $sMsg = trim(strip_tags($sMsg)); - $sMsg = explode("\n", $sMsg); - for ($i = 0, $n = count($sMsg); $i < $n; $i ++) { - $sMsg[$i] = trim($sMsg[$i]); - } - $sMsg = implode("\n", $sMsg); - $sMsg = html_entity_decode($sMsg); - $sMsg = capiStrReplaceDiacritics($sMsg); - # <-- Nur-Text-Bereich - $oMail->AltBody = $sMsg; - for ($i = 0, $n = count($attachments); $i < $n; $i ++) { - if (is_file($attachments[$i])) { - $oMail->AddAttachment($attachments[$i]); - } - } - $oMail->WordWrap = 76; - return $oMail->Send(); -} - -# sitSetClientProperty() -# -# Speichert eine Mandanteneinstellung -# -# Parameter: -# $type - Typ des Entrags (Text) -# $name - Name des Eintrags -# $value - Wert des Eintrags (Text) -# -# Speichert ein Eintrag in den Mandanteneinstellungen, überschreibt dabei -# eine gleichnamige vorhandene Einstellung. -function sitSetClientProperty($type, $name, $value) { - global $client, $cfg; - - if ((strlen($type)) && (strlen($name))) { - $type = sitSafeStringEscape($type); - $name = sitSafeStringEscape($name); - $value = sitSafeStringEscape($value); - $db = new DB_Contenido(); - $sql = 'SELECT value - FROM ' . $cfg['tab']['properties'] . ' - WHERE ((idclient=' . $client . ') - AND (itemtype="clientsetting") - AND (type="' . $type . '") - AND (name="' . $name . '"))'; - $db->query($sql); - if ($db->next_record()) { - $sql = 'UPDATE ' . $cfg['tab']['properties'] . ' - SET value = "' . $value . '", - modified = "' . date('Y-m-d H:i:n') . '", - modifiedby = "' . $auth->auth['uid'] . '" - WHERE ((idclient=' . $client . ') - AND (itemtype="clientsetting") - AND (type="' . $type . '") - AND (name="' . $name . '"))'; - } else { - $sql = 'INSERT INTO ' . $cfg['tab']['properties'] . ' (idclient, itemtype, itemid, type, name, value, author, created, modified, modifiedby) - VALUES (' . $client . ', "clientsetting", 1, "' . $type . '", "' . $name . '", "' . $value . '", "' . $auth->auth['uid'] . '", "' . date('Y-m-d H:i:n') . '", "' . date('Y-m-d H:i:n') . '", "' . $auth->auth['uid'] . '")'; - } - $db->query($sql); - } -} - -# sitTeaserText() -# -# Teasert einen Text an -# -# Parameter: -# $text - Zu teasernden Text -# $maxlength - Maximale Länge des Textes -# -# Der Text wird auf die maximale Anzahl Zeichen gekürzt, wobei der Schnitt nicht -# mitten im Wort erfolgt, sondern davor. -# Zuvor werden aus dem Text noch alle HTML-Tags entfernt. -# Wenn der Text gekürzt wird (nur wenn der Text länger als der maximalen Anzahl -# Zeichen ist), wird ein HTML-Zeichen … (...) angehängt. -function sitTeaserText($text, $maxlength) { - $sText1 = strip_tags(str_replace(array("\r\n", "\n"), ' ', $text)); - $sText2 = capiStrTrimAfterWord($sText1, intval($maxlength)); - if (strlen($sText2) < strlen($sText1)) { - $sText2 .= '…'; - } - return $sText2; -} -?> \ No newline at end of file diff --git a/cms/version/css/.gitignore b/cms/version/css/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/cms/version/css/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/cms/version/js/.gitignore b/cms/version/js/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/cms/version/js/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/cms/version/layout/.gitignore b/cms/version/layout/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/cms/version/layout/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/cms/version/module/.gitignore b/cms/version/module/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/cms/version/module/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/cms/version/templates/.gitignore b/cms/version/templates/.gitignore new file mode 100644 index 0000000..86d0cb2 --- /dev/null +++ b/cms/version/templates/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file diff --git a/conlite/.directory b/conlite/.directory deleted file mode 100644 index d730ff7..0000000 --- a/conlite/.directory +++ /dev/null @@ -1,4 +0,0 @@ -[Dolphin] -Timestamp=2016,9,20,14,42,23 -Version=3 -ViewMode=1 diff --git a/conlite/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php b/conlite/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php index 4035c98..e9e4a24 100644 --- a/conlite/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php +++ b/conlite/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php @@ -186,6 +186,8 @@ class Contenido_UrlBuilder_MR extends Contenido_UrlBuilder // get pretty url parts $oMRUrlStack = ModRewriteUrlStack::getInstance(); $aPretty = $oMRUrlStack->getPrettyUrlParts('front_content.php?' . $sQuery); + + ModRewriteDebugger::add($aPretty, 'Contenido_UrlBuilder_MR::_buildUrl() getPrettyUrlParts'); // get all non contenido related query parameter $sQuery = $this->_createUrlQueryPart($aParams); @@ -209,6 +211,9 @@ class Contenido_UrlBuilder_MR extends Contenido_UrlBuilder $aParts[] = $sPath; } $sPath = implode('/', $aParts) . '/'; + + ModRewriteDebugger::add($aParts, 'Contenido_UrlBuilder_MR::_buildUrl() $aParts'); + ModRewriteDebugger::add($sPath, 'Contenido_UrlBuilder_MR::_buildUrl() $sPath'); // get pagename part of the url $sArticle = $this->_getArticleName($aPretty, $aParams); @@ -343,7 +348,7 @@ class Contenido_UrlBuilder_MR extends Contenido_UrlBuilder */ private function _getPath(array $aPretty) { - $sPath = (isset($aPretty['urlpath'])) ? $aPretty['urlpath'] : ''; + $sPath = (!empty($aPretty['urlpath'])) ? $aPretty['urlpath'] : ''; // check start directory settings if ($this->_aMrCfg['startfromroot'] == 0 && (strlen($sPath) > 0)) { diff --git a/conlite/classes/cHTML5/class.chtml.php b/conlite/classes/cHTML5/class.chtml.php index 7ab8e8f..26a6c38 100644 --- a/conlite/classes/cHTML5/class.chtml.php +++ b/conlite/classes/cHTML5/class.chtml.php @@ -6,17 +6,15 @@ * Description: * Base Class for all cHTML Elements * + * @category ConLite * @package Core * @subpackage cHTML - * @version $Rev$ * @since 2.0 * @author Ortwin Pinke * @copyright (c) 2012, conlite.org * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version) * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version) * @link http://www.conlite.org ConLite.org - * - * $Id$ */ // security check diff --git a/conlite/classes/cHTML5/class.chtml5.button.php b/conlite/classes/cHTML5/class.chtml5.button.php index 48f03d2..d6c9fa6 100644 --- a/conlite/classes/cHTML5/class.chtml5.button.php +++ b/conlite/classes/cHTML5/class.chtml5.button.php @@ -6,17 +6,15 @@ * Description: * cHTML Meta * + * @category ConLite * @package Core * @subpackage cHTML - * @version $Rev$ * @since 2.0 * @author Ortwin Pinke * @copyright (c) 2015, conlite.org * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version) * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version) * @link http://www.conlite.org ConLite.org - * - * $Id$ */ // security check diff --git a/conlite/classes/cHTML5/class.chtml5.list.element.php b/conlite/classes/cHTML5/class.chtml5.list.element.php index 030e503..112a52b 100644 --- a/conlite/classes/cHTML5/class.chtml5.list.element.php +++ b/conlite/classes/cHTML5/class.chtml5.list.element.php @@ -7,17 +7,15 @@ * Description: * cHTML List Element * + * @category ConLite * @package Core * @subpackage cHTML - * @version $Rev$ * @since 2.0 * @author Ortwin Pinke * @copyright (c) 2015, conlite.org * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version) * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version) * @link http://www.conlite.org ConLite.org - * - * $Id$ */ // security check defined('CON_FRAMEWORK') or die('Illegal call'); diff --git a/conlite/classes/cHTML5/class.chtml5.list.php b/conlite/classes/cHTML5/class.chtml5.list.php index 6505ffc..ddc6bf9 100644 --- a/conlite/classes/cHTML5/class.chtml5.list.php +++ b/conlite/classes/cHTML5/class.chtml5.list.php @@ -6,17 +6,15 @@ * Description: * cHTML List * + * @category ConLite * @package Core * @subpackage cHTML - * @version $Rev$ * @since 2.0 * @author Ortwin Pinke * @copyright (c) 2015, conlite.org * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version) * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version) * @link http://www.conlite.org ConLite.org - * - * $Id$ */ // security check diff --git a/conlite/classes/cHTML5/class.chtml5.meta.php b/conlite/classes/cHTML5/class.chtml5.meta.php index 2132b68..7b3cc3e 100644 --- a/conlite/classes/cHTML5/class.chtml5.meta.php +++ b/conlite/classes/cHTML5/class.chtml5.meta.php @@ -6,17 +6,15 @@ * Description: * cHTML Meta * + * @category ConLite * @package Core * @subpackage cHTML - * @version $Rev$ * @since 2.0 * @author Ortwin Pinke * @copyright (c) 2015, conlite.org * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version) * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version) * @link http://www.conlite.org ConLite.org - * - * $Id$ */ // security check diff --git a/conlite/classes/class.article.collector.php b/conlite/classes/class.article.collector.php index 29c53f9..0d9a25e 100644 --- a/conlite/classes/class.article.collector.php +++ b/conlite/classes/class.article.collector.php @@ -1,7 +1,28 @@ + * @copyright (c) 2019, conlite.org + * @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version) + * @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version) + * @link http://www.conlite.org ConLite.org + */ defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.'); + +/** + * Class Article Collector + * + * @author Ortwin Pinke + */ class cArticleCollector implements SeekableIterator, Countable { /** diff --git a/conlite/classes/class.cl_db_backup.php b/conlite/classes/class.cl_db_backup.php index a09474e..000eb92 100644 --- a/conlite/classes/class.cl_db_backup.php +++ b/conlite/classes/class.cl_db_backup.php @@ -327,7 +327,7 @@ class clDbBackup { } $f = @fopen($this->_sLogFile, 'a+'); if (is_resource($f)) { - @fputs($f, date("m.d.Y g:ia") . " " . $_SERVER['REMOTE_ADDR'] . " " . $sMessage . "\n"); + @fputs($f, date("d.m.Y g:ia") . " " . $_SERVER['REMOTE_ADDR'] . " " . $sMessage . "\n"); @fclose($f); } } diff --git a/conlite/classes/class.genericdb.php b/conlite/classes/class.genericdb.php index 70ac7f3..1693ca3 100644 --- a/conlite/classes/class.genericdb.php +++ b/conlite/classes/class.genericdb.php @@ -1,19 +1,6 @@ * @version 0.1 * @copyright four for business AG */ -class Contenido_ItemException extends Exception {} +class Contenido_ItemException extends Exception { + +} - - - - - /** +/** * Class ItemCollection * Abstract class for database based item collections. * @@ -64,8 +47,8 @@ class Contenido_ItemException extends Exception {} * @version 0.2 * @copyright four for business 2003 */ -abstract class ItemCollection extends cItemBaseAbstract -{ +abstract class ItemCollection extends cItemBaseAbstract { + /** * Storage of all result items * @var string Contains all result items @@ -78,7 +61,6 @@ abstract class ItemCollection extends cItemBaseAbstract */ protected $_driver; - /** * List of instances of ItemCollection implementations * @var array @@ -89,7 +71,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @var string Single item class */ protected $_itemClass; - + /** * @var Item object of single item class */ @@ -148,18 +130,16 @@ abstract class ItemCollection extends cItemBaseAbstract * @var bool */ protected $_bAllMode = false; - protected $_order; - /** + /** * Constructor Function * * @param string $sTable The table to use as information source * @param string $sPrimaryKey The primary key to use * @param int $iLifetime */ - public function __construct($sTable, $sPrimaryKey, $iLifetime = 10) - { + public function __construct($sTable, $sPrimaryKey, $iLifetime = 10) { parent::__construct($sTable, $sPrimaryKey, get_parent_class($this), $iLifetime); $this->resetQuery(); @@ -187,8 +167,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $sForeignCollectionClass Specifies the foreign class to use * @return void */ - protected function _setJoinPartner($sForeignCollectionClass) - { + protected function _setJoinPartner($sForeignCollectionClass) { if (class_exists($sForeignCollectionClass)) { // Add class if (!in_array($sForeignCollectionClass, $this->_JoinPartners)) { @@ -196,7 +175,7 @@ abstract class ItemCollection extends cItemBaseAbstract } } else { $sMsg = "Could not instanciate class [$sForeignCollectionClass] for use " - . "with _setJoinPartner in class " . get_class($this); + . "with _setJoinPartner in class " . get_class($this); cWarning(__FILE__, __LINE__, $sMsg); } } @@ -207,8 +186,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $sClassName Specifies the classname of item * @return void */ - protected function _setItemClass($sClassName) - { + protected function _setItemClass($sClassName) { if (class_exists($sClassName)) { $this->_itemClass = $sClassName; $this->_itemClassInstance = new $sClassName; @@ -219,7 +197,7 @@ abstract class ItemCollection extends cItemBaseAbstract $this->_driver->setItemClassInstance($this->_itemClassInstance); } else { $sMsg = "Could not instanciate class [$sClassName] for use with " - . "_setItemClass in class " . get_class($this); + . "_setItemClass in class " . get_class($this); cWarning(__FILE__, __LINE__, $sMsg); } } @@ -229,8 +207,7 @@ abstract class ItemCollection extends cItemBaseAbstract * * @param $bForceInit boolean If true, forces the driver to initialize, even if it already exists. */ - protected function _initializeDriver($bForceInit = false) - { + protected function _initializeDriver($bForceInit = false) { if (!is_object($this->_driver) || $bForceInit == true) { $this->_driver = new gdbMySQL(); } @@ -240,8 +217,7 @@ abstract class ItemCollection extends cItemBaseAbstract * Sets the encoding. * @param string $sEncoding */ - public function setEncoding($sEncoding) - { + public function setEncoding($sEncoding) { $this->_encoding = $sEncoding; $this->_driver->setEncoding($sEncoding); } @@ -250,13 +226,12 @@ abstract class ItemCollection extends cItemBaseAbstract * Sets the query to use foreign tables in the resultset * @param string $sForeignClass The class of foreign table to use */ - public function link($sForeignClass) - { + public function link($sForeignClass) { if (class_exists($sForeignClass)) { $this->_links[$sForeignClass] = new $sForeignClass; } else { $sMsg = "Could not find class [$sForeignClass] for use with link in class " - . get_class($this); + . get_class($this); cWarning(__FILE__, __LINE__, $sMsg); } } @@ -266,8 +241,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param int $iRowStart * @param int $iRowCount */ - public function setLimit($iRowStart, $iRowCount) - { + public function setLimit($iRowStart, $iRowCount) { $this->_limitStart = $iRowStart; $this->_limitCount = $iRowCount; } @@ -278,10 +252,9 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mRestriction * @param string $sOperator */ - public function setWhere($sField, $mRestriction, $sOperator = '=') - { + public function setWhere($sField, $mRestriction, $sOperator = '=') { $sField = strtolower($sField); - $this->_where['global'][$sField]['operator'] = $sOperator; + $this->_where['global'][$sField]['operator'] = $sOperator; $this->_where['global'][$sField]['restriction'] = $mRestriction; } @@ -291,12 +264,10 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mRestriction * @param string $sOperator */ - public function deleteWhere($sField, $mRestriction, $sOperator = '=') - { + public function deleteWhere($sField, $mRestriction, $sOperator = '=') { $sField = strtolower($sField); if (isset($this->_where['global'][$sField]) && is_array($this->_where['global'][$sField])) { - if ($this->_where['global'][$sField]['operator'] == $sOperator && - $this->_where['global'][$sField]['restriction'] == $mRestriction) { + if ($this->_where['global'][$sField]['operator'] == $sOperator && $this->_where['global'][$sField]['restriction'] == $mRestriction) { unset($this->_where['global'][$sField]); } } @@ -309,8 +280,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mRestriction * @param string $sOperator */ - public function setWhereGroup($sGroup, $sField, $mRestriction, $sOperator = '=') - { + public function setWhereGroup($sGroup, $sField, $mRestriction, $sOperator = '=') { $sField = strtolower($sField); $this->_where['groups'][$sGroup][$sField]['operator'] = $sOperator; $this->_where['groups'][$sGroup][$sField]['restriction'] = $mRestriction; @@ -323,14 +293,10 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mRestriction * @param string $sOperator */ - public function deleteWhereGroup($sGroup, $sField, $mRestriction, $sOperator = '=') - { + public function deleteWhereGroup($sGroup, $sField, $mRestriction, $sOperator = '=') { $sField = strtolower($sField); - if (is_array($this->_where['groups'][$sGroup]) && - isset($this->_where['groups'][$sGroup][$sField]) && - is_array($this->_where['groups'][$sGroup][$sField])) { - if ($this->_where['groups'][$sGroup][$sField]['operator'] == $sOperator && - $this->_where['groups'][$sGroup][$sField]['restriction'] == $mRestriction) { + if (is_array($this->_where['groups'][$sGroup]) && isset($this->_where['groups'][$sGroup][$sField]) && is_array($this->_where['groups'][$sGroup][$sField])) { + if ($this->_where['groups'][$sGroup][$sField]['operator'] == $sOperator && $this->_where['groups'][$sGroup][$sField]['restriction'] == $mRestriction) { unset($this->_where['groups'][$sGroup][$sField]); } } @@ -341,8 +307,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $sGroup * @param string $sCondition */ - public function setInnerGroupCondition($sGroup, $sCondition = 'AND') - { + public function setInnerGroupCondition($sGroup, $sCondition = 'AND') { $this->_innerGroupConditions[$sGroup] = $sCondition; } @@ -352,8 +317,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $sGroup2 * @param string $sCondition */ - public function setGroupCondition($sGroup1, $sGroup2, $sCondition = 'AND') - { + public function setGroupCondition($sGroup1, $sGroup2, $sCondition = 'AND') { $this->_groupConditions[$sGroup1][$sGroup2] = $sCondition; } @@ -362,8 +326,7 @@ abstract class ItemCollection extends cItemBaseAbstract * * @return array With all where statements */ - protected function _buildGroupWhereStatements() - { + protected function _buildGroupWhereStatements() { $aWheres = array(); $aGroupWhere = array(); @@ -388,7 +351,7 @@ abstract class ItemCollection extends cItemBaseAbstract $sOperator = $this->_innerGroupConditions[$groupname]; } - $aGroupWhere[$groupname] = implode(' '.$sOperator.' ', $aWheres); + $aGroupWhere[$groupname] = implode(' ' . $sOperator . ' ', $aWheres); } } @@ -410,9 +373,9 @@ abstract class ItemCollection extends cItemBaseAbstract } } - $sGroupWhereStatement .= ' '.$sOperator.' ('.$group.')'; + $sGroupWhereStatement .= ' ' . $sOperator . ' (' . $group . ')'; } else { - $sGroupWhereStatement .= '('.$group.')'; + $sGroupWhereStatement .= '(' . $group . ')'; } $mLastGroup = $groupname; @@ -426,8 +389,7 @@ abstract class ItemCollection extends cItemBaseAbstract * * @return array With all where statements */ - protected function _buildWhereStatements() - { + protected function _buildWhereStatements() { $aWheres = array(); // Build global where condition @@ -462,8 +424,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param ??? $ignoreRoot * @return array Array structure, see above */ - protected function _fetchJoinTables($ignoreRoot) - { + protected function _fetchJoinTables($ignoreRoot) { $aParameters = array(); $aFields = array(); $aTables = array(); @@ -478,20 +439,20 @@ abstract class ItemCollection extends cItemBaseAbstract if (isset($matches['desttable'])) { // Driver function: Build query parts $aParameters[] = $this->_driver->buildJoinQuery( - $matches['desttable'], - strtolower($matches['destclass']), - $matches['key'], - strtolower($matches['sourceclass']), - $matches['key'] + $matches['desttable'], + strtolower($matches['destclass']), + $matches['key'], + strtolower($matches['sourceclass']), + $matches['key'] ); } else { foreach ($matches as $match) { $aParameters[] = $this->_driver->buildJoinQuery( - $match['desttable'], - strtolower($match['destclass']), - $match['key'], - strtolower($match['sourceclass']), - $match['key'] + $match['desttable'], + strtolower($match['destclass']), + $match['key'], + strtolower($match['sourceclass']), + $match['key'] ); } } @@ -504,14 +465,14 @@ abstract class ItemCollection extends cItemBaseAbstract if ($matches !== false) { if (isset($matches['desttable'])) { $i = $this->_driver->buildJoinQuery( - $mobject->table, - strtolower($link), - $mobject->primaryKey, - strtolower($matches['destclass']), - $matches['key'] + $mobject->table, + strtolower($link), + $mobject->primaryKey, + strtolower($matches['destclass']), + $matches['key'] ); - if ($i['field'] == ($link.'.'.$mobject->primaryKey) && $link == $ignoreRoot) { + if ($i['field'] == ($link . '.' . $mobject->primaryKey) && $link == $ignoreRoot) { unset($i['join']); } $aParameters[] = $i; @@ -520,15 +481,14 @@ abstract class ItemCollection extends cItemBaseAbstract $xobject = new $match['sourceclass']; $i = $this->_driver->buildJoinQuery( - $xobject->table, - strtolower($match['sourceclass']), - $xobject->primaryKey, - strtolower($match['destclass']), - $match['key'] + $xobject->table, + strtolower($match['sourceclass']), + $xobject->primaryKey, + strtolower($match['destclass']), + $match['key'] ); - if ($i['field'] == ($match['sourceclass'] . '.' . $xobject->primaryKey) && - $match['sourceclass'] == $ignoreRoot) { + if ($i['field'] == ($match['sourceclass'] . '.' . $xobject->primaryKey) && $match['sourceclass'] == $ignoreRoot) { unset($i['join']); } array_unshift($aParameters, $i); @@ -548,15 +508,14 @@ abstract class ItemCollection extends cItemBaseAbstract if (isset($matches['desttable'])) { $i = $this->_driver->buildJoinQuery( - $mobject->table, - strtolower($link), - $mobject->primaryKey, - strtolower($matches['destclass']), - $matches['key'] + $mobject->table, + strtolower($link), + $mobject->primaryKey, + strtolower($matches['destclass']), + $matches['key'] ); - if ($i['field'] == ($link . '.' . $mobject->primaryKey) && - $link == $ignoreRoot) { + if ($i['field'] == ($link . '.' . $mobject->primaryKey) && $link == $ignoreRoot) { unset($i['join']); } $aParameters[] = $i; @@ -565,15 +524,14 @@ abstract class ItemCollection extends cItemBaseAbstract $xobject = new $match['sourceclass']; $i = $this->_driver->buildJoinQuery( - $xobject->table, - strtolower($match['sourceclass']), - $xobject->primaryKey, - strtolower($match['destclass']), - $match['key'] + $xobject->table, + strtolower($match['sourceclass']), + $xobject->primaryKey, + strtolower($match['destclass']), + $match['key'] ); - if ($i['field'] == ($match['sourceclass'] . '.' . $xobject->primaryKey) && - $match['sourceclass'] == $ignoreRoot) { + if ($i['field'] == ($match['sourceclass'] . '.' . $xobject->primaryKey) && $match['sourceclass'] == $ignoreRoot) { unset($i['join']); } array_unshift($aParameters, $i); @@ -609,7 +567,7 @@ abstract class ItemCollection extends cItemBaseAbstract } } else { $sMsg = "Could not find join partner for class [$link] in class " - . get_class($this)." in neither forward nor reverse direction."; + . get_class($this) . " in neither forward nor reverse direction."; cWarning(__FILE__, __LINE__, $sMsg); } } @@ -618,7 +576,7 @@ abstract class ItemCollection extends cItemBaseAbstract } // Add this class - $aFields[] = strtolower(strtolower(get_class($this))).'.'.$this->primaryKey; + $aFields[] = strtolower(strtolower(get_class($this))) . '.' . $this->primaryKey; // Make the parameters unique foreach ($aParameters as $parameter) { @@ -643,8 +601,7 @@ abstract class ItemCollection extends cItemBaseAbstract * * @return array */ - protected function _resolveLinks() - { + protected function _resolveLinks() { $aResolvedLinks = array(); $aResolvedLinks[] = strtolower(get_class($this)); @@ -658,8 +615,7 @@ abstract class ItemCollection extends cItemBaseAbstract /** * Resets the properties */ - public function resetQuery() - { + public function resetQuery() { $this->setLimit(0, 0); $this->_JoinPartners = array(); $this->_forwardJoinPartners = array(); @@ -675,8 +631,7 @@ abstract class ItemCollection extends cItemBaseAbstract * * @return bool */ - public function query() - { + public function query() { if (!isset($this->_itemClassInstance)) { $sMsg = "GenericDB can't use query() if no item class is set via setItemClass"; cWarning(__FILE__, __LINE__, $sMsg); @@ -717,11 +672,11 @@ abstract class ItemCollection extends cItemBaseAbstract } if (count($aWheres) > 0) { - $aStatement[] = 'WHERE '.implode(' AND ', $aWheres); + $aStatement[] = 'WHERE ' . implode(' AND ', $aWheres); } if ($this->_order != '') { - $aStatement[] = 'ORDER BY '.$this->_order; + $aStatement[] = 'ORDER BY ' . $this->_order; } if ($this->_limitStart > 0 || $this->_limitCount > 0) { @@ -745,8 +700,7 @@ abstract class ItemCollection extends cItemBaseAbstract * (e. g. "fieldname", "fieldname DESC", "fieldname DESC, field2name ASC") * @param string $order */ - public function setOrder($order) - { + public function setOrder($order) { $this->_order = strtolower($order); } @@ -754,8 +708,7 @@ abstract class ItemCollection extends cItemBaseAbstract * Adds a result field * @param string $sField */ - public function addResultField($sField) - { + public function addResultField($sField) { $sField = strtolower($sField); if (!in_array($sField, $this->_resultFields)) { $this->_resultFields[] = $sField; @@ -766,8 +719,7 @@ abstract class ItemCollection extends cItemBaseAbstract * Removes existing result field * @param string $sField */ - public function removeResultField($sField) - { + public function removeResultField($sField) { $sField = strtolower($sField); $key = array_search($sField, $this->_resultFields); if ($key !== false) { @@ -782,10 +734,9 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $sClassName * @param array|bool */ - protected function _findReverseJoinPartner($sParentClass, $sClassName) - { + protected function _findReverseJoinPartner($sParentClass, $sClassName) { // Make the parameters lowercase, as get_class is buggy - $sClassName = strtolower($sClassName); + $sClassName = strtolower($sClassName); $sParentClass = strtolower($sParentClass); // Check if we found a direct link @@ -835,31 +786,30 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $sLimit Specifies the limit by clause. * @return bool True on success, otherwhise false */ - public function select($sWhere = '', $sGroupBy = '', $sOrderBy = '', $sLimit = '') - { + public function select($sWhere = '', $sGroupBy = '', $sOrderBy = '', $sLimit = '') { unset($this->objects); if ($sWhere == '') { $sWhere = ''; } else { - $sWhere = ' WHERE '.$sWhere; + $sWhere = ' WHERE ' . $sWhere; } if ($sGroupBy != '') { - $sGroupBy = ' GROUP BY '.$sGroupBy; + $sGroupBy = ' GROUP BY ' . $sGroupBy; } if ($sOrderBy != '') { - $sOrderBy = ' ORDER BY '.$sOrderBy; + $sOrderBy = ' ORDER BY ' . $sOrderBy; } if ($sLimit != '') { - $sLimit = ' LIMIT '.$sLimit; + $sLimit = ' LIMIT ' . $sLimit; } $sFields = ($this->_settings['select_all_mode']) ? '*' : $this->primaryKey; $sql = 'SELECT ' . $sFields . ' FROM `' . $this->table . '`' . $sWhere - . $sGroupBy . $sOrderBy . $sLimit; + . $sGroupBy . $sOrderBy . $sLimit; $this->db->query($sql); $this->_lastSQL = $sql; $this->_bAllMode = $this->_settings['select_all_mode']; @@ -885,8 +835,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @return bool True on success, otherwhise false * @author HerrB */ - public function flexSelect($sDistinct = '', $sFrom = '', $sWhere = '', $sGroupBy = '', $sOrderBy = '', $sLimit = '') - { + public function flexSelect($sDistinct = '', $sFrom = '', $sWhere = '', $sGroupBy = '', $sOrderBy = '', $sLimit = '') { unset($this->objects); if ($sDistinct != '') { @@ -894,28 +843,28 @@ abstract class ItemCollection extends cItemBaseAbstract } if ($sFrom != '') { - $sFrom = ', '.$sFrom; + $sFrom = ', ' . $sFrom; } if ($sWhere != '') { - $sWhere = ' WHERE '.$sWhere; + $sWhere = ' WHERE ' . $sWhere; } if ($sGroupBy != '') { - $sGroupBy = ' GROUP BY '.$sGroupBy; + $sGroupBy = ' GROUP BY ' . $sGroupBy; } if ($sOrderBy != '') { - $sOrderBy = ' ORDER BY '.$sOrderBy; + $sOrderBy = ' ORDER BY ' . $sOrderBy; } if ($sLimit != '') { - $sLimit = ' LIMIT '.$sLimit; + $sLimit = ' LIMIT ' . $sLimit; } $sql = 'SELECT ' . $sDistinct . strtolower(get_class($this)) . '.' . $this->primaryKey - . ' AS ' . $this->primaryKey . ' FROM `' . $this->table . '` AS ' . strtolower(get_class($this)) - . $sFrom . $sWhere . $sGroupBy . $sOrderBy . $sLimit; + . ' AS ' . $this->primaryKey . ' FROM `' . $this->table . '` AS ' . strtolower(get_class($this)) + . $sFrom . $sWhere . $sGroupBy . $sOrderBy . $sLimit; $this->db->query($sql); $this->_lastSQL = $sql; @@ -935,8 +884,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mId The id to check for (could be numeric or string) * @return bool True if object exists, false if not */ - public function exists($mId) - { + public function exists($mId) { $oDb = $this->_getSecondDBInstance(); $sql = "SELECT `%s` FROM %s WHERE %s='%s'"; $oDb->query($sql, $this->primaryKey, $this->table, $this->primaryKey, $mId); @@ -948,10 +896,9 @@ abstract class ItemCollection extends cItemBaseAbstract * * @return Item|bool The next object, or false if no more objects */ - public function next() - { + public function next() { if ($this->db->next_record()) { - if ($this->_bAllMode) { + if ($this->_bAllMode) { $aRs = $this->db->toArray(DB_ConLite::FETCH_BOTH); return $this->loadItem($aRs); } else { @@ -967,8 +914,7 @@ abstract class ItemCollection extends cItemBaseAbstract * * @param Item */ - public function fetchObject($sClassName) - { + public function fetchObject($sClassName) { $sKey = strtolower($sClassName); if (!is_object($this->_collectionCache[$sKey])) { @@ -996,8 +942,8 @@ abstract class ItemCollection extends cItemBaseAbstract public function fetchTable(array $aFields = array(), array $aObjects = array()) { $row = 1; $aTable = array(); - - if(empty($aFields) && empty($aObjects)) { + + if (empty($aFields) && empty($aObjects)) { $aFields = array($this->primaryKey); } @@ -1014,7 +960,7 @@ abstract class ItemCollection extends cItemBaseAbstract } // Fetch objects - if(!empty($aObjects)) { + if (!empty($aObjects)) { foreach ($aObjects as $alias => $object) { if ($alias != '') { if (isset($aTable[$row][$alias])) { @@ -1034,7 +980,7 @@ abstract class ItemCollection extends cItemBaseAbstract } } } - $row ++; + $row++; } $this->db->seek(0); @@ -1047,8 +993,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param array $aObjects With the correct order of the objects * @return array Result */ - public function queryAndFetchStructured(array $aObjects) - { + public function queryAndFetchStructured(array $aObjects) { $aOrder = array(); $aFetchObjects = array(); $aResult = array(); @@ -1056,7 +1001,7 @@ abstract class ItemCollection extends cItemBaseAbstract foreach ($aObjects as $object) { $x = new $object; $object = strtolower($object); - $aOrder[] = $object.'.'.$x->primaryKey.' ASC'; + $aOrder[] = $object . '.' . $x->primaryKey . ' ASC'; $aFetchObjects[] = $x; } @@ -1072,8 +1017,7 @@ abstract class ItemCollection extends cItemBaseAbstract return $aResult; } - protected function _recursiveStructuredFetch(array $aObjects, array $aResult) - { + protected function _recursiveStructuredFetch(array $aObjects, array $aResult) { $i = array_shift($aObjects); $value = $this->db->f($i->primaryKey); @@ -1094,8 +1038,7 @@ abstract class ItemCollection extends cItemBaseAbstract * Returns the amount of returned items * @return int Number of rows */ - public function count() - { + public function count() { return ($this->db->num_rows()); } @@ -1105,8 +1048,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string|int $id The primary key of the item to load. * @return Item The loaded item */ - public function fetchById($id) - { + public function fetchById($id) { if (is_numeric($id)) { $id = (int) $id; } elseif (is_string($id)) { @@ -1123,11 +1065,10 @@ abstract class ItemCollection extends cItemBaseAbstract * @return Item The newly created object * @throws Contenido_ItemException If item class is not set */ - public function loadItem($mItem) - { + public function loadItem($mItem) { if (empty($this->_itemClass)) { $sMsg = "ItemClass has to be set in the constructor of class " - . get_class($this) . ")"; + . get_class($this) . ")"; throw new Contenido_ItemException($sMsg); } @@ -1150,18 +1091,17 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $primaryKeyValue Optional parameter for direct input of primary key value * @return Item The newly created object */ - public function createNewItem($aData = NULL) - { /* @var $oDb DB_ConLite */ - $oDb = $this->_getSecondDBInstance(); - if(is_null($aData) || empty($aData)) { + public function createNewItem($aData = NULL) { /* @var $oDb DB_ConLite */ + $oDb = $this->_getSecondDBInstance(); + if (is_null($aData) || empty($aData)) { $iNextId = $oDb->nextid($this->table); - } else if(is_array($aData) && key_exists($this->primaryKey, $aData)) { + } else if (is_array($aData) && key_exists($this->primaryKey, $aData)) { $iNextId = (int) $aData[$this->primaryKey]; } else { $iNextId = (int) $aData; - } - - $sql = 'INSERT INTO `%s` (%s) VALUES (%d)'; + } + + $sql = 'INSERT INTO `%s` (%s) VALUES (%d)'; $oDb->query($sql, $this->table, $this->primaryKey, $iNextId); return $this->loadItem($iNextId); } @@ -1173,8 +1113,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mId Id of entry to delete * @return bool */ - public function delete($mId) - { + public function delete($mId) { $result = $this->_delete($mId); return $result; @@ -1187,8 +1126,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param string $sWhere The where clause of the SQL statement * @return int Number of deleted entries */ - public function deleteByWhereClause($sWhere) - { + public function deleteByWhereClause($sWhere) { $oDb = $this->_getSecondDBInstance(); $aIds = array(); @@ -1219,8 +1157,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mValue The value of the field * @return int Number of deleted entries */ - public function deleteBy($sField, $mValue) - { + public function deleteBy($sField, $mValue) { $oDb = $this->_getSecondDBInstance(); $aIds = array(); @@ -1256,21 +1193,21 @@ abstract class ItemCollection extends cItemBaseAbstract * @return bool */ protected function _delete($mId) { - + // delete cache entry self::$_oCache->removeItem($mId); // delete the property values $oProperties = $this->_getPropertiesCollectionInstance(); $oProperties->deleteProperties($this->primaryKey, $mId); - + $oDb = $this->_getSecondDBInstance(); // delete db entry $sql = "DELETE FROM `%s` WHERE %s = '%s'"; $oDb->query($sql, $this->table, $this->primaryKey, $mId); - return (($oDb->affected_rows() > 0)?true:false); + return (($oDb->affected_rows() > 0) ? true : false); } /** @@ -1288,8 +1225,7 @@ abstract class ItemCollection extends cItemBaseAbstract * @param mixed $mFields String or array * @return array Resulting array */ - public function fetchArray($sKey, $mFields) - { + public function fetchArray($sKey, $mFields) { $aResult = array(); while ($item = $this->next()) { @@ -1316,8 +1252,8 @@ abstract class ItemCollection extends cItemBaseAbstract * @version 0.3 * @copyright four for business 2003 */ -abstract class Item extends cItemBaseAbstract -{ +abstract class Item extends cItemBaseAbstract { + /** * Storage of the source table to use for the user informations * @var array @@ -1362,12 +1298,11 @@ abstract class Item extends cItemBaseAbstract * @param string $sPrimaryKey The primary key to use * @param int $iLifetime */ - public function __construct($sTable = '', $sPrimaryKey = '', $iLifetime = 10) - { + public function __construct($sTable = '', $sPrimaryKey = '', $iLifetime = 10) { parent::__construct($sTable, $sPrimaryKey, get_parent_class($this), $iLifetime); } - - function __destruct() { + + function __destruct() { //print_r(self::$_oCache); } @@ -1379,8 +1314,7 @@ abstract class Item extends cItemBaseAbstract * @param bool $bSafe Use inFilter or not * @return bool True if the load was successful */ - public function loadBy($sField, $mValue, $bSafe = true) - { + public function loadBy($sField, $mValue, $bSafe = true) { if ($bSafe) { $mValue = $this->_inFilter($mValue); } @@ -1388,9 +1322,9 @@ abstract class Item extends cItemBaseAbstract // check, if cache contains a matching entry $aRecordSet = null; if ($sField === $this->primaryKey) { - $aRecordSet = self::$_oCache->getItem($this->table."_".$mValue); + $aRecordSet = self::$_oCache->getItem($this->table . "_" . $mValue); } else { - $aRecordSet = self::$_oCache->getItemByProperty($this->table."_".$sField, $mValue); + $aRecordSet = self::$_oCache->getItemByProperty($this->table . "_" . $sField, $mValue); } if ($aRecordSet) { @@ -1400,9 +1334,8 @@ abstract class Item extends cItemBaseAbstract } // SQL-Statement to select by field - $sql = sprintf("SELECT * FROM `%s` WHERE %s = '%s'",$this->table,$sField,$mValue); + $sql = sprintf("SELECT * FROM `%s` WHERE %s = '%s'", $this->table, $sField, $mValue); //$sql = $this->db->prepare($sql, $this->table, $sField, $mValue); - // Query the database $this->db->query($sql); @@ -1410,7 +1343,7 @@ abstract class Item extends cItemBaseAbstract if ($this->db->num_rows() > 1) { $sMsg = "Tried to load a single line with field $sField and value $mValue from " - . $this->table . " but found more than one row"; + . $this->table . " but found more than one row"; cWarning(__FILE__, __LINE__, $sMsg); } @@ -1432,12 +1365,10 @@ abstract class Item extends cItemBaseAbstract * @param string $sWhere The where clause like 'idart = 123 AND idlang = 1' * @return bool True if the load was successful */ - protected function _loadByWhereClause($sWhere) - { + protected function _loadByWhereClause($sWhere) { // SQL-Statement to select by whee clause - $sql = sprintf("SELECT %s AS pk FROM `%s` WHERE ",$this->primaryKey,$this->table) . (string) $sWhere; + $sql = sprintf("SELECT %s AS pk FROM `%s` WHERE ", $this->primaryKey, $this->table) . (string) $sWhere; //$sql = $this->db->prepare($sql, $this->primaryKey, $this->table); - // Query the database $this->db->query($sql); @@ -1445,7 +1376,7 @@ abstract class Item extends cItemBaseAbstract if ($this->db->num_rows() > 1) { $sMsg = "Tried to load a single line with where clause '" . $sWhere . "' from " - . $this->table . " but found more than one row"; + . $this->table . " but found more than one row"; cWarning(__FILE__, __LINE__, $sMsg); } @@ -1464,8 +1395,7 @@ abstract class Item extends cItemBaseAbstract * @param string $mValue Specifies the primary key value * @return bool True if the load was successful */ - public function loadByPrimaryKey($mValue) - { + public function loadByPrimaryKey($mValue) { $bSuccess = $this->loadBy($this->primaryKey, $mValue); if (($bSuccess == true) && method_exists($this, '_onLoad')) { @@ -1479,21 +1409,19 @@ abstract class Item extends cItemBaseAbstract * * @param array $aRecordSet The recordset of the item */ - public function loadByRecordSet(array $aRecordSet) - { - $this->values = $aRecordSet; + public function loadByRecordSet(array $aRecordSet) { + $this->values = $aRecordSet; $this->oldPrimaryKey = $this->values[$this->primaryKey]; - $this->virgin = false; - self::$_oCache->addItem($this->table."_".$this->oldPrimaryKey, $this->values); + $this->virgin = false; + self::$_oCache->addItem($this->table . "_" . $this->oldPrimaryKey, $this->values); } /** * Checks if a the item is already loaded. * @return boolean */ - public function isLoaded() - { - return ($this->virgin)?FALSE:TRUE; + public function isLoaded() { + return ($this->virgin) ? FALSE : TRUE; } /** @@ -1502,8 +1430,8 @@ abstract class Item extends cItemBaseAbstract * * @return void */ - protected function _onLoad() - { + protected function _onLoad() { + } /** @@ -1512,8 +1440,7 @@ abstract class Item extends cItemBaseAbstract * @param string $sField Specifies the field to retrieve * @return mixed Value of the field */ - public function getField($sField) - { + public function getField($sField) { if ($this->virgin == true) { $this->lasterror = 'No item loaded'; return false; @@ -1527,8 +1454,7 @@ abstract class Item extends cItemBaseAbstract * @param string $sField Specifies the field to retrieve * @return mixed Value of the field */ - public function get($sField) - { + public function get($sField) { return $this->getField($sField); } @@ -1539,8 +1465,7 @@ abstract class Item extends cItemBaseAbstract * @param string $mValue Value to set * @param bool $bSafe Flag to run defined inFilter on passed value */ - public function setField($sField, $mValue, $bSafe = true) - { + public function setField($sField, $mValue, $bSafe = true) { if ($this->virgin == true) { $this->lasterror = 'No item loaded'; return false; @@ -1567,8 +1492,7 @@ abstract class Item extends cItemBaseAbstract * @param string $mValue Value to set * @param bool $bSafe Flag to run defined inFilter on passed value */ - public function set($sField, $mValue, $bSafe = true) - { + public function set($sField, $mValue, $bSafe = true) { return $this->setField($sField, $mValue, $bSafe); } @@ -1578,10 +1502,10 @@ abstract class Item extends cItemBaseAbstract * @return bool */ public function store() { - if(!$this->isLoaded()) { + if (!$this->isLoaded()) { $this->lasterror = 'No item loaded'; return false; - } + } $sql = 'UPDATE `' . $this->table . '` SET '; $first = true; @@ -1606,7 +1530,7 @@ abstract class Item extends cItemBaseAbstract $this->_lastSQL = $sql; if ($this->db->affected_rows() > 0) { - self::$_oCache->addItem($this->table."_".$this->oldPrimaryKey, $this->values); + self::$_oCache->addItem($this->table . "_" . $this->oldPrimaryKey, $this->values); } return ($this->db->affected_rows() < 1) ? false : true; @@ -1617,8 +1541,7 @@ abstract class Item extends cItemBaseAbstract * * @return array|false */ - public function toArray() - { + public function toArray() { if ($this->virgin == true) { $this->lasterror = 'No item loaded'; return false; @@ -1636,8 +1559,7 @@ abstract class Item extends cItemBaseAbstract * * @return stdClass|false */ - public function toObject() - { + public function toObject() { $return = $this->toArray(); return (false !== $return) ? (object) $return : $return; } @@ -1650,8 +1572,7 @@ abstract class Item extends cItemBaseAbstract * @param mixed $mValue Specifies the value * @return bool */ - public function setProperty($sType, $sName, $mValue) - { + public function setProperty($sType, $sName, $mValue) { // If this object wasn't loaded before, return false if ($this->virgin == true) { $this->lasterror = 'No item loaded'; @@ -1661,7 +1582,7 @@ abstract class Item extends cItemBaseAbstract // Set the value $oProperties = $this->_getPropertiesCollectionInstance(); $bResult = $oProperties->setValue( - $this->primaryKey, $this->get($this->primaryKey), $sType, $sName, $mValue + $this->primaryKey, $this->get($this->primaryKey), $sType, $sName, $mValue ); return $bResult; } @@ -1673,8 +1594,7 @@ abstract class Item extends cItemBaseAbstract * @param string $sName Specifies the name * @return mixed Value of the given property or false */ - public function getProperty($sType, $sName) - { + public function getProperty($sType, $sName) { // If this object wasn't loaded before, return false if ($this->virgin == true) { $this->lasterror = 'No item loaded'; @@ -1684,20 +1604,19 @@ abstract class Item extends cItemBaseAbstract // Return the value $oProperties = $this->_getPropertiesCollectionInstance(); $mValue = $oProperties->getValue( - $this->primaryKey, $this->get($this->primaryKey), $sType, $sName + $this->primaryKey, $this->get($this->primaryKey), $sType, $sName ); return $mValue; } - /** - * Deletes a custom property. - * - * @param string $sType Specifies the type - * @param string $sName Specifies the name - * @return bool - */ - public function deleteProperty($sType, $sName) - { + /** + * Deletes a custom property. + * + * @param string $sType Specifies the type + * @param string $sName Specifies the name + * @return bool + */ + public function deleteProperty($sType, $sName) { // If this object wasn't loaded before, return false if ($this->virgin == true) { $this->lasterror = 'No item loaded'; @@ -1707,19 +1626,18 @@ abstract class Item extends cItemBaseAbstract // Delete the value $oProperties = $this->_getPropertiesCollectionInstance(); $bResult = $oProperties->deleteValue( - $this->primaryKey, $this->get($this->primaryKey), $sType, $sName + $this->primaryKey, $this->get($this->primaryKey), $sType, $sName ); return $bResult; } - /** - * Deletes a custom property by its id. - * - * @param int $idprop Id of property - * @return bool - */ - public function deletePropertyById($idprop) - { + /** + * Deletes a custom property by its id. + * + * @param int $idprop Id of property + * @return bool + */ + public function deletePropertyById($idprop) { $oProperties = $this->_getPropertiesCollectionInstance(); return $oProperties->delete($idprop); } @@ -1750,9 +1668,8 @@ abstract class Item extends cItemBaseAbstract * * @return void */ - public function setFilters($aInFilters = array(), $aOutFilters = array()) - { - $this->_arrInFilters = $aInFilters; + public function setFilters($aInFilters = array(), $aOutFilters = array()) { + $this->_arrInFilters = $aInFilters; $this->_arrOutFilters = $aOutFilters; } @@ -1767,8 +1684,9 @@ abstract class Item extends cItemBaseAbstract * @return mixed Filtered data */ public function _inFilter($mData) { - if(is_numeric($mData) || is_array($mData)) return $mData; - + if (is_numeric($mData) || is_array($mData)) + return $mData; + foreach ($this->_arrInFilters as $_function) { if (function_exists($_function)) { $mData = $_function($mData); @@ -1786,8 +1704,9 @@ abstract class Item extends cItemBaseAbstract * @return mixed Filtered data */ protected function _outFilter($mData) { - if(is_numeric($mData)) return $mData; - + if (is_numeric($mData)) + return $mData; + foreach ($this->_arrOutFilters as $_function) { if (function_exists($_function)) { $mData = $_function($mData); @@ -1796,13 +1715,11 @@ abstract class Item extends cItemBaseAbstract return $mData; } - protected function _setMetaObject($sObjectName) - { + protected function _setMetaObject($sObjectName) { $this->_metaObject = $sObjectName; } - public function getMetaObject() - { + public function getMetaObject() { global $_metaObjectCache; if (!is_array($_metaObjectCache)) { @@ -1822,10 +1739,9 @@ abstract class Item extends cItemBaseAbstract } if (class_exists($sClassName)) { - $_metaObjectCache[$qclassname] = new $sClassName ($this); + $_metaObjectCache[$qclassname] = new $sClassName($this); return $_metaObjectCache[$qclassname]; } } } -?> \ No newline at end of file diff --git a/conlite/classes/class.htmlparser.php b/conlite/classes/class.htmlparser.php index 862f80f..b2c34aa 100644 --- a/conlite/classes/class.htmlparser.php +++ b/conlite/classes/class.htmlparser.php @@ -191,7 +191,7 @@ class HtmlParser { if ($this->iHtmlTextIndex >= $this->iHtmlTextLength) { return -1; } - return $this->iHtmlText{$this->iHtmlTextIndex}; + return $this->iHtmlText[$this->iHtmlTextIndex]; } function moveNext() { diff --git a/conlite/classes/class.string.multi.byte.wrapper.php b/conlite/classes/class.string.multi.byte.wrapper.php new file mode 100644 index 0000000..cc101ca --- /dev/null +++ b/conlite/classes/class.string.multi.byte.wrapper.php @@ -0,0 +1,405 @@ + + * @author Marcus Gnaß + * @copyright four for business AG + * @license http://www.contenido.org/license/LIZENZ.txt + * @link http://www.4fb.de + * @link http://www.contenido.org + */ + +defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.'); + +/** + * Wrapper class for mbstring functions to be used with strings. + * + * Each method is a wrapper for a mbstring function that implements a fallback + * to the regular string function if the mbstring function does not exist + * or the mbstring extension itself is not available. + * + * @package Core + * @subpackage Util + * @todo add mb_chr(), mb_ord() + */ +class cStringMultiByteWrapper { + + /** + * Checks if a given mbstring function exists. + * + * Caches informations about existing mbstring functions for better + * performance. + * + * @param string $functionName + * @return bool + */ + protected static function _functionExists($functionName) { + static $cache; + if (!isset($cache)) { + $cache = array(); + foreach (array( + 'mb_strtolower', 'mb_strtoupper', 'mb_strlen', 'mb_substr', + 'mb_substr_count', 'mb_send_mail', 'mb_strpos', 'mb_strrpos', 'mb_stripos', + 'mb_strripos', 'mb_stristr', 'mb_strrchr' + ) as $function) { + $cache[$function] = function_exists($function); + } + } + return isset($cache[$functionName]) ? $cache[$functionName] : false; + } + + /** + * Determines multi byte encoding to be used for various mbstring functions. + * + * If NULL is given the encoding for the current language is used + * which tends to be awfully slow as it requires a database lookup! + * + * If none could be determined the current set encoding is used. + * + * @param string|null $encoding + * - give a string to use a specific encoding + * - give null to use the encoding of the current language + * @return string + */ + protected static function _getEncoding($encoding = null) { + if (!is_string($encoding)) { + $encoding = mb_internal_encoding(); + } + return $encoding; + } + + /** + * Make a string lowercase + * + * @param string $string + * The string being lowercased + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return string + * with all alphabetic characters converted to lowercases + * @link http://php.net/manual/de/function.mb-strtolower.php + */ + public static function toLowerCase($string, $encoding = null) { + if (self::_functionExists('mb_strtolower')) { + $result = mb_strtolower($string, self::_getEncoding($encoding)); + } else { + $result = strtolower($string); + } + return $result; + } + + /** + * Make a string uppercase + * + * @param string $string + * The string being uppercased + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return string + * with all alphabetic characters converted to uppercases + * @link http://php.net/manual/de/function.mb-strtoupper.php + */ + public static function toUpperCase($string, $encoding = null) { + if (self::_functionExists('mb_strtoupper')) { + $result = mb_strtoupper($string, self::_getEncoding($encoding)); + } else { + $result = strtoupper($string); + } + return $result; + } + + /** + * Get string length + * + * @param string $string + * The string being checked for length + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return int + * Returns the number of characters + * @link http://php.net/manual/de/function.mb-strlen.php + */ + public static function getStringLength($string, $encoding = null) { + if (self::_functionExists('mb_strlen')) { + $result = mb_strlen($string, self::_getEncoding($encoding)); + } else { + $result = strlen($string); + } + return $result; + } + + /** + * Get string length + * + * @param string $string + * The string to extract the substring form + * @param int $start + * @param int $length [Optional] + * Maximum number of characters to use from $string, standard is NULL + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return string + * Returns the number of characters + * @link http://php.net/manual/de/function.mb-substr.php + */ + public static function getPartOfString($string, $start, $length = null, $encoding = null) { + if (self::_functionExists('mb_substr')) { + $result = mb_substr($string, $start, $length, self::_getEncoding($encoding)); + } else { + $result = substr($string, $start, $length); + } + return $result; + } + + /** + * Count the number of substring occurences + * + * @param string $haystack + * The string being checked + * @param string $needle + * The string being found + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return int + * The number of times the needle substring occurs in the haystack string. + * @link http://php.net/manual/de/function.mb-substr-count.php + */ + public static function countSubstring($haystack, $needle, $encoding = null) { + if (self::_functionExists('mb_substr_count')) { + $result = mb_substr_count($haystack, $needle, self::_getEncoding($encoding)); + } else { + $result = substr_count($haystack, $needle); + } + return $result; + } + + /** + * Send encoded mail + * + * @param string $to + * The mail addresses being sent to (multiple recipents comma separated) + * @param string $subject + * The subject of the mail + * @param string $message + * The message of the mail + * @param string $additional_headers [Optional] + * @param string $additional_parameter [Optional] + * @return boolean + * true or false + * @link http://php.net/manual/de/function.mb-send-mail.php + */ + public static function mail($to, $subject, $message, $additional_headers = null, $additional_parameter = null) { + if (self::_functionExists('mb_send_mail')) { + $result = mb_send_mail($to, $subject, $message, $additional_headers, $additional_parameter); + } else { + $result = mail($to, $subject, $message, $additional_headers, $additional_parameter); + } + return $result; + } + + /** + * Find the position of first occurence of string in a string + * + * @param string $haystack + * @param string $needle + * @param integer $offset [Optional] + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return int + * Returns the numeric position of the first occurrence of needle in the haystack string + * @link http://php.net/manual/de/function.mb-strpos.php + */ + public static function findFirstPos($haystack, $needle, $offset = 0, $encoding = null) { + if (self::_functionExists('mb_strpos')) { + $result = mb_strpos($haystack, $needle, $offset, self::_getEncoding($encoding)); + } else { + $result = strpos($haystack, $needle, $offset); + } + return $result; + } + + /** + * Find the position of last occurence of string in a string + * + * @param string $haystack + * @param string $needle + * @param integer $offset [Optional] + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return int + * Returns the numeric position of the last occurrence of needle in the haystack string + * @link http://php.net/manual/de/function.mb-strrpos.php + */ + public static function findLastPos($haystack, $needle, $offset = 0, $encoding = null) { + if (self::_functionExists('mb_strrpos')) { + $result = mb_strrpos($haystack, $needle, $offset, self::_getEncoding($encoding)); + } else { + $result = strrpos($haystack, $needle, $offset); + } + return $result; + } + + /** + * Finds position of first occurrence of a string within another, case insensitive + * + * @param string $haystack + * @param string $needle + * @param integer $offset [Optional] + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return int + * Returns the numeric position of the first occurrence of needle in the haystack string + * @link http://php.net/manual/de/function.mb-stripos.php + */ + public static function findFirstPosCI($haystack, $needle, $offset = 0, $encoding = null) { + if (self::_functionExists('mb_stripos')) { + $result = mb_stripos($haystack, $needle, $offset, self::_getEncoding($encoding)); + } else { + $result = stripos($haystack, $needle, $offset); + } + return $result; + } + + /** + * Finds position of last occurrence of a string within another, case insensitive + * + * @param string $haystack + * @param string $needle + * @param integer $offset [Optional] + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return int + * Returns the numeric position of the last occurrence of needle in the haystack string + * @link http://php.net/manual/de/function.mb-strripos.php + */ + public static function findLastPosCI($haystack, $needle, $offset = 0, $encoding = null) { + if (self::_functionExists('mb_strripos')) { + $result = mb_strripos($haystack, $needle, $offset, self::_getEncoding($encoding)); + } else { + $result = strripos($haystack, $needle, $offset); + } + return $result; + } + + /** + * Finds first occurrence of a string within another, case insensitive + * + * @param string $haystack + * @param string $needle + * @param boolean $before_needle [Optional] + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return string + * Returns the portion of haystack, or FALSE if needle is not found. + * @link http://php.net/manual/de/function.mb-stristr.php + */ + public static function findFirstOccurrenceCI($haystack, $needle, $before_needle = false, $encoding = null) { + if (self::_functionExists('mb_stristr')) { + $result = mb_stristr($haystack, $needle, $before_needle, self::_getEncoding($encoding)); + } else { + $result = stristr($haystack, $needle, $before_needle); + } + return $result; + } + + /** + * Finds first occurrence of a string within another, case insensitive + * + * @param string $haystack + * @param string $needle + * @param boolean $part [Optional] + * @param string|null $encoding + * encoding parameter, standard: cRegistry::getEncoding() + * @return string + * Returns the portion of haystack, or FALSE if needle is not found. + * @link http://php.net/manual/de/function.mb-strrchr.php + */ + public static function findLastOccurrence($haystack, $needle, $part = false, $encoding = null) { + if (self::_functionExists('mb_strrchr')) { + $result = mb_strrchr($haystack, $needle, $part, self::_getEncoding($encoding)); + } elseif (!$part) { + $result = strrchr($haystack, $needle); + } else { + // TODO strrchr canot handle $part = true + $result = null; + } + return $result; + } + + /** + * Regular expression match + * + * @param string $pattern + * @param string $string + * @param array $regs [Optional] + * @return int + * @link http://php.net/manual/de/function.mb-ereg.php + */ + public static function ereg($pattern, $string, &$regs = array()) { + // TODO provide fallback multibyte extension is missing + return mb_ereg($pattern, $string, $regs); + } + + /** + * Regular expression match ignoring case + * + * @param string $pattern + * @param string $string + * @param array $regs [Optional] + * @return int Returns the byte length of the matched string if a match for pattern was found in string + * @link http://php.net/manual/de/function.mb-eregi.php + */ + public static function eregi($pattern, $string, &$regs = array()) { + // TODO provide fallback multibyte extension is missing + return mb_eregi($pattern, $string, $regs); + } + + /** + * Replace regular expression + * + * @param string $pattern + * @param string $replacement + * @param string $string + * @param string $option [Optional] + * @return false|string Returns the byte length of the matched string if a match for pattern was found in string + * @link http://php.net/manual/de/function.mb-ereg-replace.php + */ + public static function ereg_replace($pattern, $replacement, $string, $option = 'msr') { + // TODO provide fallback multibyte extension is missing + return mb_ereg_replace($pattern, $replacement, $string, $option); + } + + /** + * Replace regular expression ignoring case + * + * @param string $pattern + * @param string $replacement + * @param string $string + * @param string $option [Optional] + * @return false|string Returns the byte length of the matched string if a match for pattern was found in string + * @link http://php.net/manual/de/function.mb-eregi-replace.php + */ + public static function eregi_replace($pattern, $replacement, $string, $option = 'msr') { + // TODO provide fallback multibyte extension is missing + return mb_eregi_replace($pattern, $replacement, $string, $option); + } + + /** + * Split string using regular expression + * + * @param string $pattern + * @param string $string + * @param integer $limit [Optional] + * @return string[] The result as an array + * @link http://php.net/manual/de/function.mb-split.php + */ + public static function split($pattern, $string, $limit = -1) { + // TODO provide fallback multibyte extension is missing + return mb_split($pattern, $string, $limit); + } + +} diff --git a/conlite/classes/class.string.php b/conlite/classes/class.string.php new file mode 100644 index 0000000..3f371a1 --- /dev/null +++ b/conlite/classes/class.string.php @@ -0,0 +1,718 @@ + + * @copyright four for business AG + * @license http://www.contenido.org/license/LIZENZ.txt + * @link http://www.4fb.de + * @link http://www.contenido.org + */ + +defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.'); + +/** + * String helper class. + * + * @package Core + * @subpackage Util + */ +class cString extends cStringMultiByteWrapper { + + /** + * Replaces a string only once. + * + * Caution: This function only takes strings as parameters, not arrays! + * + * @param string $find + * String to find + * @param string $replace + * String to replace + * @param string $subject + * String to process + * @return string + * Processed string + */ + public static function iReplaceOnce($find, $replace, $subject) { + $start = parent::findFirstPos(parent::toLowerCase($subject), parent::toLowerCase($find)); + + if ($start === false) { + return $subject; + } + + $end = $start + parent::getStringLength($find); + $first = parent::getPartOfString($subject, 0, $start); + $last = parent::getPartOfString($subject, $end, parent::getStringLength($subject) - $end); + + $result = $first . $replace . $last; + + return $result; + } + + /** + * Replaces a string only once, in reverse direction. + * + * Caution: This function only takes strings as parameters, not arrays! + * + * @param string $find + * String to find + * @param string $replace + * String to replace + * @param string $subject + * String to process + * @return string + * Processed string + */ + public static function iReplaceOnceReverse($find, $replace, $subject) { + $start = self::posReverse(parent::toLowerCase($subject), parent::toLowerCase($find)); + + if ($start === false) { + return $subject; + } + + $end = $start + parent::getStringLength($find); + + $first = parent::getPartOfString($subject, 0, $start); + $last = parent::getPartOfString($subject, $end, parent::getStringLength($subject) - $end); + + $result = $first . $replace . $last; + + return $result; + } + + /** + * Finds a string position in reverse direction. + * + * NOTE: The original cString::findLastPos-function of PHP4 only finds a single character + * as needle. + * + * @param string $haystack + * String to search in + * @param string $needle + * String to search for + * @param int $start [optional] + * Offset + * @return int + * String position + */ + public static function posReverse($haystack, $needle, $start = 0) { + $tempPos = parent::findFirstPos($haystack, $needle, $start); + + if ($tempPos === false) { + if ($start == 0) { + // Needle not in string at all + return false; + } else { + // No more occurances found + return $start - parent::getStringLength($needle); + } + } else { + // Find the next occurance + return self::posReverse($haystack, $needle, $tempPos + parent::getStringLength($needle)); + } + } + + /** + * Adds slashes to passed variable or array. + * + * @param string|array $value + * Either a string or a multi-dimensional array of values + * @return string|array + */ + public static function addSlashes($value) { + $value = is_array($value) ? array_map(array('cString', 'addSlashes'), $value) : addslashes($value); + return $value; + } + + /** + * Removes slashes from passed variable or array. + * + * @param string|array $value + * Either a string or a multi-dimensional array of values + * @return string|array + */ + public static function stripSlashes($value) { + $value = is_array($value) ? array_map(array('cString', 'stripSlashes'), $value) : stripslashes($value); + return $value; + } + + /** + * Checks if the string haystack ends with needle. + * + * @param string $haystack + * The string to check + * @param string $needle + * The string with which it should end + * @return bool + */ + public static function endsWith($haystack, $needle) { + $length = parent::getStringLength($needle); + if ($length == 0) { + return true; + } + + return parent::getPartOfString($haystack, -$length) === $needle; + } + + /** + * Returns true if needle can be found in haystack. + * + * @param string $haystack + * String to be searched + * @param string $needle + * String to search for + * @return bool + */ + public static function contains($haystack, $needle) { + return !(parent::findFirstPos($haystack, $needle) === false); + } + + /** + * Implementation of PHP 5.3's strstr with beforeNeedle. + * + * @param string $haystack + * String to be searched + * @param string $needle + * String to search for + * @param bool $beforeNeedle [optional] + * If true, return everything BEFORE needle + * @return string + * @link http://php.net/manual/de/function.mb-strstr.php + * @link http://php.net/manual/de/function.strstr.php + */ + public static function strstr($haystack, $needle, $beforeNeedle = false) { + + if (!$beforeNeedle) { + if (self::_functionExists('mb_strstr')) { + return mb_strstr($haystack, $needle); + } else { + return strstr($haystack, $needle); + } + } else { + return strtok($haystack, $needle); + } + } + + /** + * This function checks if a given format is accepted by php's date function. + * + * @param string $format + * format according to date function specification + * @return bool + * true if format is correct, false otherwise + */ + public static function validateDateFormat($format) { + // try to create a DateTime instance based on php's date function format specification + // return true if date is valid (no wrong format) + return false !== DateTime::createFromFormat($format, date($format, time())); + } + + /** + * Extract a number from a string. + * + * @param string $string + * String var by reference + * @return string + */ + public static function extractNumber(&$string) { + $string = preg_replace('/[^0-9]/', '', $string); + return $string; + } + + + /** + * Returns whether a string is UTF-8 encoded or not. + * + * @param string $input + * @return bool + */ + public static function isUtf8($input) { + $len = parent::getStringLength($input); + + for ($i = 0; $i < $len; $i++) { + $char = ord($input[$i]); + + if ($char < 0x80) { + // ASCII char + continue; + } else if (($char & 0xE0) === 0xC0 && $char > 0xC1) { + // 2 byte long char + $n = 1; + } else if (($char & 0xF0) === 0xE0) { + // 3 byte long char + $n = 2; + } else if (($char & 0xF8) === 0xF0 && $char < 0xF5) { + // 4 byte long char + $n = 3; + } else { + return false; + } + + for ($j = 0; $j < $n; $j++) { + $i++; + + if ($i == $len || (ord($input[$i]) & 0xC0) !== 0x80) { + return false; + } + } + } + return true; + } + + + /** + * Checks if a value is alphanumeric. + * + * @param mixed $test + * Value to test + * @param bool $umlauts [optional] + * Use german umlauts + * @return bool + * Value is alphanumeric + */ + public static function isAlphanumeric($test, $umlauts = true) { + if ($umlauts == true) { + $match = "/^[a-z0-9ÄäÖöÜüß ]+$/i"; + } else { + $match = "/^[a-z0-9 ]+$/i"; + } + + return preg_match($match, $test); + } + + /** + * Trims a string to a given length and makes sure that all words up to + * $maxlen are preserved, without exceeding $maxlen. + * + * Warning: Currently, this function uses a regular ASCII-Whitespace to do + * the separation test. If you are using ' ' to create spaces, this + * function will fail. + * + * Example: + * $string = "This is a simple test"; + * echo cString::trimAfterWord($string, 15); + * + * This would output "This is a", since this function respects word + * boundaries and doesn't operate beyond the limit given by $maxlen. + * + * @param string $string + * The string to operate on + * @param int $maxlen + * The maximum number of characters + * @return string + * The resulting string + */ + public static function trimAfterWord($string, $maxlen) { + // If the string is smaller than the maximum lenght, it makes no sense to + // process it any further. Return it. + if (parent::getStringLength($string) < $maxlen) { + return $string; + } + + // If the character after the $maxlen position is a space, we can return + // the string until $maxlen. + if (parent::getPartOfString($string, $maxlen, 1) == ' ') { + return parent::getPartOfString($string, 0, $maxlen); + } + + // Cut the string up to $maxlen so we can use cString::findLastPos (reverse str position) + $cutted_string = parent::getPartOfString($string, 0, $maxlen); + + // Extract the end of the last word + $last_word_position = cString::findLastPos($cutted_string, ' '); + + return parent::getPartOfString($cutted_string, 0, $last_word_position); + } + + /** + * Trims a string to a specific length. + * + * If the string is longer than $maxlen, dots are inserted ("...") right + * before $maxlen. + * + * Example: + * $string = "This is a simple test"; + * echo cString::trimHard ($string, 15); + * + * This would output "This is a si...", since the string is longer than + * $maxlen and the resulting string matches 15 characters including the dots. + * + * @param string $string + * The string to operate on + * @param int $maxlen + * The maximum number of characters + * @param string $fillup [optional] + * @return string + * The resulting string + */ + public static function trimHard($string, $maxlen, $fillup = '...') { + // If the string is smaller than the maximum lenght, it makes no sense to + // process it any further. Return it. + if (parent::getStringLength($string) < $maxlen) { + return $string; + } + + // Calculate the maximum text length + $maximum_text_length = $maxlen - parent::getStringLength($fillup); + + // If text length is over zero cut it + if ($maximum_text_length > 0) { + if (preg_match('/(*UTF8)^.{0,' . $maximum_text_length . '}/', $string, $result_array)) { + $cutted_string = $result_array[0]; + } else if (preg_match('/^.{0,' . $maximum_text_length . '}/u', $string, $result_array)) { + $cutted_string = $result_array[0]; + } else { + $cutted_string = parent::getPartOfString($string, 0, $maximum_text_length); + } + } else { + $cutted_string = $string; + } + + // Append the fillup string + $cutted_string .= $fillup; + + return $cutted_string; + } + + /** + * Trims a string to a approximate length preserving sentence boundaries. + * + * The algorithm inside calculates the sentence length to the previous and + * next sentences. The distance to the next sentence which is smaller will + * be taken to trim the string to match the approximate length parameter. + * + * Example: + * + * $string = "This contains two sentences. "; + * $string .= "Lets play around with them. "; + * + * echo cString::trimSentence($string, 40); + * echo cString::trimSentence($string, 50); + * + * The first example would only output the first sentence, the second + * example both sentences. + * + * Explanation: + * + * To match the given max length closely, the function calculates the + * distance to the next and previous sentences. Using the maxlength of 40 + * characters, the distance to the previous sentence would be 8 characters, + * and to the next sentence it would be 19 characters. Therefore, only the + * previous sentence is displayed. + * + * The second example displays the second sentence also, since the distance + * to the next sentence is only 9 characters, but to the previous it is 18 + * characters. + * + * If you specify the boolean flag "$hard", the limit parameter creates a + * hard limit instead of calculating the distance. + * + * This function ensures that at least one sentence is returned. + * + * @param string $string + * The string to operate on + * @param int $approxlen + * The approximate number of characters + * @param bool $hard [optional] + * If true, use a hard limit for the number of characters + * @return string + * The resulting string + */ + public static function trimSentence($string, $approxlen, $hard = false) { + // If the string is smaller than the maximum lenght, it makes no sense to + // process it any further. Return it. + if (parent::getStringLength($string) < $approxlen) { + return $string; + } + + // Find out the start of the next sentence + $next_sentence_start = parent::findFirstPos($string, '.', $approxlen); + + // If there's no next sentence (somebody forgot the dot?), set it to the end + // of the string. + if ($next_sentence_start === false) { + $next_sentence_start = parent::getStringLength($string); + } + + // Cut the previous sentence so we can use cString::findLastPos + $previous_sentence_cutted = parent::getPartOfString($string, 0, $approxlen); + + // Get out the previous sentence start + $previous_sentence_start = cString::findLastPos($previous_sentence_cutted, '.'); + + // If the sentence doesn't contain a dot, use the text start. + if ($previous_sentence_start === false) { + $previous_sentence_start = 0; + } + + // If we have a hard limit, we only want to process everything before + // $approxlen + if (($hard == true) && ($next_sentence_start > $approxlen)) { + return parent::getPartOfString($string, 0, $previous_sentence_start + 1); + } + + // Calculate next and previous sentence distances + $distance_previous_sentence = $approxlen - $previous_sentence_start; + $distance_next_sentence = $next_sentence_start - $approxlen; + + // Sanity: Return at least one sentence. + $sanity = parent::getPartOfString($string, 0, $previous_sentence_start + 1); + + if (parent::findFirstPos($sanity, '.') === false) { + return parent::getPartOfString($string, 0, $next_sentence_start + 1); + } + + // Decide wether the next or previous sentence is nearer + if ($distance_previous_sentence > $distance_next_sentence) { + return parent::getPartOfString($string, 0, $next_sentence_start + 1); + } else { + return parent::getPartOfString($string, 0, $previous_sentence_start + 1); + } + } + + /** + * Converts diactritics to english characters whenever possible. + * + * For german umlauts, this function converts the umlauts to their ASCII + * equivalents (e.g. ä => ae). + * + * For more information about diacritics, refer to + * http://en.wikipedia.org/wiki/Diacritic + * + * For other languages, the diacritic marks are removed, if possible. + * + * @param string $string + * The string to operate on + * @param string $sourceEncoding [optional; default: UTF-8] + * The source encoding + * @param string $targetEncoding [optional; default: UTF-8] + * The target encoding + * + * @return string + * The resulting string + * @throws cInvalidArgumentException + */ + public static function replaceDiacritics($string, $sourceEncoding = 'UTF-8', $targetEncoding = 'UTF-8') { + if ($sourceEncoding != 'UTF-8') { + $string = self::recodeString($string, $sourceEncoding, "UTF-8"); + } + + // replace regular german umlauts and other common characters with + // diacritics + static $search, $replace; + if (!isset($search)) { + $search = array( + 'Ä', + 'Ö', + 'Ü', + 'ä', + 'ö', + 'ü', + 'ß', + 'Á', + 'À', + 'Â', + 'á', + 'à', + 'â', + 'É', + 'È', + 'Ê', + 'é', + 'è', + 'ê', + 'Í', + 'Ì', + 'Î', + 'í', + 'ì', + 'î', + 'Ó', + 'Ò', + 'Ô', + 'ó', + 'ò', + 'ô', + 'Ú', + 'Ù', + 'Û', + 'ú', + 'ù', + 'û' + ); + $replace = array( + 'Ae', + 'Oe', + 'Ue', + 'ae', + 'oe', + 'ue', + 'ss', + 'A', + 'A', + 'A', + 'a', + 'a', + 'a', + 'E', + 'E', + 'E', + 'e', + 'e', + 'e', + 'I', + 'I', + 'I', + 'i', + 'i', + 'i', + 'O', + 'O', + 'O', + 'o', + 'o', + 'o', + 'U', + 'U', + 'U', + 'u', + 'u', + 'u' + ); + } + $string = str_replace($search, $replace, $string); + + // TODO: Additional converting + + return self::recodeString($string, "UTF-8", $targetEncoding); + } + + /** + * Converts a string to another encoding. + * + * This function tries to detect which function to use (either recode or + * iconv). + * + * If $sourceEncoding and $targetEncoding are the same, this function + * returns immediately. + * + * For more information about encodings, refer to + * http://en.wikipedia.org/wiki/Character_encoding + * + * For more information about the supported encodings in recode, refer to + * http://www.delorie.com/gnu/docs/recode/recode_toc.html + * + * Note: depending on whether recode or iconv is used, the supported + * charsets differ. The following ones are commonly used and are most likely + * supported by both converters: + * + * - ISO-8859-1 to ISO-8859-15 + * - ASCII + * - UTF-8 + * + * @todo Check if the charset names are the same for both converters + * @todo Implement a converter and charset checker to ensure compilance. + * + * @param string $string + * The string to operate on + * @param string $sourceEncoding + * The source encoding + * @param string $targetEncoding + * The target encoding (if false, use source encoding) + * + * @return string + * The resulting string + * @throws cInvalidArgumentException + */ + public static function recodeString($string, $sourceEncoding, $targetEncoding) { + // If sourceEncoding and targetEncoding are the same, return + if (parent::toLowerCase($sourceEncoding) == parent::toLowerCase($targetEncoding)) { + return $string; + } + + // Check for the "recode" support + if (function_exists('recode')) { + $sResult = recode_string("$sourceEncoding..$targetEncoding", $string); + return $sResult; + } + + // Check for the "iconv" support + if (function_exists('iconv')) { + $sResult = iconv($sourceEncoding, $targetEncoding, $string); + return $sResult; + } + + // No charset converters found; return with warning + cWarning(__FILE__, __LINE__, 'cString::recodeString could not find either recode or iconv to do charset conversion.'); + return $string; + } + + /** + * Removes or converts all "evil" URL characters. + * + * This function removes or converts all characters which can make an URL + * invalid. + * + * Clean characters include: + * - All characters between 32 and 126 which are not alphanumeric and + * aren't one of the following: _-. + * + * @param string $string + * The string to operate on + * @param bool $replace [optional] + * If true, all "unclean" characters are replaced + * + * @return string + * The resulting string + * @throws cInvalidArgumentException + */ + public static function cleanURLCharacters($string, $replace = false) { + $string = self::replaceDiacritics($string); + $string = str_replace(' ', '-', $string); + $string = str_replace('/', '-', $string); + $string = str_replace('&', '-', $string); + $string = str_replace('+', '-', $string); + + $iStrLen = parent::getStringLength($string); + + $sResultString = ''; + + for ($i = 0; $i < $iStrLen; $i++) { + $sChar = parent::getPartOfString($string, $i, 1); + + if (preg_match('/^[a-z0-9]*$/i', $sChar) || $sChar == '-' || $sChar == '_' || $sChar == '.') { + $sResultString .= $sChar; + } else { + if ($replace == true) { + $sResultString .= '_'; + } + } + } + + return $sResultString; + } + + /** + * Normalizes line endings in passed string. + * + * @param string $string + * @param string $lineEnding [optional] + * Feasible values are "\n", "\r" or "\r\n" + * @return string + */ + public static function normalizeLineEndings($string, $lineEnding = "\n") { + if ($lineEnding !== "\n" && $lineEnding !== "\r" && $lineEnding !== "\r\n") { + $lineEnding = "\n"; + } + + $string = str_replace("\r\n", "\n", $string); + $string = str_replace("\r", "\n", $string); + if ($lineEnding !== "\n") { + $string = str_replace("\n", $lineEnding, $string); + } + + return $string; + } +} \ No newline at end of file diff --git a/conlite/classes/con2con/class.registry.php b/conlite/classes/con2con/class.registry.php index 7a52792..02e59bb 100644 --- a/conlite/classes/con2con/class.registry.php +++ b/conlite/classes/con2con/class.registry.php @@ -46,6 +46,36 @@ class cRegistry { return $cfg['path']['contenido_fullhtml']; } + /** + * Function which returns path after the last possible place changing via + * configuration file. + * The path point to the current client + * + * @author konstantinos.katikakis + * @return string + * path + */ + public static function getFrontendPath() { + $cfgClient = self::getClientConfig(); + $client = self::getClientId(); + return $cfgClient[$client]['path']['frontend']; + } + + /** + * Function which returns URL after the last possible place changing via + * configuration file. + * The path point to the current client + * + * @author konstantinos.katikakis + * @return string + * URL + */ + public static function getFrontendUrl() { + $cfgClient = self::getClientConfig(); + $client = self::getClientId(); + return $cfgClient[$client]['path']['htmlpath']; + } + /** * Returns the client configuration array stored in the global variable * "cfgClient". diff --git a/conlite/includes/api/functions.api.general.php b/conlite/includes/api/functions.api.general.php index 77ecb96..8b54d7e 100644 --- a/conlite/includes/api/functions.api.general.php +++ b/conlite/includes/api/functions.api.general.php @@ -10,7 +10,8 @@ * @con_php_req 5.0 * * - * @package Contenido Backend includes + * @package Core + * @subpackage Backend * @version 1.0.2 * @author Timo A. Hummel * @copyright four for business AG diff --git a/conlite/includes/functions.database.php b/conlite/includes/functions.database.php index eb89886..4e546f4 100644 --- a/conlite/includes/functions.database.php +++ b/conlite/includes/functions.database.php @@ -133,6 +133,8 @@ function dbUpgradeTable($db, $table, $field, $type, $null, $key, $default, $extr } else { $parameter['DEFAULT'] = "DEFAULT '" . Contenido_Security::escapeDB($default, $db) . "'"; } + } else { + $parameter['DEFAULT'] = ''; } if (!dbTableExists($db, $table)) { @@ -145,7 +147,7 @@ function dbUpgradeTable($db, $table, $field, $type, $null, $key, $default, $extr // Remove auto_increment $structure = dbGetColumns($db, $table); - if ($structure[$field]["Extra"] == "auto_increment") { + if (isset($structure[$field]) && !empty($structure[$field]["Extra"]) && $structure[$field]["Extra"] == "auto_increment") { if ($structure[$field]['NULL'] == "") { $structure[$field]['NULL'] = "NOT NULL"; } diff --git a/conlite/includes/functions.general.php b/conlite/includes/functions.general.php index b1ca9a1..c4255ab 100644 --- a/conlite/includes/functions.general.php +++ b/conlite/includes/functions.general.php @@ -396,6 +396,7 @@ function getLanguagesByClient($client) { function getLanguageNamesByClient($client) { global $db; global $cfg; + $list = []; $sql = "SELECT a.idlang AS idlang, @@ -1238,7 +1239,7 @@ function buildCategorySelect($sName, $sValue, $sLevel = 0, $sStyle = "") { foreach ($categories as $tmpidcat => $props) { $spaces = "  "; - for ($i = 0; $i < $props["level"]; $i ++) { + for ($i = 0; $i < $props["level"]; $i++) { $spaces .= "     "; } @@ -1282,7 +1283,7 @@ function human_readable_size($number) { $n = (float) $number; //Appears to be necessary to avoid rounding while ($n >= $base) { $n /= (float) $base; - $usesuf ++; + $usesuf++; } $places = 2 - floor(log10($n)); @@ -1315,7 +1316,7 @@ function array_csort() { //coded by Ichier2003 $msortline = "return(array_multisort("; $i = 0; foreach ($args as $arg) { - $i ++; + $i++; if (is_string($arg)) { foreach ($marray as $row) { $a = strtoupper($row[$arg]); @@ -1327,7 +1328,9 @@ function array_csort() { //coded by Ichier2003 $msortline .= "\$sortarr[" . $i . "],"; } $msortline .= "\$marray));"; - @ eval($msortline); + if(is_array($marray) && count($marray) > 0) { + @ eval($msortline); + } return $marray; } @@ -1689,7 +1692,7 @@ function createRandomName($nameLength) { $Vouel = 'aeiou'; $Name = ""; - for ($index = 1; $index <= $nameLength; $index ++) { + for ($index = 1; $index <= $nameLength; $index++) { if ($index % 3 == 0) { $randomNumber = rand(1, strlen($Vouel)); $Name .= substr($Vouel, $randomNumber - 1, 1); diff --git a/conlite/includes/globals_off.inc.php b/conlite/includes/globals_off.inc.php index c26107d..0e8e3cd 100644 --- a/conlite/includes/globals_off.inc.php +++ b/conlite/includes/globals_off.inc.php @@ -30,11 +30,6 @@ * */ - -// set constant value depending on get_magic_quotes_gpc status -define('CONTENIDO_STRIPSLASHES', (get_magic_quotes_gpc() == 0)); - - // PHP5 with register_long_arrays off? if (!isset($HTTP_POST_VARS) && isset($_POST)) { $HTTP_POST_VARS = & $_POST; @@ -48,54 +43,11 @@ if (!isset($HTTP_POST_VARS) && isset($_POST)) { } } -// simulate get_magic_quotes_gpc on if turned off -if (CONTENIDO_STRIPSLASHES) { - - /** - * Adds slashes to passed variable - * - * @param mixed $value Either a string or a multi-dimensional array of values - * @return array - */ - function addslashes_deep($value) - { - $value = is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value); - - return $value; - } - - /** - * Removes slashes from passed variable. - * - * @param mixed $value Either a string or a multi-dimensional array of values - * @return array - */ - function stripslashes_deep($value) - { - $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); - - return $value; - } - - $_POST = array_map('addslashes_deep', $_POST); - $_GET = array_map('addslashes_deep', $_GET); - $_COOKIE = array_map('addslashes_deep', $_COOKIE); - - $cfg['simulate_magic_quotes'] = true; -} else { - $cfg['simulate_magic_quotes'] = false; -} - if (!isset($_REQUEST) || $cfg['simulate_magic_quotes']) { /* Register post,get and cookie variables into $_REQUEST */ $_REQUEST = array_merge($_GET, $_POST, $_COOKIE); } -// this should be the default setting, but only for PHP older than 5.3.0 -if (!CONTENIDO_STRIPSLASHES && (version_compare(PHP_VERSION, '5.3.0', '<'))) { - @set_magic_quotes_runtime(0); -} - // register globals $types_to_register = array ('GET', 'POST', 'COOKIE', 'SESSION', 'SERVER'); foreach ($types_to_register as $global_type) { @@ -115,6 +67,4 @@ foreach ($types_to_register as $global_type) { // save memory unset ($types_to_register, $global_type, $arr); -$FORM = $_REQUEST; - -?> \ No newline at end of file +$FORM = $_REQUEST; \ No newline at end of file diff --git a/conlite/includes/include.con_str_overview.php b/conlite/includes/include.con_str_overview.php index bdd598b..f66b416 100644 --- a/conlite/includes/include.con_str_overview.php +++ b/conlite/includes/include.con_str_overview.php @@ -754,7 +754,7 @@ if (isset($bDebug) && $bDebug === true) { var_dump($navigationTree); echo ''; } -if (count($navigationTree[0])) { +if (is_array($navigationTree[0]) && count($navigationTree[0])) { $sCategories = showTree(0, $aWholelist); } diff --git a/conlite/includes/include.logs.php b/conlite/includes/include.logs.php index 844f5f4..3fdf8c9 100644 --- a/conlite/includes/include.logs.php +++ b/conlite/includes/include.logs.php @@ -131,7 +131,7 @@ if(!$perm->have_perm_area_action($area)) } $years = array(); - for ($i = 2000; $i < 2020; $i++) + for ($i = 2000; $i < 2030; $i++) { $years[$i] = $i; } diff --git a/conlite/includes/startup.php b/conlite/includes/startup.php index e12c920..5e62e99 100644 --- a/conlite/includes/startup.php +++ b/conlite/includes/startup.php @@ -71,7 +71,7 @@ if (!defined('CL_ENVIRONMENT')) { */ if (!defined('CL_VERSION')) { -define('CL_VERSION', '2.1.1'); +define('CL_VERSION', '2.1.2'); } diff --git a/conlite/locale/conlite.pot b/conlite/locale/conlite.pot index 07179ac..647fa0c 100644 --- a/conlite/locale/conlite.pot +++ b/conlite/locale/conlite.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-06-01 20:24+0200\n" +"POT-Creation-Date: 2020-08-20 16:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,524 +17,1746 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: includes/include.system_configuration.php:93 -msgid "Versioning activated" +#: classes/con2con/class.filehandler.php:451 +msgid "Wrong file name." msgstr "" -#: includes/include.system_configuration.php:93 -#: includes/include.system_configuration.php:94 -#: includes/include.system_configuration.php:95 -msgid "Versioning" +#: classes/con2con/class.filehandler.php:467 +msgid "Please insert file name." msgstr "" -#: includes/include.system_configuration.php:94 -msgid "Serverpath to version files" -msgstr "" - -#: includes/include.system_configuration.php:95 -msgid "Maximum number of stored versions" -msgstr "" - -#: includes/include.system_configuration.php:96 -msgid "Check for updates" -msgstr "" - -#: includes/include.system_configuration.php:96 -#: includes/include.system_configuration.php:97 -#: includes/include.system_configuration.php:98 -msgid "Update notifier" -msgstr "" - -#: includes/include.system_configuration.php:97 -msgid "Get news from conlite.org" -msgstr "" - -#: includes/include.system_configuration.php:98 -msgid "Update check period (minutes)" -msgstr "" - -#: includes/include.system_configuration.php:99 -msgid "Clickable menu in backend" -msgstr "" - -#: includes/include.system_configuration.php:99 -#: includes/include.system_configuration.php:100 -#: includes/include.system_configuration.php:101 -#: includes/include.system_configuration.php:102 -#: includes/include.system_configuration.php:103 -#: includes/include.system_configuration.php:104 -msgid "Backend" -msgstr "" - -#: includes/include.system_configuration.php:100 -msgid "Use passwordrequest in Backend" -msgstr "" - -#: includes/include.system_configuration.php:101 -msgid "Activate maintenance mode" -msgstr "" - -#: includes/include.system_configuration.php:102 -msgid "Use editarea for code highlighting" -msgstr "" - -#: includes/include.system_configuration.php:103 -msgid "Use TinyMce as insight editor" -msgstr "" - -#: includes/include.system_configuration.php:104 -msgid "Default client (ID)" -msgstr "" - -#: includes/include.system_configuration.php:105 -msgid "Mailserver host" -msgstr "" - -#: includes/include.system_configuration.php:105 -#: includes/include.system_configuration.php:106 -#: includes/include.system_configuration.php:107 -msgid "Mailserver" -msgstr "" - -#: includes/include.system_configuration.php:106 -msgid "Mailserver sender mail" -msgstr "" - -#: includes/include.system_configuration.php:107 -msgid "Mailserver sender name" -msgstr "" - -#: includes/include.system_configuration.php:109 -msgid "Generate basehref" -msgstr "" - -#: includes/include.system_configuration.php:109 -#: includes/include.system_configuration.php:110 -msgid "Development" -msgstr "" - -#: includes/include.system_configuration.php:110 -msgid "Use image magic (if available)" -msgstr "" - -#: includes/include.system_configuration.php:123 -msgid "Update check period must be at least 60 minutes." -msgstr "" - -#: includes/include.system_configuration.php:133 -#: includes/include.lang_edit.php:140 includes/include.client_edit.php:172 -#: includes/grouprights.inc.php:335 -#: includes/include.grouprights_overview.php:65 -#: includes/include.rights_overview.php:141 -msgid "Changes saved" -msgstr "" - -#: includes/include.system_configuration.php:142 -msgid "System Configuration" -msgstr "" - -#: includes/include.system_configuration.php:192 -msgid "Access denied" -msgstr "" - -#: includes/include.lang_edit.php:84 includes/include.lang_overview.php:103 -msgid "New language" -msgstr "" - -#: includes/include.lang_edit.php:127 includes/include.logs.php:46 -#: includes/grouprights_lay.inc.php:55 includes/grouprights_lay.inc.php:74 -#: includes/include.tpl_edit_form.php:39 includes/include.js_edit_form.php:50 -#: includes/include.grouprights_create.php:42 -#: includes/include.html_tpl_history.php:59 includes/rights_lay.inc.php:57 -#: includes/rights_mod.inc.php:55 includes/include.client_artspec.php:40 -#: includes/include.client_artspec.php:50 -#: includes/include.client_artspec.php:60 -#: includes/include.client_artspec.php:70 -#: includes/include.con_edit_form.php:764 includes/grouprights_str.inc.php:54 -#: includes/include.upl_dirs_overview.php:408 -#: includes/include.upl_dirs_overview.php:555 -#: includes/include.tplcfg_edit_form.php:144 -#: includes/include.con_art_overview.php:1013 -#: includes/grouprights_tpl.inc.php:53 includes/rights_con.inc.php:56 -#: includes/include.client_edit.php:48 includes/include.mod_history.php:52 -#: includes/include.js_history.php:55 includes/include.lay_history.php:46 -#: includes/include.grouprights_overview.php:42 -#: includes/include.lay_edit_form.php:43 includes/include.lay_edit_form.php:52 -#: includes/include.rights_overview.php:49 -#: includes/grouprights_area.inc.php:65 includes/grouprights_mod.inc.php:54 -#: includes/grouprights_members.inc.php:41 -#: includes/include.html_tpl_edit_form.php:50 -#: includes/include.style_history.php:57 -#: includes/include.style_edit_form.php:51 includes/grouprights_con.inc.php:56 -#: includes/include.rights_create.php:43 includes/rights_str.inc.php:55 -#: includes/rights_area.inc.php:58 includes/rights_tpl.inc.php:55 -#: includes/include.system_purge.php:37 -msgid "Permission denied" -msgstr "" - -#: includes/include.lang_edit.php:228 -msgid "Left to right" -msgstr "" - -#: includes/include.lang_edit.php:228 -msgid "Right to left" -msgstr "" - -#: includes/include.lang_edit.php:242 includes/cfg_language_de.inc.php:191 -msgid "Edit language" -msgstr "" - -#: includes/include.lang_edit.php:244 -msgid "Language name" -msgstr "" - -#: includes/include.lang_edit.php:245 -#: includes/include.frontend.user_edit.php:188 -msgid "Active" -msgstr "" - -#: includes/include.lang_edit.php:247 includes/include.lang_edit.php:249 -#: includes/include.con_editcontent.php:392 main.loginform.php:156 -msgid "Language" -msgstr "" - -#: includes/include.lang_edit.php:248 -msgid "Encoding" -msgstr "" - -#: includes/include.lang_edit.php:250 includes/include.rights_overview.php:260 -#: includes/include.rights_create.php:204 -msgid "Country" -msgstr "" - -#: includes/include.lang_edit.php:251 -msgid "Text direction" -msgstr "" - -#: includes/include.lang_edit.php:253 includes/include.lang_edit.php:256 -#: includes/include.mycontenido_settings.php:143 -msgid "Time format" -msgstr "" - -#: includes/include.lang_edit.php:254 -#: includes/include.mycontenido_settings.php:141 -msgid "Date/Time format" -msgstr "" - -#: includes/include.lang_edit.php:255 -#: includes/include.mycontenido_settings.php:142 -msgid "Date format" -msgstr "" - -#: includes/include.CMS_SIMPLELINK.php:139 includes/include.CMS_LINK.php:142 +#: classes/class.conuser.php:842 classes/class.conuser.php:867 #, php-format -msgid "Edit link for container %s" +msgid "" +"Please use at least %d lower and upper case characters in your password!" msgstr "" -#: includes/include.CMS_SIMPLELINK.php:150 scripts/langref.php:31 -msgid "Link" +#: classes/class.conuser.php:847 +#, php-format +msgid "Please use at least %d numbers in your password!" msgstr "" -#: includes/include.CMS_SIMPLELINK.php:153 includes/include.CMS_IMG.php:278 -#: includes/grouprights_lay.inc.php:86 includes/include.tpl_edit_form.php:154 -#: includes/include.js_edit_form.php:176 includes/include.CMS_LINK.php:341 -#: includes/include.grouprights_create.php:112 -#: includes/include.html_tpl_history.php:164 includes/rights_lay.inc.php:76 -#: includes/include.todo.popup.php:70 includes/rights_mod.inc.php:76 -#: includes/include.mycontenido.tasks.edit.php:71 -#: includes/grouprights_tpl.inc.php:73 includes/include.mod_edit_form.php:385 -#: includes/include.mod_history.php:132 includes/include.js_history.php:156 -#: includes/include.lay_history.php:121 includes/include.upl_edit.php:95 -#: includes/include.grouprights_overview.php:118 -#: includes/include.lay_edit_form.php:205 includes/grouprights_mod.inc.php:74 -#: includes/include.html_tpl_edit_form.php:214 -#: includes/include.style_history.php:161 -#: includes/include.style_edit_form.php:198 includes/include.mod_new.php:109 -#: includes/rights_tpl.inc.php:74 +#: classes/class.conuser.php:852 +#, php-format +msgid "Please use at least %d symbols in your password!" +msgstr "" + +#: classes/class.conuser.php:857 +#, php-format +msgid "Password is too short! Please use at least %d signs." +msgstr "" + +#: classes/class.conuser.php:863 +msgid "Password does not contain enough different characters." +msgstr "" + +#: classes/class.conuser.php:872 +msgid "Please choose a more secure password!" +msgstr "" + +#: classes/class.version.php:197 +#, php-format +msgid "Alternative path %s does not exist. Version was saved in frondendpath." +msgstr "" + +#: classes/class.version.php:509 includes/include.mycontenido.tasks.php:380 +msgid "Refresh" +msgstr "" + +#: classes/class.version.php:525 +msgid "Clear layout history" +msgstr "" + +#: classes/class.version.php:526 +msgid "Do you really want to clear layout history?" +msgstr "" + +#: classes/class.version.php:526 +msgid "Note: This only affects the current layout." +msgstr "" + +#: classes/class.version.php:529 +msgid "Clear module history" +msgstr "" + +#: classes/class.version.php:530 +msgid "Do you really want to clear module history?" +msgstr "" + +#: classes/class.version.php:530 +msgid "Note: This only affects the current module." +msgstr "" + +#: classes/class.version.php:533 +msgid "Clear style history" +msgstr "" + +#: classes/class.version.php:534 +msgid "Do you really want to clear style history?" +msgstr "" + +#: classes/class.version.php:534 +msgid "Note: This only affects the current style." +msgstr "" + +#: classes/class.version.php:537 +msgid "Clear Java-Script history" +msgstr "" + +#: classes/class.version.php:538 +msgid "Do you really want to clear Java-Script history?" +msgstr "" + +#: classes/class.version.php:538 +msgid "Note: This only affects the current Java-Script." +msgstr "" + +#: classes/class.version.php:541 +msgid "Clear HTML-Template history" +msgstr "" + +#: classes/class.version.php:542 +msgid "Do you really want to clear HTML-Template history?" +msgstr "" + +#: classes/class.version.php:542 +msgid "Note: This only the affects current HTML-Template." +msgstr "" + +#: classes/class.version.php:545 +msgid "Clear history" +msgstr "" + +#: classes/class.version.php:546 +msgid "Do you really want to clear history?" +msgstr "" + +#: classes/class.version.php:546 +msgid "Note: This only affects the current history." +msgstr "" + +#: classes/contenido/class.module.php:389 includes/include.mod_edit_form.php:58 +msgid "- Unnamed Module -" +msgstr "" + +#: classes/contenido/class.module.php:910 +msgid "" +"Using old CamelCase for name of modulefolder. You may lowercase the name for " +"modulefolder" +msgstr "" + +#: classes/contenido/class.module.php:913 +msgid "" +"Module uses Output- and/or InputFromFile. Editing and Saving may not be " +"possible in backend." +msgstr "" + +#: classes/contenido/class.client.php:85 classes/class.client.php:131 +msgid "No client" +msgstr "" + +#: classes/contenido/class.layout.php:173 +msgid "" +"Layout uses LayFromFile. Editing and Saving may not be possible in backend." +msgstr "" + +#: classes/class.notification.php:114 scripts/articleObject.js.php:228 +#: scripts/articleObject.js.php:231 scripts/langref.php:14 +msgid "Error" +msgstr "" + +#: classes/class.notification.php:120 +msgid "Warning" +msgstr "" + +#: classes/class.notification.php:126 +#: templates/standard/template.mycontenido_lastarticles.html:67 +msgid "Info" +msgstr "" + +#: classes/class.notification.php:133 +msgid "Notification" +msgstr "" + +#: classes/class.navigation.php:332 classes/class.navigation.php:335 +#: templates/standard/template.log_main.html:18 +#: templates/standard/template.log_main.html:48 +#: includes/include.system_purge.php:195 +#: includes/include.con_editcontent.php:397 +msgid "Client" +msgstr "" + +#: classes/class.navigation.php:352 +#: templates/standard/template.symbolhelp.html:1823 +#: templates/standard/template.log_main.html:22 +#: templates/standard/template.log_main.html:50 +msgid "User" +msgstr "" + +#: classes/class.navigation.php:425 +msgid "-- No Language available --" +msgstr "" + +#: classes/class.ui.php:305 classes/widgets/class.widgets.views.php:73 +#: classes/widgets/class.widgets.tableedit.php:174 +#: includes/include.rights_create.php:142 includes/include.client_edit.php:215 +#: includes/include.rights_overview.php:192 +#: includes/include.grouprights_overview.php:102 +#: includes/include.CMS_EASYIMG.php:158 +#: includes/include.grouprights_create.php:94 +msgid "Save changes" +msgstr "" + +#: classes/class.request.password.php:247 +#: templates/standard/template.symbolhelp.html:196 +msgid "Submit" +msgstr "" + +#: classes/class.request.password.php:251 +msgid "Please enter your login" +msgstr "" + +#: classes/class.request.password.php:257 +msgid "Hide request" +msgstr "" + +#: classes/class.request.password.php:301 +#, php-format +msgid "Password requests are allowed every %s minutes." +msgstr "" + +#: classes/class.request.password.php:309 +#: classes/class.request.password.php:322 +msgid "No matching data found. Please contact your systemadministrator." +msgstr "" + +#: classes/class.request.password.php:315 +msgid "New password was submitted to your e-mail address." +msgstr "" + +#: classes/class.request.password.php:358 +#, php-format +msgid "" +"Dear Contenidouser %s,\n" +"\n" +"Your password to log in Content Management System Contenido is: %s\n" +"\n" +"Best regards\n" +"\n" +"Your Contenido sysadmin" +msgstr "" + +#: classes/class.request.password.php:374 +msgid "Your new password for Contenido Backend" +msgstr "" + +#: classes/class.cms_date.php:212 +msgid "Please Choose Format" +msgstr "" + +#: classes/class.ajax.php:105 classes/class.ajax.php:129 +#: includes/grouprights_tpl.inc.php:72 includes/rights_tpl.inc.php:73 +msgid "Template name" +msgstr "" + +#: classes/class.ajax.php:111 classes/class.ajax.php:135 +#: classes/class.ajax.php:185 +msgid "No data found!" +msgstr "" + +#: classes/class.ajax.php:153 classes/class.cms_teaser.php:594 +#: templates/standard/template.mycontenido_lastarticles.html:63 +#: templates/standard/template.symbolhelp.html:41 +#: templates/standard/template.symbolhelp.html:472 +#: templates/standard/template.log_main.html:52 +#: templates/standard/template.str_overview.html:124 +#: templates/standard/template.str_overview.html:224 +#: includes/grouprights_str.inc.php:76 includes/include.con_editcontent.php:387 +#: includes/include.con_edit_form.php:510 includes/rights_con.inc.php:78 +#: includes/include.note.popup.php:93 includes/grouprights_con.inc.php:78 +#: includes/rights_str.inc.php:77 +msgid "Category" +msgstr "" + +#: classes/class.ajax.php:160 +msgid "idcat" +msgstr "" + +#: classes/class.ajax.php:161 classes/class.ajax.php:178 +msgid "idlang" +msgstr "" + +#: classes/class.ajax.php:162 classes/class.ajax.php:179 +#: templates/standard/template.lay_edit_form.html:22 +#: templates/standard/template.tpl_edit_form.html:19 +#: templates/standard/template.mod_edit_form.html:23 +#: includes/include.mod_package.php:235 includes/include.mod_package.php:253 +#: includes/include.mod_package.php:422 includes/include.lay_edit_form.php:182 +#: includes/include.mod_new.php:87 includes/include.lay_history.php:120 +#: includes/include.mod_edit_form.php:377 +#: includes/include.mod_edit_form.php:381 +#: includes/include.systemsettings.php:59 +#: includes/include.systemsettings.php:170 +#: includes/include.rights_create.php:156 +#: includes/include.html_tpl_history.php:163 +#: includes/include.rights_left_top.php:116 +#: includes/include.style_history.php:160 +#: includes/include.html_tpl_edit_form.php:213 +#: includes/include.style_edit_form.php:197 +#: includes/include.js_edit_form.php:175 +#: includes/include.rights_overview.php:209 includes/include.js_history.php:155 +#: includes/include.clientsettings.php:95 +#: includes/include.clientsettings.php:187 +#: includes/include.tpl_edit_form.php:151 includes/include.mod_history.php:131 +msgid "Name" +msgstr "" + +#: classes/class.ajax.php:170 classes/class.cms_teaser.php:595 +#: templates/standard/template.symbolhelp.html:38 +#: templates/standard/template.symbolhelp.html:283 +#: templates/standard/template.log_main.html:53 +#: includes/include.con_editcontent.php:382 +#: includes/include.con_art_overview.php:73 includes/include.con_subnav.php:104 +#: backend_search.php:491 +msgid "Article" +msgstr "" + +#: classes/class.ajax.php:177 +msgid "idart" +msgstr "" + +#: classes/class.todo.php:94 +msgid "New" +msgstr "" + +#: classes/class.todo.php:95 +msgid "In progress" +msgstr "" + +#: classes/class.todo.php:96 +msgid "Done" +msgstr "" + +#: classes/class.todo.php:97 +msgid "Waiting for action" +msgstr "" + +#: classes/class.todo.php:98 +msgid "Deferred" +msgstr "" + +#: classes/class.todo.php:106 +msgid "Low" +msgstr "" + +#: classes/class.todo.php:107 +msgid "Medium" +msgstr "" + +#: classes/class.todo.php:108 +msgid "High" +msgstr "" + +#: classes/class.todo.php:109 +msgid "Immediately" +msgstr "" + +#: classes/class.todo.php:151 classes/class.todo.php:154 backend_search.php:674 +msgid "Set reminder / add to todo list" +msgstr "" + +#: classes/class.update.notifier.php:422 classes/class.update.notifier.php:427 +msgid "Unable to check for new updates!" +msgstr "" + +#: classes/class.update.notifier.php:422 +msgid "Could not handle server response!" +msgstr "" + +#: classes/class.update.notifier.php:427 +msgid "Could not determine vendor version!" +msgstr "" + +#: classes/class.update.notifier.php:545 +msgid "Unable to check for updates!" +msgstr "" + +#: classes/class.update.notifier.php:546 +#, php-format +msgid "Connection to %s failed!" +msgstr "" + +#: classes/class.update.notifier.php:651 +msgid "Disable update notification" +msgstr "" + +#: classes/class.update.notifier.php:653 classes/class.update.notifier.php:665 +msgid "Disable notification" +msgstr "" + +#: classes/class.update.notifier.php:656 +msgid "Enable update notification (recommended)" +msgstr "" + +#: classes/class.update.notifier.php:658 classes/class.update.notifier.php:672 +msgid "Enable notification" +msgstr "" + +#: classes/class.update.notifier.php:663 +msgid "Disable RSS notification" +msgstr "" + +#: classes/class.update.notifier.php:670 +msgid "Enable RSS notification (recommended)" +msgstr "" + +#: classes/class.update.notifier.php:674 +msgid "RSS notification is disabled" +msgstr "" + +#: classes/class.update.notifier.php:708 +msgid "read more" +msgstr "" + +#: classes/class.update.notifier.php:718 classes/class.update.notifier.php:727 +msgid "No RSS content available" +msgstr "" + +#: classes/class.update.notifier.php:725 classes/class.update.notifier.php:743 +msgid "" +"Your webserver does not have write permissions for the directory /contenido/" +"cache/!" +msgstr "" + +#: classes/class.update.notifier.php:746 +msgid "" +"Update notification is disabled! For actual update information, please " +"activate." +msgstr "" + +#: classes/class.update.notifier.php:751 +msgid "You have an unknown or unsupported version of ConLite!" +msgstr "" + +#: classes/class.update.notifier.php:754 +#, php-format +msgid "" +"Your version of ConLite is deprecated and not longer supported for any " +"updates. Please update to a higher version!
Download now!" +msgstr "" + +#: classes/class.update.notifier.php:758 +#, php-format +msgid "" +"A new version of ConLite is available!
Download %s now!" +msgstr "" + +#: classes/class.update.notifier.php:761 +#, php-format +msgid "" +"It seems to be that your version string was manipulated. ConLite %s does not " +"exist!" +msgstr "" + +#: classes/class.update.notifier.php:764 +msgid "Your version of ConLite is up to date!" +msgstr "" + +#: classes/class.note.php:305 classes/class.note.php:308 +msgid "View notes / add note" +msgstr "" + +#: classes/class.cms_teaser.php:353 classes/class.cms_teaser.php:381 +#: classes/class.cms_teaser.php:418 classes/class.cms_teaser.php:446 +#: classes/class.cms_teaser.php:475 classes/class.cms_teaser.php:538 +#: includes/functions.general.php:1160 includes/functions.general.php:1200 +#: includes/include.str_overview.php:89 includes/include.CMS_LINK.php:215 +#: includes/include.CMS_LINK.php:244 includes/include.CMS_LINK.php:273 +#: includes/include.CMS_LINK.php:288 includes/include.CMS_LINK.php:304 +msgid "Please choose" +msgstr "" + +#: classes/class.cms_teaser.php:385 +msgid "Block Style" +msgstr "" + +#: classes/class.cms_teaser.php:388 +msgid "Blog Style" +msgstr "" + +#: classes/class.cms_teaser.php:422 classes/class.cms_filelist.php:465 +#: includes/include.mod_new.php:88 includes/include.rights_left_top.php:118 +#: includes/include.frontend.user_menu.php:112 +#: includes/include.frontend.left_top.php:118 +msgid "Ascending" +msgstr "" + +#: classes/class.cms_teaser.php:425 classes/class.cms_filelist.php:468 +#: includes/include.mod_new.php:88 includes/include.rights_left_top.php:119 +#: includes/include.frontend.user_menu.php:112 +#: includes/include.frontend.left_top.php:118 +msgid "Descending" +msgstr "" + +#: classes/class.cms_teaser.php:450 +msgid "Scaled" +msgstr "" + +#: classes/class.cms_teaser.php:453 +msgid "Cropped" +msgstr "" + +#: classes/class.cms_teaser.php:479 +msgid "Sort Sequence" +msgstr "" + +#: classes/class.cms_teaser.php:482 +msgid "Creationdate" +msgstr "" + +#: classes/class.cms_teaser.php:485 +msgid "Publisheddate" +msgstr "" + +#: classes/class.cms_teaser.php:488 +msgid "Modificationdate" +msgstr "" + +#: classes/class.cms_teaser.php:577 +msgid "Teasersettings" +msgstr "" + +#: classes/class.cms_teaser.php:578 +msgid "Teasertitle" +msgstr "" + +#: classes/class.cms_teaser.php:579 +msgid "Teaser Startarticle" +msgstr "" + +#: classes/class.cms_teaser.php:580 +msgid "Sourcecategory" +msgstr "" + +#: classes/class.cms_teaser.php:581 +msgid "Number of Articles" +msgstr "" + +#: classes/class.cms_teaser.php:582 classes/class.cms_filelist.php:724 +msgid "General Settings" +msgstr "" + +#: classes/class.cms_teaser.php:583 +msgid "Teaser Style" +msgstr "" + +#: classes/class.cms_teaser.php:584 +msgid "Advanced Teaser Settings" +msgstr "" + +#: classes/class.cms_teaser.php:585 +msgid "Teaser Filter" +msgstr "" + +#: classes/class.cms_teaser.php:586 +msgid "Teaser Sort" +msgstr "" + +#: classes/class.cms_teaser.php:587 classes/class.cms_filelist.php:738 +#: includes/include.mod_new.php:161 includes/include.rights_left_top.php:155 +#: includes/include.frontend.left_top.php:257 +#: includes/include.con_art_overview.php:77 backend_search.php:495 +msgid "Sort order" +msgstr "" + +#: classes/class.cms_teaser.php:588 +msgid "Source Headline" +msgstr "" + +#: classes/class.cms_teaser.php:589 +msgid "Source Settings" +msgstr "" + +#: classes/class.cms_teaser.php:590 +msgid "Source Text" +msgstr "" + +#: classes/class.cms_teaser.php:591 +msgid "Source Image" +msgstr "" + +#: classes/class.cms_teaser.php:592 +msgid "Source Date" +msgstr "" + +#: classes/class.cms_teaser.php:597 classes/class.cms_filelist.php:720 +msgid "General" +msgstr "" + +#: classes/class.cms_teaser.php:598 +msgid "Advanced" +msgstr "" + +#: classes/class.cms_teaser.php:599 classes/class.cms_filelist.php:721 +msgid "Manual" +msgstr "" + +#: classes/class.cms_teaser.php:600 +msgid "Included Articles" +msgstr "" + +#: classes/class.cms_teaser.php:601 +msgid "Add Article" +msgstr "" + +#: classes/class.cms_teaser.php:602 +msgid "Manual Teaser Settings" +msgstr "" + +#: classes/class.cms_teaser.php:603 +msgid "Manual Teaser" +msgstr "" + +#: classes/class.cms_teaser.php:606 +msgid "Size Settings" +msgstr "" + +#: classes/class.cms_teaser.php:607 +msgid "Characterlength" +msgstr "" + +#: classes/class.cms_teaser.php:608 +msgid "Imagewidth" +msgstr "" + +#: classes/class.cms_teaser.php:609 +msgid "Imageheight" +msgstr "" + +#: classes/class.cms_teaser.php:610 +msgid "Image Scale" +msgstr "" + +#: classes/class.cms_teaser.php:647 +msgid "Add" +msgstr "" + +#: classes/class.inuse.php:246 +msgid "Click here if you want to override the lock" +msgstr "" + +#: classes/class.inuse.php:250 +msgid "Do you really want to override the lock?" +msgstr "" + +#: classes/class.inuse.php:252 +msgid "Override lock" +msgstr "" + +#: classes/class.inuse.php:252 +msgid "Hide notification" +msgstr "" + +#: classes/class.cms_filelist.php:413 +msgid "Default Style" +msgstr "" + +#: classes/class.cms_filelist.php:438 +#: templates/standard/template.upl_files_overview.html:82 +msgid "Filename" +msgstr "" + +#: classes/class.cms_filelist.php:441 +#: templates/standard/template.upl_files_overview.html:86 +msgid "File size" +msgstr "" + +#: classes/class.cms_filelist.php:444 includes/include.con_left_top.php:136 +msgid "Date created" +msgstr "" + +#: classes/class.cms_filelist.php:447 includes/include.con_left_top.php:137 +msgid "Date modified" +msgstr "" + +#: classes/class.cms_filelist.php:540 classes/class.cms_filelist.php:541 +#: includes/include.upl_search_results.php:417 +#: includes/include.upl_files_overview.php:658 +msgid "No files found" +msgstr "" + +#: classes/class.cms_filelist.php:719 +msgid "Directories" +msgstr "" + +#: classes/class.cms_filelist.php:722 +#: templates/standard/template.log_main.html:14 +msgid "Filter" +msgstr "" + +#: classes/class.cms_filelist.php:725 +msgid "Manual Settings" +msgstr "" + +#: classes/class.cms_filelist.php:726 +msgid "Filter settings" +msgstr "" + +#: classes/class.cms_filelist.php:727 +msgid "File list settings" +msgstr "" + +#: classes/class.cms_filelist.php:728 +msgid "File list title" +msgstr "" + +#: classes/class.cms_filelist.php:729 +msgid "File size limit" +msgstr "" + +#: classes/class.cms_filelist.php:730 +msgid "Creation date limit" +msgstr "" + +#: classes/class.cms_filelist.php:731 +msgid "Modify date limit" +msgstr "" + +#: classes/class.cms_filelist.php:733 +msgid "File list style" +msgstr "" + +#: classes/class.cms_filelist.php:734 +msgid "Source directory" +msgstr "" + +#: classes/class.cms_filelist.php:735 +msgid "Include subdirectories?" +msgstr "" + +#: classes/class.cms_filelist.php:736 +msgid "Include meta data?" +msgstr "" + +#: classes/class.cms_filelist.php:737 +msgid "File list sort" +msgstr "" + +#: classes/class.cms_filelist.php:739 +msgid "Displayed file extensions" +msgstr "" + +#: classes/class.cms_filelist.php:740 +msgid "Ignore selection (use all)" +msgstr "" + +#: classes/class.cms_filelist.php:741 +msgid "Selection will be ignored!" +msgstr "" + +#: classes/class.cms_filelist.php:742 +msgid "Select all entries" +msgstr "" + +#: classes/class.cms_filelist.php:743 +msgid "Use manual file list?" +msgstr "" + +#: classes/class.cms_filelist.php:744 +msgid "Directory" +msgstr "" + +#: classes/class.cms_filelist.php:745 includes/include.mod_package.php:476 +#: includes/include.mod_package.php:478 includes/include.mod_edit_form.php:442 +#: includes/include.mod_edit_form.php:444 +#: includes/include.mod_translate.php:185 +msgid "File" +msgstr "" + +#: classes/class.cms_filelist.php:746 +msgid "Files" +msgstr "" + +#: classes/class.cms_filelist.php:747 +msgid "Existing files" +msgstr "" + +#: classes/class.cms_filelist.php:748 +msgid "Add file" +msgstr "" + +#: classes/class.cms_filelist.php:749 +msgid "File count" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:127 +#: includes/functions.general.php:103 +msgid "January" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:128 +#: includes/functions.general.php:106 +msgid "February" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:129 +#: includes/functions.general.php:109 +msgid "March" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:130 +#: includes/functions.general.php:112 +msgid "April" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:131 +#: includes/functions.general.php:115 +msgid "May" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:132 +#: includes/functions.general.php:118 +msgid "June" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:133 +#: includes/functions.general.php:121 +msgid "July" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:134 +#: includes/functions.general.php:124 +msgid "August" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:135 +#: includes/functions.general.php:127 +msgid "September" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:136 +#: includes/functions.general.php:130 +msgid "October" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:137 +#: includes/functions.general.php:133 +msgid "November" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:138 +#: includes/functions.general.php:136 +msgid "December" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:144 +#: classes/datatypes/class.datatype.datetime.php:151 +#: includes/functions.general.php:168 +msgid "Sunday" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:145 +#: includes/functions.general.php:150 +msgid "Monday" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:146 +#: includes/functions.general.php:153 +msgid "Tuesday" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:147 +#: includes/functions.general.php:156 +msgid "Wednesday" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:148 +#: includes/functions.general.php:159 +msgid "Thursday" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:149 +#: includes/functions.general.php:162 +msgid "Friday" +msgstr "" + +#: classes/datatypes/class.datatype.datetime.php:150 +msgid "Saturday" +msgstr "" + +#: classes/template/class.template.php:322 +msgid "\"" +msgstr "" + +#: classes/class.versionFile.php:131 +msgid "Can not open file " +msgstr "" + +#: classes/widgets/class.widgets.pager.php:44 +#: classes/widgets/class.widgets.pager.php:46 +msgid "Paging" +msgstr "" + +#: classes/widgets/class.widgets.pager.php:76 +msgid "First page" +msgstr "" + +#: classes/widgets/class.widgets.pager.php:83 +msgid "Previous page" +msgstr "" + +#: classes/widgets/class.widgets.pager.php:96 +#, php-format +msgid "Page %s" +msgstr "" + +#: classes/widgets/class.widgets.pager.php:112 +msgid "Next page" +msgstr "" + +#: classes/widgets/class.widgets.pager.php:122 +msgid "Last page" +msgstr "" + +#: classes/widgets/class.widgets.datawidgets.php:294 +#: classes/widgets/class.widgets.datawidgets.php:295 +msgid "Clear contents" +msgstr "" + +#: templates/standard/template.info.html:15 +msgid "Concept and Implementation" +msgstr "" + +#: templates/standard/template.info.html:15 +msgid "Germany" +msgstr "" + +#: templates/standard/template.info.html:15 +msgid "Phone" +msgstr "" + +#: templates/standard/template.stat_overview.html:135 +#: includes/include.str_overview.php:572 includes/include.str_overview.php:573 +#: includes/include.str_overview.php:574 includes/include.con_left_top.php:428 +#: includes/include.con_str_overview.php:614 +msgid "Close all categories" +msgstr "" + +#: templates/standard/template.stat_overview.html:137 +#: includes/include.str_overview.php:578 includes/include.str_overview.php:579 +#: includes/include.str_overview.php:580 includes/include.con_left_top.php:429 +#: includes/include.con_str_overview.php:615 +msgid "Open all categories" +msgstr "" + +#: templates/standard/template.welcome.html:22 +msgid "Available clients" +msgstr "" + +#: templates/standard/template.welcome.html:42 +msgid "Currently" +msgstr "" + +#: templates/standard/template.welcome.html:42 +msgid "Users online" +msgstr "" + +#: templates/standard/template.welcome.html:50 +msgid "Contact System Administrators" +msgstr "" + +#: templates/standard/template.system_variables.html:16 +msgid "Your system configuration" +msgstr "" + +#: templates/standard/template.system_variables.html:21 +msgid "Variable" +msgstr "" + +#: templates/standard/template.system_variables.html:22 +msgid "Local value" +msgstr "" + +#: templates/standard/template.system_variables.html:37 +msgid "Contenido Error Log" +msgstr "" + +#: templates/standard/template.system_variables.html:50 +msgid "clear error log" +msgstr "" + +#: templates/standard/template.system_variables.html:58 +msgid "Contenido Upgrade Error Log" +msgstr "" + +#: templates/standard/template.system_variables.html:72 +msgid "clear upgrade error log" +msgstr "" + +#: templates/standard/template.mycontenido_lastarticles.html:35 +msgid "Your clients" +msgstr "" + +#: templates/standard/template.mycontenido_lastarticles.html:61 +#: includes/include.upl_artlist.php:81 +msgid "Start" +msgstr "" + +#: templates/standard/template.mycontenido_lastarticles.html:62 +#: includes/include.stat_overview.php:89 includes/include.con_edit_form.php:208 +#: includes/include.upl_artlist.php:81 includes/include.con_art_overview.php:74 +#: includes/include.con_art_overview.php:659 backend_search.php:492 +msgid "Title" +msgstr "" + +#: templates/standard/template.mycontenido_lastarticles.html:64 +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.con_edit_form.php:284 includes/include.upl_artlist.php:81 +msgid "Created" +msgstr "" + +#: templates/standard/template.mycontenido_lastarticles.html:65 +#: includes/include.upl_artlist.php:81 +msgid "Modified" +msgstr "" + +#: templates/standard/template.mycontenido_lastarticles.html:66 +#: templates/standard/template.str_overview.html:230 +#: includes/include.con_art_overview.php:78 +#: includes/include.pretplcfg_edit_form.php:76 +#: includes/include.tplcfg_edit_form.php:276 backend_search.php:496 +msgid "Template" +msgstr "" + +#: templates/standard/template.rights_inc.html:24 +msgid "Client / Language" +msgstr "" + +#: templates/standard/template.lay_edit_form.html:32 #: templates/standard/template.tpl_edit_form.html:29 #: templates/standard/template.upl_files_overview.html:84 -#: templates/standard/template.mod_edit_form.html:33 -#: templates/standard/template.lay_edit_form.html:32 scripts/langref.php:28 +#: templates/standard/template.mod_edit_form.html:33 scripts/langref.php:28 +#: includes/include.lay_edit_form.php:183 includes/include.mod_new.php:109 +#: includes/include.CMS_SIMPLELINK.php:153 includes/rights_lay.inc.php:76 +#: includes/grouprights_mod.inc.php:74 includes/include.todo.popup.php:70 +#: includes/include.lay_history.php:121 includes/include.mod_edit_form.php:385 +#: includes/include.html_tpl_history.php:164 +#: includes/include.style_history.php:161 includes/grouprights_lay.inc.php:86 +#: includes/include.html_tpl_edit_form.php:214 includes/include.upl_edit.php:95 +#: includes/include.style_edit_form.php:198 +#: includes/include.js_edit_form.php:176 includes/include.CMS_LINK.php:341 +#: includes/include.js_history.php:156 includes/rights_mod.inc.php:76 +#: includes/include.grouprights_overview.php:118 +#: includes/grouprights_tpl.inc.php:73 includes/rights_tpl.inc.php:74 +#: includes/include.CMS_IMG.php:278 includes/include.tpl_edit_form.php:154 +#: includes/include.mycontenido.tasks.edit.php:71 +#: includes/include.grouprights_create.php:112 +#: includes/include.mod_history.php:132 msgid "Description" msgstr "" -#: includes/functions.upl.php:791 -msgid "OpenOffice.org Presentation" +#: templates/standard/template.con_edit_form.html:141 +#: includes/include.upl_edit.php:100 +msgid "Time control" msgstr "" -#: includes/functions.upl.php:792 -msgid "OpenOffice.org Presentation Template" +#: templates/standard/template.con_edit_form.html:144 +#: includes/include.upl_edit.php:209 +msgid "Use time control" msgstr "" -#: includes/functions.upl.php:793 -msgid "Microsoft PowerPoint Screen Presentation" +#: templates/standard/template.con_edit_form.html:146 +#: templates/standard/template.log_main.html:30 +#: includes/include.upl_edit.php:215 +msgid "Start date" msgstr "" -#: includes/functions.upl.php:794 includes/functions.upl.php:796 -msgid "Microsoft PowerPoint Presentation Template" +#: templates/standard/template.con_edit_form.html:150 +#: templates/standard/template.log_main.html:34 +#: includes/include.todo.popup.php:79 includes/include.upl_edit.php:219 +#: includes/include.mycontenido.tasks.edit.php:75 +msgid "End date" msgstr "" -#: includes/functions.upl.php:795 -msgid "KDE KPresenter Document" +#: templates/standard/template.con_edit_form.html:153 +msgid "When expired, move to category" msgstr "" -#: includes/functions.upl.php:799 -msgid "Microsoft Word Document or regular text file" +#: templates/standard/template.con_edit_form.html:155 +msgid "Make online after move" msgstr "" -#: includes/functions.upl.php:800 -msgid "Microsoft Word Template" +#: templates/standard/template.con_edit_form.html:184 +msgid "Page title" msgstr "" -#: includes/functions.upl.php:801 -msgid "OpenOffice.org Text Document" +#: templates/standard/template.con_edit_form.html:190 +msgid "Meta tags" msgstr "" -#: includes/functions.upl.php:802 -msgid "OpenOffice.org Text Document Template" +#: templates/standard/template.symbolhelp.html:23 +msgid "Table of contents" msgstr "" -#: includes/functions.upl.php:803 -msgid "StarOffice 5.0 Text Document" +#: templates/standard/template.symbolhelp.html:29 +#: templates/standard/template.symbolhelp.html:135 +msgid "Common" msgstr "" -#: includes/functions.upl.php:804 -msgid "KDE KWord Document" +#: templates/standard/template.symbolhelp.html:35 +#: templates/standard/template.symbolhelp.html:277 +msgid "Content" msgstr "" -#: includes/functions.upl.php:807 -msgid "Microsoft Excel Worksheet" +#: templates/standard/template.symbolhelp.html:44 +#: templates/standard/template.symbolhelp.html:740 +msgid "File management" msgstr "" -#: includes/functions.upl.php:808 -msgid "OpenOffice.org Table" +#: templates/standard/template.symbolhelp.html:50 +#: templates/standard/template.symbolhelp.html:816 +msgid "Style" msgstr "" -#: includes/functions.upl.php:809 -msgid "OpenOffice.org Table Template" +#: templates/standard/template.symbolhelp.html:53 +#: templates/standard/template.symbolhelp.html:822 +#: includes/include.mod_package.php:191 +msgid "Layouts" msgstr "" -#: includes/functions.upl.php:810 -msgid "Microsoft Excel File" +#: templates/standard/template.symbolhelp.html:56 +#: templates/standard/template.symbolhelp.html:904 +msgid "Modules" msgstr "" -#: includes/functions.upl.php:811 -msgid "Microsoft Excel Template" +#: templates/standard/template.symbolhelp.html:59 +#: templates/standard/template.symbolhelp.html:985 +msgid "Templates" msgstr "" -#: includes/functions.upl.php:812 -msgid "Comma Seperated Value File" +#: templates/standard/template.symbolhelp.html:62 +#: templates/standard/template.symbolhelp.html:1055 +msgid "CSS editor" msgstr "" -#: includes/functions.upl.php:813 -msgid "KDE KSpread Document" +#: templates/standard/template.symbolhelp.html:65 +#: templates/standard/template.symbolhelp.html:1110 +msgid "Script editor" msgstr "" -#: includes/functions.upl.php:814 -msgid "StarOffice 5.0 Table" +#: templates/standard/template.symbolhelp.html:68 +#: templates/standard/template.symbolhelp.html:1165 +msgid "Module Templates" msgstr "" -#: includes/functions.upl.php:817 -msgid "Plain Text" +#: templates/standard/template.symbolhelp.html:74 +#: templates/standard/template.symbolhelp.html:1242 +msgid "Extras" msgstr "" -#: includes/functions.upl.php:818 -msgid "Rich Text Format" +#: templates/standard/template.symbolhelp.html:77 +#: templates/standard/template.symbolhelp.html:1248 +msgid "Newsletter" msgstr "" -#: includes/functions.upl.php:821 -msgid "GIF Image" +#: templates/standard/template.symbolhelp.html:80 +msgid "Recipients" msgstr "" -#: includes/functions.upl.php:822 -msgid "PNG Image" +#: templates/standard/template.symbolhelp.html:86 +#: templates/standard/template.symbolhelp.html:1466 +msgid "Statistics" msgstr "" -#: includes/functions.upl.php:823 includes/functions.upl.php:824 -msgid "JPEG Image" +#: templates/standard/template.symbolhelp.html:89 +#: templates/standard/template.symbolhelp.html:1472 +#: includes/include.stat_overview.php:92 +msgid "Hits" msgstr "" -#: includes/functions.upl.php:825 -msgid "TIFF Image" +#: templates/standard/template.symbolhelp.html:95 +#: templates/standard/template.symbolhelp.html:1548 +msgid "Administration" msgstr "" -#: includes/functions.upl.php:826 -msgid "Adobe Photoshop Image" +#: templates/standard/template.symbolhelp.html:98 +#: templates/standard/template.symbolhelp.html:1554 +msgid "Users" msgstr "" -#: includes/functions.upl.php:829 includes/functions.upl.php:830 -msgid "Hypertext Markup Language Document" +#: templates/standard/template.symbolhelp.html:101 +#: templates/standard/template.symbolhelp.html:1609 +msgid "Groups" msgstr "" -#: includes/functions.upl.php:831 -msgid "Cascading Style Sheets" +#: templates/standard/template.symbolhelp.html:104 +#: templates/standard/template.symbolhelp.html:1664 +msgid "Languages" msgstr "" -#: includes/functions.upl.php:834 -msgid "LHA Archive" +#: templates/standard/template.symbolhelp.html:107 +#: templates/standard/template.symbolhelp.html:1734 +msgid "Clients" msgstr "" -#: includes/functions.upl.php:835 -msgid "RAR Archive" +#: templates/standard/template.symbolhelp.html:129 +msgid "Table of Contents" msgstr "" -#: includes/functions.upl.php:836 -msgid "ARJ Archive" +#: templates/standard/template.symbolhelp.html:166 +msgid "Execute query / Save" msgstr "" -#: includes/functions.upl.php:837 -msgid "bz2-compressed File" +#: templates/standard/template.symbolhelp.html:181 scripts/messageBox.js.php:79 +#: scripts/langref.php:21 includes/include.mod_package.php:311 +msgid "Cancel" msgstr "" -#: includes/functions.upl.php:838 -msgid "bzip-compressed File" +#: templates/standard/template.symbolhelp.html:208 +msgid "Change to MyContenido (Personal Settings)" msgstr "" -#: includes/functions.upl.php:839 -msgid "ZIP Archive" +#: templates/standard/template.symbolhelp.html:220 +msgid "Information (Impressum)" msgstr "" -#: includes/functions.upl.php:840 -msgid "TAR Archive" +#: templates/standard/template.symbolhelp.html:235 +msgid "Logout" msgstr "" -#: includes/functions.upl.php:841 -msgid "GZ Compressed File" +#: templates/standard/template.symbolhelp.html:314 +#: templates/standard/template.symbolhelp.html:506 +#: templates/standard/template.str_overview.html:148 +#: includes/cfg_language_de.inc.php:132 includes/include.str_overview.php:1041 +#: includes/include.str_overview.php:1044 +msgid "Configure category" msgstr "" -#: includes/functions.upl.php:844 -msgid "C Program Code" +#: templates/standard/template.symbolhelp.html:329 +#: includes/include.con_art_overview.php:887 +#: includes/include.con_art_overview.php:888 +msgid "Create new article" msgstr "" -#: includes/functions.upl.php:847 -msgid "C++ Program Code" +#: templates/standard/template.symbolhelp.html:341 +msgid "Article is start article / is not start article" msgstr "" -#: includes/functions.upl.php:849 -msgid "C or C++ Program Header" +#: templates/standard/template.symbolhelp.html:353 +#: templates/standard/template.symbolhelp.html:868 +#: templates/standard/template.symbolhelp.html:949 +msgid "Set template / Add to To-Do list" msgstr "" -#: includes/functions.upl.php:852 -msgid "PHP Program Code" +#: templates/standard/template.symbolhelp.html:365 +msgid "Configure article properties" msgstr "" -#: includes/functions.upl.php:853 -msgid "PHP Source File" +#: templates/standard/template.symbolhelp.html:377 +#: includes/cfg_language_de.inc.php:110 backend_search.php:677 +msgid "Configure template" msgstr "" -#: includes/functions.upl.php:855 -msgid "Adobe Acrobat Portable Document" +#: templates/standard/template.symbolhelp.html:389 +msgid "Element is online / offline (change through click)" msgstr "" -#: includes/functions.upl.php:858 -msgid "QuickTime Movie" +#: templates/standard/template.symbolhelp.html:401 +msgid "Element is protected / accessible (change through click)" msgstr "" -#: includes/functions.upl.php:859 -msgid "avi Movie" +#: templates/standard/template.symbolhelp.html:413 +#: includes/include.con_art_overview.php:503 backend_search.php:675 +msgid "Duplicate article" msgstr "" -#: includes/functions.upl.php:861 -msgid "MPEG Movie" +#: templates/standard/template.symbolhelp.html:425 +#: includes/cfg_language_de.inc.php:106 +#: includes/include.con_art_overview.php:551 backend_search.php:678 +msgid "Delete article" msgstr "" -#: includes/functions.upl.php:862 -msgid "Windows Media Video" +#: templates/standard/template.symbolhelp.html:439 +msgid "Lock / unlock folder (change through click)" msgstr "" -#: includes/functions.upl.php:864 -msgid "-File" +#: templates/standard/template.symbolhelp.html:451 +msgid "Set folder offline / online (change through click)" msgstr "" -#: includes/include.frontend.user_edit.php:50 -#: includes/include.frontend.user_edit.php:70 -#: includes/include.frontend.user_edit.php:107 -msgid "-- new user --" +#: templates/standard/template.symbolhelp.html:524 +#: includes/cfg_language_de.inc.php:120 +msgid "Rename category" msgstr "" -#: includes/include.frontend.user_edit.php:110 -msgid "Username empty or not set! Please choose one." +#: templates/standard/template.symbolhelp.html:542 +msgid "Create category" msgstr "" -#: includes/include.frontend.user_edit.php:115 -msgid "Password not set right now!" +#: templates/standard/template.symbolhelp.html:560 +msgid "Set category online / offline" msgstr "" -#: includes/include.frontend.user_edit.php:121 -msgid "Could not set new username: Username already exists" +#: templates/standard/template.symbolhelp.html:578 +msgid "Category is online and unprotected / protected" msgstr "" -#: includes/include.frontend.user_edit.php:128 -msgid "Could not set new password: Passwords don't match" +#: templates/standard/template.symbolhelp.html:596 +msgid "Category is offline and unprotected / protected" msgstr "" -#: includes/include.frontend.user_edit.php:177 -#: includes/cfg_language_de.inc.php:176 -msgid "Edit user" +#: templates/standard/template.symbolhelp.html:614 +msgid "Category is online, contains an error and is unprotected / protected" msgstr "" -#: includes/include.frontend.user_edit.php:185 -#: includes/include.rights_left_top.php:115 -msgid "User name" +#: templates/standard/template.symbolhelp.html:632 +msgid "Category is offline, contains an error and is unprotected / protected" msgstr "" -#: includes/include.frontend.user_edit.php:186 -#: includes/include.mycontenido_settings.php:116 -#: includes/include.rights_overview.php:217 -#: includes/include.rights_create.php:162 -msgid "New password" +#: templates/standard/template.symbolhelp.html:650 +msgid "Move up one category" msgstr "" -#: includes/include.frontend.user_edit.php:187 -msgid "New password (again)" +#: templates/standard/template.symbolhelp.html:665 +#: includes/cfg_language_de.inc.php:129 +msgid "Move category" msgstr "" -#: includes/include.frontend.user_edit.php:215 -msgid "WARNING" +#: templates/standard/template.symbolhelp.html:683 +msgid "Select move target" msgstr "" -#: includes/include.frontend.user_edit.php:215 +#: templates/standard/template.symbolhelp.html:701 +#: includes/cfg_language_de.inc.php:131 +msgid "Duplicate category" +msgstr "" + +#: templates/standard/template.symbolhelp.html:716 +#: templates/standard/template.symbolhelp.html:880 +#: templates/standard/template.symbolhelp.html:961 +#: templates/standard/template.symbolhelp.html:1031 +#: templates/standard/template.symbolhelp.html:1086 +#: templates/standard/template.symbolhelp.html:1141 +#: templates/standard/template.symbolhelp.html:1196 +#: templates/standard/template.symbolhelp.html:1306 +#: templates/standard/template.symbolhelp.html:1421 +#: templates/standard/template.symbolhelp.html:1585 +#: templates/standard/template.symbolhelp.html:1640 +#: templates/standard/template.symbolhelp.html:1710 +#: templates/standard/template.symbolhelp.html:1765 +#: templates/standard/template.symbolhelp.html:1871 +msgid "Delete / Delete not available" +msgstr "" + +#: templates/standard/template.symbolhelp.html:762 +msgid "Root upload folder" +msgstr "" + +#: templates/standard/template.symbolhelp.html:780 +msgid "Regular folder" +msgstr "" + +#: templates/standard/template.symbolhelp.html:853 +msgid "Layout in use" +msgstr "" + +#: templates/standard/template.symbolhelp.html:934 +msgid "Module in use" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1016 +#: includes/include.tpl_overview.php:111 includes/cfg_language_de.inc.php:167 +#: includes/cfg_language_de.inc.php:168 +msgid "Duplicate template" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1279 +#: includes/cfg_language_de.inc.php:217 +msgid "Create newsletter" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1294 +msgid "Copy newsletter" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1330 +#: templates/standard/template.symbolhelp.html:1361 +msgid "Recipient" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1373 +#: includes/cfg_language_de.inc.php:229 +msgid "Create recipient" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1385 +msgid "Remove recipient" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1397 +msgid "Recipient group" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1409 +#: includes/cfg_language_de.inc.php:235 +msgid "Create recipient group" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1503 +msgid "Article is online / offline" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1695 +msgid "Language active / not active" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1835 +#: includes/include.rights_left_top.php:103 +#: includes/cfg_language_de.inc.php:171 includes/cfg_language_de.inc.php:174 +#: includes/include.frontend.left_top.php:178 +msgid "Create user" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1847 +msgid "User group" +msgstr "" + +#: templates/standard/template.symbolhelp.html:1859 +msgid "Create user group" +msgstr "" + +#: templates/standard/template.log_main.html:15 +#: includes/include.systemsettings.php:60 +#: includes/include.systemsettings.php:174 +#: includes/include.rights_create.php:147 includes/include.client_edit.php:226 +#: includes/include.rights_overview.php:200 +#: includes/include.rights_overview.php:354 +#: includes/include.grouprights_overview.php:109 +#: includes/include.grouprights_overview.php:210 +#: includes/include.clientsettings.php:95 +#: includes/include.clientsettings.php:191 +#: includes/include.grouprights_create.php:99 +msgid "Value" +msgstr "" + +#: templates/standard/template.log_main.html:26 +#: templates/standard/template.log_main.html:51 +#: includes/include.mod_package.php:254 +msgid "Action" +msgstr "" + +#: templates/standard/template.log_main.html:38 +#: templates/standard/template.recipient_menu.html:88 +msgid "Limit" +msgstr "" + +#: templates/standard/template.log_main.html:49 +msgid "Date" +msgstr "" + +#: templates/standard/template.tpl_edit_form.html:42 +#: includes/include.lay_overview.php:101 includes/include.tpl_edit_form.php:160 +msgid "Layout" +msgstr "" + +#: templates/standard/template.tpl_edit_form.html:55 +#: includes/include.tpl_edit_form.php:161 +msgid "Layout description" +msgstr "" + +#: templates/standard/template.upl_files_overview.html:61 +msgid "Sort files" +msgstr "" + +#: templates/standard/template.upl_files_overview.html:88 +msgid "Image size" +msgstr "" + +#: templates/standard/template.str_overview.html:133 +#: templates/standard/template.str_overview.html:227 +#: includes/include.con_edit_form.php:211 includes/include.str_overview.php:594 +msgid "Alias" +msgstr "" + +#: templates/standard/template.str_overview.html:139 +#: includes/cfg_language_de.inc.php:105 includes/cfg_language_de.inc.php:124 +#: includes/include.str_overview.php:1055 +#: includes/include.str_overview.php:1057 +msgid "Protect category" +msgstr "" + +#: templates/standard/template.str_overview.html:157 +msgid "Category is a tree" +msgstr "" + +#: templates/standard/template.str_overview.html:164 +msgid "Position of category" +msgstr "" + +#: templates/standard/template.str_overview.html:233 +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.frontend.left_top.php:165 +#: includes/include.con_art_overview.php:79 +#: includes/include.upl_files_overview.php:530 backend_search.php:497 +msgid "Actions" +msgstr "" + +#: templates/standard/template.recipient_menu.html:92 +#: includes/include.con_left_top.php:237 +msgid "Search" +msgstr "" + +#: scripts/iZoom.js.php:70 scripts/iZoom.js.php:73 scripts/rights.js.php:67 +#: scripts/rights.js.php:70 scripts/langref.php:23 +msgid "Click to close" +msgstr "" + +#: scripts/HTMLObj.js.php:239 scripts/langref.php:8 +#: includes/include.client_artspec.php:144 +#: includes/include.con_art_overview.php:524 backend_search.php:648 +msgid "Make offline" +msgstr "" + +#: scripts/HTMLObj.js.php:242 scripts/HTMLObj.js.php:245 scripts/langref.php:9 +#: includes/include.str_overview.php:1049 +#: includes/include.str_overview.php:1051 +#: includes/include.client_artspec.php:140 +#: includes/include.con_art_overview.php:530 backend_search.php:652 +msgid "Make online" +msgstr "" + +#: scripts/HTMLObj.js.php:248 scripts/langref.php:10 +msgid "Protect" +msgstr "" + +#: scripts/HTMLObj.js.php:251 scripts/langref.php:11 +msgid "Remove protection" +msgstr "" + +#: scripts/HTMLObj.js.php:254 scripts/langref.php:12 +#: includes/include.con_left_top.php:369 +msgid "Choose template" +msgstr "" + +#: scripts/messageBox.js.php:78 scripts/langref.php:20 +msgid "Confirm" +msgstr "" + +#: scripts/messageBox.js.php:80 scripts/langref.php:22 +msgid "Close window" +msgstr "" + +#: scripts/articleObject.js.php:248 scripts/langref.php:13 +msgid "Overview cannot be displayed" +msgstr "" + +#: scripts/articleObject.js.php:257 scripts/articleObject.js.php:290 +#: scripts/articleObject.js.php:319 scripts/articleObject.js.php:335 +#: scripts/langref.php:18 +msgid "Editor can't be displayed" +msgstr "" + +#: scripts/articleObject.js.php:257 scripts/articleObject.js.php:290 +#: scripts/articleObject.js.php:319 +msgid "Can't edit articles in foreign languages." +msgstr "" + +#: scripts/articleObject.js.php:274 scripts/langref.php:15 +msgid "Article can't be displayed" +msgstr "" + +#: scripts/articleObject.js.php:274 scripts/articleObject.js.php:305 +#: scripts/articleObject.js.php:335 scripts/articleObject.js.php:360 +#: scripts/articleObject.js.php:379 scripts/langref.php:16 +msgid "No article was selected" +msgstr "" + +#: scripts/articleObject.js.php:305 scripts/langref.php:17 +msgid "Template configuration can't be displayed" +msgstr "" + +#: scripts/articleObject.js.php:360 scripts/langref.php:19 +msgid "Preview can't be displayed" +msgstr "" + +#: scripts/articleObject.js.php:379 +msgid "Tab can't be displayed" +msgstr "" + +#: scripts/langref.php:24 +msgid "Headline / HTML" +msgstr "" + +#: scripts/langref.php:25 +msgid "Text / HTML" +msgstr "" + +#: scripts/langref.php:26 +msgid "Text / Standard" +msgstr "" + +#: scripts/langref.php:27 +msgid "Picture" +msgstr "" + +#: scripts/langref.php:29 +msgid "Description / Standard" +msgstr "" + +#: scripts/langref.php:30 +msgid "Flash Movie" +msgstr "" + +#: scripts/langref.php:31 includes/include.CMS_SIMPLELINK.php:150 +msgid "Link" +msgstr "" + +#: scripts/langref.php:32 +msgid "Frame" +msgstr "" + +#: includes/include.mod_package.php:111 +#: includes/include.js_files_overview.php:104 +#: includes/include.html_tpl_files_overview.php:105 +#: includes/include.style_files_overview.php:104 +msgid "is not readable!" +msgstr "" + +#: includes/include.mod_package.php:123 +#: includes/include.js_files_overview.php:155 +#: includes/include.html_tpl_files_overview.php:156 +#: includes/include.style_files_overview.php:155 +msgid "Directory is not existing or readable!" +msgstr "" + +#: includes/include.mod_package.php:139 +msgid "No elements available" +msgstr "" + +#: includes/include.mod_package.php:180 includes/include.CMS_SWF.php:80 +#: includes/include.mycontenido_lastarticles.php:183 +#: includes/cfg_language_de.inc.php:370 includes/include.CMS_LINK.php:180 +#: includes/include.CMS_LINK.php:182 includes/include.upl_search_results.php:55 +#: includes/include.con_art_overview.php:457 includes/include.CMS_IMG.php:235 +#: includes/include.con_left_top.php:449 backend_search.php:669 +msgid "None" +msgstr "" + +#: includes/include.mod_package.php:188 +msgid "Javascript files" +msgstr "" + +#: includes/include.mod_package.php:189 +msgid "Module template files" +msgstr "" + +#: includes/include.mod_package.php:190 +msgid "Style files" +msgstr "" + +#: includes/include.mod_package.php:192 +msgid "Translations" +msgstr "" + +#: includes/include.mod_package.php:219 includes/include.mod_package.php:357 +#: includes/include.mod_edit_form.php:77 #, php-format -msgid "" -"The plugin %s delivered an array for the displayed titles, but did not " -"return an array for the contents." +msgid "Error while importing XML file: %s" msgstr "" -#: includes/include.frontend.user_edit.php:237 -#: includes/include.tpl_visualedit.php:146 -#: includes/include.tpl_edit_form.php:86 includes/include.tpl_edit_form.php:91 -#: includes/include.tpl_edit_form.php:203 -#: includes/include.tplcfg_edit_form.php:301 -#: includes/include.con_left_top.php:374 -#: includes/include.rights_overview.php:455 -#: includes/include.str_overview.php:188 includes/include.str_overview.php:656 -msgid "none" +#: includes/include.mod_package.php:238 +msgid "Skip" msgstr "" -#: includes/include.frontend.user_edit.php:240 -#: includes/include.rights_overview.php:458 -msgid "Group membership" +#: includes/include.mod_package.php:238 +msgid "Append" msgstr "" -#: includes/include.frontend.user_edit.php:241 -#: includes/include.con_left_top.php:275 includes/include.upl_edit.php:102 -msgid "Author" +#: includes/include.mod_package.php:238 +msgid "Overwrite" msgstr "" -#: includes/include.frontend.user_edit.php:242 -#: includes/include.upl_edit.php:103 -msgid "Last modified by" +#: includes/include.mod_package.php:239 +msgid "OK" msgstr "" -#: includes/include.lay_preview.php:29 includes/include.tpl_visualedit.php:84 -msgid "No such layout" +#: includes/include.mod_package.php:240 +msgid "Assign" msgstr "" -#: includes/rights.inc.php:273 includes/functions.stat.php:992 -#: includes/functions.stat.php:1018 -#: includes/include.grouprights_left_top.php:59 -#: includes/include.con_art_overview.php:866 -#: includes/include.rights_left_top.php:76 includes/grouprights.inc.php:157 +#: includes/include.mod_package.php:241 +msgid "Conflict" +msgstr "" + +#: includes/include.mod_package.php:242 +msgid "Ignored" +msgstr "" + +#: includes/include.mod_package.php:243 +msgid "- Select -" +msgstr "" + +#: includes/include.mod_package.php:252 includes/include.mod_package.php:361 +#: includes/include.mod_package.php:366 includes/include.stat_overview.php:90 +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.mycontenido.tasks.edit.php:137 +msgid "Status" +msgstr "" + +#: includes/include.mod_package.php:312 +msgid "Import" +msgstr "" + +#: includes/include.mod_package.php:361 +msgid "Import was not succesful, please check data and try again" +msgstr "" + +#: includes/include.mod_package.php:362 +msgid "Retry" +msgstr "" + +#: includes/include.mod_package.php:366 +msgid "Import succesfully finished" +msgstr "" + +#: includes/include.mod_package.php:367 +msgid "Finish" +msgstr "" + +#: includes/include.mod_package.php:398 includes/include.mod_edit_form.php:106 +#, php-format +msgid "Module is in use by %s (%s)" +msgstr "" + +#: includes/include.mod_package.php:421 +msgid "Edit package" +msgstr "" + +#: includes/include.mod_package.php:442 +msgid "Package GUID" +msgstr "" + +#: includes/include.mod_package.php:454 includes/include.mod_edit_form.php:423 +#: includes/include.mod_translate.php:174 +msgid "Import from file" +msgstr "" + +#: includes/include.mod_package.php:455 includes/include.mod_edit_form.php:424 +#: includes/include.mod_translate.php:173 +msgid "Export to file" +msgstr "" + +#: includes/include.mod_package.php:472 includes/include.mod_edit_form.php:440 +#: includes/include.mod_translate.php:184 +msgid "Mode" +msgstr "" + +#: includes/rights.inc.php:273 includes/grouprights.inc.php:157 +#: includes/include.rights_left_top.php:76 +#: includes/include.grouprights_left_top.php:59 includes/functions.stat.php:993 +#: includes/functions.stat.php:1019 includes/include.con_art_overview.php:770 msgid "All" msgstr "" @@ -571,1289 +1793,18 @@ msgstr "" msgid "Current user doesn't have any rights to any client/language." msgstr "" -#: includes/include.grouprights_menu.php:178 -#, php-format -msgid "Do you really want to delete the group %s?" -msgstr "" - -#: includes/include.grouprights_menu.php:196 -#: includes/cfg_language_de.inc.php:182 -msgid "Delete group" -msgstr "" - -#: includes/include.grouprights_menu.php:197 -#, php-format -msgid "Do you really want to delete the following group:

%s
" -msgstr "" - -#: includes/include.upl_left_top.php:53 includes/include.tpl_new.php:41 -#: includes/include.lay_new.php:40 includes/include.js_left_top.php:54 -#: includes/include.lang_left_top.php:82 -#: includes/include.style_left_top.php:54 -#: includes/include.frontend.left_top.php:181 -#: includes/include.frontend.left_top.php:445 includes/include.mod_new.php:76 -#: includes/include.html_tpl_left_top.php:54 -msgid "No Client selected" -msgstr "" - -#: includes/include.upl_left_top.php:74 -#: includes/include.rights_left_top.php:159 -#: includes/include.frontend.left_top.php:265 includes/include.mod_new.php:169 -msgid "Search for" -msgstr "" - -#: includes/include.upl_left_top.php:112 -msgid "Create directory in" -msgstr "" - -#: includes/include.mod_sync.php:39 -msgid "Syncing Modules!" -msgstr "" - -#: includes/include.mod_sync.php:44 includes/include.mod_sync.php:56 -msgid "Module " -msgstr "" - -#: includes/include.mod_sync.php:44 -msgid "nothing to do" -msgstr "" - -#: includes/include.mod_sync.php:56 -msgid "synchronized" -msgstr "" - -#: includes/include.mod_sync.php:61 -msgid "No modules to sync!" -msgstr "" - -#: includes/include.mod_sync.php:66 -msgid "Nothing to do!" -msgstr "" - -#: includes/include.logs.php:64 -msgid "Submit query" -msgstr "" - -#: includes/include.logs.php:75 -msgid "All users" -msgstr "" - -#: includes/include.logs.php:77 -msgid "All actions" -msgstr "" - -#: includes/include.logs.php:199 -msgid "Unlimited" -msgstr "" - -#: includes/include.logs.php:200 includes/include.logs.php:201 -#: includes/include.logs.php:202 includes/include.logs.php:203 -#: includes/include.logs.php:204 -msgid "Entries" -msgstr "" - -#: includes/include.logs.php:275 -msgid "No results" -msgstr "" - -#: includes/include.frontend.group_rights.php:47 -msgid "Invalid plugin" -msgstr "" - -#: includes/include.frontend.group_rights.php:96 -#, php-format -msgid "Permissions for plugin '%s'" -msgstr "" - -#: includes/include.frontend.group_rights.php:101 -msgid "(All)" -msgstr "" - -#: includes/include.frontend.group_rights.php:109 -msgid "Global rights" -msgstr "" - -#: includes/include.frontend.group_rights.php:131 -msgid "No items found" -msgstr "" - -#: includes/include.style_files_overview.php:104 -#: includes/include.js_files_overview.php:104 -#: includes/include.mod_package.php:111 -#: includes/include.html_tpl_files_overview.php:105 -msgid "is not readable!" -msgstr "" - -#: includes/include.style_files_overview.php:131 -#: includes/include.js_files_overview.php:131 -#: includes/include.system_db_backup.php:294 -#: includes/include.html_tpl_files_overview.php:132 -msgid "Delete File" -msgstr "" - -#: includes/include.style_files_overview.php:132 -#: includes/include.js_files_overview.php:132 -#: includes/include.html_tpl_files_overview.php:133 -#, php-format -msgid "Do you really want to delete the following file:

%s
" -msgstr "" - -#: includes/include.style_files_overview.php:155 -#: includes/include.js_files_overview.php:155 -#: includes/include.mod_package.php:123 -#: includes/include.html_tpl_files_overview.php:156 -msgid "Directory is not existing or readable!" -msgstr "" - -#: includes/include.CMS_IMG.php:186 includes/include.CMS_EASYIMG.php:146 -#, php-format -msgid "Edit image for container %s" -msgstr "" - -#: includes/include.CMS_IMG.php:235 includes/include.CMS_LINK.php:180 -#: includes/include.CMS_LINK.php:182 includes/include.CMS_SWF.php:80 -#: includes/include.con_left_top.php:449 -#: includes/include.con_art_overview.php:523 -#: includes/include.upl_search_results.php:55 -#: includes/include.mod_package.php:180 -#: includes/include.mycontenido_lastarticles.php:183 -#: includes/cfg_language_de.inc.php:370 backend_search.php:669 -msgid "None" -msgstr "" - -#: includes/include.CMS_IMG.php:275 -msgid "Directory / File" -msgstr "" - -#: includes/include.CMS_IMG.php:283 -#: includes/include.upl_files_overview.php:526 -#: includes/include.upl_search_results.php:286 -#: includes/include.upl_edit.php:101 -msgid "Preview" -msgstr "" - -#: includes/include.tpl_new.php:39 -msgid "New template" -msgstr "" - -#: includes/functions.stat.php:44 -msgid "Info about article" -msgstr "" - -#: includes/functions.stat.php:46 -msgid "Info about directory" -msgstr "" - -#: includes/functions.stat.php:285 -msgid "Category is online" -msgstr "" - -#: includes/functions.stat.php:287 -msgid "Category is offline" -msgstr "" - -#: includes/functions.stat.php:313 includes/functions.stat.php:314 -#: includes/functions.stat.php:644 includes/functions.stat.php:645 -#: includes/grouprights_str.inc.php:215 -#: includes/include.upl_dirs_overview.php:56 includes/rights_con.inc.php:227 -#: includes/include.str_overview.php:169 includes/grouprights_con.inc.php:241 +#: includes/include.upl_dirs_overview.php:56 +#: includes/grouprights_str.inc.php:215 includes/include.str_overview.php:162 +#: includes/rights_con.inc.php:227 includes/functions.stat.php:313 +#: includes/functions.stat.php:314 includes/functions.stat.php:644 +#: includes/functions.stat.php:645 includes/grouprights_con.inc.php:241 #: includes/rights_str.inc.php:221 msgid "Open category" msgstr "" -#: includes/functions.stat.php:478 -msgid "Sum" -msgstr "" - -#: includes/functions.stat.php:989 includes/functions.stat.php:1015 -#: includes/include.stat_overview.php:50 -msgid "Top 10" -msgstr "" - -#: includes/functions.stat.php:990 includes/functions.stat.php:1016 -#: includes/include.stat_overview.php:53 -msgid "Top 20" -msgstr "" - -#: includes/functions.stat.php:991 includes/functions.stat.php:1017 -#: includes/include.stat_overview.php:56 -msgid "Top 30" -msgstr "" - -#: includes/include.upl_files_overview.php:84 -#: includes/include.upl_edit.php:304 includes/include.upl_files_upload.php:67 -msgid "Directory not writable" -msgstr "" - -#: includes/include.upl_files_overview.php:240 -#, php-format -msgid "" -"The uploaded file (%s) exceeds the upload_max_filesize directive in php.ini." -msgstr "" - -#: includes/include.upl_files_overview.php:250 -#, php-format -msgid "Error while uploading file (%s)." -msgstr "" - -#: includes/include.upl_files_overview.php:302 -msgid "Errors while uploading file(s). Some or all files were not uploaded." -msgstr "" - -#: includes/include.upl_files_overview.php:386 -#: includes/include.upl_files_overview.php:388 -msgid "Use file" -msgstr "" - -#: includes/include.upl_files_overview.php:449 -#: includes/include.upl_files_overview.php:452 -#: includes/include.upl_files_overview.php:454 -#: includes/include.upl_search_results.php:190 -#: includes/include.upl_search_results.php:195 -#: includes/include.upl_search_results.php:198 -msgid "Filename / Description" -msgstr "" - -#: includes/include.upl_files_overview.php:459 -#: includes/include.upl_files_overview.php:462 -#: includes/include.upl_files_overview.php:464 -#: includes/include.upl_search_results.php:218 -#: includes/include.upl_search_results.php:223 -#: includes/include.upl_search_results.php:226 -msgid "Size" -msgstr "" - -#: includes/include.upl_files_overview.php:469 -#: includes/include.upl_files_overview.php:472 -#: includes/include.upl_files_overview.php:474 -#: includes/include.systemsettings.php:60 -#: includes/include.systemsettings.php:170 -#: includes/include.upl_search_results.php:232 -#: includes/include.upl_search_results.php:237 -#: includes/include.upl_search_results.php:240 -#: includes/include.mod_edit_form.php:384 -#: includes/include.clientsettings.php:98 -#: includes/include.clientsettings.php:185 includes/include.mod_new.php:87 -#: includes/include.mod_new.php:110 -msgid "Type" -msgstr "" - -#: includes/include.upl_files_overview.php:480 -msgid "Delete Files" -msgstr "" - -#: includes/include.upl_files_overview.php:480 -msgid "Are you sure you want to delete the selected files?" -msgstr "" - -#: includes/include.upl_files_overview.php:481 -msgid "Delete selected files" -msgstr "" - -#: includes/include.upl_files_overview.php:497 -msgid "Flip Selection" -msgstr "" - -#: includes/include.upl_files_overview.php:502 -#: includes/include.upl_files_upload.php:59 -msgid "Path:" -msgstr "" - -#: includes/include.upl_files_overview.php:517 -#: includes/include.upl_search_results.php:276 -msgid "Files per Page" -msgstr "" - -#: includes/include.upl_files_overview.php:525 -msgid "Mark" -msgstr "" - -#: includes/include.upl_files_overview.php:530 -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.con_art_overview.php:83 -#: includes/include.frontend.left_top.php:165 backend_search.php:497 -#: templates/standard/template.str_overview.html:233 -msgid "Actions" -msgstr "" - -#: includes/include.upl_files_overview.php:632 -msgid "Display properties" -msgstr "" - -#: includes/include.upl_files_overview.php:658 -#: includes/include.upl_search_results.php:417 -#: classes/class.cms_filelist.php:540 classes/class.cms_filelist.php:541 -msgid "No files found" -msgstr "" - -#: includes/include.upl_files_overview.php:681 -#: includes/include.upl_search_results.php:445 -msgid "Previous Page" -msgstr "" - -#: includes/include.upl_files_overview.php:687 -#: includes/include.upl_search_results.php:452 -msgid "Next Page" -msgstr "" - -#: includes/include.upl_files_overview.php:727 -#: includes/include.upl_search_results.php:490 -msgid "Page" -msgstr "" - -#: includes/include.upl_files_overview.php:752 -#: includes/cfg_language_de.inc.php:143 -msgid "Delete file" -msgstr "" - -#: includes/include.upl_files_overview.php:753 -msgid "Do you really want to delete the following file:
" -msgstr "" - -#: includes/include.upl_files_overview.php:884 -#: includes/include.upl_search_results.php:605 -msgid "Enter new filename" -msgstr "" - -#: includes/grouprights_lay.inc.php:85 includes/rights_lay.inc.php:75 -msgid "Layout name" -msgstr "" - -#: includes/grouprights_lay.inc.php:113 includes/rights_lay.inc.php:100 -#: includes/rights_mod.inc.php:99 includes/grouprights_str.inc.php:105 -#: includes/grouprights_tpl.inc.php:101 includes/rights_con.inc.php:112 -#: includes/grouprights_area.inc.php:86 includes/grouprights_mod.inc.php:99 -#: includes/grouprights_con.inc.php:111 includes/rights_str.inc.php:106 -#: includes/rights_area.inc.php:87 includes/rights_tpl.inc.php:100 -msgid "Check all" -msgstr "" - -#: includes/include.grouprights_left_top.php:60 -#: includes/include.rights_left_top.php:77 -msgid "Frontend only" -msgstr "" - -#: includes/include.grouprights_left_top.php:61 -#: includes/include.rights_left_top.php:78 -msgid "Backend only" -msgstr "" - -#: includes/include.grouprights_left_top.php:90 -#: includes/cfg_language_de.inc.php:181 -#: includes/include.frontend.left_top.php:442 -msgid "Create group" -msgstr "" - -#: includes/include.tpl_edit_form.php:43 -msgid "- New Template -" -msgstr "" - -#: includes/include.tpl_edit_form.php:148 includes/cfg_language_de.inc.php:165 -msgid "Edit template" -msgstr "" - -#: includes/include.tpl_edit_form.php:151 -#: includes/include.js_edit_form.php:175 -#: includes/include.html_tpl_history.php:163 -#: includes/include.systemsettings.php:61 -#: includes/include.systemsettings.php:174 -#: includes/include.rights_left_top.php:116 -#: includes/include.mod_edit_form.php:377 -#: includes/include.mod_edit_form.php:381 includes/include.mod_history.php:131 -#: includes/include.js_history.php:155 includes/include.mod_package.php:235 -#: includes/include.mod_package.php:253 includes/include.mod_package.php:422 -#: includes/include.clientsettings.php:98 -#: includes/include.clientsettings.php:189 -#: includes/include.lay_history.php:120 includes/include.lay_edit_form.php:204 -#: includes/include.rights_overview.php:209 -#: includes/include.html_tpl_edit_form.php:213 -#: includes/include.style_history.php:160 -#: includes/include.style_edit_form.php:197 includes/include.mod_new.php:87 -#: includes/include.rights_create.php:156 -#: templates/standard/template.tpl_edit_form.html:19 -#: templates/standard/template.mod_edit_form.html:23 -#: templates/standard/template.lay_edit_form.html:22 -#: classes/class.ajax.php:162 classes/class.ajax.php:179 -msgid "Name" -msgstr "" - -#: includes/include.tpl_edit_form.php:158 -#: includes/include.tpl_edit_form.php:234 -msgid "Default" -msgstr "" - -#: includes/include.tpl_edit_form.php:160 -#: includes/include.lay_overview.php:101 -#: templates/standard/template.tpl_edit_form.html:42 -msgid "Layout" -msgstr "" - -#: includes/include.tpl_edit_form.php:161 -#: templates/standard/template.tpl_edit_form.html:55 -msgid "Layout description" -msgstr "" - -#: includes/include.js_edit_form.php:159 -#: includes/include.html_tpl_edit_form.php:197 -#: includes/include.style_edit_form.php:180 -msgid "Edit file" -msgstr "" - -#: includes/include.js_edit_form.php:177 -#: includes/include.html_tpl_history.php:165 -#: includes/include.js_history.php:157 includes/include.lay_history.php:122 -#: includes/include.lay_edit_form.php:206 -#: includes/include.lay_edit_form.php:217 -#: includes/include.html_tpl_edit_form.php:215 -#: includes/include.style_history.php:162 -#: includes/include.style_edit_form.php:199 -msgid "Code" -msgstr "" - -#: includes/include.CMS_LINK.php:153 -msgid "External link" -msgstr "" - -#: includes/include.CMS_LINK.php:210 -msgid "Internal link" -msgstr "" - -#: includes/include.CMS_LINK.php:215 includes/include.CMS_LINK.php:244 -#: includes/include.CMS_LINK.php:273 includes/include.CMS_LINK.php:288 -#: includes/include.CMS_LINK.php:304 includes/functions.general.php:1136 -#: includes/functions.general.php:1176 includes/include.str_overview.php:90 -#: classes/class.cms_teaser.php:353 classes/class.cms_teaser.php:382 -#: classes/class.cms_teaser.php:419 classes/class.cms_teaser.php:447 -#: classes/class.cms_teaser.php:476 classes/class.cms_teaser.php:539 -msgid "Please choose" -msgstr "" - -#: includes/include.CMS_LINK.php:240 -msgid "Link to a document" -msgstr "" - -#: includes/include.CMS_LINK.php:270 -msgid "Link to an image" -msgstr "" - -#: includes/include.CMS_LINK.php:285 -msgid "Link to an archive" -msgstr "" - -#: includes/include.CMS_LINK.php:300 -msgid "Link to a media file" -msgstr "" - -#: includes/include.CMS_LINK.php:316 -msgid "Link to any file" -msgstr "" - -#: includes/include.CMS_LINK.php:340 -msgid "Upload file" -msgstr "" - -#: includes/include.CMS_LINK.php:345 -msgid "Target frame" -msgstr "" - -#: includes/include.CMS_LINK.php:353 -msgid "Open link in new window" -msgstr "" - -#: includes/include.CMS_LINK.php:375 -msgid "Open in new window" -msgstr "" - -#: includes/include.tpl_overview.php:96 includes/include.lay_overview.php:83 -#: includes/include.mod_overview.php:196 -msgid "Click for more information about usage" -msgstr "" - -#: includes/include.tpl_overview.php:99 includes/cfg_language_de.inc.php:164 -msgid "Delete template" -msgstr "" - -#: includes/include.tpl_overview.php:100 -#, php-format -msgid "Do you really want to delete the following template:

%s
" -msgstr "" - -#: includes/include.tpl_overview.php:105 -msgid "Template in use, cannot delete" -msgstr "" - -#: includes/include.tpl_overview.php:111 includes/cfg_language_de.inc.php:167 -#: includes/cfg_language_de.inc.php:168 -#: templates/standard/template.symbolhelp.html:1016 -msgid "Duplicate template" -msgstr "" - -#: includes/include.tpl_overview.php:128 -#, php-format -msgid "The template '%s' is used for following categories and articles" -msgstr "" - -#: includes/functions.system.php:55 -msgid "Can't clear install error log : Access is denied!" -msgstr "" - -#: includes/functions.system.php:60 -msgid "error log successfully cleared" -msgstr "" - -#: includes/functions.system.php:278 -msgid "Contenido version" -msgstr "" - -#: includes/functions.system.php:281 -msgid "Contenido path" -msgstr "" - -#: includes/functions.system.php:283 -msgid "Contenido HTML path" -msgstr "" - -#: includes/functions.system.php:285 -msgid "Contenido full HTML path" -msgstr "" - -#: includes/functions.system.php:287 -msgid "Contenido frontend path" -msgstr "" - -#: includes/functions.system.php:289 -msgid "Contenido PHPLIB path" -msgstr "" - -#: includes/functions.system.php:291 -msgid "Contenido wysiwyg path" -msgstr "" - -#: includes/functions.system.php:293 -msgid "Contenido wysiwyg HTML path" -msgstr "" - -#: includes/functions.system.php:296 -msgid "Host name" -msgstr "" - -#: includes/functions.system.php:299 -msgid "Browser path" -msgstr "" - -#: includes/functions.system.php:321 -msgid "client settings" -msgstr "" - -#: includes/functions.system.php:322 -msgid "values" -msgstr "" - -#: includes/functions.system.php:353 -msgid "language(s)" -msgstr "" - -#: includes/functions.system.php:362 -msgid "htmlpath" -msgstr "" - -#: includes/functions.system.php:366 -msgid "frontendpath" -msgstr "" - -#: includes/functions.system.php:378 -msgid "No permissions!" -msgstr "" - -#: includes/functions.system.php:384 -msgid "Number of installed clients: " -msgstr "" - -#: includes/functions.system.php:387 -msgid "Client informations" -msgstr "" - -#: includes/functions.system.php:394 -msgid "Number of users" -msgstr "" - -#: includes/functions.system.php:401 includes/include.stat_overview.php:91 -msgid "Number of articles" -msgstr "" - -#: includes/functions.system.php:404 -msgid "Server operating system" -msgstr "" - -#: includes/functions.system.php:408 -msgid "PHP database extension" -msgstr "" - -#: includes/functions.system.php:410 -msgid "Database server version" -msgstr "" - -#: includes/functions.system.php:413 -msgid "Installed PHP version" -msgstr "" - -#: includes/functions.system.php:418 includes/functions.system.php:422 -#: includes/functions.system.php:426 includes/functions.system.php:447 -msgid "activated" -msgstr "" - -#: includes/functions.system.php:418 includes/functions.system.php:422 -#: includes/functions.system.php:426 includes/functions.system.php:447 -msgid "deactivated" -msgstr "" - -#: includes/functions.system.php:439 -msgid "nothing disabled" -msgstr "" - -#: includes/functions.system.php:440 -msgid "Disabled functions" -msgstr "" - -#: includes/functions.system.php:443 -msgid "loaded" -msgstr "" - -#: includes/functions.system.php:443 -msgid "not loaded" -msgstr "" - -#: includes/functions.system.php:444 -msgid "Gettext extension" -msgstr "" - -#: includes/functions.system.php:455 includes/main.login.php:213 -msgid "Settings" -msgstr "" - -#: includes/functions.system.php:456 -msgid "Values" -msgstr "" - -#: includes/functions.system.php:473 -msgid "GD library" -msgstr "" - -#: includes/functions.system.php:636 -msgid "an error occured while sending your bug report! Please try again" -msgstr "" - -#: includes/functions.system.php:639 -msgid "bug report forwarded" -msgstr "" - -#: includes/functions.system.php:645 -msgid "please fill out all mandatory fields" -msgstr "" - -#: includes/functions.system.php:649 -msgid "please enter a valid E-Mail adress" -msgstr "" - -#: includes/functions.system.php:653 -msgid "you must agree the declaration of consent" -msgstr "" - -#: includes/include.grouprights_create.php:57 -msgid "New Group" -msgstr "" - -#: includes/include.grouprights_create.php:71 -msgid "group created" -msgstr "" - -#: includes/include.grouprights_create.php:76 -msgid "Group couldn't created" -msgstr "" - -#: includes/include.grouprights_create.php:94 -#: includes/include.CMS_EASYIMG.php:158 includes/include.client_edit.php:227 -#: includes/include.grouprights_overview.php:102 -#: includes/include.rights_overview.php:192 -#: includes/include.rights_create.php:142 -#: classes/widgets/class.widgets.tableedit.php:188 -#: classes/widgets/class.widgets.views.php:80 classes/class.ui.php:351 -msgid "Save changes" -msgstr "" - -#: includes/include.grouprights_create.php:96 -#: includes/include.client_edit.php:236 -#: includes/include.grouprights_overview.php:106 -#: includes/include.grouprights_overview.php:209 -#: includes/include.rights_overview.php:197 -#: includes/include.rights_overview.php:353 -#: includes/include.rights_create.php:144 -msgid "Property" -msgstr "" - -#: includes/include.grouprights_create.php:99 -#: includes/include.systemsettings.php:62 -#: includes/include.systemsettings.php:178 -#: includes/include.client_edit.php:239 includes/include.clientsettings.php:98 -#: includes/include.clientsettings.php:193 -#: includes/include.grouprights_overview.php:109 -#: includes/include.grouprights_overview.php:210 -#: includes/include.rights_overview.php:200 -#: includes/include.rights_overview.php:354 -#: includes/include.rights_create.php:147 -#: templates/standard/template.log_main.html:15 -msgid "Value" -msgstr "" - -#: includes/include.grouprights_create.php:102 -#: includes/include.frontend.group_edit.php:221 -msgid "Group name" -msgstr "" - -#: includes/include.grouprights_create.php:123 -#: includes/include.grouprights_overview.php:129 -#: includes/include.rights_overview.php:271 -#: includes/include.rights_create.php:215 -msgid "System administrator" -msgstr "" - -#: includes/include.grouprights_create.php:141 -#: includes/include.grouprights_overview.php:147 -#: includes/include.rights_overview.php:289 -#: includes/include.rights_create.php:233 -msgid "Administrator" -msgstr "" - -#: includes/include.grouprights_create.php:156 -#: includes/include.grouprights_overview.php:163 -#: includes/include.rights_overview.php:305 -#: includes/include.rights_create.php:248 -msgid "Access clients" -msgstr "" - -#: includes/include.grouprights_create.php:172 -#: includes/include.grouprights_overview.php:180 -#: includes/include.rights_overview.php:322 -#: includes/include.rights_create.php:263 -msgid "Access languages" -msgstr "" - -#: includes/include.html_tpl_history.php:64 -#: includes/include.mod_history.php:57 includes/include.js_history.php:60 -#: includes/include.lay_history.php:51 includes/include.style_history.php:62 -msgid "Versioning is not activated" -msgstr "" - -#: includes/include.html_tpl_history.php:129 -#: includes/include.js_history.php:125 -msgid "Edit JScript" -msgstr "" - -#: includes/include.html_tpl_history.php:166 -#: includes/include.mod_history.php:135 includes/include.js_history.php:158 -#: includes/include.lay_history.php:123 includes/include.style_history.php:163 -msgid "Copy to current" -msgstr "" - -#: includes/include.html_tpl_history.php:179 -#: includes/include.html_tpl_history.php:187 -msgid "No template history available" -msgstr "" - -#: includes/include.html_tpl_history.php:185 -#: includes/include.mod_history.php:150 includes/include.js_history.php:177 -#: includes/include.lay_history.php:135 includes/include.style_history.php:182 -msgid "Version history was cleared" -msgstr "" - -#: includes/include.client_left_top.php:50 -#: includes/cfg_language_de.inc.php:243 -msgid "Create client" -msgstr "" - -#: includes/include.todo.popup.php:58 -msgid "Add TODO item" -msgstr "" - -#: includes/include.todo.popup.php:67 -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.mycontenido.tasks.edit.php:68 -msgid "Subject" -msgstr "" - -#: includes/include.todo.popup.php:75 -#: includes/include.mycontenido.tasks.edit.php:100 -msgid "Reminder date" -msgstr "" - -#: includes/include.todo.popup.php:79 -#: includes/include.mycontenido.tasks.edit.php:75 -#: includes/include.upl_edit.php:219 -#: templates/standard/template.con_edit_form.html:150 -#: templates/standard/template.log_main.html:34 -msgid "End date" -msgstr "" - -#: includes/include.todo.popup.php:80 -msgid "eMail notification" -msgstr "" - -#: includes/include.todo.popup.php:82 -#: includes/include.mycontenido.tasks.edit.php:81 -msgid "Reminder options" -msgstr "" - -#: includes/include.todo.popup.php:124 -#: includes/include.mycontenido.tasks.edit.php:65 -msgid "Assigned to" -msgstr "" - -#: includes/include.lay_new.php:38 -msgid "New Layout" -msgstr "" - -#: includes/functions.general.php:103 -#: classes/datatypes/class.datatype.datetime.php:140 -msgid "January" -msgstr "" - -#: includes/functions.general.php:106 -#: classes/datatypes/class.datatype.datetime.php:141 -msgid "February" -msgstr "" - -#: includes/functions.general.php:109 -#: classes/datatypes/class.datatype.datetime.php:142 -msgid "March" -msgstr "" - -#: includes/functions.general.php:112 -#: classes/datatypes/class.datatype.datetime.php:143 -msgid "April" -msgstr "" - -#: includes/functions.general.php:115 -#: classes/datatypes/class.datatype.datetime.php:144 -msgid "May" -msgstr "" - -#: includes/functions.general.php:118 -#: classes/datatypes/class.datatype.datetime.php:145 -msgid "June" -msgstr "" - -#: includes/functions.general.php:121 -#: classes/datatypes/class.datatype.datetime.php:146 -msgid "July" -msgstr "" - -#: includes/functions.general.php:124 -#: classes/datatypes/class.datatype.datetime.php:147 -msgid "August" -msgstr "" - -#: includes/functions.general.php:127 -#: classes/datatypes/class.datatype.datetime.php:148 -msgid "September" -msgstr "" - -#: includes/functions.general.php:130 -#: classes/datatypes/class.datatype.datetime.php:149 -msgid "October" -msgstr "" - -#: includes/functions.general.php:133 -#: classes/datatypes/class.datatype.datetime.php:150 -msgid "November" -msgstr "" - -#: includes/functions.general.php:136 -#: classes/datatypes/class.datatype.datetime.php:151 -msgid "December" -msgstr "" - -#: includes/functions.general.php:150 -#: classes/datatypes/class.datatype.datetime.php:160 -msgid "Monday" -msgstr "" - -#: includes/functions.general.php:153 -#: classes/datatypes/class.datatype.datetime.php:161 -msgid "Tuesday" -msgstr "" - -#: includes/functions.general.php:156 -#: classes/datatypes/class.datatype.datetime.php:162 -msgid "Wednesday" -msgstr "" - -#: includes/functions.general.php:159 -#: classes/datatypes/class.datatype.datetime.php:163 -msgid "Thursday" -msgstr "" - -#: includes/functions.general.php:162 -#: classes/datatypes/class.datatype.datetime.php:164 -msgid "Friday" -msgstr "" - -#: includes/functions.general.php:165 -msgid "Saterday" -msgstr "" - -#: includes/functions.general.php:168 -#: classes/datatypes/class.datatype.datetime.php:159 -#: classes/datatypes/class.datatype.datetime.php:166 -msgid "Sunday" -msgstr "" - -#: includes/functions.general.php:1977 -#, php-format -msgid "MySQL Database not reachable for installation %s" -msgstr "" - -#: includes/functions.general.php:1980 -#, php-format -msgid "" -"The MySQL Database for the installation %s is not reachable. Please check if " -"this is a temporary problem or if it is a real fault." -msgstr "" - -#: includes/rights_mod.inc.php:75 includes/grouprights_mod.inc.php:73 -msgid "Module name" -msgstr "" - -#: includes/include.client_artspec.php:79 -#: includes/include.con_edit_form.php:241 -msgid "Article specification" -msgstr "" - -#: includes/include.client_artspec.php:80 -#: includes/include.mycontenido.tasks.php:397 -#: includes/include.mycontenido_settings.php:127 -#: includes/include.lay_edit_form.php:207 -msgid "Options" -msgstr "" - -#: includes/include.client_artspec.php:90 -#: includes/include.systemsettings.php:71 -#: includes/include.systemsettings.php:75 -#: includes/include.clientsettings.php:114 includes/include.upl_edit.php:66 -msgid "Edit" -msgstr "" - -#: includes/include.client_artspec.php:94 -#: includes/include.systemsettings.php:79 -#: includes/include.systemsettings.php:81 -#: includes/include.clientsettings.php:108 -msgid "Delete" -msgstr "" - -#: includes/include.client_artspec.php:131 -msgid "Save" -msgstr "" - -#: includes/include.client_artspec.php:140 -#: includes/include.con_art_overview.php:601 -#: includes/include.str_overview.php:957 includes/include.str_overview.php:959 -#: backend_search.php:652 scripts/HTMLObj.js.php:242 -#: scripts/HTMLObj.js.php:245 scripts/langref.php:9 -msgid "Make online" -msgstr "" - -#: includes/include.client_artspec.php:144 -#: includes/include.con_art_overview.php:593 backend_search.php:648 -#: scripts/HTMLObj.js.php:239 scripts/langref.php:8 -msgid "Make offline" -msgstr "" - -#: includes/include.client_artspec.php:150 -msgid "Make this article specification default" -msgstr "" - -#: includes/include.client_artspec.php:154 -msgid "This article specification is default" -msgstr "" - -#: includes/include.client_artspec.php:163 -#: includes/include.con_edit_form.php:238 -msgid "No article specifications found!" -msgstr "" - -#: includes/include.client_artspec.php:173 -msgid "Create new article specification" -msgstr "" - -#: includes/include.client_artspec.php:176 -msgid "Specification name" -msgstr "" - -#: includes/include.mycontenido.tasks.php:128 -msgid "No status type set" -msgstr "" - -#: includes/include.mycontenido.tasks.php:155 -#, php-format -msgid "%d %% complete" -msgstr "" - -#: includes/include.mycontenido.tasks.php:196 -msgid "Today" -msgstr "" - -#: includes/include.mycontenido.tasks.php:201 -#: includes/include.mycontenido.tasks.php:203 -msgid "Day(s)" -msgstr "" - -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.con_edit_form.php:284 includes/include.upl_artlist.php:81 -#: templates/standard/template.mycontenido_lastarticles.html:64 -msgid "Created" -msgstr "" - -#: includes/include.mycontenido.tasks.php:276 -msgid "End Date" -msgstr "" - -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.mycontenido.tasks.edit.php:137 -#: includes/include.stat_overview.php:90 includes/include.mod_package.php:252 -#: includes/include.mod_package.php:361 includes/include.mod_package.php:366 -msgid "Status" -msgstr "" - -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.mycontenido.tasks.edit.php:132 -msgid "Priority" -msgstr "" - -#: includes/include.mycontenido.tasks.php:276 -#, php-format -msgid "%% complete" -msgstr "" - -#: includes/include.mycontenido.tasks.php:276 -msgid "Due in" -msgstr "" - -#: includes/include.mycontenido.tasks.php:302 -msgid "Unnamed item" -msgstr "" - -#: includes/include.mycontenido.tasks.php:307 -msgid "No end date set" -msgstr "" - -#: includes/include.mycontenido.tasks.php:314 -msgid "No status set" -msgstr "" - -#: includes/include.mycontenido.tasks.php:338 -msgid "Delete item" -msgstr "" - -#: includes/include.mycontenido.tasks.php:345 -msgid "Edit item" -msgstr "" - -#: includes/include.mycontenido.tasks.php:376 -msgid "Restrict display" -msgstr "" - -#: includes/include.mycontenido.tasks.php:380 classes/class.version.php:522 -msgid "Refresh" -msgstr "" - -#: includes/include.mycontenido.tasks.php:386 -msgid "Hide done tasks" -msgstr "" - -#: includes/include.mycontenido.tasks.php:401 -msgid "No tasks found" -msgstr "" - -#: includes/include.systemsettings.php:47 -msgid "Please set this property in systemsettings directly" -msgstr "" - -#: includes/include.systemsettings.php:157 -#: includes/include.clientsettings.php:172 -msgid "No defined properties" -msgstr "" - -#: includes/include.systemsettings.php:167 -#: includes/include.clientsettings.php:181 -msgid "Add new variable" -msgstr "" - -#: includes/include.con_edit_form.php:134 -#: includes/include.tplcfg_edit_form.php:57 -#: external/backendedit/front_content.php:484 -#: external/frontend/front_content.php:494 -#, php-format -msgid "Article is in use by %s (%s)" -msgstr "" - -#: includes/include.con_edit_form.php:208 -#: includes/include.con_art_overview.php:78 -#: includes/include.con_art_overview.php:746 -#: includes/include.stat_overview.php:89 includes/include.upl_artlist.php:81 -#: backend_search.php:492 -#: templates/standard/template.mycontenido_lastarticles.html:62 -msgid "Title" -msgstr "" - -#: includes/include.con_edit_form.php:211 -#: includes/include.str_overview.php:509 -#: templates/standard/template.str_overview.html:133 -#: templates/standard/template.str_overview.html:227 -msgid "Alias" -msgstr "" - -#: includes/include.con_edit_form.php:253 -msgid "Articlelink" -msgstr "" - -#: includes/include.con_edit_form.php:260 -msgid "Select an entry to display link" -msgstr "" - -#: includes/include.con_edit_form.php:261 -msgid "Article only" -msgstr "" - -#: includes/include.con_edit_form.php:262 -msgid "Article with Category" -msgstr "" - -#: includes/include.con_edit_form.php:263 -msgid "Article with Category and Language" -msgstr "" - -#: includes/include.con_edit_form.php:264 -msgid "Article with Language" -msgstr "" - -#: includes/include.con_edit_form.php:278 -msgid "Author (Creator)" -msgstr "" - -#: includes/include.con_edit_form.php:288 -msgid "Author (Modifier)" -msgstr "" - -#: includes/include.con_edit_form.php:289 -msgid "Last modified" -msgstr "" - -#: includes/include.con_edit_form.php:293 -msgid "Publishing date" -msgstr "" - -#: includes/include.con_edit_form.php:297 -#: includes/include.con_art_overview.php:354 -msgid "not yet published" -msgstr "" - -#: includes/include.con_edit_form.php:300 -msgid "Publisher" -msgstr "" - -#: includes/include.con_edit_form.php:308 -msgid "Redirect" -msgstr "" - -#: includes/include.con_edit_form.php:324 -msgid "New Window" -msgstr "" - -#: includes/include.con_edit_form.php:350 -#: includes/include.con_art_overview.php:553 -msgid "Start article" -msgstr "" - -#: includes/include.con_edit_form.php:354 -#: includes/include.con_art_overview.php:841 -msgid "Sort key" -msgstr "" - -#: includes/include.con_edit_form.php:391 includes/cfg_language_de.inc.php:114 -msgid "Remove assignments" -msgstr "" - -#: includes/include.con_edit_form.php:393 -msgid "Remove multiple category assignments" -msgstr "" - -#: includes/include.con_edit_form.php:394 -msgid "" -"Do you really want to remove the assignments to all categories except the " -"current one?" -msgstr "" - -#: includes/include.con_edit_form.php:410 -msgid "" -"Language parts of the articles are existing in other languages and are " -"online. To change the category assignment, please set the other articles " -"offline first." -msgstr "" - -#: includes/include.con_edit_form.php:510 includes/grouprights_str.inc.php:76 -#: includes/rights_con.inc.php:78 includes/include.con_editcontent.php:387 -#: includes/grouprights_con.inc.php:78 includes/rights_str.inc.php:77 -#: includes/include.note.popup.php:93 -#: templates/standard/template.symbolhelp.html:41 -#: templates/standard/template.symbolhelp.html:472 -#: templates/standard/template.str_overview.html:124 -#: templates/standard/template.str_overview.html:224 -#: templates/standard/template.mycontenido_lastarticles.html:63 -#: templates/standard/template.log_main.html:52 -#: classes/class.cms_teaser.php:595 classes/class.ajax.php:153 -msgid "Category" -msgstr "" - -#: includes/include.con_edit_form.php:549 -msgid "Choose Startdate" -msgstr "" - -#: includes/include.con_edit_form.php:550 -msgid "Choose Enddate" -msgstr "" - -#: includes/include.con_edit_form.php:648 -msgid "Select date" -msgstr "" - -#: includes/include.con_edit_form.php:685 -msgid "Summary" -msgstr "" - -#: includes/include.CMS_EASYIMG.php:153 -msgid "Upload image" -msgstr "" - -#: includes/include.CMS_EASYIMG.php:157 includes/include.client_edit.php:228 -#: includes/include.grouprights_overview.php:103 -#: includes/include.rights_overview.php:193 -msgid "Discard changes" -msgstr "" - -#: includes/grouprights_str.inc.php:212 includes/rights_con.inc.php:223 -#: includes/grouprights_con.inc.php:237 includes/rights_str.inc.php:217 -msgid "" -"Apply rights for this category to all categories on the same level or above" -msgstr "" - -#: includes/grouprights_str.inc.php:213 includes/rights_con.inc.php:224 -#: includes/grouprights_con.inc.php:238 includes/rights_str.inc.php:218 -msgid "" -"Apply rights for this category to all categories below the current category" -msgstr "" - -#: includes/grouprights_str.inc.php:215 -#: includes/include.upl_dirs_overview.php:60 includes/rights_con.inc.php:227 -#: includes/include.str_overview.php:174 includes/grouprights_con.inc.php:241 +#: includes/include.upl_dirs_overview.php:60 +#: includes/grouprights_str.inc.php:215 includes/include.str_overview.php:167 +#: includes/rights_con.inc.php:227 includes/grouprights_con.inc.php:241 #: includes/rights_str.inc.php:221 msgid "Close category" msgstr "" @@ -1899,33 +1850,251 @@ msgstr "" msgid "Directory contains files" msgstr "" +#: includes/include.upl_dirs_overview.php:408 +#: includes/include.upl_dirs_overview.php:555 +#: includes/include.lay_edit_form.php:41 includes/include.lay_edit_form.php:48 +#: includes/include.lang_edit.php:122 includes/rights_lay.inc.php:57 +#: includes/grouprights_mod.inc.php:54 includes/grouprights_str.inc.php:54 +#: includes/include.lay_history.php:46 includes/rights_area.inc.php:58 +#: includes/include.rights_create.php:43 +#: includes/include.html_tpl_history.php:59 +#: includes/include.system_purge.php:37 includes/include.style_history.php:57 +#: includes/include.con_edit_form.php:764 includes/grouprights_lay.inc.php:55 +#: includes/grouprights_lay.inc.php:74 +#: includes/include.html_tpl_edit_form.php:50 +#: includes/grouprights_members.inc.php:41 includes/include.client_edit.php:46 +#: includes/include.style_edit_form.php:51 includes/include.logs.php:46 +#: includes/include.js_edit_form.php:50 includes/include.rights_overview.php:49 +#: includes/rights_con.inc.php:56 includes/include.js_history.php:55 +#: includes/rights_mod.inc.php:55 includes/include.grouprights_overview.php:42 +#: includes/grouprights_tpl.inc.php:53 includes/grouprights_area.inc.php:65 +#: includes/include.client_artspec.php:40 +#: includes/include.client_artspec.php:50 +#: includes/include.client_artspec.php:60 +#: includes/include.client_artspec.php:70 includes/grouprights_con.inc.php:56 +#: includes/include.con_art_overview.php:908 includes/rights_tpl.inc.php:55 +#: includes/include.tpl_edit_form.php:39 +#: includes/include.tplcfg_edit_form.php:144 includes/rights_str.inc.php:55 +#: includes/include.grouprights_create.php:42 +#: includes/include.mod_history.php:52 +msgid "Permission denied" +msgstr "" + #: includes/include.upl_dirs_overview.php:454 msgid "Database Filesystem" msgstr "" -#: includes/include.tplcfg_edit_form.php:76 +#: includes/include.lay_edit_form.php:44 +msgid "-- New Layout --" +msgstr "" + +#: includes/include.lay_edit_form.php:52 +msgid "Layout deleted" +msgstr "" + +#: includes/include.lay_edit_form.php:116 #, php-format -msgid "Category Template configuration is in use by %s (%s)" +msgid "Container %s was defined %s times" msgstr "" -#: includes/include.tplcfg_edit_form.php:276 -#: includes/include.con_art_overview.php:82 -#: includes/include.pretplcfg_edit_form.php:76 backend_search.php:496 -#: templates/standard/template.str_overview.html:230 -#: templates/standard/template.mycontenido_lastarticles.html:66 -msgid "Template" +#: includes/include.lay_edit_form.php:127 +msgid "" +"The body tag does not exist in the layout. This is a requirement for the in-" +"site editing." msgstr "" -#: includes/include.tplcfg_edit_form.php:352 -msgid "Module in container" +#: includes/include.lay_edit_form.php:132 +msgid "" +"The head tag does not exist in the layout. This is a requirement for the in-" +"site editing." msgstr "" -#: includes/include.tplcfg_edit_form.php:476 -msgid "Categorytemplate configuration" +#: includes/include.lay_edit_form.php:154 +#: includes/include.html_tpl_edit_form.php:185 +#, php-format +msgid "Tag '%s' %s has no end tag (start tag is on line %s char %s)" msgstr "" -#: includes/include.tplcfg_edit_form.php:479 -msgid "Articletemplate configuration" +#: includes/include.lay_edit_form.php:164 includes/include.lay_history.php:87 +msgid "Edit Layout" +msgstr "" + +#: includes/include.lay_edit_form.php:180 +msgid "On save, apply default modules to new containers" +msgstr "" + +#: includes/include.lay_edit_form.php:184 +#: includes/include.lay_edit_form.php:195 includes/include.lay_history.php:122 +#: includes/include.html_tpl_history.php:165 +#: includes/include.style_history.php:162 +#: includes/include.html_tpl_edit_form.php:215 +#: includes/include.style_edit_form.php:199 +#: includes/include.js_edit_form.php:177 includes/include.js_history.php:157 +msgid "Code" +msgstr "" + +#: includes/include.lay_edit_form.php:185 +#: includes/include.mycontenido.tasks.php:397 +#: includes/include.mycontenido_settings.php:127 +#: includes/include.client_artspec.php:80 +msgid "Options" +msgstr "" + +#: includes/include.mod_new.php:69 +msgid "New module" +msgstr "" + +#: includes/include.mod_new.php:72 +msgid "Sync module" +msgstr "" + +#: includes/include.mod_new.php:76 includes/include.lang_left_top.php:82 +#: includes/include.upl_left_top.php:53 includes/include.tpl_new.php:41 +#: includes/include.lay_new.php:40 includes/include.js_left_top.php:54 +#: includes/include.frontend.left_top.php:181 +#: includes/include.frontend.left_top.php:445 +#: includes/include.html_tpl_left_top.php:54 +#: includes/include.style_left_top.php:54 +msgid "No Client selected" +msgstr "" + +#: includes/include.mod_new.php:87 includes/include.mod_new.php:110 +#: includes/include.mod_edit_form.php:384 +#: includes/include.systemsettings.php:58 +#: includes/include.systemsettings.php:166 +#: includes/include.upl_search_results.php:232 +#: includes/include.upl_search_results.php:237 +#: includes/include.upl_search_results.php:240 +#: includes/include.clientsettings.php:95 +#: includes/include.clientsettings.php:183 +#: includes/include.upl_files_overview.php:469 +#: includes/include.upl_files_overview.php:472 +#: includes/include.upl_files_overview.php:474 +msgid "Type" +msgstr "" + +#: includes/include.mod_new.php:94 includes/include.rights_left_top.php:123 +#: includes/include.frontend.user_menu.php:114 +#: includes/include.frontend.left_top.php:193 +msgid "List options" +msgstr "" + +#: includes/include.mod_new.php:97 includes/include.mod_new.php:107 +#: includes/include.mod_new.php:127 +msgid "-- All --" +msgstr "" + +#: includes/include.mod_new.php:108 +msgid "Modulname" +msgstr "" + +#: includes/include.mod_new.php:111 includes/include.mod_edit_form.php:405 +#: includes/include.mod_edit_form.php:408 +msgid "Input" +msgstr "" + +#: includes/include.mod_new.php:112 includes/include.mod_edit_form.php:406 +#: includes/include.mod_edit_form.php:409 +msgid "Output" +msgstr "" + +#: includes/include.mod_new.php:128 +msgid "-- Without type --" +msgstr "" + +#: includes/include.mod_new.php:153 includes/include.rights_left_top.php:147 +#: includes/include.frontend.left_top.php:249 +msgid "Items / page" +msgstr "" + +#: includes/include.mod_new.php:157 includes/include.rights_left_top.php:151 +#: includes/include.frontend.left_top.php:253 +msgid "Sort by" +msgstr "" + +#: includes/include.mod_new.php:165 +msgid "Type filter" +msgstr "" + +#: includes/include.mod_new.php:169 includes/include.rights_left_top.php:159 +#: includes/include.upl_left_top.php:74 +#: includes/include.frontend.left_top.php:265 +msgid "Search for" +msgstr "" + +#: includes/include.mod_new.php:173 includes/include.frontend.left_top.php:269 +msgid "Search in" +msgstr "" + +#: includes/include.mod_new.php:178 includes/include.rights_left_top.php:164 +#: includes/include.frontend.left_top.php:274 +msgid "Apply" +msgstr "" + +#: includes/include.lang_edit.php:82 includes/include.lang_overview.php:103 +msgid "New language" +msgstr "" + +#: includes/include.lang_edit.php:131 includes/grouprights.inc.php:335 +#: includes/include.client_edit.php:160 +#: includes/include.system_configuration.php:133 +#: includes/include.rights_overview.php:141 +#: includes/include.grouprights_overview.php:65 +msgid "Changes saved" +msgstr "" + +#: includes/include.lang_edit.php:218 +msgid "Left to right" +msgstr "" + +#: includes/include.lang_edit.php:218 +msgid "Right to left" +msgstr "" + +#: includes/include.lang_edit.php:232 includes/cfg_language_de.inc.php:191 +msgid "Edit language" +msgstr "" + +#: includes/include.lang_edit.php:234 +msgid "Language name" +msgstr "" + +#: includes/include.lang_edit.php:235 +#: includes/include.frontend.user_edit.php:188 +msgid "Active" +msgstr "" + +#: includes/include.lang_edit.php:237 includes/include.lang_edit.php:239 +#: includes/include.con_editcontent.php:392 main.loginform.php:156 +msgid "Language" +msgstr "" + +#: includes/include.lang_edit.php:238 +msgid "Encoding" +msgstr "" + +#: includes/include.lang_edit.php:240 includes/include.rights_create.php:204 +#: includes/include.rights_overview.php:260 +msgid "Country" +msgstr "" + +#: includes/include.lang_edit.php:241 +msgid "Text direction" +msgstr "" + +#: includes/include.lang_edit.php:243 includes/include.lang_edit.php:246 +#: includes/include.mycontenido_settings.php:143 +msgid "Time format" +msgstr "" + +#: includes/include.lang_edit.php:244 +#: includes/include.mycontenido_settings.php:141 +msgid "Date/Time format" +msgstr "" + +#: includes/include.lang_edit.php:245 +#: includes/include.mycontenido_settings.php:142 +msgid "Date format" msgstr "" #: includes/include.rights_menu.php:133 @@ -1942,543 +2111,227 @@ msgstr "" msgid "Delete user" msgstr "" -#: includes/include.info.php:38 -msgid "" -"You can find a lot of information and a community forum on the ConLite Portal" +#: includes/include.stat_overview.php:47 includes/include.stat_overview.php:60 +msgid "Full statistics" msgstr "" -#: includes/include.CMS_HTMLHEAD.php:100 includes/include.CMS_HTML.php:98 -msgid "Save without leaving the editor" +#: includes/include.stat_overview.php:50 includes/functions.stat.php:990 +#: includes/functions.stat.php:1016 +msgid "Top 10" msgstr "" -#: includes/include.CMS_HTMLHEAD.php:101 includes/include.CMS_HTML.php:99 -msgid "Save and close editor" +#: includes/include.stat_overview.php:53 includes/functions.stat.php:991 +#: includes/functions.stat.php:1017 +msgid "Top 20" msgstr "" -#: includes/functions.tpl.php:436 includes/functions.con.php:1837 -#: includes/functions.str.php:1387 +#: includes/include.stat_overview.php:56 includes/functions.stat.php:992 +#: includes/functions.stat.php:1018 +msgid "Top 30" +msgstr "" + +#: includes/include.stat_overview.php:76 +msgid "Yearly" +msgstr "" + +#: includes/include.stat_overview.php:80 +msgid "Current" +msgstr "" + +#: includes/include.stat_overview.php:91 includes/functions.system.php:405 +msgid "Number of articles" +msgstr "" + +#: includes/include.stat_overview.php:94 +msgid "Hits in this language" +msgstr "" + +#: includes/include.CMS_SIMPLELINK.php:139 includes/include.CMS_LINK.php:142 #, php-format -msgid "%s (Copy)" +msgid "Edit link for container %s" msgstr "" -#: includes/include.con_left_top.php:135 -msgid "Ignore" +#: includes/include.system_db_backup.php:34 +msgid "Backupfolder missing or not writable!" msgstr "" -#: includes/include.con_left_top.php:136 classes/class.cms_filelist.php:444 -msgid "Date created" +#: includes/include.system_db_backup.php:53 +msgid "Start your Backup!" msgstr "" -#: includes/include.con_left_top.php:137 classes/class.cms_filelist.php:447 -msgid "Date modified" +#: includes/include.system_db_backup.php:87 +msgid "Permission denied!" msgstr "" -#: includes/include.con_left_top.php:138 -msgid "Date published" +#: includes/include.system_db_backup.php:98 +msgid "Starting Backup." msgstr "" -#: includes/include.con_left_top.php:141 -msgid "Article Search" +#: includes/include.system_db_backup.php:215 +msgid "Backup in Progress!" msgstr "" -#: includes/include.con_left_top.php:237 -#: templates/standard/template.recipient_menu.html:92 -msgid "Search" +#: includes/include.system_db_backup.php:222 +#: includes/include.system_db_backup.php:247 +msgid "Tables saved: " msgstr "" -#: includes/include.con_left_top.php:250 -msgid "Title/Content" +#: includes/include.system_db_backup.php:222 +msgid "Last processed: " msgstr "" -#: includes/include.con_left_top.php:255 -msgid "Article ID" +#: includes/include.system_db_backup.php:223 +#: includes/include.system_db_backup.php:247 +msgid "Pageviews: " msgstr "" -#: includes/include.con_left_top.php:260 -msgid "Datum" +#: includes/include.system_db_backup.php:246 +msgid "Backup done!" msgstr "" -#: includes/include.con_left_top.php:265 -msgid "Date from" +#: includes/include.system_db_backup.php:251 +msgid "Go Back to Overview" msgstr "" -#: includes/include.con_left_top.php:270 -msgid "Date to" +#: includes/include.system_db_backup.php:285 +msgid "File successfully deleted." msgstr "" -#: includes/include.con_left_top.php:291 -msgid "Saved Searches" +#: includes/include.system_db_backup.php:293 +#: includes/include.js_files_overview.php:131 +#: includes/include.html_tpl_files_overview.php:132 +#: includes/include.style_files_overview.php:131 +msgid "Delete File" msgstr "" -#: includes/include.con_left_top.php:302 -#: includes/include.mycontenido_lastarticles.php:137 -#: includes/main.login.php:211 -msgid "Recently edited articles" +#: includes/include.system_db_backup.php:300 +msgid "Download File" msgstr "" -#: includes/include.con_left_top.php:306 -msgid "My articles" +#: includes/functions.general.php:165 +msgid "Saterday" msgstr "" -#: includes/include.con_left_top.php:311 -msgid "Workflow" -msgstr "" - -#: includes/include.con_left_top.php:369 scripts/HTMLObj.js.php:254 -#: scripts/langref.php:12 -msgid "Choose template" -msgstr "" - -#: includes/include.con_left_top.php:379 -msgid "Edit Category" -msgstr "" - -#: includes/include.con_left_top.php:395 -msgid "Template:" -msgstr "" - -#: includes/include.con_left_top.php:404 includes/include.con_left_top.php:405 -msgid "Configure Category" -msgstr "" - -#: includes/include.con_left_top.php:407 includes/include.con_left_top.php:408 -msgid "Online / Offline" -msgstr "" - -#: includes/include.con_left_top.php:410 includes/include.con_left_top.php:411 -msgid "Lock / Unlock" -msgstr "" - -#: includes/include.con_left_top.php:428 -msgid "close all" -msgstr "" - -#: includes/include.con_left_top.php:428 -#: includes/include.con_str_overview.php:612 -#: includes/include.str_overview.php:486 includes/include.str_overview.php:487 -#: includes/include.str_overview.php:488 -#: templates/standard/template.stat_overview.html:135 -msgid "Close all categories" -msgstr "" - -#: includes/include.con_left_top.php:429 -msgid "open all" -msgstr "" - -#: includes/include.con_left_top.php:429 -#: includes/include.con_str_overview.php:613 -#: includes/include.str_overview.php:493 includes/include.str_overview.php:494 -#: includes/include.str_overview.php:495 -#: templates/standard/template.stat_overview.html:137 -msgid "Open all categories" -msgstr "" - -#: includes/include.con_left_top.php:439 -msgid "Synchronize from" -msgstr "" - -#: includes/include.con_left_top.php:472 includes/include.con_left_top.php:473 -msgid "Copy to current language" -msgstr "" - -#: includes/include.con_left_top.php:474 includes/include.con_left_top.php:475 -msgid "Also copy subcategories" -msgstr "" - -#: includes/include.con_art_overview.php:77 -#: includes/include.con_editcontent.php:382 -#: includes/include.con_subnav.php:104 backend_search.php:491 -#: templates/standard/template.symbolhelp.html:38 -#: templates/standard/template.symbolhelp.html:283 -#: templates/standard/template.log_main.html:53 -#: classes/class.cms_teaser.php:596 classes/class.ajax.php:170 -msgid "Article" -msgstr "" - -#: includes/include.con_art_overview.php:79 backend_search.php:493 -msgid "Changed" -msgstr "" - -#: includes/include.con_art_overview.php:80 backend_search.php:494 -msgid "Published" -msgstr "" - -#: includes/include.con_art_overview.php:81 -#: includes/include.rights_left_top.php:155 -#: includes/include.frontend.left_top.php:257 includes/include.mod_new.php:161 -#: backend_search.php:495 classes/class.cms_teaser.php:588 -#: classes/class.cms_filelist.php:738 -msgid "Sort order" -msgstr "" - -#: includes/include.con_art_overview.php:369 -msgid "Article is in use" -msgstr "" - -#: includes/include.con_art_overview.php:370 +#: includes/functions.general.php:2010 #, php-format -msgid "Article in use by %s (%s)" +msgid "MySQL Database not reachable for installation %s" msgstr "" -#: includes/include.con_art_overview.php:436 backend_search.php:658 -msgid "Unfreeze article" -msgstr "" - -#: includes/include.con_art_overview.php:439 -#: includes/cfg_language_de.inc.php:98 backend_search.php:661 -msgid "Freeze article" -msgstr "" - -#: includes/include.con_art_overview.php:446 -msgid "Article is frozen" -msgstr "" - -#: includes/include.con_art_overview.php:449 -msgid "Article is not frozen" -msgstr "" - -#: includes/include.con_art_overview.php:472 backend_search.php:676 -msgid "Article properties" -msgstr "" - -#: includes/include.con_art_overview.php:486 -msgid "Copy article to the current language" -msgstr "" - -#: includes/include.con_art_overview.php:547 backend_search.php:635 -msgid "Flag as start article" -msgstr "" - -#: includes/include.con_art_overview.php:549 backend_search.php:632 -msgid "Flag as normal article" -msgstr "" - -#: includes/include.con_art_overview.php:555 -msgid "Normal article" -msgstr "" - -#: includes/include.con_art_overview.php:569 backend_search.php:675 -#: templates/standard/template.symbolhelp.html:413 -msgid "Duplicate article" -msgstr "" - -#: includes/include.con_art_overview.php:581 -#, php-format -msgid "Reminder for Article '%s'" -msgstr "" - -#: includes/include.con_art_overview.php:584 +#: includes/functions.general.php:2013 #, php-format msgid "" -"Reminder for Article '%s'\n" -"Category: %s" +"The MySQL Database for the installation %s is not reachable. Please check if " +"this is a temporary problem or if it is a real fault." msgstr "" -#: includes/include.con_art_overview.php:595 -#: includes/include.mycontenido_lastarticles.php:221 -msgid "Article is online" +#: includes/rights_lay.inc.php:75 includes/grouprights_lay.inc.php:85 +msgid "Layout name" msgstr "" -#: includes/include.con_art_overview.php:603 -#: includes/include.mycontenido_lastarticles.php:224 -msgid "Article is offline" +#: includes/rights_lay.inc.php:100 includes/grouprights_mod.inc.php:99 +#: includes/grouprights_str.inc.php:105 includes/rights_area.inc.php:87 +#: includes/grouprights_lay.inc.php:113 includes/rights_con.inc.php:112 +#: includes/rights_mod.inc.php:99 includes/grouprights_tpl.inc.php:101 +#: includes/grouprights_area.inc.php:86 includes/grouprights_con.inc.php:111 +#: includes/rights_tpl.inc.php:100 includes/rights_str.inc.php:106 +msgid "Check all" msgstr "" -#: includes/include.con_art_overview.php:625 -#, php-format -msgid "Are you sure to delete the following article:

%s" +#: includes/grouprights_mod.inc.php:73 includes/rights_mod.inc.php:75 +msgid "Module name" msgstr "" -#: includes/include.con_art_overview.php:626 -#: includes/cfg_language_de.inc.php:106 backend_search.php:678 -#: templates/standard/template.symbolhelp.html:425 -msgid "Delete article" -msgstr "" - -#: includes/include.con_art_overview.php:771 -#: includes/include.con_art_overview.php:774 -#, php-format -msgid "Go to page: %s" -msgstr "" - -#: includes/include.con_art_overview.php:777 -msgid "with click select line for further treatment" -msgstr "" - -#: includes/include.con_art_overview.php:832 -#: includes/include.con_art_overview.php:938 -msgid "No articles found" -msgstr "" - -#: includes/include.con_art_overview.php:838 -msgid "Alphabetical" -msgstr "" - -#: includes/include.con_art_overview.php:839 -msgid "Last change" -msgstr "" - -#: includes/include.con_art_overview.php:840 -msgid "Published date" -msgstr "" - -#: includes/include.con_art_overview.php:860 -msgid "Sort articles:" -msgstr "" - -#: includes/include.con_art_overview.php:887 -msgid "Items per page:" -msgstr "" - -#: includes/include.con_art_overview.php:988 -#: includes/include.con_art_overview.php:989 -#: templates/standard/template.symbolhelp.html:329 -msgid "Create new article" -msgstr "" - -#: includes/include.frontend.user_menu.php:53 -#: includes/include.frontend.left_top.php:58 -msgid "-- All fields --" -msgstr "" - -#: includes/include.frontend.user_menu.php:53 -#: includes/include.frontend.user_menu.php:54 -#: includes/include.rights_overview.php:203 -#: includes/include.frontend.left_top.php:58 -#: includes/include.frontend.left_top.php:59 -#: includes/include.rights_create.php:150 -msgid "Username" -msgstr "" - -#: includes/include.frontend.user_menu.php:112 -#: includes/include.rights_left_top.php:118 -#: includes/include.frontend.left_top.php:118 includes/include.mod_new.php:88 -#: classes/class.cms_teaser.php:423 classes/class.cms_filelist.php:465 -msgid "Ascending" -msgstr "" - -#: includes/include.frontend.user_menu.php:112 -#: includes/include.rights_left_top.php:119 -#: includes/include.frontend.left_top.php:118 includes/include.mod_new.php:88 -#: classes/class.cms_teaser.php:426 classes/class.cms_filelist.php:468 -msgid "Descending" -msgstr "" - -#: includes/include.frontend.user_menu.php:114 -#: includes/include.rights_left_top.php:123 -#: includes/include.frontend.left_top.php:193 includes/include.mod_new.php:94 -msgid "List options" -msgstr "" - -#: includes/include.frontend.user_menu.php:139 -#: includes/include.frontend.left_top.php:228 -msgid "-- All Groups --" -msgstr "" - -#: includes/include.mycontenido.tasks.edit.php:43 -msgid "Edit Reminder item" -msgstr "" - -#: includes/include.mycontenido.tasks.edit.php:77 -msgid "E-Mail notification" -msgstr "" - -#: includes/include.mycontenido.tasks.edit.php:140 -msgid "Progress" -msgstr "" - -#: includes/grouprights_tpl.inc.php:72 includes/rights_tpl.inc.php:73 -#: classes/class.ajax.php:105 classes/class.ajax.php:129 -msgid "Template name" -msgstr "" - -#: includes/include.upl_search_results.php:204 -#: includes/include.upl_search_results.php:209 -#: includes/include.upl_search_results.php:212 -#: includes/include.upl_edit.php:92 -msgid "Path" -msgstr "" - -#: includes/include.upl_search_results.php:246 -#: includes/include.upl_search_results.php:251 -#: includes/include.upl_search_results.php:254 -msgid "Relevance" -msgstr "" - -#: includes/include.upl_search_results.php:260 -msgid "Searched for:" -msgstr "" - -#: includes/include.client_edit.php:52 -msgid "No client ID passed" -msgstr "" - -#: includes/include.client_edit.php:65 +#: includes/grouprights_str.inc.php:212 includes/rights_con.inc.php:223 +#: includes/grouprights_con.inc.php:237 includes/rights_str.inc.php:217 msgid "" -"Notice: In order to use this client, you must create a new language for it." +"Apply rights for this category to all categories on the same level or above" msgstr "" -#: includes/include.client_edit.php:69 -#, php-format -msgid "Please click %shere%s to create a new language." -msgstr "" - -#: includes/include.client_edit.php:110 -msgid "Couldn't write the file config.php." -msgstr "" - -#: includes/include.client_edit.php:118 -#, php-format -msgid "Succesfully copied client-template to %s." -msgstr "" - -#: includes/include.client_edit.php:121 -#, php-format +#: includes/grouprights_str.inc.php:213 includes/rights_con.inc.php:224 +#: includes/grouprights_con.inc.php:238 includes/rights_str.inc.php:218 msgid "" -"Cannot create directory %s . The client was created, but you have to copy " -"the frontend-template yourself" +"Apply rights for this category to all categories below the current category" msgstr "" -#: includes/include.client_edit.php:125 -#, php-format -msgid "" -"The directory %s already exists. The client was created, but you have to " -"copy the frontend-template yourself" +#: includes/include.todo.popup.php:58 +msgid "Add TODO item" msgstr "" -#: includes/include.client_edit.php:129 -#, php-format -msgid "Client '%s' created." +#: includes/include.todo.popup.php:67 +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.mycontenido.tasks.edit.php:68 +msgid "Subject" msgstr "" -#: includes/include.client_edit.php:147 -msgid "" -"You changed the client path. You might need to copy the frontend to the new " -"location" +#: includes/include.todo.popup.php:75 +#: includes/include.mycontenido.tasks.edit.php:100 +msgid "Reminder date" msgstr "" -#: includes/include.client_edit.php:245 -msgid "Client name" +#: includes/include.todo.popup.php:80 +msgid "eMail notification" msgstr "" -#: includes/include.client_edit.php:261 -msgid "Server path" +#: includes/include.todo.popup.php:82 +#: includes/include.mycontenido.tasks.edit.php:81 +msgid "Reminder options" msgstr "" -#: includes/include.client_edit.php:277 -msgid "Web address" +#: includes/include.todo.popup.php:124 +#: includes/include.mycontenido.tasks.edit.php:65 +msgid "Assigned to" msgstr "" -#: includes/include.client_edit.php:286 -msgid "Error page category" +#: includes/include.lay_history.php:51 includes/include.html_tpl_history.php:64 +#: includes/include.style_history.php:62 includes/include.js_history.php:60 +#: includes/include.mod_history.php:57 +msgid "Versioning is not activated" msgstr "" -#: includes/include.client_edit.php:295 -msgid "Error page article" +#: includes/include.lay_history.php:123 +#: includes/include.html_tpl_history.php:166 +#: includes/include.style_history.php:163 includes/include.js_history.php:158 +#: includes/include.mod_history.php:135 +msgid "Copy to current" msgstr "" -#: includes/include.client_edit.php:306 -msgid "Client logo" +#: includes/include.lay_history.php:135 +#: includes/include.html_tpl_history.php:185 +#: includes/include.style_history.php:182 includes/include.js_history.php:177 +#: includes/include.mod_history.php:150 +msgid "Version history was cleared" msgstr "" -#: includes/include.client_edit.php:315 -msgid "HTML" +#: includes/include.lay_history.php:137 +msgid "No layout history available" msgstr "" -#: includes/include.client_edit.php:315 -msgid "XHTML" -msgstr "" - -#: includes/include.client_edit.php:315 -msgid "HTML5" -msgstr "" - -#: includes/include.client_edit.php:330 -msgid "Generate" -msgstr "" - -#: includes/include.client_edit.php:341 -msgid "Copy frontend template" -msgstr "" - -#: includes/include.rights_left_top.php:103 -#: includes/cfg_language_de.inc.php:171 includes/cfg_language_de.inc.php:174 -#: includes/include.frontend.left_top.php:178 -#: templates/standard/template.symbolhelp.html:1835 -msgid "Create user" -msgstr "" - -#: includes/include.rights_left_top.php:147 -#: includes/include.frontend.left_top.php:249 includes/include.mod_new.php:153 -msgid "Items / page" -msgstr "" - -#: includes/include.rights_left_top.php:151 -#: includes/include.frontend.left_top.php:253 includes/include.mod_new.php:157 -msgid "Sort by" -msgstr "" - -#: includes/include.rights_left_top.php:164 -#: includes/include.frontend.left_top.php:274 includes/include.mod_new.php:178 -msgid "Apply" -msgstr "" - -#: includes/include.mycontenido_settings.php:57 -msgid "Old password incorrect" -msgstr "" - -#: includes/include.mycontenido_settings.php:62 -#: includes/include.rights_overview.php:132 -#: includes/include.rights_create.php:122 -msgid "Passwords don't match" -msgstr "" - -#: includes/include.mycontenido_settings.php:77 -msgid "Password changed" -msgstr "" - -#: includes/include.mycontenido_settings.php:97 -#, php-format -msgid "Settings for %s" -msgstr "" - -#: includes/include.mycontenido_settings.php:115 -msgid "Old password" -msgstr "" - -#: includes/include.mycontenido_settings.php:117 -#: includes/include.rights_overview.php:223 -#: includes/include.rights_create.php:168 -msgid "Confirm new password" -msgstr "" - -#: includes/include.mycontenido_settings.php:121 -#: includes/include.rights_overview.php:230 -#: includes/include.rights_create.php:174 -msgid "E-Mail" -msgstr "" - -#: includes/include.mycontenido_settings.php:125 -msgid "Use WYSIWYG Editor" -msgstr "" - -#: includes/include.mycontenido_settings.php:129 -msgid "The format is equal to PHP's date() function." -msgstr "" - -#: includes/include.mycontenido_settings.php:131 -msgid "Common date formattings" -msgstr "" - -#: includes/include.mod_edit_form.php:54 includes/include.lay_overview.php:78 -#: includes/include.mod_overview.php:209 includes/include.str_overview.php:741 +#: includes/include.lay_overview.php:78 includes/include.mod_edit_form.php:54 +#: includes/include.str_overview.php:846 includes/include.mod_overview.php:209 msgid "No permission" msgstr "" -#: includes/include.mod_edit_form.php:58 -#: classes/contenido/class.module.php:395 -msgid "- Unnamed Module -" +#: includes/include.lay_overview.php:82 +msgid "Layout is in use, cannot delete" +msgstr "" + +#: includes/include.lay_overview.php:83 includes/include.tpl_overview.php:96 +#: includes/include.mod_overview.php:196 +msgid "Click for more information about usage" +msgstr "" + +#: includes/include.lay_overview.php:92 includes/cfg_language_de.inc.php:147 +msgid "Delete layout" +msgstr "" + +#: includes/include.lay_overview.php:93 +#, php-format +msgid "Do you really want to delete the following layout:

%s
" +msgstr "" + +#: includes/include.lay_overview.php:118 +#, php-format +msgid "The layout '%s' is used for following templates" msgstr "" #: includes/include.mod_edit_form.php:59 @@ -2493,12 +2346,6 @@ msgstr "" msgid "Version:" msgstr "" -#: includes/include.mod_edit_form.php:77 includes/include.mod_package.php:219 -#: includes/include.mod_package.php:357 -#, php-format -msgid "Error while importing XML file: %s" -msgstr "" - #: includes/include.mod_edit_form.php:88 msgid "Module folder created" msgstr "" @@ -2507,11 +2354,6 @@ msgstr "" msgid "Error while creating module folder" msgstr "" -#: includes/include.mod_edit_form.php:106 includes/include.mod_package.php:398 -#, php-format -msgid "Module is in use by %s (%s)" -msgstr "" - #: includes/include.mod_edit_form.php:127 includes/cfg_language_de.inc.php:157 msgid "Edit module" msgstr "" @@ -2536,1335 +2378,114 @@ msgstr "" msgid "Create Folder" msgstr "" -#: includes/include.mod_edit_form.php:405 -#: includes/include.mod_edit_form.php:408 includes/include.mod_new.php:111 -msgid "Input" -msgstr "" - -#: includes/include.mod_edit_form.php:406 -#: includes/include.mod_edit_form.php:409 includes/include.mod_new.php:112 -msgid "Output" -msgstr "" - #: includes/include.mod_edit_form.php:415 msgid "" "This module uses variables and/or functions which are probably not available " "in this Contenido version. Please make sure that you use up-to-date modules." msgstr "" -#: includes/include.mod_edit_form.php:423 -#: includes/include.mod_translate.php:174 includes/include.mod_package.php:454 -msgid "Import from file" +#: includes/include.mycontenido.tasks.php:128 +msgid "No status type set" msgstr "" -#: includes/include.mod_edit_form.php:424 -#: includes/include.mod_translate.php:173 includes/include.mod_package.php:455 -msgid "Export to file" -msgstr "" - -#: includes/include.mod_edit_form.php:440 -#: includes/include.mod_translate.php:184 includes/include.mod_package.php:472 -msgid "Mode" -msgstr "" - -#: includes/include.mod_edit_form.php:442 -#: includes/include.mod_edit_form.php:444 -#: includes/include.mod_translate.php:185 includes/include.mod_package.php:476 -#: includes/include.mod_package.php:478 classes/class.cms_filelist.php:745 -msgid "File" -msgstr "" - -#: includes/grouprights.inc.php:215 -msgid "Current group doesn't have any rights to any client/language." -msgstr "" - -#: includes/include.lay_overview.php:82 -msgid "Layout is in use, cannot delete" -msgstr "" - -#: includes/include.lay_overview.php:92 includes/cfg_language_de.inc.php:147 -msgid "Delete layout" -msgstr "" - -#: includes/include.lay_overview.php:93 +#: includes/include.mycontenido.tasks.php:155 #, php-format -msgid "Do you really want to delete the following layout:

%s
" +msgid "%d %% complete" msgstr "" -#: includes/include.lay_overview.php:118 +#: includes/include.mycontenido.tasks.php:196 +msgid "Today" +msgstr "" + +#: includes/include.mycontenido.tasks.php:201 +#: includes/include.mycontenido.tasks.php:203 +msgid "Day(s)" +msgstr "" + +#: includes/include.mycontenido.tasks.php:276 +msgid "End Date" +msgstr "" + +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.mycontenido.tasks.edit.php:132 +msgid "Priority" +msgstr "" + +#: includes/include.mycontenido.tasks.php:276 #, php-format -msgid "The layout '%s' is used for following templates" +msgid "%% complete" msgstr "" -#: includes/include.stat_overview.php:47 includes/include.stat_overview.php:60 -msgid "Full statistics" +#: includes/include.mycontenido.tasks.php:276 +msgid "Due in" msgstr "" -#: includes/include.stat_overview.php:76 -msgid "Yearly" +#: includes/include.mycontenido.tasks.php:302 +msgid "Unnamed item" msgstr "" -#: includes/include.stat_overview.php:80 -msgid "Current" +#: includes/include.mycontenido.tasks.php:307 +msgid "No end date set" msgstr "" -#: includes/include.stat_overview.php:92 -#: templates/standard/template.symbolhelp.html:89 -#: templates/standard/template.symbolhelp.html:1472 -msgid "Hits" +#: includes/include.mycontenido.tasks.php:314 +msgid "No status set" msgstr "" -#: includes/include.stat_overview.php:94 -msgid "Hits in this language" +#: includes/include.mycontenido.tasks.php:338 +msgid "Delete item" msgstr "" -#: includes/include.mod_history.php:94 -msgid "Edit Module" +#: includes/include.mycontenido.tasks.php:345 +msgid "Edit item" msgstr "" -#: includes/include.mod_history.php:133 -msgid "Code Input" +#: includes/include.mycontenido.tasks.php:376 +msgid "Restrict display" msgstr "" -#: includes/include.mod_history.php:134 -msgid "Code Output" +#: includes/include.mycontenido.tasks.php:386 +msgid "Hide done tasks" msgstr "" -#: includes/include.mod_history.php:152 -msgid "No module history available" +#: includes/include.mycontenido.tasks.php:401 +msgid "No tasks found" msgstr "" -#: includes/include.js_history.php:171 -msgid "No jscript history available" +#: includes/include.CMS_HTMLHEAD.php:100 includes/include.CMS_HTML.php:98 +msgid "Save without leaving the editor" msgstr "" -#: includes/include.js_history.php:179 includes/include.style_history.php:176 -#: includes/include.style_history.php:184 -msgid "No style history available" +#: includes/include.CMS_HTMLHEAD.php:101 includes/include.CMS_HTML.php:99 +msgid "Save and close editor" msgstr "" -#: includes/include.mod_translate.php:138 -#, php-format -msgid "Translate module '%s'" +#: includes/include.systemsettings.php:46 +msgid "Please set this property in systemsettings directly" msgstr "" -#: includes/include.mod_translate.php:147 -msgid "Translated Name" +#: includes/include.systemsettings.php:69 +#: includes/include.systemsettings.php:73 includes/include.upl_edit.php:66 +#: includes/include.clientsettings.php:110 +#: includes/include.client_artspec.php:90 +msgid "Edit" msgstr "" -#: includes/include.mod_translate.php:157 -msgid "Original module string" +#: includes/include.systemsettings.php:77 +#: includes/include.systemsettings.php:79 +#: includes/include.clientsettings.php:104 +#: includes/include.client_artspec.php:94 +msgid "Delete" msgstr "" -#: includes/include.mod_translate.php:157 -#, php-format -msgid "Translation for %s" +#: includes/include.systemsettings.php:153 +#: includes/include.clientsettings.php:170 +msgid "No defined properties" msgstr "" -#: includes/include.mod_translate.php:165 -msgid "" -"Hint: Hit ALT+SHIFT+S to save the translated entry and advance to the next " -"string." -msgstr "" - -#: includes/include.mod_translate.php:166 -msgid "String list" -msgstr "" - -#: includes/include.mod_package.php:139 -msgid "No elements available" -msgstr "" - -#: includes/include.mod_package.php:188 -msgid "Javascript files" -msgstr "" - -#: includes/include.mod_package.php:189 -msgid "Module template files" -msgstr "" - -#: includes/include.mod_package.php:190 -msgid "Style files" -msgstr "" - -#: includes/include.mod_package.php:191 -#: templates/standard/template.symbolhelp.html:53 -#: templates/standard/template.symbolhelp.html:822 -msgid "Layouts" -msgstr "" - -#: includes/include.mod_package.php:192 -msgid "Translations" -msgstr "" - -#: includes/include.mod_package.php:238 -msgid "Skip" -msgstr "" - -#: includes/include.mod_package.php:238 -msgid "Append" -msgstr "" - -#: includes/include.mod_package.php:238 -msgid "Overwrite" -msgstr "" - -#: includes/include.mod_package.php:239 -msgid "OK" -msgstr "" - -#: includes/include.mod_package.php:240 -msgid "Assign" -msgstr "" - -#: includes/include.mod_package.php:241 -msgid "Conflict" -msgstr "" - -#: includes/include.mod_package.php:242 -msgid "Ignored" -msgstr "" - -#: includes/include.mod_package.php:243 -msgid "- Select -" -msgstr "" - -#: includes/include.mod_package.php:254 -#: templates/standard/template.log_main.html:26 -#: templates/standard/template.log_main.html:51 -msgid "Action" -msgstr "" - -#: includes/include.mod_package.php:311 -#: templates/standard/template.symbolhelp.html:181 -#: scripts/messageBox.js.php:79 scripts/langref.php:21 -msgid "Cancel" -msgstr "" - -#: includes/include.mod_package.php:312 -msgid "Import" -msgstr "" - -#: includes/include.mod_package.php:361 -msgid "Import was not succesful, please check data and try again" -msgstr "" - -#: includes/include.mod_package.php:362 -msgid "Retry" -msgstr "" - -#: includes/include.mod_package.php:366 -msgid "Import succesfully finished" -msgstr "" - -#: includes/include.mod_package.php:367 -msgid "Finish" -msgstr "" - -#: includes/include.mod_package.php:421 -msgid "Edit package" -msgstr "" - -#: includes/include.mod_package.php:442 -msgid "Package GUID" -msgstr "" - -#: includes/include.clientsettings.php:50 -msgid "Select range" -msgstr "" - -#: includes/include.clientsettings.php:53 -msgid "Language independent" -msgstr "" - -#: includes/include.clientsettings.php:79 -msgid "Range" -msgstr "" - -#: includes/include.system_db_backup.php:35 -msgid "Backupfolder missing or not writable!" -msgstr "" - -#: includes/include.system_db_backup.php:54 -msgid "Start your Backup!" -msgstr "" - -#: includes/include.system_db_backup.php:88 -msgid "Permission denied!" -msgstr "" - -#: includes/include.system_db_backup.php:99 -msgid "Starting Backup." -msgstr "" - -#: includes/include.system_db_backup.php:216 -msgid "Backup in Progress!" -msgstr "" - -#: includes/include.system_db_backup.php:223 -#: includes/include.system_db_backup.php:248 -msgid "Tables saved: " -msgstr "" - -#: includes/include.system_db_backup.php:223 -msgid "Last processed: " -msgstr "" - -#: includes/include.system_db_backup.php:224 -#: includes/include.system_db_backup.php:248 -msgid "Pageviews: " -msgstr "" - -#: includes/include.system_db_backup.php:247 -msgid "Backup done!" -msgstr "" - -#: includes/include.system_db_backup.php:252 -msgid "Go Back to Overview" -msgstr "" - -#: includes/include.system_db_backup.php:286 -msgid "File successfully deleted." -msgstr "" - -#: includes/include.system_db_backup.php:301 -msgid "Download File" -msgstr "" - -#: includes/include.upl_artlist.php:66 -msgid "Use this category" -msgstr "" - -#: includes/include.upl_artlist.php:81 -#: templates/standard/template.mycontenido_lastarticles.html:61 -msgid "Start" -msgstr "" - -#: includes/include.upl_artlist.php:81 -#: templates/standard/template.mycontenido_lastarticles.html:65 -msgid "Modified" -msgstr "" - -#: includes/include.upl_artlist.php:81 -msgid "Sort Order" -msgstr "" - -#: includes/include.upl_artlist.php:81 -msgid "Online" -msgstr "" - -#: includes/include.js_left_top.php:50 includes/cfg_language_de.inc.php:206 -msgid "Create script" -msgstr "" - -#: includes/include.stat_menu.php:37 -msgid "Current Report" -msgstr "" - -#: includes/include.stat_menu.php:45 -msgid "Statistics Overview" -msgstr "" - -#: includes/include.stat_menu.php:56 -msgid "Archived Statistics" -msgstr "" - -#: includes/include.con_editcontent.php:215 -msgid "Close editor" -msgstr "" - -#: includes/include.con_editcontent.php:216 -msgid "Close editor and save changes" -msgstr "" - -#: includes/include.con_editcontent.php:217 -msgid "Do you want to save changes?" -msgstr "" - -#: includes/include.con_editcontent.php:375 -msgid "No template assigned to the category
and/or the article" -msgstr "" - -#: includes/include.con_editcontent.php:376 -msgid "The code for the following article
couldnt be generated:" -msgstr "" - -#: includes/include.con_editcontent.php:397 -#: includes/include.system_purge.php:195 -#: templates/standard/template.log_main.html:18 -#: templates/standard/template.log_main.html:48 -#: classes/class.navigation.php:340 classes/class.navigation.php:343 -msgid "Client" -msgstr "" - -#: includes/functions.con.php:331 includes/functions.con.php:518 -msgid "Default title" -msgstr "" - -#: includes/include.lay_history.php:87 includes/include.lay_edit_form.php:186 -msgid "Edit Layout" -msgstr "" - -#: includes/include.lay_history.php:137 -msgid "No layout history available" -msgstr "" - -#: includes/include.upl_edit.php:91 -msgid "File name" -msgstr "" - -#: includes/include.upl_edit.php:93 -msgid "Replace file" -msgstr "" - -#: includes/include.upl_edit.php:94 -msgid "Media name" -msgstr "" - -#: includes/include.upl_edit.php:96 -msgid "Keywords" -msgstr "" - -#: includes/include.upl_edit.php:97 -msgid "Internal notes" -msgstr "" - -#: includes/include.upl_edit.php:98 -msgid "Copyright" -msgstr "" - -#: includes/include.upl_edit.php:99 -msgid "Protection" -msgstr "" - -#: includes/include.upl_edit.php:100 -#: templates/standard/template.con_edit_form.html:141 -msgid "Time control" -msgstr "" - -#: includes/include.upl_edit.php:200 -msgid "Protected for non-logged in users" -msgstr "" - -#: includes/include.upl_edit.php:209 -#: templates/standard/template.con_edit_form.html:144 -msgid "Use time control" -msgstr "" - -#: includes/include.upl_edit.php:215 -#: templates/standard/template.con_edit_form.html:146 -#: templates/standard/template.log_main.html:30 -msgid "Start date" -msgstr "" - -#: includes/include.upl_edit.php:313 -#, php-format -msgid "Could not load file %s" -msgstr "" - -#: includes/functions.file.php:206 -msgid "Please insert filename." -msgstr "" - -#: includes/functions.file.php:218 -#, php-format -msgid "Could not open file %s" -msgstr "" - -#: includes/functions.file.php:223 -#, php-format -msgid "Could not write file %s" -msgstr "" - -#: includes/functions.file.php:234 includes/functions.file.php:338 -#, php-format -msgid "%s is not writable" -msgstr "" - -#: includes/functions.file.php:255 -#, php-format -msgid "Can not open file%s " -msgstr "" - -#: includes/functions.file.php:304 -msgid "Unable to change file access permission." -msgstr "" - -#: includes/functions.file.php:308 -#, php-format -msgid "Unable to create file %s" -msgstr "" - -#: includes/functions.file.php:334 -#, php-format -msgid "Can not rename file %s" -msgstr "" - -#: includes/functions.file.php:361 -msgid "Wrong filename." -msgstr "" - -#: includes/include.mycontenido_lastarticles.php:293 -msgid "No article found" -msgstr "" - -#: includes/include.grouprights_overview.php:67 -msgid "Changes couldn't saved" -msgstr "" - -#: includes/include.grouprights_overview.php:112 -msgid "Groupname" -msgstr "" - -#: includes/include.grouprights_overview.php:208 -#: includes/include.rights_overview.php:352 -msgid "Area/Type" -msgstr "" - -#: includes/include.grouprights_overview.php:222 -#: includes/include.rights_overview.php:366 -msgid "User-defined properties" -msgstr "" - -#: includes/include.upl_files_upload.php:51 -msgid "Upload" -msgstr "" - -#: includes/include.upl_files_upload.php:63 -#: includes/cfg_language_de.inc.php:136 includes/cfg_language_de.inc.php:144 -msgid "Upload files" -msgstr "" - -#: includes/include.lay_edit_form.php:46 -msgid "-- New Layout --" -msgstr "" - -#: includes/include.lay_edit_form.php:56 -msgid "Layout deleted" -msgstr "" - -#: includes/include.lay_edit_form.php:128 -#, php-format -msgid "Container %s was defined %s times" -msgstr "" - -#: includes/include.lay_edit_form.php:141 -msgid "" -"The body tag does not exist in the layout. This is a requirement for the in-" -"site editing." -msgstr "" - -#: includes/include.lay_edit_form.php:147 -msgid "" -"The head tag does not exist in the layout. This is a requirement for the in-" -"site editing." -msgstr "" - -#: includes/include.lay_edit_form.php:173 -#: includes/include.html_tpl_edit_form.php:185 -#, php-format -msgid "Tag '%s' %s has no end tag (start tag is on line %s char %s)" -msgstr "" - -#: includes/include.lay_edit_form.php:202 -msgid "On save, apply default modules to new containers" -msgstr "" - -#: includes/include.rights_overview.php:75 -msgid "User deleted" -msgstr "" - -#: includes/include.rights_overview.php:144 -#: includes/include.rights_overview.php:149 -msgid "An error occured while saving user info." -msgstr "" - -#: includes/include.rights_overview.php:236 -#: includes/include.rights_create.php:180 -msgid "Phone number" -msgstr "" - -#: includes/include.rights_overview.php:242 -#: includes/include.rights_create.php:186 -msgid "Street" -msgstr "" - -#: includes/include.rights_overview.php:248 -#: includes/include.rights_create.php:192 -msgid "ZIP code" -msgstr "" - -#: includes/include.rights_overview.php:254 -#: includes/include.rights_create.php:198 -msgid "City" -msgstr "" - -#: includes/include.rights_overview.php:373 -#: includes/include.rights_create.php:269 -msgid "Use WYSIWYG-Editor" -msgstr "" - -#: includes/include.rights_overview.php:398 -#: includes/include.rights_create.php:290 -msgid "Valid from" -msgstr "" - -#: includes/include.rights_overview.php:418 -#: includes/include.rights_create.php:307 -msgid "Valid to" -msgstr "" - -#: includes/include.rights_overview.php:436 -msgid "This account is currently inactive." -msgstr "" - -#: includes/include.rights_overview.php:439 -msgid "This account is currently active." -msgstr "" - -#: includes/include.pretplcfg_edit_form.php:101 -#, php-format -msgid "Module in Container %s" -msgstr "" - -#: includes/include.pretplcfg_edit_form.php:150 -msgid "Template preconfiguration" -msgstr "" - -#: includes/include.mod_overview.php:198 -msgid "Module in use, cannot delete" -msgstr "" - -#: includes/include.mod_overview.php:200 -msgid "Module in filesystem, cannot delete" -msgstr "" - -#: includes/include.mod_overview.php:204 includes/cfg_language_de.inc.php:154 -msgid "Delete module" -msgstr "" - -#: includes/include.mod_overview.php:205 -#, php-format -msgid "Do you really want to delete the following module:

%s
" -msgstr "" - -#: includes/include.mod_overview.php:271 -#, php-format -msgid "The module '%s' is used for following templates" -msgstr "" - -#: includes/include.lang_left_top.php:80 includes/cfg_language_de.inc.php:189 -msgid "Create language" -msgstr "" - -#: includes/include.frontend.group.subnav.php:40 includes/main.login.php:210 -msgid "Overview" -msgstr "" - -#: includes/include.frontend.group_edit.php:56 -msgid "-- new group --" -msgstr "" - -#: includes/include.frontend.group_edit.php:121 -msgid "Could not set new group name: Group already exists" -msgstr "" - -#: includes/include.frontend.group_edit.php:227 -msgid "Default group" -msgstr "" - -#: includes/include.frontend.group_edit.php:275 -#: includes/cfg_language_de.inc.php:180 -msgid "Edit group" -msgstr "" - -#: includes/grouprights_members.inc.php:208 -msgid "Manage group members" -msgstr "" - -#: includes/include.style_left_top.php:50 -msgid "Create style" -msgstr "" - -#: includes/main.login.php:67 -msgid "No Login Information available." -msgstr "" - -#: includes/main.login.php:74 -msgid "" -"You're logged in with a temporary password. Please change your password." -msgstr "" - -#: includes/main.login.php:79 -msgid "" -"The setup directory still exists. Please remove the setup directory before " -"you continue." -msgstr "" - -#: includes/main.login.php:95 -msgid "" -"The sysadmin and/or the admin account still contains a well-known default " -"password. Please change immediately." -msgstr "" - -#: includes/main.login.php:109 -msgid "Welcome" -msgstr "" - -#: includes/main.login.php:110 -msgid "Last login" -msgstr "" - -#: includes/main.login.php:128 includes/main.login.php:165 -#, php-format -msgid "Client %s (%s) has no languages" -msgstr "" - -#: includes/main.login.php:148 -msgid "Change client" -msgstr "" - -#: includes/main.login.php:153 -msgid "No clients available!" -msgstr "" - -#: includes/main.login.php:205 -#, php-format -msgid "Reminder list: %d Task open" -msgstr "" - -#: includes/main.login.php:207 -#, php-format -msgid "Reminder list: %d Tasks open" -msgstr "" - -#: includes/main.login.php:238 -msgid "Symbol help" -msgstr "" - -#: includes/main.login.php:241 -msgid "Contenido Manual" -msgstr "" - -#: includes/cfg_language_de.inc.php:99 -msgid "Make category online" -msgstr "" - -#: includes/cfg_language_de.inc.php:100 -msgid "Change template" -msgstr "" - -#: includes/cfg_language_de.inc.php:101 -msgid "Set start article" -msgstr "" - -#: includes/cfg_language_de.inc.php:102 -msgid "Make article online" -msgstr "" - -#: includes/cfg_language_de.inc.php:103 -msgid "Syncronize Category" -msgstr "" - -#: includes/cfg_language_de.inc.php:104 -msgid "Syncronize Article" -msgstr "" - -#: includes/cfg_language_de.inc.php:105 includes/cfg_language_de.inc.php:124 -#: includes/include.str_overview.php:963 includes/include.str_overview.php:965 -#: templates/standard/template.str_overview.html:139 -msgid "Protect category" -msgstr "" - -#: includes/cfg_language_de.inc.php:107 -msgid "Edit template configuration" -msgstr "" - -#: includes/cfg_language_de.inc.php:108 -msgid "Duplicate Article" -msgstr "" - -#: includes/cfg_language_de.inc.php:109 -msgid "Expand boxes" -msgstr "" - -#: includes/cfg_language_de.inc.php:110 backend_search.php:677 -#: templates/standard/template.symbolhelp.html:377 -msgid "Configure template" -msgstr "" - -#: includes/cfg_language_de.inc.php:111 -msgid "Create article" -msgstr "" - -#: includes/cfg_language_de.inc.php:112 -msgid "Configure article" -msgstr "" - -#: includes/cfg_language_de.inc.php:113 -msgid "Save article" -msgstr "" - -#: includes/cfg_language_de.inc.php:115 includes/cfg_language_de.inc.php:117 -msgid "Edit article" -msgstr "" - -#: includes/cfg_language_de.inc.php:116 -msgid "Edit article properties" -msgstr "" - -#: includes/cfg_language_de.inc.php:118 -msgid "Help" -msgstr "" - -#: includes/cfg_language_de.inc.php:120 -#: templates/standard/template.symbolhelp.html:524 -msgid "Rename category" -msgstr "" - -#: includes/cfg_language_de.inc.php:121 -msgid "New category" -msgstr "" - -#: includes/cfg_language_de.inc.php:122 -msgid "Set category on- or offline" -msgstr "" - -#: includes/cfg_language_de.inc.php:123 -msgid "Disable category" -msgstr "" - -#: includes/cfg_language_de.inc.php:125 -msgid "Frontend access" -msgstr "" - -#: includes/cfg_language_de.inc.php:126 -msgid "Delete category" -msgstr "" - -#: includes/cfg_language_de.inc.php:127 -msgid "Move category up" -msgstr "" - -#: includes/cfg_language_de.inc.php:128 -msgid "Move category down" -msgstr "" - -#: includes/cfg_language_de.inc.php:129 -#: templates/standard/template.symbolhelp.html:665 -msgid "Move category" -msgstr "" - -#: includes/cfg_language_de.inc.php:130 -msgid "Create new tree" -msgstr "" - -#: includes/cfg_language_de.inc.php:131 -#: templates/standard/template.symbolhelp.html:701 -msgid "Duplicate category" -msgstr "" - -#: includes/cfg_language_de.inc.php:132 includes/include.str_overview.php:949 -#: includes/include.str_overview.php:952 -#: templates/standard/template.symbolhelp.html:314 -#: templates/standard/template.symbolhelp.html:506 -#: templates/standard/template.str_overview.html:148 -msgid "Configure category" -msgstr "" - -#: includes/cfg_language_de.inc.php:133 -msgid "Edit category" -msgstr "" - -#: includes/cfg_language_de.inc.php:135 includes/cfg_language_de.inc.php:145 -msgid "Create directory" -msgstr "" - -#: includes/cfg_language_de.inc.php:137 -msgid "Delete files" -msgstr "" - -#: includes/cfg_language_de.inc.php:138 -msgid "Remove directory" -msgstr "" - -#: includes/cfg_language_de.inc.php:139 -msgid "Rename directory" -msgstr "" - -#: includes/cfg_language_de.inc.php:140 -msgid "Modify file" -msgstr "" - -#: includes/cfg_language_de.inc.php:141 -msgid "Rename file" -msgstr "" - -#: includes/cfg_language_de.inc.php:142 -msgid "Multidelete Files" -msgstr "" - -#: includes/cfg_language_de.inc.php:148 -msgid "Modify layout" -msgstr "" - -#: includes/cfg_language_de.inc.php:149 -msgid "Create layout" -msgstr "" - -#: includes/cfg_language_de.inc.php:150 includes/cfg_language_de.inc.php:155 -#: includes/cfg_language_de.inc.php:201 includes/cfg_language_de.inc.php:207 -#: includes/cfg_language_de.inc.php:213 -msgid "Manage History" -msgstr "" - -#: includes/cfg_language_de.inc.php:151 includes/cfg_language_de.inc.php:156 -#: includes/cfg_language_de.inc.php:202 includes/cfg_language_de.inc.php:208 -#: includes/cfg_language_de.inc.php:214 -msgid "Truncate History" -msgstr "" - -#: includes/cfg_language_de.inc.php:158 -msgid "Create module" -msgstr "" - -#: includes/cfg_language_de.inc.php:159 -msgid "Import/Export module" -msgstr "" - -#: includes/cfg_language_de.inc.php:160 -msgid "Translate modules" -msgstr "" - -#: includes/cfg_language_de.inc.php:161 -msgid "Translation import/export" -msgstr "" - -#: includes/cfg_language_de.inc.php:162 -msgid "Import/Export package" -msgstr "" - -#: includes/cfg_language_de.inc.php:166 -msgid "Create template" -msgstr "" - -#: includes/cfg_language_de.inc.php:169 -msgid "Visual edit" -msgstr "" - -#: includes/cfg_language_de.inc.php:173 -msgid "Save user area rights" -msgstr "" - -#: includes/cfg_language_de.inc.php:175 -msgid "Edit rights" -msgstr "" - -#: includes/cfg_language_de.inc.php:178 -msgid "Delete group members" -msgstr "" - -#: includes/cfg_language_de.inc.php:179 -msgid "Add group members" -msgstr "" - -#: includes/cfg_language_de.inc.php:184 -msgid "Show statistics" -msgstr "" - -#: includes/cfg_language_de.inc.php:186 includes/include.lang_overview.php:68 -msgid "Activate language" -msgstr "" - -#: includes/cfg_language_de.inc.php:187 includes/include.lang_overview.php:72 -msgid "Deactivate language" -msgstr "" - -#: includes/cfg_language_de.inc.php:188 -msgid "Rename language" -msgstr "" - -#: includes/cfg_language_de.inc.php:190 includes/include.lang_overview.php:78 -msgid "Delete language" -msgstr "" - -#: includes/cfg_language_de.inc.php:193 -msgid "Linkchecker" -msgstr "" - -#: includes/cfg_language_de.inc.php:194 -msgid "Linkchecker Whitelist" -msgstr "" - -#: includes/cfg_language_de.inc.php:196 -msgid "Install/Remove plugins" -msgstr "" - -#: includes/cfg_language_de.inc.php:198 -msgid "Modify CSS" -msgstr "" - -#: includes/cfg_language_de.inc.php:199 -msgid "Create CSS" -msgstr "" - -#: includes/cfg_language_de.inc.php:200 -msgid "Delete CSS" -msgstr "" - -#: includes/cfg_language_de.inc.php:204 -msgid "Edit script" -msgstr "" - -#: includes/cfg_language_de.inc.php:205 -msgid "Delete script" -msgstr "" - -#: includes/cfg_language_de.inc.php:210 -msgid "Modify HTML-Template" -msgstr "" - -#: includes/cfg_language_de.inc.php:211 -msgid "Create HTML-Template" -msgstr "" - -#: includes/cfg_language_de.inc.php:212 -msgid "Delete HTML-Template" -msgstr "" - -#: includes/cfg_language_de.inc.php:216 -msgid "Edit newsletter" -msgstr "" - -#: includes/cfg_language_de.inc.php:217 -#: templates/standard/template.symbolhelp.html:1279 -msgid "Create newsletter" -msgstr "" - -#: includes/cfg_language_de.inc.php:218 -msgid "Delete newsletter" -msgstr "" - -#: includes/cfg_language_de.inc.php:219 -msgid "Duplicate newsletter" -msgstr "" - -#: includes/cfg_language_de.inc.php:220 -msgid "Add newsletter dispatch job" -msgstr "" - -#: includes/cfg_language_de.inc.php:221 -msgid "Change global HTML newsletter settings" -msgstr "" - -#: includes/cfg_language_de.inc.php:222 -msgid "Send test newsletter (to groups)" -msgstr "" - -#: includes/cfg_language_de.inc.php:223 -msgid "Delete dispatch job" -msgstr "" - -#: includes/cfg_language_de.inc.php:224 -msgid "Remove recipient from dispatch job" -msgstr "" - -#: includes/cfg_language_de.inc.php:225 -msgid "Run job" -msgstr "" - -#: includes/cfg_language_de.inc.php:226 -msgid "View dispatch job details" -msgstr "" - -#: includes/cfg_language_de.inc.php:228 -msgid "Edit recipient" -msgstr "" - -#: includes/cfg_language_de.inc.php:229 -#: templates/standard/template.symbolhelp.html:1373 -msgid "Create recipient" -msgstr "" - -#: includes/cfg_language_de.inc.php:230 -msgid "Delete recipient" -msgstr "" - -#: includes/cfg_language_de.inc.php:231 -msgid "Purge recipients" -msgstr "" - -#: includes/cfg_language_de.inc.php:232 -msgid "Import recipients" -msgstr "" - -#: includes/cfg_language_de.inc.php:233 -msgid "Execute recipients import" -msgstr "" - -#: includes/cfg_language_de.inc.php:234 -msgid "Delete recipient group" -msgstr "" - -#: includes/cfg_language_de.inc.php:235 -#: templates/standard/template.symbolhelp.html:1409 -msgid "Create recipient group" -msgstr "" - -#: includes/cfg_language_de.inc.php:236 -msgid "Delete recipient from group" -msgstr "" - -#: includes/cfg_language_de.inc.php:237 -msgid "Save recipient group" -msgstr "" - -#: includes/cfg_language_de.inc.php:239 -msgid "Edit own MyContenido settings" -msgstr "" - -#: includes/cfg_language_de.inc.php:240 -msgid "Delete reminder item" -msgstr "" - -#: includes/cfg_language_de.inc.php:241 -msgid "Save todo item" -msgstr "" - -#: includes/cfg_language_de.inc.php:244 -msgid "Edit client" -msgstr "" - -#: includes/cfg_language_de.inc.php:245 -msgid "Remove client" -msgstr "" - -#: includes/cfg_language_de.inc.php:246 -msgid "Delete clientsetting" -msgstr "" - -#: includes/cfg_language_de.inc.php:247 -msgid "Edit clientsetting" -msgstr "" - -#: includes/cfg_language_de.inc.php:248 -msgid "Save clientsetting" -msgstr "" - -#: includes/cfg_language_de.inc.php:249 -msgid "Create/Edit articlespecifications" -msgstr "" - -#: includes/cfg_language_de.inc.php:250 -msgid "Delete articlespecifications" -msgstr "" - -#: includes/cfg_language_de.inc.php:251 -msgid "Define default articlespecification" -msgstr "" - -#: includes/cfg_language_de.inc.php:252 -msgid "Edit articlespecifications" -msgstr "" - -#: includes/cfg_language_de.inc.php:253 -msgid "Make articlespecifications online" -msgstr "" - -#: includes/cfg_language_de.inc.php:255 -msgid "Save frontenduser" -msgstr "" - -#: includes/cfg_language_de.inc.php:256 -msgid "Create frontenduser" -msgstr "" - -#: includes/cfg_language_de.inc.php:257 includes/cfg_language_de.inc.php:263 -msgid "Delete frontenduser" -msgstr "" - -#: includes/cfg_language_de.inc.php:258 -msgid "Delete frontendgroup" -msgstr "" - -#: includes/cfg_language_de.inc.php:259 -msgid "Save frontendgroup" -msgstr "" - -#: includes/cfg_language_de.inc.php:260 includes/cfg_language_de.inc.php:261 -msgid "Create frontendgroup" -msgstr "" - -#: includes/cfg_language_de.inc.php:262 -msgid "Add frontendusers" -msgstr "" - -#: includes/cfg_language_de.inc.php:264 -msgid "Save frontendgroup permissions" -msgstr "" - -#: includes/cfg_language_de.inc.php:266 -msgid "Delete system property" -msgstr "" - -#: includes/cfg_language_de.inc.php:267 -msgid "Edit system property" -msgstr "" - -#: includes/cfg_language_de.inc.php:268 -msgid "Save system property" -msgstr "" - -#: includes/cfg_language_de.inc.php:270 -msgid "Empty log" -msgstr "" - -#: includes/cfg_language_de.inc.php:271 -msgid "Edit Systemconfigration" -msgstr "" - -#: includes/cfg_language_de.inc.php:272 -msgid "Do system purge" -msgstr "" - -#: includes/cfg_language_de.inc.php:274 -msgid "Show log" -msgstr "" - -#: includes/cfg_language_de.inc.php:276 main.loginform.php:159 -msgid "Login" -msgstr "" - -#: includes/cfg_language_de.inc.php:277 -msgid "Request password?" -msgstr "" - -#: includes/cfg_language_de.inc.php:279 -msgid "Delete note" -msgstr "" - -#: includes/cfg_language_de.inc.php:280 -msgid "Save note" -msgstr "" - -#: includes/cfg_language_de.inc.php:282 -msgid "Send mail" -msgstr "" - -#: includes/cfg_language_de.inc.php:283 -msgid "Fake permissions" -msgstr "" - -#: includes/include.style_history.php:126 -msgid "Edit Style" -msgstr "" - -#: includes/include.frontend.left_top.php:141 -msgid "Frontend users" -msgstr "" - -#: includes/include.frontend.left_top.php:148 -msgid "Frontend groups" -msgstr "" - -#: includes/include.frontend.left_top.php:261 -msgid "Show group" -msgstr "" - -#: includes/include.frontend.left_top.php:269 includes/include.mod_new.php:173 -msgid "Search in" -msgstr "" - -#: includes/include.mod_new.php:69 -msgid "New module" -msgstr "" - -#: includes/include.mod_new.php:72 -msgid "Sync module" -msgstr "" - -#: includes/include.mod_new.php:97 includes/include.mod_new.php:107 -#: includes/include.mod_new.php:127 -msgid "-- All --" -msgstr "" - -#: includes/include.mod_new.php:108 -msgid "Modulname" -msgstr "" - -#: includes/include.mod_new.php:128 -msgid "-- Without type --" -msgstr "" - -#: includes/include.mod_new.php:165 -msgid "Type filter" -msgstr "" - -#: includes/functions.lang.php:119 -msgid "" -"Could not set the language-ID in the file 'config.php'. Please set the " -"language manually." -msgstr "" - -#: includes/functions.lang.php:591 -msgid "Could not delete language" -msgstr "" - -#: includes/include.str_overview.php:511 -#, php-format -msgid "" -"Do you really want to duplicate the following category:

%s

Notice: The duplicate process can take up to several minutes, " -"depending on how many subitems and articles you've got." -msgstr "" - -#: includes/include.str_overview.php:513 -#, php-format -msgid "Do you really want to delete the following category:

%s" -msgstr "" - -#: includes/include.str_overview.php:920 -msgid "Create new category" -msgstr "" - -#: includes/include.str_overview.php:993 -#, php-format -msgid "Cancel moving %s" -msgstr "" - -#: includes/include.html_tpl_left_top.php:50 -msgid "Create module template" -msgstr "" - -#: includes/include.lang_overview.php:77 -#, php-format -msgid "Do you really want to delete the language %s?" -msgstr "" - -#: includes/include.lang_overview.php:118 -msgid "Language deleted" -msgstr "" - -#: includes/include.system_sysvalues.php:79 -#: includes/include.system_sysvalues.php:123 -msgid "No error log entries found" -msgstr "" - -#: includes/include.system_sysvalues.php:83 -msgid "No error log file found" -msgstr "" - -#: includes/include.system_sysvalues.php:116 -msgid "No install error log entries found" -msgstr "" - -#: includes/include.frontend.group_menu.php:51 -msgid "Delete frontend group" -msgstr "" - -#: includes/include.frontend.group_menu.php:52 -#, php-format -msgid "Do you really want to delete the following frontend group:
%s" +#: includes/include.systemsettings.php:163 +#: includes/include.clientsettings.php:179 +msgid "Add new variable" msgstr "" #: includes/include.rights_create.php:53 @@ -3883,33 +2504,124 @@ msgstr "" msgid "Unknown error" msgstr "" -#: includes/functions.mod.php:200 -msgid "Please do not use short open Tags. (Use
%s
" +#: includes/include.rights_create.php:150 +#: includes/include.frontend.user_menu.php:53 +#: includes/include.frontend.user_menu.php:54 +#: includes/include.rights_overview.php:203 +#: includes/include.frontend.left_top.php:58 +#: includes/include.frontend.left_top.php:59 +msgid "Username" msgstr "" -#: includes/include.note.popup.php:63 -msgid "Add note" +#: includes/include.rights_create.php:162 +#: includes/include.mycontenido_settings.php:116 +#: includes/include.frontend.user_edit.php:186 +#: includes/include.rights_overview.php:217 +msgid "New password" msgstr "" -#: includes/include.note.popup.php:75 -msgid "No category" +#: includes/include.rights_create.php:168 +#: includes/include.mycontenido_settings.php:117 +#: includes/include.rights_overview.php:223 +msgid "Confirm new password" msgstr "" -#: includes/include.note.popup.php:92 -msgid "Note" +#: includes/include.rights_create.php:174 +#: includes/include.mycontenido_settings.php:121 +#: includes/include.rights_overview.php:230 +msgid "E-Mail" msgstr "" -#: includes/functions.lay.php:66 -msgid "-- Unnamed Layout --" +#: includes/include.rights_create.php:180 +#: includes/include.rights_overview.php:236 +msgid "Phone number" +msgstr "" + +#: includes/include.rights_create.php:186 +#: includes/include.rights_overview.php:242 +msgid "Street" +msgstr "" + +#: includes/include.rights_create.php:192 +#: includes/include.rights_overview.php:248 +msgid "ZIP code" +msgstr "" + +#: includes/include.rights_create.php:198 +#: includes/include.rights_overview.php:254 +msgid "City" +msgstr "" + +#: includes/include.rights_create.php:215 +#: includes/include.rights_overview.php:271 +#: includes/include.grouprights_overview.php:129 +#: includes/include.grouprights_create.php:123 +msgid "System administrator" +msgstr "" + +#: includes/include.rights_create.php:233 +#: includes/include.rights_overview.php:289 +#: includes/include.grouprights_overview.php:147 +#: includes/include.grouprights_create.php:141 +msgid "Administrator" +msgstr "" + +#: includes/include.rights_create.php:248 +#: includes/include.rights_overview.php:305 +#: includes/include.grouprights_overview.php:163 +#: includes/include.grouprights_create.php:156 +msgid "Access clients" +msgstr "" + +#: includes/include.rights_create.php:263 +#: includes/include.rights_overview.php:322 +#: includes/include.grouprights_overview.php:180 +#: includes/include.grouprights_create.php:172 +msgid "Access languages" +msgstr "" + +#: includes/include.rights_create.php:269 +#: includes/include.rights_overview.php:373 +msgid "Use WYSIWYG-Editor" +msgstr "" + +#: includes/include.rights_create.php:290 +#: includes/include.rights_overview.php:399 +msgid "Valid from" +msgstr "" + +#: includes/include.rights_create.php:307 +#: includes/include.rights_overview.php:420 +msgid "Valid to" +msgstr "" + +#: includes/include.lang_left_top.php:80 includes/cfg_language_de.inc.php:189 +msgid "Create language" +msgstr "" + +#: includes/include.html_tpl_history.php:129 +#: includes/include.js_history.php:125 +msgid "Edit JScript" +msgstr "" + +#: includes/include.html_tpl_history.php:179 +#: includes/include.html_tpl_history.php:187 +msgid "No template history available" msgstr "" #: includes/include.system_purge.php:79 includes/include.system_purge.php:87 @@ -4048,45 +2760,2394 @@ msgstr "" msgid "Send" msgstr "" -#: backend_search.php:328 -msgid "Thank you for saving this search from extinction !" +#: includes/grouprights.inc.php:215 +msgid "Current group doesn't have any rights to any client/language." msgstr "" -#: backend_search.php:490 -msgid "Search results" +#: includes/include.rights_left_top.php:77 +#: includes/include.grouprights_left_top.php:60 +msgid "Frontend only" msgstr "" -#: backend_search.php:506 -msgid "Missing search value." +#: includes/include.rights_left_top.php:78 +#: includes/include.grouprights_left_top.php:61 +msgid "Backend only" msgstr "" -#: backend_search.php:507 backend_search.php:734 -msgid "No article found." +#: includes/include.rights_left_top.php:115 +#: includes/include.frontend.user_edit.php:185 +msgid "User name" msgstr "" -#: backend_search.php:672 -msgid "Reminder" +#: includes/include.con_editcontent.php:215 +msgid "Close editor" msgstr "" -#: backend_search.php:674 classes/class.todo.php:158 -#: classes/class.todo.php:161 -msgid "Set reminder / add to todo list" +#: includes/include.con_editcontent.php:216 +msgid "Close editor and save changes" msgstr "" -#: backend_search.php:679 -msgid "Do you really want to delete following article" +#: includes/include.con_editcontent.php:217 +msgid "Do you want to save changes?" msgstr "" -#: backend_search.php:765 -msgid "Search Name" +#: includes/include.con_editcontent.php:375 +msgid "No template assigned to the category
and/or the article" msgstr "" -#: backend_search.php:767 -msgid "Store" +#: includes/include.con_editcontent.php:376 +msgid "The code for the following article
couldnt be generated:" msgstr "" -#: backend_search.php:772 -msgid "Save this Search" +#: includes/include.grouprights_left_top.php:90 +#: includes/cfg_language_de.inc.php:181 +#: includes/include.frontend.left_top.php:442 +msgid "Create group" +msgstr "" + +#: includes/include.mycontenido_lastarticles.php:137 +#: includes/main.login.php:211 includes/include.con_left_top.php:302 +msgid "Recently edited articles" +msgstr "" + +#: includes/include.mycontenido_lastarticles.php:221 +#: includes/include.con_art_overview.php:526 +msgid "Article is online" +msgstr "" + +#: includes/include.mycontenido_lastarticles.php:224 +#: includes/include.con_art_overview.php:532 +msgid "Article is offline" +msgstr "" + +#: includes/include.mycontenido_lastarticles.php:293 +msgid "No article found" +msgstr "" + +#: includes/include.style_history.php:126 +msgid "Edit Style" +msgstr "" + +#: includes/include.style_history.php:176 +#: includes/include.style_history.php:184 includes/include.js_history.php:179 +msgid "No style history available" +msgstr "" + +#: includes/functions.con.php:331 includes/functions.con.php:518 +msgid "Default title" +msgstr "" + +#: includes/functions.con.php:1837 includes/functions.str.php:1359 +#: includes/functions.tpl.php:412 +#, php-format +msgid "%s (Copy)" +msgstr "" + +#: includes/include.frontend.user_menu.php:53 +#: includes/include.frontend.left_top.php:58 +msgid "-- All fields --" +msgstr "" + +#: includes/include.frontend.user_menu.php:139 +#: includes/include.frontend.left_top.php:228 +msgid "-- All Groups --" +msgstr "" + +#: includes/include.con_edit_form.php:134 +#: includes/include.tplcfg_edit_form.php:57 +#: external/backendedit/front_content.php:484 +#: external/frontend/front_content.php:494 +#, php-format +msgid "Article is in use by %s (%s)" +msgstr "" + +#: includes/include.con_edit_form.php:238 +#: includes/include.client_artspec.php:163 +msgid "No article specifications found!" +msgstr "" + +#: includes/include.con_edit_form.php:241 +#: includes/include.client_artspec.php:79 +msgid "Article specification" +msgstr "" + +#: includes/include.con_edit_form.php:253 +msgid "Articlelink" +msgstr "" + +#: includes/include.con_edit_form.php:260 +msgid "Select an entry to display link" +msgstr "" + +#: includes/include.con_edit_form.php:261 +msgid "Article only" +msgstr "" + +#: includes/include.con_edit_form.php:262 +msgid "Article with Category" +msgstr "" + +#: includes/include.con_edit_form.php:263 +msgid "Article with Category and Language" +msgstr "" + +#: includes/include.con_edit_form.php:264 +msgid "Article with Language" +msgstr "" + +#: includes/include.con_edit_form.php:278 +msgid "Author (Creator)" +msgstr "" + +#: includes/include.con_edit_form.php:288 +msgid "Author (Modifier)" +msgstr "" + +#: includes/include.con_edit_form.php:289 +msgid "Last modified" +msgstr "" + +#: includes/include.con_edit_form.php:293 +msgid "Publishing date" +msgstr "" + +#: includes/include.con_edit_form.php:297 +#: includes/include.con_art_overview.php:309 +msgid "not yet published" +msgstr "" + +#: includes/include.con_edit_form.php:300 +msgid "Publisher" +msgstr "" + +#: includes/include.con_edit_form.php:308 +msgid "Redirect" +msgstr "" + +#: includes/include.con_edit_form.php:324 +msgid "New Window" +msgstr "" + +#: includes/include.con_edit_form.php:350 +#: includes/include.con_art_overview.php:487 +msgid "Start article" +msgstr "" + +#: includes/include.con_edit_form.php:354 +#: includes/include.con_art_overview.php:746 +msgid "Sort key" +msgstr "" + +#: includes/include.con_edit_form.php:391 includes/cfg_language_de.inc.php:114 +msgid "Remove assignments" +msgstr "" + +#: includes/include.con_edit_form.php:393 +msgid "Remove multiple category assignments" +msgstr "" + +#: includes/include.con_edit_form.php:394 +msgid "" +"Do you really want to remove the assignments to all categories except the " +"current one?" +msgstr "" + +#: includes/include.con_edit_form.php:410 +msgid "" +"Language parts of the articles are existing in other languages and are " +"online. To change the category assignment, please set the other articles " +"offline first." +msgstr "" + +#: includes/include.con_edit_form.php:549 +msgid "Choose Startdate" +msgstr "" + +#: includes/include.con_edit_form.php:550 +msgid "Choose Enddate" +msgstr "" + +#: includes/include.con_edit_form.php:648 +msgid "Select date" +msgstr "" + +#: includes/include.con_edit_form.php:685 +msgid "Summary" +msgstr "" + +#: includes/include.tpl_overview.php:99 includes/cfg_language_de.inc.php:164 +msgid "Delete template" +msgstr "" + +#: includes/include.tpl_overview.php:100 +#, php-format +msgid "Do you really want to delete the following template:

%s
" +msgstr "" + +#: includes/include.tpl_overview.php:105 +msgid "Template in use, cannot delete" +msgstr "" + +#: includes/include.tpl_overview.php:128 +#, php-format +msgid "The template '%s' is used for following categories and articles" +msgstr "" + +#: includes/include.js_files_overview.php:132 +#: includes/include.html_tpl_files_overview.php:133 +#: includes/include.style_files_overview.php:132 +#, php-format +msgid "Do you really want to delete the following file:

%s
" +msgstr "" + +#: includes/main.login.php:67 +msgid "No Login Information available." +msgstr "" + +#: includes/main.login.php:74 +msgid "" +"You're logged in with a temporary password. Please change your password." +msgstr "" + +#: includes/main.login.php:79 +msgid "" +"The setup directory still exists. Please remove the setup directory before " +"you continue." +msgstr "" + +#: includes/main.login.php:95 +msgid "" +"The sysadmin and/or the admin account still contains a well-known default " +"password. Please change immediately." +msgstr "" + +#: includes/main.login.php:109 +msgid "Welcome" +msgstr "" + +#: includes/main.login.php:110 +msgid "Last login" +msgstr "" + +#: includes/main.login.php:128 includes/main.login.php:165 +#, php-format +msgid "Client %s (%s) has no languages" +msgstr "" + +#: includes/main.login.php:148 +msgid "Change client" +msgstr "" + +#: includes/main.login.php:153 +msgid "No clients available!" +msgstr "" + +#: includes/main.login.php:205 +#, php-format +msgid "Reminder list: %d Task open" +msgstr "" + +#: includes/main.login.php:207 +#, php-format +msgid "Reminder list: %d Tasks open" +msgstr "" + +#: includes/main.login.php:210 includes/include.frontend.group.subnav.php:40 +msgid "Overview" +msgstr "" + +#: includes/main.login.php:213 includes/functions.system.php:459 +msgid "Settings" +msgstr "" + +#: includes/main.login.php:238 +msgid "Symbol help" +msgstr "" + +#: includes/main.login.php:241 +msgid "Contenido Manual" +msgstr "" + +#: includes/include.html_tpl_edit_form.php:197 +#: includes/include.style_edit_form.php:180 +#: includes/include.js_edit_form.php:159 +msgid "Edit file" +msgstr "" + +#: includes/include.frontend.group_menu.php:51 +msgid "Delete frontend group" +msgstr "" + +#: includes/include.frontend.group_menu.php:52 +#, php-format +msgid "Do you really want to delete the following frontend group:
%s" +msgstr "" + +#: includes/cfg_language_de.inc.php:98 +#: includes/include.con_art_overview.php:384 backend_search.php:661 +msgid "Freeze article" +msgstr "" + +#: includes/cfg_language_de.inc.php:99 +msgid "Make category online" +msgstr "" + +#: includes/cfg_language_de.inc.php:100 +msgid "Change template" +msgstr "" + +#: includes/cfg_language_de.inc.php:101 +msgid "Set start article" +msgstr "" + +#: includes/cfg_language_de.inc.php:102 +msgid "Make article online" +msgstr "" + +#: includes/cfg_language_de.inc.php:103 +msgid "Syncronize Category" +msgstr "" + +#: includes/cfg_language_de.inc.php:104 +msgid "Syncronize Article" +msgstr "" + +#: includes/cfg_language_de.inc.php:107 +msgid "Edit template configuration" +msgstr "" + +#: includes/cfg_language_de.inc.php:108 +msgid "Duplicate Article" +msgstr "" + +#: includes/cfg_language_de.inc.php:109 +msgid "Expand boxes" +msgstr "" + +#: includes/cfg_language_de.inc.php:111 +msgid "Create article" +msgstr "" + +#: includes/cfg_language_de.inc.php:112 +msgid "Configure article" +msgstr "" + +#: includes/cfg_language_de.inc.php:113 +msgid "Save article" +msgstr "" + +#: includes/cfg_language_de.inc.php:115 includes/cfg_language_de.inc.php:117 +msgid "Edit article" +msgstr "" + +#: includes/cfg_language_de.inc.php:116 +msgid "Edit article properties" +msgstr "" + +#: includes/cfg_language_de.inc.php:118 +msgid "Help" +msgstr "" + +#: includes/cfg_language_de.inc.php:121 +msgid "New category" +msgstr "" + +#: includes/cfg_language_de.inc.php:122 +msgid "Set category on- or offline" +msgstr "" + +#: includes/cfg_language_de.inc.php:123 +msgid "Disable category" +msgstr "" + +#: includes/cfg_language_de.inc.php:125 +msgid "Frontend access" +msgstr "" + +#: includes/cfg_language_de.inc.php:126 +msgid "Delete category" +msgstr "" + +#: includes/cfg_language_de.inc.php:127 +msgid "Move category up" +msgstr "" + +#: includes/cfg_language_de.inc.php:128 +msgid "Move category down" +msgstr "" + +#: includes/cfg_language_de.inc.php:130 +msgid "Create new tree" +msgstr "" + +#: includes/cfg_language_de.inc.php:133 +msgid "Edit category" +msgstr "" + +#: includes/cfg_language_de.inc.php:135 includes/cfg_language_de.inc.php:145 +msgid "Create directory" +msgstr "" + +#: includes/cfg_language_de.inc.php:136 includes/cfg_language_de.inc.php:144 +#: includes/include.upl_files_upload.php:63 +msgid "Upload files" +msgstr "" + +#: includes/cfg_language_de.inc.php:137 +msgid "Delete files" +msgstr "" + +#: includes/cfg_language_de.inc.php:138 +msgid "Remove directory" +msgstr "" + +#: includes/cfg_language_de.inc.php:139 +msgid "Rename directory" +msgstr "" + +#: includes/cfg_language_de.inc.php:140 +msgid "Modify file" +msgstr "" + +#: includes/cfg_language_de.inc.php:141 +msgid "Rename file" +msgstr "" + +#: includes/cfg_language_de.inc.php:142 +msgid "Multidelete Files" +msgstr "" + +#: includes/cfg_language_de.inc.php:143 +#: includes/include.upl_files_overview.php:752 +msgid "Delete file" +msgstr "" + +#: includes/cfg_language_de.inc.php:148 +msgid "Modify layout" +msgstr "" + +#: includes/cfg_language_de.inc.php:149 +msgid "Create layout" +msgstr "" + +#: includes/cfg_language_de.inc.php:150 includes/cfg_language_de.inc.php:155 +#: includes/cfg_language_de.inc.php:201 includes/cfg_language_de.inc.php:207 +#: includes/cfg_language_de.inc.php:213 +msgid "Manage History" +msgstr "" + +#: includes/cfg_language_de.inc.php:151 includes/cfg_language_de.inc.php:156 +#: includes/cfg_language_de.inc.php:202 includes/cfg_language_de.inc.php:208 +#: includes/cfg_language_de.inc.php:214 +msgid "Truncate History" +msgstr "" + +#: includes/cfg_language_de.inc.php:154 includes/include.mod_overview.php:204 +msgid "Delete module" +msgstr "" + +#: includes/cfg_language_de.inc.php:158 +msgid "Create module" +msgstr "" + +#: includes/cfg_language_de.inc.php:159 +msgid "Import/Export module" +msgstr "" + +#: includes/cfg_language_de.inc.php:160 +msgid "Translate modules" +msgstr "" + +#: includes/cfg_language_de.inc.php:161 +msgid "Translation import/export" +msgstr "" + +#: includes/cfg_language_de.inc.php:162 +msgid "Import/Export package" +msgstr "" + +#: includes/cfg_language_de.inc.php:165 includes/include.tpl_edit_form.php:148 +msgid "Edit template" +msgstr "" + +#: includes/cfg_language_de.inc.php:166 +msgid "Create template" +msgstr "" + +#: includes/cfg_language_de.inc.php:169 +msgid "Visual edit" +msgstr "" + +#: includes/cfg_language_de.inc.php:173 +msgid "Save user area rights" +msgstr "" + +#: includes/cfg_language_de.inc.php:175 +msgid "Edit rights" +msgstr "" + +#: includes/cfg_language_de.inc.php:176 +#: includes/include.frontend.user_edit.php:177 +msgid "Edit user" +msgstr "" + +#: includes/cfg_language_de.inc.php:178 +msgid "Delete group members" +msgstr "" + +#: includes/cfg_language_de.inc.php:179 +msgid "Add group members" +msgstr "" + +#: includes/cfg_language_de.inc.php:180 +#: includes/include.frontend.group_edit.php:275 +msgid "Edit group" +msgstr "" + +#: includes/cfg_language_de.inc.php:182 +#: includes/include.grouprights_menu.php:196 +msgid "Delete group" +msgstr "" + +#: includes/cfg_language_de.inc.php:184 +msgid "Show statistics" +msgstr "" + +#: includes/cfg_language_de.inc.php:186 includes/include.lang_overview.php:68 +msgid "Activate language" +msgstr "" + +#: includes/cfg_language_de.inc.php:187 includes/include.lang_overview.php:72 +msgid "Deactivate language" +msgstr "" + +#: includes/cfg_language_de.inc.php:188 +msgid "Rename language" +msgstr "" + +#: includes/cfg_language_de.inc.php:190 includes/include.lang_overview.php:78 +msgid "Delete language" +msgstr "" + +#: includes/cfg_language_de.inc.php:193 +msgid "Linkchecker" +msgstr "" + +#: includes/cfg_language_de.inc.php:194 +msgid "Linkchecker Whitelist" +msgstr "" + +#: includes/cfg_language_de.inc.php:196 +msgid "Install/Remove plugins" +msgstr "" + +#: includes/cfg_language_de.inc.php:198 +msgid "Modify CSS" +msgstr "" + +#: includes/cfg_language_de.inc.php:199 +msgid "Create CSS" +msgstr "" + +#: includes/cfg_language_de.inc.php:200 +msgid "Delete CSS" +msgstr "" + +#: includes/cfg_language_de.inc.php:204 +msgid "Edit script" +msgstr "" + +#: includes/cfg_language_de.inc.php:205 +msgid "Delete script" +msgstr "" + +#: includes/cfg_language_de.inc.php:206 includes/include.js_left_top.php:50 +msgid "Create script" +msgstr "" + +#: includes/cfg_language_de.inc.php:210 +msgid "Modify HTML-Template" +msgstr "" + +#: includes/cfg_language_de.inc.php:211 +msgid "Create HTML-Template" +msgstr "" + +#: includes/cfg_language_de.inc.php:212 +msgid "Delete HTML-Template" +msgstr "" + +#: includes/cfg_language_de.inc.php:216 +msgid "Edit newsletter" +msgstr "" + +#: includes/cfg_language_de.inc.php:218 +msgid "Delete newsletter" +msgstr "" + +#: includes/cfg_language_de.inc.php:219 +msgid "Duplicate newsletter" +msgstr "" + +#: includes/cfg_language_de.inc.php:220 +msgid "Add newsletter dispatch job" +msgstr "" + +#: includes/cfg_language_de.inc.php:221 +msgid "Change global HTML newsletter settings" +msgstr "" + +#: includes/cfg_language_de.inc.php:222 +msgid "Send test newsletter (to groups)" +msgstr "" + +#: includes/cfg_language_de.inc.php:223 +msgid "Delete dispatch job" +msgstr "" + +#: includes/cfg_language_de.inc.php:224 +msgid "Remove recipient from dispatch job" +msgstr "" + +#: includes/cfg_language_de.inc.php:225 +msgid "Run job" +msgstr "" + +#: includes/cfg_language_de.inc.php:226 +msgid "View dispatch job details" +msgstr "" + +#: includes/cfg_language_de.inc.php:228 +msgid "Edit recipient" +msgstr "" + +#: includes/cfg_language_de.inc.php:230 +msgid "Delete recipient" +msgstr "" + +#: includes/cfg_language_de.inc.php:231 +msgid "Purge recipients" +msgstr "" + +#: includes/cfg_language_de.inc.php:232 +msgid "Import recipients" +msgstr "" + +#: includes/cfg_language_de.inc.php:233 +msgid "Execute recipients import" +msgstr "" + +#: includes/cfg_language_de.inc.php:234 +msgid "Delete recipient group" +msgstr "" + +#: includes/cfg_language_de.inc.php:236 +msgid "Delete recipient from group" +msgstr "" + +#: includes/cfg_language_de.inc.php:237 +msgid "Save recipient group" +msgstr "" + +#: includes/cfg_language_de.inc.php:239 +msgid "Edit own MyContenido settings" +msgstr "" + +#: includes/cfg_language_de.inc.php:240 +msgid "Delete reminder item" +msgstr "" + +#: includes/cfg_language_de.inc.php:241 +msgid "Save todo item" +msgstr "" + +#: includes/cfg_language_de.inc.php:243 includes/include.client_left_top.php:50 +msgid "Create client" +msgstr "" + +#: includes/cfg_language_de.inc.php:244 +msgid "Edit client" +msgstr "" + +#: includes/cfg_language_de.inc.php:245 +msgid "Remove client" +msgstr "" + +#: includes/cfg_language_de.inc.php:246 +msgid "Delete clientsetting" +msgstr "" + +#: includes/cfg_language_de.inc.php:247 +msgid "Edit clientsetting" +msgstr "" + +#: includes/cfg_language_de.inc.php:248 +msgid "Save clientsetting" +msgstr "" + +#: includes/cfg_language_de.inc.php:249 +msgid "Create/Edit articlespecifications" +msgstr "" + +#: includes/cfg_language_de.inc.php:250 +msgid "Delete articlespecifications" +msgstr "" + +#: includes/cfg_language_de.inc.php:251 +msgid "Define default articlespecification" +msgstr "" + +#: includes/cfg_language_de.inc.php:252 +msgid "Edit articlespecifications" +msgstr "" + +#: includes/cfg_language_de.inc.php:253 +msgid "Make articlespecifications online" +msgstr "" + +#: includes/cfg_language_de.inc.php:255 +msgid "Save frontenduser" +msgstr "" + +#: includes/cfg_language_de.inc.php:256 +msgid "Create frontenduser" +msgstr "" + +#: includes/cfg_language_de.inc.php:257 includes/cfg_language_de.inc.php:263 +msgid "Delete frontenduser" +msgstr "" + +#: includes/cfg_language_de.inc.php:258 +msgid "Delete frontendgroup" +msgstr "" + +#: includes/cfg_language_de.inc.php:259 +msgid "Save frontendgroup" +msgstr "" + +#: includes/cfg_language_de.inc.php:260 includes/cfg_language_de.inc.php:261 +msgid "Create frontendgroup" +msgstr "" + +#: includes/cfg_language_de.inc.php:262 +msgid "Add frontendusers" +msgstr "" + +#: includes/cfg_language_de.inc.php:264 +msgid "Save frontendgroup permissions" +msgstr "" + +#: includes/cfg_language_de.inc.php:266 +msgid "Delete system property" +msgstr "" + +#: includes/cfg_language_de.inc.php:267 +msgid "Edit system property" +msgstr "" + +#: includes/cfg_language_de.inc.php:268 +msgid "Save system property" +msgstr "" + +#: includes/cfg_language_de.inc.php:270 +msgid "Empty log" +msgstr "" + +#: includes/cfg_language_de.inc.php:271 +msgid "Edit Systemconfigration" +msgstr "" + +#: includes/cfg_language_de.inc.php:272 +msgid "Do system purge" +msgstr "" + +#: includes/cfg_language_de.inc.php:274 +msgid "Show log" +msgstr "" + +#: includes/cfg_language_de.inc.php:276 main.loginform.php:159 +msgid "Login" +msgstr "" + +#: includes/cfg_language_de.inc.php:277 +msgid "Request password?" +msgstr "" + +#: includes/cfg_language_de.inc.php:279 +msgid "Delete note" +msgstr "" + +#: includes/cfg_language_de.inc.php:280 +msgid "Save note" +msgstr "" + +#: includes/cfg_language_de.inc.php:282 +msgid "Send mail" +msgstr "" + +#: includes/cfg_language_de.inc.php:283 +msgid "Fake permissions" +msgstr "" + +#: includes/include.frontend.group_edit.php:56 +msgid "-- new group --" +msgstr "" + +#: includes/include.frontend.group_edit.php:121 +msgid "Could not set new group name: Group already exists" +msgstr "" + +#: includes/include.frontend.group_edit.php:221 +#: includes/include.grouprights_create.php:102 +msgid "Group name" +msgstr "" + +#: includes/include.frontend.group_edit.php:227 +msgid "Default group" +msgstr "" + +#: includes/grouprights_members.inc.php:208 +msgid "Manage group members" +msgstr "" + +#: includes/include.mycontenido_settings.php:57 +msgid "Old password incorrect" +msgstr "" + +#: includes/include.mycontenido_settings.php:77 +msgid "Password changed" +msgstr "" + +#: includes/include.mycontenido_settings.php:97 +#, php-format +msgid "Settings for %s" +msgstr "" + +#: includes/include.mycontenido_settings.php:115 +msgid "Old password" +msgstr "" + +#: includes/include.mycontenido_settings.php:125 +msgid "Use WYSIWYG Editor" +msgstr "" + +#: includes/include.mycontenido_settings.php:129 +msgid "The format is equal to PHP's date() function." +msgstr "" + +#: includes/include.mycontenido_settings.php:131 +msgid "Common date formattings" +msgstr "" + +#: includes/include.client_edit.php:49 +msgid "No client ID passed" +msgstr "" + +#: includes/include.client_edit.php:59 +msgid "" +"Notice: In order to use this client, you must create a new language for it." +msgstr "" + +#: includes/include.client_edit.php:63 +#, php-format +msgid "Please click %shere%s to create a new language." +msgstr "" + +#: includes/include.client_edit.php:102 +msgid "Couldn't write the file config.php." +msgstr "" + +#: includes/include.client_edit.php:110 +#, php-format +msgid "Succesfully copied client-template to %s." +msgstr "" + +#: includes/include.client_edit.php:113 +#, php-format +msgid "" +"Cannot create directory %s . The client was created, but you have to copy " +"the frontend-template yourself" +msgstr "" + +#: includes/include.client_edit.php:117 +#, php-format +msgid "" +"The directory %s already exists. The client was created, but you have to " +"copy the frontend-template yourself" +msgstr "" + +#: includes/include.client_edit.php:121 +#, php-format +msgid "Client '%s' created." +msgstr "" + +#: includes/include.client_edit.php:136 +msgid "" +"You changed the client path. You might need to copy the frontend to the new " +"location" +msgstr "" + +#: includes/include.client_edit.php:216 +#: includes/include.rights_overview.php:193 +#: includes/include.grouprights_overview.php:103 +#: includes/include.CMS_EASYIMG.php:157 +msgid "Discard changes" +msgstr "" + +#: includes/include.client_edit.php:232 +msgid "Client name" +msgstr "" + +#: includes/include.client_edit.php:247 +msgid "Server path" +msgstr "" + +#: includes/include.client_edit.php:262 +msgid "Web address" +msgstr "" + +#: includes/include.client_edit.php:271 +msgid "Error page category" +msgstr "" + +#: includes/include.client_edit.php:280 +msgid "Error page article" +msgstr "" + +#: includes/include.client_edit.php:291 +msgid "Client logo" +msgstr "" + +#: includes/include.client_edit.php:300 +msgid "HTML" +msgstr "" + +#: includes/include.client_edit.php:300 +msgid "XHTML" +msgstr "" + +#: includes/include.client_edit.php:300 +msgid "HTML5" +msgstr "" + +#: includes/include.client_edit.php:315 +msgid "Generate" +msgstr "" + +#: includes/include.client_edit.php:325 +msgid "Copy frontend template" +msgstr "" + +#: includes/include.upl_edit.php:91 +msgid "File name" +msgstr "" + +#: includes/include.upl_edit.php:92 includes/include.upl_search_results.php:204 +#: includes/include.upl_search_results.php:209 +#: includes/include.upl_search_results.php:212 +msgid "Path" +msgstr "" + +#: includes/include.upl_edit.php:93 +msgid "Replace file" +msgstr "" + +#: includes/include.upl_edit.php:94 +msgid "Media name" +msgstr "" + +#: includes/include.upl_edit.php:96 +msgid "Keywords" +msgstr "" + +#: includes/include.upl_edit.php:97 +msgid "Internal notes" +msgstr "" + +#: includes/include.upl_edit.php:98 +msgid "Copyright" +msgstr "" + +#: includes/include.upl_edit.php:99 +msgid "Protection" +msgstr "" + +#: includes/include.upl_edit.php:101 +#: includes/include.upl_search_results.php:286 +#: includes/include.upl_files_overview.php:526 includes/include.CMS_IMG.php:283 +msgid "Preview" +msgstr "" + +#: includes/include.upl_edit.php:102 +#: includes/include.frontend.user_edit.php:241 +#: includes/include.con_left_top.php:275 +msgid "Author" +msgstr "" + +#: includes/include.upl_edit.php:103 +#: includes/include.frontend.user_edit.php:242 +msgid "Last modified by" +msgstr "" + +#: includes/include.upl_edit.php:200 +msgid "Protected for non-logged in users" +msgstr "" + +#: includes/include.upl_edit.php:304 includes/include.upl_files_upload.php:67 +#: includes/include.upl_files_overview.php:84 +msgid "Directory not writable" +msgstr "" + +#: includes/include.upl_edit.php:313 +#, php-format +msgid "Could not load file %s" +msgstr "" + +#: includes/include.str_overview.php:181 includes/include.str_overview.php:763 +#: includes/include.frontend.user_edit.php:237 +#: includes/include.rights_overview.php:457 +#: includes/include.tpl_visualedit.php:146 +#: includes/include.tpl_edit_form.php:86 includes/include.tpl_edit_form.php:91 +#: includes/include.tpl_edit_form.php:203 +#: includes/include.tplcfg_edit_form.php:301 +#: includes/include.con_left_top.php:374 +msgid "none" +msgstr "" + +#: includes/include.str_overview.php:596 +#, php-format +msgid "" +"Do you really want to duplicate the following category:

%s

Notice: The duplicate process can take up to several minutes, " +"depending on how many subitems and articles you've got." +msgstr "" + +#: includes/include.str_overview.php:598 +#, php-format +msgid "Do you really want to delete the following category:

%s" +msgstr "" + +#: includes/include.str_overview.php:1013 +msgid "Create new category" +msgstr "" + +#: includes/include.str_overview.php:1085 +#, php-format +msgid "Cancel moving %s" +msgstr "" + +#: includes/include.logs.php:64 +msgid "Submit query" +msgstr "" + +#: includes/include.logs.php:75 +msgid "All users" +msgstr "" + +#: includes/include.logs.php:77 +msgid "All actions" +msgstr "" + +#: includes/include.logs.php:199 +msgid "Unlimited" +msgstr "" + +#: includes/include.logs.php:200 includes/include.logs.php:201 +#: includes/include.logs.php:202 includes/include.logs.php:203 +#: includes/include.logs.php:204 +msgid "Entries" +msgstr "" + +#: includes/include.logs.php:275 +msgid "No results" +msgstr "" + +#: includes/include.lay_preview.php:29 includes/include.tpl_visualedit.php:84 +msgid "No such layout" +msgstr "" + +#: includes/include.upl_artlist.php:66 +msgid "Use this category" +msgstr "" + +#: includes/include.upl_artlist.php:81 +msgid "Sort Order" +msgstr "" + +#: includes/include.upl_artlist.php:81 +msgid "Online" +msgstr "" + +#: includes/include.frontend.user_edit.php:50 +#: includes/include.frontend.user_edit.php:70 +#: includes/include.frontend.user_edit.php:107 +msgid "-- new user --" +msgstr "" + +#: includes/include.frontend.user_edit.php:110 +msgid "Username empty or not set! Please choose one." +msgstr "" + +#: includes/include.frontend.user_edit.php:115 +msgid "Password not set right now!" +msgstr "" + +#: includes/include.frontend.user_edit.php:121 +msgid "Could not set new username: Username already exists" +msgstr "" + +#: includes/include.frontend.user_edit.php:128 +msgid "Could not set new password: Passwords don't match" +msgstr "" + +#: includes/include.frontend.user_edit.php:187 +msgid "New password (again)" +msgstr "" + +#: includes/include.frontend.user_edit.php:215 +msgid "WARNING" +msgstr "" + +#: includes/include.frontend.user_edit.php:215 +#, php-format +msgid "" +"The plugin %s delivered an array for the displayed titles, but did not " +"return an array for the contents." +msgstr "" + +#: includes/include.frontend.user_edit.php:240 +#: includes/include.rights_overview.php:460 +msgid "Group membership" +msgstr "" + +#: includes/functions.system.php:55 +msgid "Can't clear install error log : Access is denied!" +msgstr "" + +#: includes/functions.system.php:60 +msgid "error log successfully cleared" +msgstr "" + +#: includes/functions.system.php:281 +msgid "Contenido version" +msgstr "" + +#: includes/functions.system.php:284 +msgid "Contenido path" +msgstr "" + +#: includes/functions.system.php:286 +msgid "Contenido HTML path" +msgstr "" + +#: includes/functions.system.php:288 +msgid "Contenido full HTML path" +msgstr "" + +#: includes/functions.system.php:290 +msgid "Contenido frontend path" +msgstr "" + +#: includes/functions.system.php:292 +msgid "Contenido PHPLIB path" +msgstr "" + +#: includes/functions.system.php:294 +msgid "Contenido wysiwyg path" +msgstr "" + +#: includes/functions.system.php:296 +msgid "Contenido wysiwyg HTML path" +msgstr "" + +#: includes/functions.system.php:299 +msgid "Host name" +msgstr "" + +#: includes/functions.system.php:302 +msgid "Browser path" +msgstr "" + +#: includes/functions.system.php:325 +msgid "client settings" +msgstr "" + +#: includes/functions.system.php:326 +msgid "values" +msgstr "" + +#: includes/functions.system.php:357 +msgid "language(s)" +msgstr "" + +#: includes/functions.system.php:366 +msgid "htmlpath" +msgstr "" + +#: includes/functions.system.php:370 +msgid "frontendpath" +msgstr "" + +#: includes/functions.system.php:382 +msgid "No permissions!" +msgstr "" + +#: includes/functions.system.php:388 +msgid "Number of installed clients: " +msgstr "" + +#: includes/functions.system.php:391 +msgid "Client informations" +msgstr "" + +#: includes/functions.system.php:398 +msgid "Number of users" +msgstr "" + +#: includes/functions.system.php:408 +msgid "Server operating system" +msgstr "" + +#: includes/functions.system.php:412 +msgid "PHP database extension" +msgstr "" + +#: includes/functions.system.php:414 +msgid "Database server version" +msgstr "" + +#: includes/functions.system.php:417 +msgid "Installed PHP version" +msgstr "" + +#: includes/functions.system.php:422 includes/functions.system.php:426 +#: includes/functions.system.php:430 includes/functions.system.php:451 +msgid "activated" +msgstr "" + +#: includes/functions.system.php:422 includes/functions.system.php:426 +#: includes/functions.system.php:430 includes/functions.system.php:451 +msgid "deactivated" +msgstr "" + +#: includes/functions.system.php:443 +msgid "nothing disabled" +msgstr "" + +#: includes/functions.system.php:444 +msgid "Disabled functions" +msgstr "" + +#: includes/functions.system.php:447 +msgid "loaded" +msgstr "" + +#: includes/functions.system.php:447 +msgid "not loaded" +msgstr "" + +#: includes/functions.system.php:448 +msgid "Gettext extension" +msgstr "" + +#: includes/functions.system.php:460 +msgid "Values" +msgstr "" + +#: includes/functions.system.php:477 +msgid "GD library" +msgstr "" + +#: includes/functions.system.php:640 +msgid "an error occured while sending your bug report! Please try again" +msgstr "" + +#: includes/functions.system.php:643 +msgid "bug report forwarded" +msgstr "" + +#: includes/functions.system.php:649 +msgid "please fill out all mandatory fields" +msgstr "" + +#: includes/functions.system.php:653 +msgid "please enter a valid E-Mail adress" +msgstr "" + +#: includes/functions.system.php:657 +msgid "you must agree the declaration of consent" +msgstr "" + +#: includes/include.system_configuration.php:93 +msgid "Versioning activated" +msgstr "" + +#: includes/include.system_configuration.php:93 +#: includes/include.system_configuration.php:94 +#: includes/include.system_configuration.php:95 +msgid "Versioning" +msgstr "" + +#: includes/include.system_configuration.php:94 +msgid "Serverpath to version files" +msgstr "" + +#: includes/include.system_configuration.php:95 +msgid "Maximum number of stored versions" +msgstr "" + +#: includes/include.system_configuration.php:96 +msgid "Check for updates" +msgstr "" + +#: includes/include.system_configuration.php:96 +#: includes/include.system_configuration.php:97 +#: includes/include.system_configuration.php:98 +msgid "Update notifier" +msgstr "" + +#: includes/include.system_configuration.php:97 +msgid "Get news from conlite.org" +msgstr "" + +#: includes/include.system_configuration.php:98 +msgid "Update check period (minutes)" +msgstr "" + +#: includes/include.system_configuration.php:99 +msgid "Clickable menu in backend" +msgstr "" + +#: includes/include.system_configuration.php:99 +#: includes/include.system_configuration.php:100 +#: includes/include.system_configuration.php:101 +#: includes/include.system_configuration.php:102 +#: includes/include.system_configuration.php:103 +#: includes/include.system_configuration.php:104 +msgid "Backend" +msgstr "" + +#: includes/include.system_configuration.php:100 +msgid "Use passwordrequest in Backend" +msgstr "" + +#: includes/include.system_configuration.php:101 +msgid "Activate maintenance mode" +msgstr "" + +#: includes/include.system_configuration.php:102 +msgid "Use editarea for code highlighting" +msgstr "" + +#: includes/include.system_configuration.php:103 +msgid "Use TinyMce as insight editor" +msgstr "" + +#: includes/include.system_configuration.php:104 +msgid "Default client (ID)" +msgstr "" + +#: includes/include.system_configuration.php:105 +msgid "Mailserver host" +msgstr "" + +#: includes/include.system_configuration.php:105 +#: includes/include.system_configuration.php:106 +#: includes/include.system_configuration.php:107 +msgid "Mailserver" +msgstr "" + +#: includes/include.system_configuration.php:106 +msgid "Mailserver sender mail" +msgstr "" + +#: includes/include.system_configuration.php:107 +msgid "Mailserver sender name" +msgstr "" + +#: includes/include.system_configuration.php:109 +msgid "Generate basehref" +msgstr "" + +#: includes/include.system_configuration.php:109 +#: includes/include.system_configuration.php:110 +msgid "Development" +msgstr "" + +#: includes/include.system_configuration.php:110 +msgid "Use image magic (if available)" +msgstr "" + +#: includes/include.system_configuration.php:123 +msgid "Update check period must be at least 60 minutes." +msgstr "" + +#: includes/include.system_configuration.php:142 +msgid "System Configuration" +msgstr "" + +#: includes/include.system_configuration.php:192 +msgid "Access denied" +msgstr "" + +#: includes/include.rights_overview.php:75 +msgid "User deleted" +msgstr "" + +#: includes/include.rights_overview.php:144 +#: includes/include.rights_overview.php:149 +msgid "An error occured while saving user info." +msgstr "" + +#: includes/include.rights_overview.php:352 +#: includes/include.grouprights_overview.php:208 +msgid "Area/Type" +msgstr "" + +#: includes/include.rights_overview.php:366 +#: includes/include.grouprights_overview.php:222 +msgid "User-defined properties" +msgstr "" + +#: includes/include.rights_overview.php:438 +msgid "This account is currently inactive." +msgstr "" + +#: includes/include.rights_overview.php:441 +msgid "This account is currently active." +msgstr "" + +#: includes/include.upl_left_top.php:112 +msgid "Create directory in" +msgstr "" + +#: includes/include.CMS_LINK.php:153 +msgid "External link" +msgstr "" + +#: includes/include.CMS_LINK.php:210 +msgid "Internal link" +msgstr "" + +#: includes/include.CMS_LINK.php:240 +msgid "Link to a document" +msgstr "" + +#: includes/include.CMS_LINK.php:270 +msgid "Link to an image" +msgstr "" + +#: includes/include.CMS_LINK.php:285 +msgid "Link to an archive" +msgstr "" + +#: includes/include.CMS_LINK.php:300 +msgid "Link to a media file" +msgstr "" + +#: includes/include.CMS_LINK.php:316 +msgid "Link to any file" +msgstr "" + +#: includes/include.CMS_LINK.php:340 +msgid "Upload file" +msgstr "" + +#: includes/include.CMS_LINK.php:345 +msgid "Target frame" +msgstr "" + +#: includes/include.CMS_LINK.php:353 +msgid "Open link in new window" +msgstr "" + +#: includes/include.CMS_LINK.php:375 +msgid "Open in new window" +msgstr "" + +#: includes/include.js_history.php:171 +msgid "No jscript history available" +msgstr "" + +#: includes/include.upl_search_results.php:190 +#: includes/include.upl_search_results.php:195 +#: includes/include.upl_search_results.php:198 +#: includes/include.upl_files_overview.php:449 +#: includes/include.upl_files_overview.php:452 +#: includes/include.upl_files_overview.php:454 +msgid "Filename / Description" +msgstr "" + +#: includes/include.upl_search_results.php:218 +#: includes/include.upl_search_results.php:223 +#: includes/include.upl_search_results.php:226 +#: includes/include.upl_files_overview.php:459 +#: includes/include.upl_files_overview.php:462 +#: includes/include.upl_files_overview.php:464 +msgid "Size" +msgstr "" + +#: includes/include.upl_search_results.php:246 +#: includes/include.upl_search_results.php:251 +#: includes/include.upl_search_results.php:254 +msgid "Relevance" +msgstr "" + +#: includes/include.upl_search_results.php:260 +msgid "Searched for:" +msgstr "" + +#: includes/include.upl_search_results.php:276 +#: includes/include.upl_files_overview.php:517 +msgid "Files per Page" +msgstr "" + +#: includes/include.upl_search_results.php:445 +#: includes/include.upl_files_overview.php:681 +msgid "Previous Page" +msgstr "" + +#: includes/include.upl_search_results.php:452 +#: includes/include.upl_files_overview.php:687 +msgid "Next Page" +msgstr "" + +#: includes/include.upl_search_results.php:490 +#: includes/include.upl_files_overview.php:727 +msgid "Page" +msgstr "" + +#: includes/include.upl_search_results.php:605 +#: includes/include.upl_files_overview.php:884 +msgid "Enter new filename" +msgstr "" + +#: includes/include.note.popup.php:63 +msgid "Add note" +msgstr "" + +#: includes/include.note.popup.php:75 +msgid "No category" +msgstr "" + +#: includes/include.note.popup.php:92 +msgid "Note" +msgstr "" + +#: includes/functions.stat.php:44 +msgid "Info about article" +msgstr "" + +#: includes/functions.stat.php:46 +msgid "Info about directory" +msgstr "" + +#: includes/functions.stat.php:285 +msgid "Category is online" +msgstr "" + +#: includes/functions.stat.php:287 +msgid "Category is offline" +msgstr "" + +#: includes/functions.stat.php:478 +msgid "Sum" +msgstr "" + +#: includes/include.grouprights_overview.php:67 +msgid "Changes couldn't saved" +msgstr "" + +#: includes/include.grouprights_overview.php:112 +msgid "Groupname" +msgstr "" + +#: includes/include.stat_menu.php:37 +msgid "Current Report" +msgstr "" + +#: includes/include.stat_menu.php:45 +msgid "Statistics Overview" +msgstr "" + +#: includes/include.stat_menu.php:56 +msgid "Archived Statistics" +msgstr "" + +#: includes/include.clientsettings.php:49 +msgid "Select range" +msgstr "" + +#: includes/include.clientsettings.php:52 +msgid "Language independent" +msgstr "" + +#: includes/include.clientsettings.php:78 +msgid "Range" +msgstr "" + +#: includes/functions.file.php:206 +msgid "Please insert filename." +msgstr "" + +#: includes/functions.file.php:218 +#, php-format +msgid "Could not open file %s" +msgstr "" + +#: includes/functions.file.php:223 +#, php-format +msgid "Could not write file %s" +msgstr "" + +#: includes/functions.file.php:234 includes/functions.file.php:338 +#, php-format +msgid "%s is not writable" +msgstr "" + +#: includes/functions.file.php:255 +#, php-format +msgid "Can not open file%s " +msgstr "" + +#: includes/functions.file.php:304 +msgid "Unable to change file access permission." +msgstr "" + +#: includes/functions.file.php:308 +#, php-format +msgid "Unable to create file %s" +msgstr "" + +#: includes/functions.file.php:334 +#, php-format +msgid "Can not rename file %s" +msgstr "" + +#: includes/functions.file.php:361 +msgid "Wrong filename." +msgstr "" + +#: includes/include.frontend.group_rights.php:47 +msgid "Invalid plugin" +msgstr "" + +#: includes/include.frontend.group_rights.php:96 +#, php-format +msgid "Permissions for plugin '%s'" +msgstr "" + +#: includes/include.frontend.group_rights.php:101 +msgid "(All)" +msgstr "" + +#: includes/include.frontend.group_rights.php:109 +msgid "Global rights" +msgstr "" + +#: includes/include.frontend.group_rights.php:131 +msgid "No items found" +msgstr "" + +#: includes/functions.lang.php:119 +msgid "" +"Could not set the language-ID in the file 'config.php'. Please set the " +"language manually." +msgstr "" + +#: includes/functions.lang.php:585 +msgid "Could not delete language" +msgstr "" + +#: includes/include.tpl_new.php:39 +msgid "New template" +msgstr "" + +#: includes/include.lay_new.php:38 +msgid "New Layout" +msgstr "" + +#: includes/include.system_sysvalues.php:80 +#: includes/include.system_sysvalues.php:124 +msgid "No error log entries found" +msgstr "" + +#: includes/include.system_sysvalues.php:84 +msgid "No error log file found" +msgstr "" + +#: includes/include.system_sysvalues.php:117 +msgid "No install error log entries found" +msgstr "" + +#: includes/include.upl_files_upload.php:51 +msgid "Upload" +msgstr "" + +#: includes/include.upl_files_upload.php:59 +#: includes/include.upl_files_overview.php:502 +msgid "Path:" +msgstr "" + +#: includes/functions.mod.php:200 +msgid "Please do not use short open Tags. (Use
%s" +msgstr "" + +#: includes/include.con_art_overview.php:683 +#: includes/include.con_art_overview.php:686 +#, php-format +msgid "Go to page: %s" +msgstr "" + +#: includes/include.con_art_overview.php:689 +msgid "with click select line for further treatment" +msgstr "" + +#: includes/include.con_art_overview.php:737 +#: includes/include.con_art_overview.php:841 +msgid "No articles found" +msgstr "" + +#: includes/include.con_art_overview.php:743 +msgid "Alphabetical" +msgstr "" + +#: includes/include.con_art_overview.php:744 +msgid "Last change" +msgstr "" + +#: includes/include.con_art_overview.php:745 +msgid "Published date" +msgstr "" + +#: includes/include.con_art_overview.php:764 +msgid "Sort articles:" +msgstr "" + +#: includes/include.con_art_overview.php:791 +msgid "Items per page:" +msgstr "" + +#: includes/functions.upl.php:723 +msgid "OpenOffice.org Presentation" +msgstr "" + +#: includes/functions.upl.php:724 +msgid "OpenOffice.org Presentation Template" +msgstr "" + +#: includes/functions.upl.php:725 +msgid "Microsoft PowerPoint Screen Presentation" +msgstr "" + +#: includes/functions.upl.php:726 includes/functions.upl.php:728 +msgid "Microsoft PowerPoint Presentation Template" +msgstr "" + +#: includes/functions.upl.php:727 +msgid "KDE KPresenter Document" +msgstr "" + +#: includes/functions.upl.php:731 +msgid "Microsoft Word Document or regular text file" +msgstr "" + +#: includes/functions.upl.php:732 +msgid "Microsoft Word Template" +msgstr "" + +#: includes/functions.upl.php:733 +msgid "OpenOffice.org Text Document" +msgstr "" + +#: includes/functions.upl.php:734 +msgid "OpenOffice.org Text Document Template" +msgstr "" + +#: includes/functions.upl.php:735 +msgid "StarOffice 5.0 Text Document" +msgstr "" + +#: includes/functions.upl.php:736 +msgid "KDE KWord Document" +msgstr "" + +#: includes/functions.upl.php:739 +msgid "Microsoft Excel Worksheet" +msgstr "" + +#: includes/functions.upl.php:740 +msgid "OpenOffice.org Table" +msgstr "" + +#: includes/functions.upl.php:741 +msgid "OpenOffice.org Table Template" +msgstr "" + +#: includes/functions.upl.php:742 +msgid "Microsoft Excel File" +msgstr "" + +#: includes/functions.upl.php:743 +msgid "Microsoft Excel Template" +msgstr "" + +#: includes/functions.upl.php:744 +msgid "Comma Seperated Value File" +msgstr "" + +#: includes/functions.upl.php:745 +msgid "KDE KSpread Document" +msgstr "" + +#: includes/functions.upl.php:746 +msgid "StarOffice 5.0 Table" +msgstr "" + +#: includes/functions.upl.php:749 +msgid "Plain Text" +msgstr "" + +#: includes/functions.upl.php:750 +msgid "Rich Text Format" +msgstr "" + +#: includes/functions.upl.php:753 +msgid "GIF Image" +msgstr "" + +#: includes/functions.upl.php:754 +msgid "PNG Image" +msgstr "" + +#: includes/functions.upl.php:755 includes/functions.upl.php:756 +msgid "JPEG Image" +msgstr "" + +#: includes/functions.upl.php:757 +msgid "TIFF Image" +msgstr "" + +#: includes/functions.upl.php:758 +msgid "Adobe Photoshop Image" +msgstr "" + +#: includes/functions.upl.php:761 includes/functions.upl.php:762 +msgid "Hypertext Markup Language Document" +msgstr "" + +#: includes/functions.upl.php:763 +msgid "Cascading Style Sheets" +msgstr "" + +#: includes/functions.upl.php:766 +msgid "LHA Archive" +msgstr "" + +#: includes/functions.upl.php:767 +msgid "RAR Archive" +msgstr "" + +#: includes/functions.upl.php:768 +msgid "ARJ Archive" +msgstr "" + +#: includes/functions.upl.php:769 +msgid "bz2-compressed File" +msgstr "" + +#: includes/functions.upl.php:770 +msgid "bzip-compressed File" +msgstr "" + +#: includes/functions.upl.php:771 +msgid "ZIP Archive" +msgstr "" + +#: includes/functions.upl.php:772 +msgid "TAR Archive" +msgstr "" + +#: includes/functions.upl.php:773 +msgid "GZ Compressed File" +msgstr "" + +#: includes/functions.upl.php:776 +msgid "C Program Code" +msgstr "" + +#: includes/functions.upl.php:779 +msgid "C++ Program Code" +msgstr "" + +#: includes/functions.upl.php:781 +msgid "C or C++ Program Header" +msgstr "" + +#: includes/functions.upl.php:784 +msgid "PHP Program Code" +msgstr "" + +#: includes/functions.upl.php:785 +msgid "PHP Source File" +msgstr "" + +#: includes/functions.upl.php:787 +msgid "Adobe Acrobat Portable Document" +msgstr "" + +#: includes/functions.upl.php:790 +msgid "QuickTime Movie" +msgstr "" + +#: includes/functions.upl.php:791 +msgid "avi Movie" +msgstr "" + +#: includes/functions.upl.php:793 +msgid "MPEG Movie" +msgstr "" + +#: includes/functions.upl.php:794 +msgid "Windows Media Video" +msgstr "" + +#: includes/functions.upl.php:796 +msgid "-File" +msgstr "" + +#: includes/include.upl_files_overview.php:240 +#, php-format +msgid "" +"The uploaded file (%s) exceeds the upload_max_filesize directive in php.ini." +msgstr "" + +#: includes/include.upl_files_overview.php:250 +#, php-format +msgid "Error while uploading file (%s)." +msgstr "" + +#: includes/include.upl_files_overview.php:302 +msgid "Errors while uploading file(s). Some or all files were not uploaded." +msgstr "" + +#: includes/include.upl_files_overview.php:386 +#: includes/include.upl_files_overview.php:388 +msgid "Use file" +msgstr "" + +#: includes/include.upl_files_overview.php:480 +msgid "Delete Files" +msgstr "" + +#: includes/include.upl_files_overview.php:480 +msgid "Are you sure you want to delete the selected files?" +msgstr "" + +#: includes/include.upl_files_overview.php:481 +msgid "Delete selected files" +msgstr "" + +#: includes/include.upl_files_overview.php:497 +msgid "Flip Selection" +msgstr "" + +#: includes/include.upl_files_overview.php:525 +msgid "Mark" +msgstr "" + +#: includes/include.upl_files_overview.php:632 +msgid "Display properties" +msgstr "" + +#: includes/include.upl_files_overview.php:753 +msgid "Do you really want to delete the following file:
" +msgstr "" + +#: includes/include.pretplcfg_edit_form.php:101 +#, php-format +msgid "Module in Container %s" +msgstr "" + +#: includes/include.pretplcfg_edit_form.php:150 +msgid "Template preconfiguration" +msgstr "" + +#: includes/include.info.php:38 +msgid "" +"You can find a lot of information and a community forum on the ConLite Portal" +msgstr "" + +#: includes/include.CMS_IMG.php:275 +msgid "Directory / File" +msgstr "" + +#: includes/include.tpl_edit_form.php:43 +msgid "- New Template -" +msgstr "" + +#: includes/include.tpl_edit_form.php:158 +#: includes/include.tpl_edit_form.php:234 +msgid "Default" +msgstr "" + +#: includes/include.mod_translate.php:138 +#, php-format +msgid "Translate module '%s'" +msgstr "" + +#: includes/include.mod_translate.php:147 +msgid "Translated Name" +msgstr "" + +#: includes/include.mod_translate.php:157 +msgid "Original module string" +msgstr "" + +#: includes/include.mod_translate.php:157 +#, php-format +msgid "Translation for %s" +msgstr "" + +#: includes/include.mod_translate.php:165 +msgid "" +"Hint: Hit ALT+SHIFT+S to save the translated entry and advance to the next " +"string." +msgstr "" + +#: includes/include.mod_translate.php:166 +msgid "String list" +msgstr "" + +#: includes/include.tplcfg_edit_form.php:76 +#, php-format +msgid "Category Template configuration is in use by %s (%s)" +msgstr "" + +#: includes/include.tplcfg_edit_form.php:352 +msgid "Module in container" +msgstr "" + +#: includes/include.tplcfg_edit_form.php:476 +msgid "Categorytemplate configuration" +msgstr "" + +#: includes/include.tplcfg_edit_form.php:479 +msgid "Articletemplate configuration" +msgstr "" + +#: includes/include.mod_sync.php:39 +msgid "Syncing Modules!" +msgstr "" + +#: includes/include.mod_sync.php:44 includes/include.mod_sync.php:56 +msgid "Module " +msgstr "" + +#: includes/include.mod_sync.php:44 +msgid "nothing to do" +msgstr "" + +#: includes/include.mod_sync.php:56 +msgid "synchronized" +msgstr "" + +#: includes/include.mod_sync.php:61 +msgid "No modules to sync!" +msgstr "" + +#: includes/include.mod_sync.php:66 +msgid "Nothing to do!" +msgstr "" + +#: includes/include.html_tpl_left_top.php:50 +msgid "Create module template" +msgstr "" + +#: includes/include.mycontenido.tasks.edit.php:43 +msgid "Edit Reminder item" +msgstr "" + +#: includes/include.mycontenido.tasks.edit.php:77 +msgid "E-Mail notification" +msgstr "" + +#: includes/include.mycontenido.tasks.edit.php:140 +msgid "Progress" +msgstr "" + +#: includes/include.con_left_top.php:135 +msgid "Ignore" +msgstr "" + +#: includes/include.con_left_top.php:138 +msgid "Date published" +msgstr "" + +#: includes/include.con_left_top.php:141 +msgid "Article Search" +msgstr "" + +#: includes/include.con_left_top.php:250 +msgid "Title/Content" +msgstr "" + +#: includes/include.con_left_top.php:255 +msgid "Article ID" +msgstr "" + +#: includes/include.con_left_top.php:260 +msgid "Datum" +msgstr "" + +#: includes/include.con_left_top.php:265 +msgid "Date from" +msgstr "" + +#: includes/include.con_left_top.php:270 +msgid "Date to" +msgstr "" + +#: includes/include.con_left_top.php:291 +msgid "Saved Searches" +msgstr "" + +#: includes/include.con_left_top.php:306 +msgid "My articles" +msgstr "" + +#: includes/include.con_left_top.php:311 +msgid "Workflow" +msgstr "" + +#: includes/include.con_left_top.php:379 +msgid "Edit Category" +msgstr "" + +#: includes/include.con_left_top.php:395 +msgid "Template:" +msgstr "" + +#: includes/include.con_left_top.php:404 includes/include.con_left_top.php:405 +msgid "Configure Category" +msgstr "" + +#: includes/include.con_left_top.php:407 includes/include.con_left_top.php:408 +msgid "Online / Offline" +msgstr "" + +#: includes/include.con_left_top.php:410 includes/include.con_left_top.php:411 +msgid "Lock / Unlock" +msgstr "" + +#: includes/include.con_left_top.php:428 +msgid "close all" +msgstr "" + +#: includes/include.con_left_top.php:429 +msgid "open all" +msgstr "" + +#: includes/include.con_left_top.php:439 +msgid "Synchronize from" +msgstr "" + +#: includes/include.con_left_top.php:472 includes/include.con_left_top.php:473 +msgid "Copy to current language" +msgstr "" + +#: includes/include.con_left_top.php:474 includes/include.con_left_top.php:475 +msgid "Also copy subcategories" +msgstr "" + +#: includes/include.grouprights_menu.php:178 +#, php-format +msgid "Do you really want to delete the group %s?" +msgstr "" + +#: includes/include.grouprights_menu.php:197 +#, php-format +msgid "Do you really want to delete the following group:

%s
" +msgstr "" + +#: includes/functions.lay.php:66 +msgid "-- Unnamed Layout --" +msgstr "" + +#: includes/include.client_menu.php:80 +msgid "Delete client" +msgstr "" + +#: includes/include.client_menu.php:81 +#, php-format +msgid "Do you really want to delete the following client:

%s
" +msgstr "" + +#: includes/include.grouprights_create.php:57 +msgid "New Group" +msgstr "" + +#: includes/include.grouprights_create.php:71 +msgid "group created" +msgstr "" + +#: includes/include.grouprights_create.php:76 +msgid "Group couldn't created" +msgstr "" + +#: includes/include.style_left_top.php:50 +msgid "Create style" +msgstr "" + +#: includes/include.mod_history.php:94 +msgid "Edit Module" +msgstr "" + +#: includes/include.mod_history.php:133 +msgid "Code Input" +msgstr "" + +#: includes/include.mod_history.php:134 +msgid "Code Output" +msgstr "" + +#: includes/include.mod_history.php:152 +msgid "No module history available" +msgstr "" + +#: includes/include.mod_overview.php:198 +msgid "Module in use, cannot delete" +msgstr "" + +#: includes/include.mod_overview.php:200 +msgid "Module in filesystem, cannot delete" +msgstr "" + +#: includes/include.mod_overview.php:205 +#, php-format +msgid "Do you really want to delete the following module:

%s
" +msgstr "" + +#: includes/include.mod_overview.php:271 +#, php-format +msgid "The module '%s' is used for following templates" msgstr "" #: external/backendedit/front_content.php:331 @@ -4096,395 +5157,6 @@ msgstr "" msgid "No start article for this category" msgstr "" -#: templates/standard/template.symbolhelp.html:23 -msgid "Table of contents" -msgstr "" - -#: templates/standard/template.symbolhelp.html:29 -#: templates/standard/template.symbolhelp.html:135 -msgid "Common" -msgstr "" - -#: templates/standard/template.symbolhelp.html:35 -#: templates/standard/template.symbolhelp.html:277 -msgid "Content" -msgstr "" - -#: templates/standard/template.symbolhelp.html:44 -#: templates/standard/template.symbolhelp.html:740 -msgid "File management" -msgstr "" - -#: templates/standard/template.symbolhelp.html:50 -#: templates/standard/template.symbolhelp.html:816 -msgid "Style" -msgstr "" - -#: templates/standard/template.symbolhelp.html:56 -#: templates/standard/template.symbolhelp.html:904 -msgid "Modules" -msgstr "" - -#: templates/standard/template.symbolhelp.html:59 -#: templates/standard/template.symbolhelp.html:985 -msgid "Templates" -msgstr "" - -#: templates/standard/template.symbolhelp.html:62 -#: templates/standard/template.symbolhelp.html:1055 -msgid "CSS editor" -msgstr "" - -#: templates/standard/template.symbolhelp.html:65 -#: templates/standard/template.symbolhelp.html:1110 -msgid "Script editor" -msgstr "" - -#: templates/standard/template.symbolhelp.html:68 -#: templates/standard/template.symbolhelp.html:1165 -msgid "Module Templates" -msgstr "" - -#: templates/standard/template.symbolhelp.html:74 -#: templates/standard/template.symbolhelp.html:1242 -msgid "Extras" -msgstr "" - -#: templates/standard/template.symbolhelp.html:77 -#: templates/standard/template.symbolhelp.html:1248 -msgid "Newsletter" -msgstr "" - -#: templates/standard/template.symbolhelp.html:80 -msgid "Recipients" -msgstr "" - -#: templates/standard/template.symbolhelp.html:86 -#: templates/standard/template.symbolhelp.html:1466 -msgid "Statistics" -msgstr "" - -#: templates/standard/template.symbolhelp.html:95 -#: templates/standard/template.symbolhelp.html:1548 -msgid "Administration" -msgstr "" - -#: templates/standard/template.symbolhelp.html:98 -#: templates/standard/template.symbolhelp.html:1554 -msgid "Users" -msgstr "" - -#: templates/standard/template.symbolhelp.html:101 -#: templates/standard/template.symbolhelp.html:1609 -msgid "Groups" -msgstr "" - -#: templates/standard/template.symbolhelp.html:104 -#: templates/standard/template.symbolhelp.html:1664 -msgid "Languages" -msgstr "" - -#: templates/standard/template.symbolhelp.html:107 -#: templates/standard/template.symbolhelp.html:1734 -msgid "Clients" -msgstr "" - -#: templates/standard/template.symbolhelp.html:129 -msgid "Table of Contents" -msgstr "" - -#: templates/standard/template.symbolhelp.html:166 -msgid "Execute query / Save" -msgstr "" - -#: templates/standard/template.symbolhelp.html:196 -#: classes/class.request.password.php:247 -msgid "Submit" -msgstr "" - -#: templates/standard/template.symbolhelp.html:208 -msgid "Change to MyContenido (Personal Settings)" -msgstr "" - -#: templates/standard/template.symbolhelp.html:220 -msgid "Information (Impressum)" -msgstr "" - -#: templates/standard/template.symbolhelp.html:235 -msgid "Logout" -msgstr "" - -#: templates/standard/template.symbolhelp.html:341 -msgid "Article is start article / is not start article" -msgstr "" - -#: templates/standard/template.symbolhelp.html:353 -#: templates/standard/template.symbolhelp.html:868 -#: templates/standard/template.symbolhelp.html:949 -msgid "Set template / Add to To-Do list" -msgstr "" - -#: templates/standard/template.symbolhelp.html:365 -msgid "Configure article properties" -msgstr "" - -#: templates/standard/template.symbolhelp.html:389 -msgid "Element is online / offline (change through click)" -msgstr "" - -#: templates/standard/template.symbolhelp.html:401 -msgid "Element is protected / accessible (change through click)" -msgstr "" - -#: templates/standard/template.symbolhelp.html:439 -msgid "Lock / unlock folder (change through click)" -msgstr "" - -#: templates/standard/template.symbolhelp.html:451 -msgid "Set folder offline / online (change through click)" -msgstr "" - -#: templates/standard/template.symbolhelp.html:542 -msgid "Create category" -msgstr "" - -#: templates/standard/template.symbolhelp.html:560 -msgid "Set category online / offline" -msgstr "" - -#: templates/standard/template.symbolhelp.html:578 -msgid "Category is online and unprotected / protected" -msgstr "" - -#: templates/standard/template.symbolhelp.html:596 -msgid "Category is offline and unprotected / protected" -msgstr "" - -#: templates/standard/template.symbolhelp.html:614 -msgid "Category is online, contains an error and is unprotected / protected" -msgstr "" - -#: templates/standard/template.symbolhelp.html:632 -msgid "Category is offline, contains an error and is unprotected / protected" -msgstr "" - -#: templates/standard/template.symbolhelp.html:650 -msgid "Move up one category" -msgstr "" - -#: templates/standard/template.symbolhelp.html:683 -msgid "Select move target" -msgstr "" - -#: templates/standard/template.symbolhelp.html:716 -#: templates/standard/template.symbolhelp.html:880 -#: templates/standard/template.symbolhelp.html:961 -#: templates/standard/template.symbolhelp.html:1031 -#: templates/standard/template.symbolhelp.html:1086 -#: templates/standard/template.symbolhelp.html:1141 -#: templates/standard/template.symbolhelp.html:1196 -#: templates/standard/template.symbolhelp.html:1306 -#: templates/standard/template.symbolhelp.html:1421 -#: templates/standard/template.symbolhelp.html:1585 -#: templates/standard/template.symbolhelp.html:1640 -#: templates/standard/template.symbolhelp.html:1710 -#: templates/standard/template.symbolhelp.html:1765 -#: templates/standard/template.symbolhelp.html:1871 -msgid "Delete / Delete not available" -msgstr "" - -#: templates/standard/template.symbolhelp.html:762 -msgid "Root upload folder" -msgstr "" - -#: templates/standard/template.symbolhelp.html:780 -msgid "Regular folder" -msgstr "" - -#: templates/standard/template.symbolhelp.html:853 -msgid "Layout in use" -msgstr "" - -#: templates/standard/template.symbolhelp.html:934 -msgid "Module in use" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1294 -msgid "Copy newsletter" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1330 -#: templates/standard/template.symbolhelp.html:1361 -msgid "Recipient" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1385 -msgid "Remove recipient" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1397 -msgid "Recipient group" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1503 -msgid "Article is online / offline" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1695 -msgid "Language active / not active" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1823 -#: templates/standard/template.log_main.html:22 -#: templates/standard/template.log_main.html:50 -#: classes/class.navigation.php:360 -msgid "User" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1847 -msgid "User group" -msgstr "" - -#: templates/standard/template.symbolhelp.html:1859 -msgid "Create user group" -msgstr "" - -#: templates/standard/template.info.html:15 -msgid "Concept and Implementation" -msgstr "" - -#: templates/standard/template.info.html:15 -msgid "Germany" -msgstr "" - -#: templates/standard/template.info.html:15 -msgid "Phone" -msgstr "" - -#: templates/standard/template.system_variables.html:16 -msgid "Your system configuration" -msgstr "" - -#: templates/standard/template.system_variables.html:21 -msgid "Variable" -msgstr "" - -#: templates/standard/template.system_variables.html:22 -msgid "Local value" -msgstr "" - -#: templates/standard/template.system_variables.html:37 -msgid "Contenido Error Log" -msgstr "" - -#: templates/standard/template.system_variables.html:50 -msgid "clear error log" -msgstr "" - -#: templates/standard/template.system_variables.html:58 -msgid "Contenido Upgrade Error Log" -msgstr "" - -#: templates/standard/template.system_variables.html:72 -msgid "clear upgrade error log" -msgstr "" - -#: templates/standard/template.rights_inc.html:24 -msgid "Client / Language" -msgstr "" - -#: templates/standard/template.str_overview.html:157 -msgid "Category is a tree" -msgstr "" - -#: templates/standard/template.str_overview.html:164 -msgid "Position of category" -msgstr "" - -#: templates/standard/template.con_edit_form.html:153 -msgid "When expired, move to category" -msgstr "" - -#: templates/standard/template.con_edit_form.html:155 -msgid "Make online after move" -msgstr "" - -#: templates/standard/template.con_edit_form.html:184 -msgid "Page title" -msgstr "" - -#: templates/standard/template.con_edit_form.html:190 -msgid "Meta tags" -msgstr "" - -#: templates/standard/template.mycontenido_lastarticles.html:35 -msgid "Your clients" -msgstr "" - -#: templates/standard/template.mycontenido_lastarticles.html:67 -#: classes/class.notification.php:126 -msgid "Info" -msgstr "" - -#: templates/standard/template.welcome.html:22 -msgid "Available clients" -msgstr "" - -#: templates/standard/template.welcome.html:42 -msgid "Currently" -msgstr "" - -#: templates/standard/template.welcome.html:42 -msgid "Users online" -msgstr "" - -#: templates/standard/template.welcome.html:50 -msgid "Contact System Administrators" -msgstr "" - -#: templates/standard/template.upl_files_overview.html:61 -msgid "Sort files" -msgstr "" - -#: templates/standard/template.upl_files_overview.html:82 -#: classes/class.cms_filelist.php:438 -msgid "Filename" -msgstr "" - -#: templates/standard/template.upl_files_overview.html:86 -#: classes/class.cms_filelist.php:441 -msgid "File size" -msgstr "" - -#: templates/standard/template.upl_files_overview.html:88 -msgid "Image size" -msgstr "" - -#: templates/standard/template.recipient_menu.html:88 -#: templates/standard/template.log_main.html:38 -msgid "Limit" -msgstr "" - -#: templates/standard/template.log_main.html:14 -#: classes/class.cms_filelist.php:722 -msgid "Filter" -msgstr "" - -#: templates/standard/template.log_main.html:49 -msgid "Date" -msgstr "" - -#: cronjobs/send_reminder.php:97 -#, php-format -msgid "" -"Hello %s,\n" -"\n" -"you've got a new reminder for the client '%s' at\n" -"%s:\n" -"\n" -"%s" -msgstr "" - #: main.loginform.php:70 msgid "" "Contenido is in maintenance mode. Only sysadmins are allowed to login. " @@ -4503,737 +5175,49 @@ msgstr "" msgid "Password" msgstr "" -#: classes/class.versionFile.php:131 -msgid "Can not open file " +#: backend_search.php:328 +msgid "Thank you for saving this search from extinction !" msgstr "" -#: classes/class.request.password.php:251 -msgid "Please enter your login" +#: backend_search.php:490 +msgid "Search results" msgstr "" -#: classes/class.request.password.php:257 -msgid "Hide request" +#: backend_search.php:506 +msgid "Missing search value." msgstr "" -#: classes/class.request.password.php:301 -#, php-format -msgid "Password requests are allowed every %s minutes." +#: backend_search.php:507 backend_search.php:734 +msgid "No article found." msgstr "" -#: classes/class.request.password.php:309 -#: classes/class.request.password.php:322 -msgid "No matching data found. Please contact your systemadministrator." +#: backend_search.php:672 +msgid "Reminder" msgstr "" -#: classes/class.request.password.php:315 -msgid "New password was submitted to your e-mail address." +#: backend_search.php:679 +msgid "Do you really want to delete following article" msgstr "" -#: classes/class.request.password.php:358 +#: backend_search.php:765 +msgid "Search Name" +msgstr "" + +#: backend_search.php:767 +msgid "Store" +msgstr "" + +#: backend_search.php:772 +msgid "Save this Search" +msgstr "" + +#: cronjobs/send_reminder.php:97 #, php-format msgid "" -"Dear Contenidouser %s,\n" +"Hello %s,\n" "\n" -"Your password to log in Content Management System Contenido is: %s\n" +"you've got a new reminder for the client '%s' at\n" +"%s:\n" "\n" -"Best regards\n" -"\n" -"Your Contenido sysadmin" -msgstr "" - -#: classes/class.request.password.php:374 -msgid "Your new password for Contenido Backend" -msgstr "" - -#: classes/class.notification.php:114 scripts/langref.php:14 -#: scripts/articleObject.js.php:228 scripts/articleObject.js.php:231 -msgid "Error" -msgstr "" - -#: classes/class.notification.php:120 -msgid "Warning" -msgstr "" - -#: classes/class.notification.php:133 -msgid "Notification" -msgstr "" - -#: classes/widgets/class.widgets.datawidgets.php:314 -#: classes/widgets/class.widgets.datawidgets.php:315 -msgid "Clear contents" -msgstr "" - -#: classes/widgets/class.widgets.pager.php:47 -#: classes/widgets/class.widgets.pager.php:51 -msgid "Paging" -msgstr "" - -#: classes/widgets/class.widgets.pager.php:85 -msgid "First page" -msgstr "" - -#: classes/widgets/class.widgets.pager.php:92 -msgid "Previous page" -msgstr "" - -#: classes/widgets/class.widgets.pager.php:106 -#, php-format -msgid "Page %s" -msgstr "" - -#: classes/widgets/class.widgets.pager.php:122 -msgid "Next page" -msgstr "" - -#: classes/widgets/class.widgets.pager.php:132 -msgid "Last page" -msgstr "" - -#: classes/con2con/class.filehandler.php:451 -msgid "Wrong file name." -msgstr "" - -#: classes/con2con/class.filehandler.php:467 -msgid "Please insert file name." -msgstr "" - -#: classes/class.cms_teaser.php:386 -msgid "Block Style" -msgstr "" - -#: classes/class.cms_teaser.php:389 -msgid "Blog Style" -msgstr "" - -#: classes/class.cms_teaser.php:451 -msgid "Scaled" -msgstr "" - -#: classes/class.cms_teaser.php:454 -msgid "Cropped" -msgstr "" - -#: classes/class.cms_teaser.php:480 -msgid "Sort Sequence" -msgstr "" - -#: classes/class.cms_teaser.php:483 -msgid "Creationdate" -msgstr "" - -#: classes/class.cms_teaser.php:486 -msgid "Publisheddate" -msgstr "" - -#: classes/class.cms_teaser.php:489 -msgid "Modificationdate" -msgstr "" - -#: classes/class.cms_teaser.php:578 -msgid "Teasersettings" -msgstr "" - -#: classes/class.cms_teaser.php:579 -msgid "Teasertitle" -msgstr "" - -#: classes/class.cms_teaser.php:580 -msgid "Teaser Startarticle" -msgstr "" - -#: classes/class.cms_teaser.php:581 -msgid "Sourcecategory" -msgstr "" - -#: classes/class.cms_teaser.php:582 -msgid "Number of Articles" -msgstr "" - -#: classes/class.cms_teaser.php:583 classes/class.cms_filelist.php:724 -msgid "General Settings" -msgstr "" - -#: classes/class.cms_teaser.php:584 -msgid "Teaser Style" -msgstr "" - -#: classes/class.cms_teaser.php:585 -msgid "Advanced Teaser Settings" -msgstr "" - -#: classes/class.cms_teaser.php:586 -msgid "Teaser Filter" -msgstr "" - -#: classes/class.cms_teaser.php:587 -msgid "Teaser Sort" -msgstr "" - -#: classes/class.cms_teaser.php:589 -msgid "Source Headline" -msgstr "" - -#: classes/class.cms_teaser.php:590 -msgid "Source Settings" -msgstr "" - -#: classes/class.cms_teaser.php:591 -msgid "Source Text" -msgstr "" - -#: classes/class.cms_teaser.php:592 -msgid "Source Image" -msgstr "" - -#: classes/class.cms_teaser.php:593 -msgid "Source Date" -msgstr "" - -#: classes/class.cms_teaser.php:598 classes/class.cms_filelist.php:720 -msgid "General" -msgstr "" - -#: classes/class.cms_teaser.php:599 -msgid "Advanced" -msgstr "" - -#: classes/class.cms_teaser.php:600 classes/class.cms_filelist.php:721 -msgid "Manual" -msgstr "" - -#: classes/class.cms_teaser.php:601 -msgid "Included Articles" -msgstr "" - -#: classes/class.cms_teaser.php:602 -msgid "Add Article" -msgstr "" - -#: classes/class.cms_teaser.php:603 -msgid "Manual Teaser Settings" -msgstr "" - -#: classes/class.cms_teaser.php:604 -msgid "Manual Teaser" -msgstr "" - -#: classes/class.cms_teaser.php:607 -msgid "Size Settings" -msgstr "" - -#: classes/class.cms_teaser.php:608 -msgid "Characterlength" -msgstr "" - -#: classes/class.cms_teaser.php:609 -msgid "Imagewidth" -msgstr "" - -#: classes/class.cms_teaser.php:610 -msgid "Imageheight" -msgstr "" - -#: classes/class.cms_teaser.php:611 -msgid "Image Scale" -msgstr "" - -#: classes/class.cms_teaser.php:648 -msgid "Add" -msgstr "" - -#: classes/class.ajax.php:111 classes/class.ajax.php:135 -#: classes/class.ajax.php:185 -msgid "No data found!" -msgstr "" - -#: classes/class.ajax.php:160 -msgid "idcat" -msgstr "" - -#: classes/class.ajax.php:161 classes/class.ajax.php:178 -msgid "idlang" -msgstr "" - -#: classes/class.ajax.php:177 -msgid "idart" -msgstr "" - -#: classes/class.cms_date.php:212 -msgid "Please Choose Format" -msgstr "" - -#: classes/datatypes/class.datatype.datetime.php:165 -msgid "Saturday" -msgstr "" - -#: classes/class.version.php:199 -#, php-format -msgid "Alternative path %s does not exist. Version was saved in frondendpath." -msgstr "" - -#: classes/class.version.php:538 -msgid "Clear layout history" -msgstr "" - -#: classes/class.version.php:539 -msgid "Do you really want to clear layout history?" -msgstr "" - -#: classes/class.version.php:539 -msgid "Note: This only affects the current layout." -msgstr "" - -#: classes/class.version.php:542 -msgid "Clear module history" -msgstr "" - -#: classes/class.version.php:543 -msgid "Do you really want to clear module history?" -msgstr "" - -#: classes/class.version.php:543 -msgid "Note: This only affects the current module." -msgstr "" - -#: classes/class.version.php:546 -msgid "Clear style history" -msgstr "" - -#: classes/class.version.php:547 -msgid "Do you really want to clear style history?" -msgstr "" - -#: classes/class.version.php:547 -msgid "Note: This only affects the current style." -msgstr "" - -#: classes/class.version.php:550 -msgid "Clear Java-Script history" -msgstr "" - -#: classes/class.version.php:551 -msgid "Do you really want to clear Java-Script history?" -msgstr "" - -#: classes/class.version.php:551 -msgid "Note: This only affects the current Java-Script." -msgstr "" - -#: classes/class.version.php:554 -msgid "Clear HTML-Template history" -msgstr "" - -#: classes/class.version.php:555 -msgid "Do you really want to clear HTML-Template history?" -msgstr "" - -#: classes/class.version.php:555 -msgid "Note: This only the affects current HTML-Template." -msgstr "" - -#: classes/class.version.php:558 -msgid "Clear history" -msgstr "" - -#: classes/class.version.php:559 -msgid "Do you really want to clear history?" -msgstr "" - -#: classes/class.version.php:559 -msgid "Note: This only affects the current history." -msgstr "" - -#: classes/class.conuser.php:842 classes/class.conuser.php:867 -#, php-format -msgid "" -"Please use at least %d lower and upper case characters in your password!" -msgstr "" - -#: classes/class.conuser.php:847 -#, php-format -msgid "Please use at least %d numbers in your password!" -msgstr "" - -#: classes/class.conuser.php:852 -#, php-format -msgid "Please use at least %d symbols in your password!" -msgstr "" - -#: classes/class.conuser.php:857 -#, php-format -msgid "Password is too short! Please use at least %d signs." -msgstr "" - -#: classes/class.conuser.php:863 -msgid "Password does not contain enough different characters." -msgstr "" - -#: classes/class.conuser.php:872 -msgid "Please choose a more secure password!" -msgstr "" - -#: classes/class.update.notifier.php:422 classes/class.update.notifier.php:427 -msgid "Unable to check for new updates!" -msgstr "" - -#: classes/class.update.notifier.php:422 -msgid "Could not handle server response!" -msgstr "" - -#: classes/class.update.notifier.php:427 -msgid "Could not determine vendor version!" -msgstr "" - -#: classes/class.update.notifier.php:540 -msgid "Unable to check for updates!" -msgstr "" - -#: classes/class.update.notifier.php:541 -#, php-format -msgid "Connection to %s failed!" -msgstr "" - -#: classes/class.update.notifier.php:646 -msgid "Disable update notification" -msgstr "" - -#: classes/class.update.notifier.php:648 classes/class.update.notifier.php:660 -msgid "Disable notification" -msgstr "" - -#: classes/class.update.notifier.php:651 -msgid "Enable update notification (recommended)" -msgstr "" - -#: classes/class.update.notifier.php:653 classes/class.update.notifier.php:667 -msgid "Enable notification" -msgstr "" - -#: classes/class.update.notifier.php:658 -msgid "Disable RSS notification" -msgstr "" - -#: classes/class.update.notifier.php:665 -msgid "Enable RSS notification (recommended)" -msgstr "" - -#: classes/class.update.notifier.php:669 -msgid "RSS notification is disabled" -msgstr "" - -#: classes/class.update.notifier.php:718 -msgid "read more" -msgstr "" - -#: classes/class.update.notifier.php:728 classes/class.update.notifier.php:737 -msgid "No RSS content available" -msgstr "" - -#: classes/class.update.notifier.php:735 classes/class.update.notifier.php:753 -msgid "" -"Your webserver does not have write permissions for the directory /contenido/" -"cache/!" -msgstr "" - -#: classes/class.update.notifier.php:756 -msgid "" -"Update notification is disabled! For actual update information, please " -"activate." -msgstr "" - -#: classes/class.update.notifier.php:761 -msgid "You have an unknown or unsupported version of ConLite!" -msgstr "" - -#: classes/class.update.notifier.php:764 -#, php-format -msgid "" -"Your version of ConLite is deprecated and not longer supported for any " -"updates. Please update to a higher version!
Download now!" -msgstr "" - -#: classes/class.update.notifier.php:768 -#, php-format -msgid "" -"A new version of ConLite is available!
Download %s now!" -msgstr "" - -#: classes/class.update.notifier.php:771 -#, php-format -msgid "" -"It seems to be that your version string was manipulated. ConLite %s does not " -"exist!" -msgstr "" - -#: classes/class.update.notifier.php:774 -msgid "Your version of ConLite is up to date!" -msgstr "" - -#: classes/template/class.template.php:332 -msgid "\"" -msgstr "" - -#: classes/contenido/class.layout.php:179 -msgid "" -"Layout uses LayFromFile. Editing and Saving may not be possible in backend." -msgstr "" - -#: classes/contenido/class.client.php:97 classes/class.client.php:131 -msgid "No client" -msgstr "" - -#: classes/contenido/class.module.php:916 -msgid "" -"Using old CamelCase for name of modulefolder. You may lowercase the name for " -"modulefolder" -msgstr "" - -#: classes/contenido/class.module.php:919 -msgid "" -"Module uses Output- and/or InputFromFile. Editing and Saving may not be " -"possible in backend." -msgstr "" - -#: classes/class.todo.php:101 -msgid "New" -msgstr "" - -#: classes/class.todo.php:102 -msgid "In progress" -msgstr "" - -#: classes/class.todo.php:103 -msgid "Done" -msgstr "" - -#: classes/class.todo.php:104 -msgid "Waiting for action" -msgstr "" - -#: classes/class.todo.php:105 -msgid "Deferred" -msgstr "" - -#: classes/class.todo.php:113 -msgid "Low" -msgstr "" - -#: classes/class.todo.php:114 -msgid "Medium" -msgstr "" - -#: classes/class.todo.php:115 -msgid "High" -msgstr "" - -#: classes/class.todo.php:116 -msgid "Immediately" -msgstr "" - -#: classes/class.navigation.php:435 -msgid "-- No Language available --" -msgstr "" - -#: classes/class.note.php:331 classes/class.note.php:334 -msgid "View notes / add note" -msgstr "" - -#: classes/class.inuse.php:242 -msgid "Click here if you want to override the lock" -msgstr "" - -#: classes/class.inuse.php:246 -msgid "Do you really want to override the lock?" -msgstr "" - -#: classes/class.inuse.php:248 -msgid "Override lock" -msgstr "" - -#: classes/class.inuse.php:248 -msgid "Hide notification" -msgstr "" - -#: classes/class.cms_filelist.php:413 -msgid "Default Style" -msgstr "" - -#: classes/class.cms_filelist.php:719 -msgid "Directories" -msgstr "" - -#: classes/class.cms_filelist.php:725 -msgid "Manual Settings" -msgstr "" - -#: classes/class.cms_filelist.php:726 -msgid "Filter settings" -msgstr "" - -#: classes/class.cms_filelist.php:727 -msgid "File list settings" -msgstr "" - -#: classes/class.cms_filelist.php:728 -msgid "File list title" -msgstr "" - -#: classes/class.cms_filelist.php:729 -msgid "File size limit" -msgstr "" - -#: classes/class.cms_filelist.php:730 -msgid "Creation date limit" -msgstr "" - -#: classes/class.cms_filelist.php:731 -msgid "Modify date limit" -msgstr "" - -#: classes/class.cms_filelist.php:733 -msgid "File list style" -msgstr "" - -#: classes/class.cms_filelist.php:734 -msgid "Source directory" -msgstr "" - -#: classes/class.cms_filelist.php:735 -msgid "Include subdirectories?" -msgstr "" - -#: classes/class.cms_filelist.php:736 -msgid "Include meta data?" -msgstr "" - -#: classes/class.cms_filelist.php:737 -msgid "File list sort" -msgstr "" - -#: classes/class.cms_filelist.php:739 -msgid "Displayed file extensions" -msgstr "" - -#: classes/class.cms_filelist.php:740 -msgid "Ignore selection (use all)" -msgstr "" - -#: classes/class.cms_filelist.php:741 -msgid "Selection will be ignored!" -msgstr "" - -#: classes/class.cms_filelist.php:742 -msgid "Select all entries" -msgstr "" - -#: classes/class.cms_filelist.php:743 -msgid "Use manual file list?" -msgstr "" - -#: classes/class.cms_filelist.php:744 -msgid "Directory" -msgstr "" - -#: classes/class.cms_filelist.php:746 -msgid "Files" -msgstr "" - -#: classes/class.cms_filelist.php:747 -msgid "Existing files" -msgstr "" - -#: classes/class.cms_filelist.php:748 -msgid "Add file" -msgstr "" - -#: classes/class.cms_filelist.php:749 -msgid "File count" -msgstr "" - -#: scripts/HTMLObj.js.php:248 scripts/langref.php:10 -msgid "Protect" -msgstr "" - -#: scripts/HTMLObj.js.php:251 scripts/langref.php:11 -msgid "Remove protection" -msgstr "" - -#: scripts/messageBox.js.php:78 scripts/langref.php:20 -msgid "Confirm" -msgstr "" - -#: scripts/messageBox.js.php:80 scripts/langref.php:22 -msgid "Close window" -msgstr "" - -#: scripts/rights.js.php:67 scripts/rights.js.php:70 scripts/langref.php:23 -#: scripts/iZoom.js.php:70 scripts/iZoom.js.php:73 -msgid "Click to close" -msgstr "" - -#: scripts/langref.php:13 scripts/articleObject.js.php:248 -msgid "Overview cannot be displayed" -msgstr "" - -#: scripts/langref.php:15 scripts/articleObject.js.php:274 -msgid "Article can't be displayed" -msgstr "" - -#: scripts/langref.php:16 scripts/articleObject.js.php:274 -#: scripts/articleObject.js.php:305 scripts/articleObject.js.php:335 -#: scripts/articleObject.js.php:360 scripts/articleObject.js.php:379 -msgid "No article was selected" -msgstr "" - -#: scripts/langref.php:17 scripts/articleObject.js.php:305 -msgid "Template configuration can't be displayed" -msgstr "" - -#: scripts/langref.php:18 scripts/articleObject.js.php:257 -#: scripts/articleObject.js.php:290 scripts/articleObject.js.php:319 -#: scripts/articleObject.js.php:335 -msgid "Editor can't be displayed" -msgstr "" - -#: scripts/langref.php:19 scripts/articleObject.js.php:360 -msgid "Preview can't be displayed" -msgstr "" - -#: scripts/langref.php:24 -msgid "Headline / HTML" -msgstr "" - -#: scripts/langref.php:25 -msgid "Text / HTML" -msgstr "" - -#: scripts/langref.php:26 -msgid "Text / Standard" -msgstr "" - -#: scripts/langref.php:27 -msgid "Picture" -msgstr "" - -#: scripts/langref.php:29 -msgid "Description / Standard" -msgstr "" - -#: scripts/langref.php:30 -msgid "Flash Movie" -msgstr "" - -#: scripts/langref.php:32 -msgid "Frame" -msgstr "" - -#: scripts/articleObject.js.php:257 scripts/articleObject.js.php:290 -#: scripts/articleObject.js.php:319 -msgid "Can't edit articles in foreign languages." -msgstr "" - -#: scripts/articleObject.js.php:379 -msgid "Tab can't be displayed" +"%s" msgstr "" diff --git a/conlite/locale/de_DE/LC_MESSAGES/conlite.mo b/conlite/locale/de_DE/LC_MESSAGES/conlite.mo index 3a27ab3..d93c303 100644 Binary files a/conlite/locale/de_DE/LC_MESSAGES/conlite.mo and b/conlite/locale/de_DE/LC_MESSAGES/conlite.mo differ diff --git a/conlite/locale/de_DE/LC_MESSAGES/conlite.po b/conlite/locale/de_DE/LC_MESSAGES/conlite.po index 21f6324..3b3acdb 100644 --- a/conlite/locale/de_DE/LC_MESSAGES/conlite.po +++ b/conlite/locale/de_DE/LC_MESSAGES/conlite.po @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: ConLite 2.0\n" +"Project-Id-Version: ConLite 2.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-06-01 20:24+0200\n" -"PO-Revision-Date: 2016-06-01 20:37+0100\n" +"POT-Creation-Date: 2020-08-20 16:18+0200\n" +"PO-Revision-Date: 2020-08-20 16:35+0200\n" "Last-Translator: Ortwin Pinke \n" "Language-Team: CL-Dev \n" "Language: de_DE\n" @@ -12,533 +12,1791 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: i18n\n" "X-Poedit-Keywords: i18n,trans\n" -"X-Poedit-SourceCharset: iso-8859-1\n" -"X-Generator: Poedit 1.5.4\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 2.0.6\n" -#: includes/include.system_configuration.php:93 -msgid "Versioning activated" -msgstr "Versionierung aktiviert" +#: classes/con2con/class.filehandler.php:451 +msgid "Wrong file name." +msgstr "Falscher Dateiname." -#: includes/include.system_configuration.php:93 -#: includes/include.system_configuration.php:94 -#: includes/include.system_configuration.php:95 -msgid "Versioning" -msgstr "Versionierung" +#: classes/con2con/class.filehandler.php:467 +msgid "Please insert file name." +msgstr "Bitte Dateinamen angeben." -#: includes/include.system_configuration.php:94 -msgid "Serverpath to version files" -msgstr "Serverpfad für Versionierungsdateien" - -#: includes/include.system_configuration.php:95 -msgid "Maximum number of stored versions" -msgstr "Maximale Anzahl gespeicherter Versionen" - -#: includes/include.system_configuration.php:96 -msgid "Check for updates" -msgstr "Auf Aktualisierungen prüfen" - -#: includes/include.system_configuration.php:96 -#: includes/include.system_configuration.php:97 -#: includes/include.system_configuration.php:98 -msgid "Update notifier" -msgstr "Update Benachrichtigung" - -#: includes/include.system_configuration.php:97 -#, fuzzy -msgid "Get news from conlite.org" -msgstr "Neuigkeiten von conlite.org lesen" - -#: includes/include.system_configuration.php:98 -msgid "Update check period (minutes)" -msgstr "Aktualisierungsperiode (Minuten)" - -#: includes/include.system_configuration.php:99 -msgid "Clickable menu in backend" -msgstr "Hauptmenüwechsel bei Klick" - -#: includes/include.system_configuration.php:99 -#: includes/include.system_configuration.php:100 -#: includes/include.system_configuration.php:101 -#: includes/include.system_configuration.php:102 -#: includes/include.system_configuration.php:103 -#: includes/include.system_configuration.php:104 -msgid "Backend" -msgstr "Backend" - -#: includes/include.system_configuration.php:100 -msgid "Use passwordrequest in Backend" -msgstr "Passwort vergessen Funktion benutzen" - -#: includes/include.system_configuration.php:101 -msgid "Activate maintenance mode" -msgstr "Wartungsmodus aktiviert" - -#: includes/include.system_configuration.php:102 -msgid "Use editarea for code highlighting" -msgstr "Editarea für Syntaxhighlighting verwenden" - -#: includes/include.system_configuration.php:103 -msgid "Use TinyMce as insight editor" -msgstr "TinyMce als Insite Editor verwenden" - -#: includes/include.system_configuration.php:104 -msgid "Default client (ID)" -msgstr "Standardmandant (ID)" - -#: includes/include.system_configuration.php:105 -msgid "Mailserver host" -msgstr "Mailserver Host" - -#: includes/include.system_configuration.php:105 -#: includes/include.system_configuration.php:106 -#: includes/include.system_configuration.php:107 -msgid "Mailserver" -msgstr "Mailserver" - -#: includes/include.system_configuration.php:106 -msgid "Mailserver sender mail" -msgstr "Mailserver Absender-Mail" - -#: includes/include.system_configuration.php:107 -msgid "Mailserver sender name" -msgstr "Mailserver Absender-Name" - -#: includes/include.system_configuration.php:109 -msgid "Generate basehref" -msgstr "Base-href erzeugen" - -#: includes/include.system_configuration.php:109 -#: includes/include.system_configuration.php:110 -msgid "Development" -msgstr "Entwicklung" - -#: includes/include.system_configuration.php:110 -msgid "Use image magic (if available)" -msgstr "Image magic benutzen (wenn verfügbar)" - -#: includes/include.system_configuration.php:123 -msgid "Update check period must be at least 60 minutes." -msgstr "Die Aktualisierungsperiode muss mindestens 60 Minuten betragen." - -#: includes/include.system_configuration.php:133 -#: includes/include.lang_edit.php:140 includes/include.client_edit.php:172 -#: includes/grouprights.inc.php:335 -#: includes/include.grouprights_overview.php:65 -#: includes/include.rights_overview.php:141 -msgid "Changes saved" -msgstr "Änderungen gespeichert" - -#: includes/include.system_configuration.php:142 -msgid "System Configuration" -msgstr "Systemeinstellungen" - -#: includes/include.system_configuration.php:192 -msgid "Access denied" -msgstr "Zugriff verweigert" - -#: includes/include.lang_edit.php:84 includes/include.lang_overview.php:103 -msgid "New language" -msgstr "Neue Sprache" - -#: includes/include.lang_edit.php:127 includes/include.logs.php:46 -#: includes/grouprights_lay.inc.php:55 includes/grouprights_lay.inc.php:74 -#: includes/include.tpl_edit_form.php:39 includes/include.js_edit_form.php:50 -#: includes/include.grouprights_create.php:42 -#: includes/include.html_tpl_history.php:59 includes/rights_lay.inc.php:57 -#: includes/rights_mod.inc.php:55 includes/include.client_artspec.php:40 -#: includes/include.client_artspec.php:50 -#: includes/include.client_artspec.php:60 -#: includes/include.client_artspec.php:70 -#: includes/include.con_edit_form.php:764 includes/grouprights_str.inc.php:54 -#: includes/include.upl_dirs_overview.php:408 -#: includes/include.upl_dirs_overview.php:555 -#: includes/include.tplcfg_edit_form.php:144 -#: includes/include.con_art_overview.php:1013 -#: includes/grouprights_tpl.inc.php:53 includes/rights_con.inc.php:56 -#: includes/include.client_edit.php:48 includes/include.mod_history.php:52 -#: includes/include.js_history.php:55 includes/include.lay_history.php:46 -#: includes/include.grouprights_overview.php:42 -#: includes/include.lay_edit_form.php:43 includes/include.lay_edit_form.php:52 -#: includes/include.rights_overview.php:49 -#: includes/grouprights_area.inc.php:65 includes/grouprights_mod.inc.php:54 -#: includes/grouprights_members.inc.php:41 -#: includes/include.html_tpl_edit_form.php:50 -#: includes/include.style_history.php:57 -#: includes/include.style_edit_form.php:51 includes/grouprights_con.inc.php:56 -#: includes/include.rights_create.php:43 includes/rights_str.inc.php:55 -#: includes/rights_area.inc.php:58 includes/rights_tpl.inc.php:55 -#: includes/include.system_purge.php:37 -msgid "Permission denied" -msgstr "Zugriff verweigert" - -#: includes/include.lang_edit.php:228 -msgid "Left to right" -msgstr "Links nach rechts" - -#: includes/include.lang_edit.php:228 -msgid "Right to left" -msgstr "Rechts nach Links" - -#: includes/include.lang_edit.php:242 includes/cfg_language_de.inc.php:191 -msgid "Edit language" -msgstr "Sprache bearbeiten" - -#: includes/include.lang_edit.php:244 -msgid "Language name" -msgstr "Name der Sprache" - -#: includes/include.lang_edit.php:245 -#: includes/include.frontend.user_edit.php:188 -msgid "Active" -msgstr "Aktiv" - -#: includes/include.lang_edit.php:247 includes/include.lang_edit.php:249 -#: includes/include.con_editcontent.php:392 main.loginform.php:156 -msgid "Language" -msgstr "Sprachen" - -#: includes/include.lang_edit.php:248 -msgid "Encoding" -msgstr "Encoding" - -#: includes/include.lang_edit.php:250 includes/include.rights_overview.php:260 -#: includes/include.rights_create.php:204 -msgid "Country" -msgstr "Land" - -#: includes/include.lang_edit.php:251 -msgid "Text direction" -msgstr "Laufrichtung Text" - -#: includes/include.lang_edit.php:253 includes/include.lang_edit.php:256 -#: includes/include.mycontenido_settings.php:143 -msgid "Time format" -msgstr "Zeitformat" - -#: includes/include.lang_edit.php:254 -#: includes/include.mycontenido_settings.php:141 -msgid "Date/Time format" -msgstr "Format Datum/Zeit" - -#: includes/include.lang_edit.php:255 -#: includes/include.mycontenido_settings.php:142 -msgid "Date format" -msgstr "Datumsformat" - -#: includes/include.CMS_SIMPLELINK.php:139 includes/include.CMS_LINK.php:142 +#: classes/class.conuser.php:842 classes/class.conuser.php:867 #, php-format -msgid "Edit link for container %s" -msgstr "Link für Container %s bearbeiten" +msgid "" +"Please use at least %d lower and upper case characters in your password!" +msgstr "" +"Bitte benutzen Sie mindestens %d Klein- und Groß-Buchstaben in Ihrem " +"Passwort!" -#: includes/include.CMS_SIMPLELINK.php:150 scripts/langref.php:31 -msgid "Link" -msgstr "Link" +#: classes/class.conuser.php:847 +#, php-format +msgid "Please use at least %d numbers in your password!" +msgstr "Bitte benutzen Sie mindestens %d Zahlen in Ihrem Passwort!" -#: includes/include.CMS_SIMPLELINK.php:153 includes/include.CMS_IMG.php:278 -#: includes/grouprights_lay.inc.php:86 includes/include.tpl_edit_form.php:154 -#: includes/include.js_edit_form.php:176 includes/include.CMS_LINK.php:341 -#: includes/include.grouprights_create.php:112 -#: includes/include.html_tpl_history.php:164 includes/rights_lay.inc.php:76 -#: includes/include.todo.popup.php:70 includes/rights_mod.inc.php:76 -#: includes/include.mycontenido.tasks.edit.php:71 -#: includes/grouprights_tpl.inc.php:73 includes/include.mod_edit_form.php:385 -#: includes/include.mod_history.php:132 includes/include.js_history.php:156 -#: includes/include.lay_history.php:121 includes/include.upl_edit.php:95 -#: includes/include.grouprights_overview.php:118 -#: includes/include.lay_edit_form.php:205 includes/grouprights_mod.inc.php:74 -#: includes/include.html_tpl_edit_form.php:214 -#: includes/include.style_history.php:161 -#: includes/include.style_edit_form.php:198 includes/include.mod_new.php:109 -#: includes/rights_tpl.inc.php:74 +#: classes/class.conuser.php:852 +#, php-format +msgid "Please use at least %d symbols in your password!" +msgstr "Bitte benutzen Sie mindestens %d Sonderzeichen in Ihrem Passwort!" + +#: classes/class.conuser.php:857 +#, php-format +msgid "Password is too short! Please use at least %d signs." +msgstr "Ihr Passwort ist zu kurz! Bitte benutzen Sie mindestens %d Zeichen." + +#: classes/class.conuser.php:863 +msgid "Password does not contain enough different characters." +msgstr "Ihr Passwort beinhaltet nicht genug unterschiedliche Zeichen." + +#: classes/class.conuser.php:872 +msgid "Please choose a more secure password!" +msgstr "" +"Ihr Passwort ist nicht sicher genug. Bitte wählen Sie ein sichereres " +"Passwort!" + +#: classes/class.version.php:197 +#, php-format +msgid "Alternative path %s does not exist. Version was saved in frondendpath." +msgstr "" +"Der alternative Pfad %s existiert nicht. Die Verison wurde im Frontendpfad " +"gespeichert." + +#: classes/class.version.php:509 includes/include.mycontenido.tasks.php:380 +msgid "Refresh" +msgstr "Aktualisieren" + +#: classes/class.version.php:525 +msgid "Clear layout history" +msgstr "Layouthistorie löschen" + +#: classes/class.version.php:526 +msgid "Do you really want to clear layout history?" +msgstr "Möchten Sie wirklich die Layouthistorie löschen?" + +#: classes/class.version.php:526 +msgid "Note: This only affects the current layout." +msgstr "Hinweis: Dies betrifft nur das aktuelle Layout." + +#: classes/class.version.php:529 +msgid "Clear module history" +msgstr "Modulhistorie löschen" + +#: classes/class.version.php:530 +msgid "Do you really want to clear module history?" +msgstr "Möchte Sie wirklich die Modulhistorie löschen?" + +#: classes/class.version.php:530 +msgid "Note: This only affects the current module." +msgstr "Hinweis: Dies betrifft nur das aktuelle Modul." + +#: classes/class.version.php:533 +msgid "Clear style history" +msgstr "Stylehistorie löschen" + +#: classes/class.version.php:534 +msgid "Do you really want to clear style history?" +msgstr "Möchten Sie wirklich die Stylehistorie löschen?" + +#: classes/class.version.php:534 +msgid "Note: This only affects the current style." +msgstr "Hinweis: Dies betrifft nur das aktuelle Style." + +#: classes/class.version.php:537 +msgid "Clear Java-Script history" +msgstr "Java-Script Historie löschen" + +#: classes/class.version.php:538 +msgid "Do you really want to clear Java-Script history?" +msgstr "Möchten Sie wirklich die Java-Script Historie löschen?" + +#: classes/class.version.php:538 +msgid "Note: This only affects the current Java-Script." +msgstr "Hinweis: Dies betrifft nur das aktuelle Java-Script." + +#: classes/class.version.php:541 +msgid "Clear HTML-Template history" +msgstr "HTML-Template Historie löschen" + +#: classes/class.version.php:542 +msgid "Do you really want to clear HTML-Template history?" +msgstr "Möchten Sie wirklich die HTML-Template Historie löschen?" + +#: classes/class.version.php:542 +msgid "Note: This only the affects current HTML-Template." +msgstr "Hinweis: Dies betrifft nur das aktuelle HTML-Template." + +#: classes/class.version.php:545 +msgid "Clear history" +msgstr "Stylehistorie löschen" + +#: classes/class.version.php:546 +msgid "Do you really want to clear history?" +msgstr "Möchten Sie wirklich die Stylehistorie löschen?" + +#: classes/class.version.php:546 +msgid "Note: This only affects the current history." +msgstr "Hinweis: Dies betrifft nur die aktuelle Historie." + +#: classes/contenido/class.module.php:389 includes/include.mod_edit_form.php:58 +msgid "- Unnamed Module -" +msgstr "- Unbenanntes Modul -" + +#: classes/contenido/class.module.php:910 +msgid "" +"Using old CamelCase for name of modulefolder. You may lowercase the name for " +"modulefolder" +msgstr "" +"Using old CamelCase for name of modulefolder. You may lowercase the name for " +"modulefolder" + +#: classes/contenido/class.module.php:913 +msgid "" +"Module uses Output- and/or InputFromFile. Editing and Saving may not be " +"possible in backend." +msgstr "" +"Das Modul liegt im Dateisystem. Das Bearbeiten und Speichern ist im Backend " +"nicht möglich." + +#: classes/contenido/class.client.php:85 classes/class.client.php:131 +msgid "No client" +msgstr "Kein Mandant" + +#: classes/contenido/class.layout.php:173 +msgid "" +"Layout uses LayFromFile. Editing and Saving may not be possible in backend." +msgstr "" +"Das Layout liegt im Dateisystem. Das Bearbeiten und Speichern ist im Backend " +"nicht möglich." + +#: classes/class.notification.php:114 scripts/articleObject.js.php:228 +#: scripts/articleObject.js.php:231 scripts/langref.php:14 +msgid "Error" +msgstr "Fehler" + +#: classes/class.notification.php:120 +msgid "Warning" +msgstr "Warnung" + +#: classes/class.notification.php:126 +#: templates/standard/template.mycontenido_lastarticles.html:67 +msgid "Info" +msgstr "Information" + +#: classes/class.notification.php:133 +msgid "Notification" +msgstr "Hinweis" + +#: classes/class.navigation.php:332 classes/class.navigation.php:335 +#: templates/standard/template.log_main.html:18 +#: templates/standard/template.log_main.html:48 +#: includes/include.system_purge.php:195 +#: includes/include.con_editcontent.php:397 +msgid "Client" +msgstr "Mandant" + +#: classes/class.navigation.php:352 +#: templates/standard/template.symbolhelp.html:1823 +#: templates/standard/template.log_main.html:22 +#: templates/standard/template.log_main.html:50 +msgid "User" +msgstr "Benutzer" + +#: classes/class.navigation.php:425 +msgid "-- No Language available --" +msgstr "-- Keine Sprache verfügbar --" + +#: classes/class.ui.php:305 classes/widgets/class.widgets.views.php:73 +#: classes/widgets/class.widgets.tableedit.php:174 +#: includes/include.rights_create.php:142 includes/include.client_edit.php:215 +#: includes/include.rights_overview.php:192 +#: includes/include.grouprights_overview.php:102 +#: includes/include.CMS_EASYIMG.php:158 +#: includes/include.grouprights_create.php:94 +msgid "Save changes" +msgstr "Änderungen speichern" + +#: classes/class.request.password.php:247 +#: templates/standard/template.symbolhelp.html:196 +msgid "Submit" +msgstr "Absenden" + +#: classes/class.request.password.php:251 +msgid "Please enter your login" +msgstr "Bitte geben Sie hier Ihren Login ein" + +#: classes/class.request.password.php:257 +msgid "Hide request" +msgstr "Fenster schliessen" + +#: classes/class.request.password.php:301 +#, php-format +msgid "Password requests are allowed every %s minutes." +msgstr "Passwörter können nur alle %s Minuten angefordert werden." + +#: classes/class.request.password.php:309 +#: classes/class.request.password.php:322 +msgid "No matching data found. Please contact your systemadministrator." +msgstr "" +"Keine passenden Daten gefunden. Bitte wenden Sie sich an Ihren System-" +"Administrator." + +#: classes/class.request.password.php:315 +msgid "New password was submitted to your e-mail address." +msgstr "Das neue Passwort wurde soeben an Ihre E-Mailadresse gesendet." + +#: classes/class.request.password.php:358 +#, php-format +msgid "" +"Dear Contenidouser %s,\n" +"\n" +"Your password to log in Content Management System Contenido is: %s\n" +"\n" +"Best regards\n" +"\n" +"Your Contenido sysadmin" +msgstr "" +"Lieber ConLite-User %s,\n" +"\n" +"Ihr Passwort für das Login in das Content Management System ConLite " +"ist: %s\n" +"\n" +"Viele Grüße\n" +"\n" +"Ihr ConLite Systemadministrator" + +#: classes/class.request.password.php:374 +msgid "Your new password for Contenido Backend" +msgstr "Ihr neues Passwort für das ConLite Backend" + +#: classes/class.cms_date.php:212 +msgid "Please Choose Format" +msgstr "Format Auswählen" + +#: classes/class.ajax.php:105 classes/class.ajax.php:129 +#: includes/grouprights_tpl.inc.php:72 includes/rights_tpl.inc.php:73 +msgid "Template name" +msgstr "Templatename" + +#: classes/class.ajax.php:111 classes/class.ajax.php:135 +#: classes/class.ajax.php:185 +msgid "No data found!" +msgstr "Keine Daten gefunden!" + +#: classes/class.ajax.php:153 classes/class.cms_teaser.php:594 +#: templates/standard/template.mycontenido_lastarticles.html:63 +#: templates/standard/template.symbolhelp.html:41 +#: templates/standard/template.symbolhelp.html:472 +#: templates/standard/template.log_main.html:52 +#: templates/standard/template.str_overview.html:124 +#: templates/standard/template.str_overview.html:224 +#: includes/grouprights_str.inc.php:76 includes/include.con_editcontent.php:387 +#: includes/include.con_edit_form.php:510 includes/rights_con.inc.php:78 +#: includes/include.note.popup.php:93 includes/grouprights_con.inc.php:78 +#: includes/rights_str.inc.php:77 +msgid "Category" +msgstr "Kategorie" + +#: classes/class.ajax.php:160 +msgid "idcat" +msgstr "idcat" + +#: classes/class.ajax.php:161 classes/class.ajax.php:178 +msgid "idlang" +msgstr "idlang" + +#: classes/class.ajax.php:162 classes/class.ajax.php:179 +#: templates/standard/template.lay_edit_form.html:22 +#: templates/standard/template.tpl_edit_form.html:19 +#: templates/standard/template.mod_edit_form.html:23 +#: includes/include.mod_package.php:235 includes/include.mod_package.php:253 +#: includes/include.mod_package.php:422 includes/include.lay_edit_form.php:182 +#: includes/include.mod_new.php:87 includes/include.lay_history.php:120 +#: includes/include.mod_edit_form.php:377 +#: includes/include.mod_edit_form.php:381 +#: includes/include.systemsettings.php:59 +#: includes/include.systemsettings.php:170 +#: includes/include.rights_create.php:156 +#: includes/include.html_tpl_history.php:163 +#: includes/include.rights_left_top.php:116 +#: includes/include.style_history.php:160 +#: includes/include.html_tpl_edit_form.php:213 +#: includes/include.style_edit_form.php:197 +#: includes/include.js_edit_form.php:175 +#: includes/include.rights_overview.php:209 includes/include.js_history.php:155 +#: includes/include.clientsettings.php:95 +#: includes/include.clientsettings.php:187 +#: includes/include.tpl_edit_form.php:151 includes/include.mod_history.php:131 +msgid "Name" +msgstr "Name" + +#: classes/class.ajax.php:170 classes/class.cms_teaser.php:595 +#: templates/standard/template.symbolhelp.html:38 +#: templates/standard/template.symbolhelp.html:283 +#: templates/standard/template.log_main.html:53 +#: includes/include.con_editcontent.php:382 +#: includes/include.con_art_overview.php:73 includes/include.con_subnav.php:104 +#: backend_search.php:491 +msgid "Article" +msgstr "Artikel" + +#: classes/class.ajax.php:177 +msgid "idart" +msgstr "idart" + +#: classes/class.todo.php:94 +msgid "New" +msgstr "Neu" + +#: classes/class.todo.php:95 +msgid "In progress" +msgstr "In Bearbeitung" + +#: classes/class.todo.php:96 +msgid "Done" +msgstr "Erledigt" + +#: classes/class.todo.php:97 +msgid "Waiting for action" +msgstr "Warte auf Aktion" + +#: classes/class.todo.php:98 +msgid "Deferred" +msgstr "Aufgeschoben" + +#: classes/class.todo.php:106 +msgid "Low" +msgstr "Niedrig" + +#: classes/class.todo.php:107 +msgid "Medium" +msgstr "Mittel" + +#: classes/class.todo.php:108 +msgid "High" +msgstr "Hoch" + +#: classes/class.todo.php:109 +msgid "Immediately" +msgstr "Sofort" + +#: classes/class.todo.php:151 classes/class.todo.php:154 backend_search.php:674 +msgid "Set reminder / add to todo list" +msgstr "Wiedervorlage setzen / zur Todo-Liste hinzufügen" + +#: classes/class.update.notifier.php:422 classes/class.update.notifier.php:427 +msgid "Unable to check for new updates!" +msgstr "Update-Überprüfung kann nicht durchgeführt werden!" + +#: classes/class.update.notifier.php:422 +msgid "Could not handle server response!" +msgstr "Server-Antwort konnte nicht verarbeitet werden!" + +#: classes/class.update.notifier.php:427 +msgid "Could not determine vendor version!" +msgstr "Hersteller-Version konnte nicht gelesen werden!" + +#: classes/class.update.notifier.php:545 +msgid "Unable to check for updates!" +msgstr "Es kann nicht auf Updates geprüft werden!" + +#: classes/class.update.notifier.php:546 +#, php-format +msgid "Connection to %s failed!" +msgstr "Verbindung zu %s fehlgeschlagen!" + +#: classes/class.update.notifier.php:651 +msgid "Disable update notification" +msgstr "Update-Nachrichten deaktivieren" + +#: classes/class.update.notifier.php:653 classes/class.update.notifier.php:665 +msgid "Disable notification" +msgstr "Benachrichtigung deaktivieren" + +#: classes/class.update.notifier.php:656 +msgid "Enable update notification (recommended)" +msgstr "Update-Nachrichten aktivieren (empfohlen)" + +#: classes/class.update.notifier.php:658 classes/class.update.notifier.php:672 +msgid "Enable notification" +msgstr "Benachrichtigung aktivieren" + +#: classes/class.update.notifier.php:663 +msgid "Disable RSS notification" +msgstr "RSS-Nachrichten deaktivieren" + +#: classes/class.update.notifier.php:670 +msgid "Enable RSS notification (recommended)" +msgstr "RSS-Nachrichten aktivieren (empfohlen)" + +#: classes/class.update.notifier.php:674 +msgid "RSS notification is disabled" +msgstr "RSS-Nachrichten sind deaktiviert" + +#: classes/class.update.notifier.php:708 +msgid "read more" +msgstr "mehr lesen" + +#: classes/class.update.notifier.php:718 classes/class.update.notifier.php:727 +msgid "No RSS content available" +msgstr "Keine RSS-Inhalte verfügbar" + +#: classes/class.update.notifier.php:725 classes/class.update.notifier.php:743 +msgid "" +"Your webserver does not have write permissions for the directory /contenido/" +"cache/!" +msgstr "" +"Ihr Webserver hat keine Schreibberechtigungen für das Verzeichnis /" +"contenido/cache/!" + +#: classes/class.update.notifier.php:746 +msgid "" +"Update notification is disabled! For actual update information, please " +"activate." +msgstr "" +"Die Update-Benachrichtigung ist deaktiviert! Für aktuelle Update-" +"Nachrichten, bitte aktivieren." + +#: classes/class.update.notifier.php:751 +msgid "You have an unknown or unsupported version of ConLite!" +msgstr "" +"Sie haben eine unbekannte oder nicht unterstützte Version von ConLite!" + +#: classes/class.update.notifier.php:754 +#, php-format +msgid "" +"Your version of ConLite is deprecated and not longer supported for any " +"updates. Please update to a higher version!
Download now!" +msgstr "" +"Ihre Version von ConLite wird nicht länger mit Updates unterstü" +"tzt. Bitte aktualisieren Sie auf eine höhere Version!
Jetzt herunterladen!" + +#: classes/class.update.notifier.php:758 +#, php-format +msgid "" +"A new version of ConLite is available!
Download %s now!" +msgstr "" +"Eine neue Version von ConLite ist verfügbar!
%s jetzt herunterladen!" + +#: classes/class.update.notifier.php:761 +#, php-format +msgid "" +"It seems to be that your version string was manipulated. ConLite %s does not " +"exist!" +msgstr "" +"Es scheint so als wenn der ConLite Versionsstring manipuliert wurde. ConLite " +"%s gibt es nicht!" + +#: classes/class.update.notifier.php:764 +msgid "Your version of ConLite is up to date!" +msgstr "Ihre Version von ConLite ist aktuell!" + +#: classes/class.note.php:305 classes/class.note.php:308 +msgid "View notes / add note" +msgstr "Notizen anzeigen / hinzufügen" + +#: classes/class.cms_teaser.php:353 classes/class.cms_teaser.php:381 +#: classes/class.cms_teaser.php:418 classes/class.cms_teaser.php:446 +#: classes/class.cms_teaser.php:475 classes/class.cms_teaser.php:538 +#: includes/functions.general.php:1160 includes/functions.general.php:1200 +#: includes/include.str_overview.php:89 includes/include.CMS_LINK.php:215 +#: includes/include.CMS_LINK.php:244 includes/include.CMS_LINK.php:273 +#: includes/include.CMS_LINK.php:288 includes/include.CMS_LINK.php:304 +msgid "Please choose" +msgstr "Bitte wählen" + +#: classes/class.cms_teaser.php:385 +msgid "Block Style" +msgstr "Blockdarstellung" + +#: classes/class.cms_teaser.php:388 +msgid "Blog Style" +msgstr "Listendarstellung" + +#: classes/class.cms_teaser.php:422 classes/class.cms_filelist.php:465 +#: includes/include.mod_new.php:88 includes/include.rights_left_top.php:118 +#: includes/include.frontend.user_menu.php:112 +#: includes/include.frontend.left_top.php:118 +msgid "Ascending" +msgstr "Aufsteigend" + +#: classes/class.cms_teaser.php:425 classes/class.cms_filelist.php:468 +#: includes/include.mod_new.php:88 includes/include.rights_left_top.php:119 +#: includes/include.frontend.user_menu.php:112 +#: includes/include.frontend.left_top.php:118 +msgid "Descending" +msgstr "Absteigend" + +#: classes/class.cms_teaser.php:450 +msgid "Scaled" +msgstr "Skaliert" + +#: classes/class.cms_teaser.php:453 +msgid "Cropped" +msgstr "Zugeschnitten" + +#: classes/class.cms_teaser.php:479 +msgid "Sort Sequence" +msgstr "Sortierreihenfolge" + +#: classes/class.cms_teaser.php:482 +msgid "Creationdate" +msgstr "Erstellungsdatum" + +#: classes/class.cms_teaser.php:485 +msgid "Publisheddate" +msgstr "Veröffentlichungsdatum" + +#: classes/class.cms_teaser.php:488 +msgid "Modificationdate" +msgstr "Änderungsdatum" + +#: classes/class.cms_teaser.php:577 +msgid "Teasersettings" +msgstr "Teasereinstellungen" + +#: classes/class.cms_teaser.php:578 +msgid "Teasertitle" +msgstr "Teaserüberschrift" + +#: classes/class.cms_teaser.php:579 +msgid "Teaser Startarticle" +msgstr "Teaser Startartikel" + +#: classes/class.cms_teaser.php:580 +msgid "Sourcecategory" +msgstr "Quellkategorie" + +#: classes/class.cms_teaser.php:581 +msgid "Number of Articles" +msgstr "Anzahl der Artikel" + +#: classes/class.cms_teaser.php:582 classes/class.cms_filelist.php:724 +msgid "General Settings" +msgstr "Allgemeine Einstellungen" + +#: classes/class.cms_teaser.php:583 +msgid "Teaser Style" +msgstr "Teaser Darstellung" + +#: classes/class.cms_teaser.php:584 +msgid "Advanced Teaser Settings" +msgstr "Erweiterte Teaser Einstellungen" + +#: classes/class.cms_teaser.php:585 +msgid "Teaser Filter" +msgstr "Teaser Filter" + +#: classes/class.cms_teaser.php:586 +msgid "Teaser Sort" +msgstr "Teaser Sortierung" + +#: classes/class.cms_teaser.php:587 classes/class.cms_filelist.php:738 +#: includes/include.mod_new.php:161 includes/include.rights_left_top.php:155 +#: includes/include.frontend.left_top.php:257 +#: includes/include.con_art_overview.php:77 backend_search.php:495 +msgid "Sort order" +msgstr "Sortierreihenfolge" + +#: classes/class.cms_teaser.php:588 +msgid "Source Headline" +msgstr "Quelle Überschrift" + +#: classes/class.cms_teaser.php:589 +msgid "Source Settings" +msgstr "Quelleinstellungen" + +#: classes/class.cms_teaser.php:590 +msgid "Source Text" +msgstr "Quelle Text" + +#: classes/class.cms_teaser.php:591 +msgid "Source Image" +msgstr "Quelle Bild" + +#: classes/class.cms_teaser.php:592 +msgid "Source Date" +msgstr "Quelle Datum" + +#: classes/class.cms_teaser.php:597 classes/class.cms_filelist.php:720 +msgid "General" +msgstr "Allgemein" + +#: classes/class.cms_teaser.php:598 +msgid "Advanced" +msgstr "Erweitert" + +#: classes/class.cms_teaser.php:599 classes/class.cms_filelist.php:721 +msgid "Manual" +msgstr "Manuell" + +#: classes/class.cms_teaser.php:600 +msgid "Included Articles" +msgstr "Eingebundene Artikel" + +#: classes/class.cms_teaser.php:601 +msgid "Add Article" +msgstr "Artikel hinzufügen" + +#: classes/class.cms_teaser.php:602 +msgid "Manual Teaser Settings" +msgstr "Manuelle Teaser Einstellungen" + +#: classes/class.cms_teaser.php:603 +msgid "Manual Teaser" +msgstr "Manueller Teaser" + +#: classes/class.cms_teaser.php:606 +msgid "Size Settings" +msgstr "Größeneinstellungen" + +#: classes/class.cms_teaser.php:607 +msgid "Characterlength" +msgstr "Zeichenanzahl" + +#: classes/class.cms_teaser.php:608 +msgid "Imagewidth" +msgstr "Bildbreite" + +#: classes/class.cms_teaser.php:609 +msgid "Imageheight" +msgstr "Bildhöhe" + +#: classes/class.cms_teaser.php:610 +msgid "Image Scale" +msgstr "Bildskalierung" + +#: classes/class.cms_teaser.php:647 +msgid "Add" +msgstr "Hinzufügen" + +#: classes/class.inuse.php:246 +msgid "Click here if you want to override the lock" +msgstr "Hier klicken, um die Sperre zu übergehen" + +#: classes/class.inuse.php:250 +msgid "Do you really want to override the lock?" +msgstr "Möchten Sie wirklich die Sperre übergehen?" + +#: classes/class.inuse.php:252 +msgid "Override lock" +msgstr "Sperre übergehen" + +#: classes/class.inuse.php:252 +msgid "Hide notification" +msgstr "Benachrichtigung ausblenden" + +#: classes/class.cms_filelist.php:413 +msgid "Default Style" +msgstr "Standarddarstellung" + +#: classes/class.cms_filelist.php:438 +#: templates/standard/template.upl_files_overview.html:82 +msgid "Filename" +msgstr "Dateiname" + +#: classes/class.cms_filelist.php:441 +#: templates/standard/template.upl_files_overview.html:86 +msgid "File size" +msgstr "Dateigröße" + +#: classes/class.cms_filelist.php:444 includes/include.con_left_top.php:136 +msgid "Date created" +msgstr "Erstelldatum" + +#: classes/class.cms_filelist.php:447 includes/include.con_left_top.php:137 +msgid "Date modified" +msgstr "Änderungsdatum" + +#: classes/class.cms_filelist.php:540 classes/class.cms_filelist.php:541 +#: includes/include.upl_search_results.php:417 +#: includes/include.upl_files_overview.php:658 +msgid "No files found" +msgstr "Keine Dateien gefunden / vorhanden" + +#: classes/class.cms_filelist.php:719 +msgid "Directories" +msgstr "Verzeichnisse" + +#: classes/class.cms_filelist.php:722 +#: templates/standard/template.log_main.html:14 +msgid "Filter" +msgstr "Filter" + +#: classes/class.cms_filelist.php:725 +msgid "Manual Settings" +msgstr "Manuelle Einstellungen" + +#: classes/class.cms_filelist.php:726 +msgid "Filter settings" +msgstr "Filter-Einstellungen" + +#: classes/class.cms_filelist.php:727 +msgid "File list settings" +msgstr "Dateilisteneinstellungen" + +#: classes/class.cms_filelist.php:728 +msgid "File list title" +msgstr "Dateilistentitel" + +#: classes/class.cms_filelist.php:729 +msgid "File size limit" +msgstr "Dateigrößenbeschränkung" + +#: classes/class.cms_filelist.php:730 +msgid "Creation date limit" +msgstr "Zeitraum des Erstellungsdatums" + +#: classes/class.cms_filelist.php:731 +msgid "Modify date limit" +msgstr "Zeitraum des Änderungsdatums" + +#: classes/class.cms_filelist.php:733 +msgid "File list style" +msgstr "Darstellungsart" + +#: classes/class.cms_filelist.php:734 +msgid "Source directory" +msgstr "Quellverzeichnis" + +#: classes/class.cms_filelist.php:735 +msgid "Include subdirectories?" +msgstr "Unterverzeichnisse berücksichtigen?" + +#: classes/class.cms_filelist.php:736 +msgid "Include meta data?" +msgstr "Meta-Daten laden?" + +#: classes/class.cms_filelist.php:737 +msgid "File list sort" +msgstr "Sortierungsart" + +#: classes/class.cms_filelist.php:739 +msgid "Displayed file extensions" +msgstr "Angezeigte Datei-Erweiterungen" + +#: classes/class.cms_filelist.php:740 +msgid "Ignore selection (use all)" +msgstr "Auswahl ignorieren (alle benutzen)" + +#: classes/class.cms_filelist.php:741 +msgid "Selection will be ignored!" +msgstr "Auswahl wird ignoriert!" + +#: classes/class.cms_filelist.php:742 +msgid "Select all entries" +msgstr "Alle Einträge selektieren" + +#: classes/class.cms_filelist.php:743 +msgid "Use manual file list?" +msgstr "Manuelle Dateiliste verwenden?" + +#: classes/class.cms_filelist.php:744 +msgid "Directory" +msgstr "Verzeichnis" + +#: classes/class.cms_filelist.php:745 includes/include.mod_package.php:476 +#: includes/include.mod_package.php:478 includes/include.mod_edit_form.php:442 +#: includes/include.mod_edit_form.php:444 +#: includes/include.mod_translate.php:185 +msgid "File" +msgstr "Datei" + +#: classes/class.cms_filelist.php:746 +msgid "Files" +msgstr "Dateien" + +#: classes/class.cms_filelist.php:747 +msgid "Existing files" +msgstr "Ausgewählte Dateien" + +#: classes/class.cms_filelist.php:748 +msgid "Add file" +msgstr "Datei hinzufügen" + +#: classes/class.cms_filelist.php:749 +msgid "File count" +msgstr "Anzahl der Dateien" + +#: classes/datatypes/class.datatype.datetime.php:127 +#: includes/functions.general.php:103 +msgid "January" +msgstr "Januar" + +#: classes/datatypes/class.datatype.datetime.php:128 +#: includes/functions.general.php:106 +msgid "February" +msgstr "Februar" + +#: classes/datatypes/class.datatype.datetime.php:129 +#: includes/functions.general.php:109 +msgid "March" +msgstr "März" + +#: classes/datatypes/class.datatype.datetime.php:130 +#: includes/functions.general.php:112 +msgid "April" +msgstr "April" + +#: classes/datatypes/class.datatype.datetime.php:131 +#: includes/functions.general.php:115 +msgid "May" +msgstr "Mai" + +#: classes/datatypes/class.datatype.datetime.php:132 +#: includes/functions.general.php:118 +msgid "June" +msgstr "Juni" + +#: classes/datatypes/class.datatype.datetime.php:133 +#: includes/functions.general.php:121 +msgid "July" +msgstr "Juli" + +#: classes/datatypes/class.datatype.datetime.php:134 +#: includes/functions.general.php:124 +msgid "August" +msgstr "August" + +#: classes/datatypes/class.datatype.datetime.php:135 +#: includes/functions.general.php:127 +msgid "September" +msgstr "September" + +#: classes/datatypes/class.datatype.datetime.php:136 +#: includes/functions.general.php:130 +msgid "October" +msgstr "Oktober" + +#: classes/datatypes/class.datatype.datetime.php:137 +#: includes/functions.general.php:133 +msgid "November" +msgstr "November" + +#: classes/datatypes/class.datatype.datetime.php:138 +#: includes/functions.general.php:136 +msgid "December" +msgstr "Dezember" + +#: classes/datatypes/class.datatype.datetime.php:144 +#: classes/datatypes/class.datatype.datetime.php:151 +#: includes/functions.general.php:168 +msgid "Sunday" +msgstr "Sonntag" + +#: classes/datatypes/class.datatype.datetime.php:145 +#: includes/functions.general.php:150 +msgid "Monday" +msgstr "Montag" + +#: classes/datatypes/class.datatype.datetime.php:146 +#: includes/functions.general.php:153 +msgid "Tuesday" +msgstr "Dienstag" + +#: classes/datatypes/class.datatype.datetime.php:147 +#: includes/functions.general.php:156 +msgid "Wednesday" +msgstr "Mittwoch" + +#: classes/datatypes/class.datatype.datetime.php:148 +#: includes/functions.general.php:159 +msgid "Thursday" +msgstr "Donnerstag" + +#: classes/datatypes/class.datatype.datetime.php:149 +#: includes/functions.general.php:162 +msgid "Friday" +msgstr "Freitag" + +#: classes/datatypes/class.datatype.datetime.php:150 +msgid "Saturday" +msgstr "Samstag" + +#: classes/template/class.template.php:322 +msgid "\"" +msgstr "\"" + +#: classes/class.versionFile.php:131 +msgid "Can not open file " +msgstr "Konnte Datei %s nicht Öffnen " + +#: classes/widgets/class.widgets.pager.php:44 +#: classes/widgets/class.widgets.pager.php:46 +msgid "Paging" +msgstr "Seitennavigation" + +#: classes/widgets/class.widgets.pager.php:76 +msgid "First page" +msgstr "Erste Seite" + +#: classes/widgets/class.widgets.pager.php:83 +msgid "Previous page" +msgstr "Vorherige Seite" + +#: classes/widgets/class.widgets.pager.php:96 +#, php-format +msgid "Page %s" +msgstr "Seite %s" + +#: classes/widgets/class.widgets.pager.php:112 +msgid "Next page" +msgstr "Nächste Seite" + +#: classes/widgets/class.widgets.pager.php:122 +msgid "Last page" +msgstr "Letzte Seite" + +#: classes/widgets/class.widgets.datawidgets.php:294 +#: classes/widgets/class.widgets.datawidgets.php:295 +msgid "Clear contents" +msgstr "Inhalt leeren" + +#: templates/standard/template.info.html:15 +msgid "Concept and Implementation" +msgstr "Konzept und Implementierung" + +#: templates/standard/template.info.html:15 +msgid "Germany" +msgstr "Deutschland" + +#: templates/standard/template.info.html:15 +msgid "Phone" +msgstr "Telefon" + +#: templates/standard/template.stat_overview.html:135 +#: includes/include.str_overview.php:572 includes/include.str_overview.php:573 +#: includes/include.str_overview.php:574 includes/include.con_left_top.php:428 +#: includes/include.con_str_overview.php:614 +msgid "Close all categories" +msgstr "Alle Kategorien schließen" + +#: templates/standard/template.stat_overview.html:137 +#: includes/include.str_overview.php:578 includes/include.str_overview.php:579 +#: includes/include.str_overview.php:580 includes/include.con_left_top.php:429 +#: includes/include.con_str_overview.php:615 +msgid "Open all categories" +msgstr "Alle Kategorien öffnen" + +#: templates/standard/template.welcome.html:22 +msgid "Available clients" +msgstr "Verfügbare Mandanten" + +#: templates/standard/template.welcome.html:42 +msgid "Currently" +msgstr "Momentan" + +#: templates/standard/template.welcome.html:42 +msgid "Users online" +msgstr "Benutzer online" + +#: templates/standard/template.welcome.html:50 +msgid "Contact System Administrators" +msgstr "Kontakt Systemadministrator(en)" + +#: templates/standard/template.system_variables.html:16 +msgid "Your system configuration" +msgstr "Ihre Systemkonfiguration" + +#: templates/standard/template.system_variables.html:21 +msgid "Variable" +msgstr "Variable" + +#: templates/standard/template.system_variables.html:22 +msgid "Local value" +msgstr "Lokaler Wert" + +#: templates/standard/template.system_variables.html:37 +msgid "Contenido Error Log" +msgstr "Contenido Fehlerlog" + +#: templates/standard/template.system_variables.html:50 +msgid "clear error log" +msgstr "Fehlerlog leeren" + +#: templates/standard/template.system_variables.html:58 +msgid "Contenido Upgrade Error Log" +msgstr "Contenido Upgrade-Fehlerlog" + +#: templates/standard/template.system_variables.html:72 +msgid "clear upgrade error log" +msgstr "Upgrade-Fehlerlog leeren" + +#: templates/standard/template.mycontenido_lastarticles.html:35 +msgid "Your clients" +msgstr "Ihre Mandanten" + +#: templates/standard/template.mycontenido_lastarticles.html:61 +#: includes/include.upl_artlist.php:81 +msgid "Start" +msgstr "Start" + +#: templates/standard/template.mycontenido_lastarticles.html:62 +#: includes/include.stat_overview.php:89 includes/include.con_edit_form.php:208 +#: includes/include.upl_artlist.php:81 includes/include.con_art_overview.php:74 +#: includes/include.con_art_overview.php:659 backend_search.php:492 +msgid "Title" +msgstr "Titel" + +#: templates/standard/template.mycontenido_lastarticles.html:64 +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.con_edit_form.php:284 includes/include.upl_artlist.php:81 +msgid "Created" +msgstr "Erstelldatum" + +#: templates/standard/template.mycontenido_lastarticles.html:65 +#: includes/include.upl_artlist.php:81 +msgid "Modified" +msgstr "Geändert" + +#: templates/standard/template.mycontenido_lastarticles.html:66 +#: templates/standard/template.str_overview.html:230 +#: includes/include.con_art_overview.php:78 +#: includes/include.pretplcfg_edit_form.php:76 +#: includes/include.tplcfg_edit_form.php:276 backend_search.php:496 +msgid "Template" +msgstr "Template" + +#: templates/standard/template.rights_inc.html:24 +msgid "Client / Language" +msgstr "Mandant / Sprache" + +#: templates/standard/template.lay_edit_form.html:32 #: templates/standard/template.tpl_edit_form.html:29 #: templates/standard/template.upl_files_overview.html:84 -#: templates/standard/template.mod_edit_form.html:33 -#: templates/standard/template.lay_edit_form.html:32 scripts/langref.php:28 +#: templates/standard/template.mod_edit_form.html:33 scripts/langref.php:28 +#: includes/include.lay_edit_form.php:183 includes/include.mod_new.php:109 +#: includes/include.CMS_SIMPLELINK.php:153 includes/rights_lay.inc.php:76 +#: includes/grouprights_mod.inc.php:74 includes/include.todo.popup.php:70 +#: includes/include.lay_history.php:121 includes/include.mod_edit_form.php:385 +#: includes/include.html_tpl_history.php:164 +#: includes/include.style_history.php:161 includes/grouprights_lay.inc.php:86 +#: includes/include.html_tpl_edit_form.php:214 includes/include.upl_edit.php:95 +#: includes/include.style_edit_form.php:198 +#: includes/include.js_edit_form.php:176 includes/include.CMS_LINK.php:341 +#: includes/include.js_history.php:156 includes/rights_mod.inc.php:76 +#: includes/include.grouprights_overview.php:118 +#: includes/grouprights_tpl.inc.php:73 includes/rights_tpl.inc.php:74 +#: includes/include.CMS_IMG.php:278 includes/include.tpl_edit_form.php:154 +#: includes/include.mycontenido.tasks.edit.php:71 +#: includes/include.grouprights_create.php:112 +#: includes/include.mod_history.php:132 msgid "Description" msgstr "Beschreibung" -#: includes/functions.upl.php:791 -msgid "OpenOffice.org Presentation" -msgstr "OpenOffice.org Präsentation" +#: templates/standard/template.con_edit_form.html:141 +#: includes/include.upl_edit.php:100 +msgid "Time control" +msgstr "Zeitsteuerung" -#: includes/functions.upl.php:792 -msgid "OpenOffice.org Presentation Template" -msgstr "OpenOffice.org Präsentationsvorlage" +#: templates/standard/template.con_edit_form.html:144 +#: includes/include.upl_edit.php:209 +msgid "Use time control" +msgstr "Zeitsteuerung aktivieren" -#: includes/functions.upl.php:793 -msgid "Microsoft PowerPoint Screen Presentation" -msgstr "Microsoft PowerPoint Bildschirmpräsentation" +#: templates/standard/template.con_edit_form.html:146 +#: templates/standard/template.log_main.html:30 +#: includes/include.upl_edit.php:215 +msgid "Start date" +msgstr "Startdatum" -#: includes/functions.upl.php:794 includes/functions.upl.php:796 -msgid "Microsoft PowerPoint Presentation Template" -msgstr "Microsoft PowerPoint Präsentationsvorlage" +#: templates/standard/template.con_edit_form.html:150 +#: templates/standard/template.log_main.html:34 +#: includes/include.todo.popup.php:79 includes/include.upl_edit.php:219 +#: includes/include.mycontenido.tasks.edit.php:75 +msgid "End date" +msgstr "Enddatum" -#: includes/functions.upl.php:795 -msgid "KDE KPresenter Document" -msgstr "KDE KPresenter-Dokument" +#: templates/standard/template.con_edit_form.html:153 +msgid "When expired, move to category" +msgstr "Nach Endzeitpunkt in diese Kategorie verschieben" -#: includes/functions.upl.php:799 -msgid "Microsoft Word Document or regular text file" -msgstr "Microsoft Word-Dokument oder reguläre Textdatei" +#: templates/standard/template.con_edit_form.html:155 +msgid "Make online after move" +msgstr "Nach Verschieben Artikel online lassen" -#: includes/functions.upl.php:800 -msgid "Microsoft Word Template" -msgstr "Microsoft Word Vorlage" +#: templates/standard/template.con_edit_form.html:184 +msgid "Page title" +msgstr "Seitentitel" -#: includes/functions.upl.php:801 -msgid "OpenOffice.org Text Document" -msgstr "OpenOffice.org Textdokument" +#: templates/standard/template.con_edit_form.html:190 +msgid "Meta tags" +msgstr "Meta-Tags" -#: includes/functions.upl.php:802 -msgid "OpenOffice.org Text Document Template" -msgstr "OpenOffice.org Dokumentenvorlage" +#: templates/standard/template.symbolhelp.html:23 +msgid "Table of contents" +msgstr "Inhaltsverzeichnis" -#: includes/functions.upl.php:803 -msgid "StarOffice 5.0 Text Document" -msgstr "StarOffice 5.0 Textdokument" +#: templates/standard/template.symbolhelp.html:29 +#: templates/standard/template.symbolhelp.html:135 +msgid "Common" +msgstr "Allgemeines" -#: includes/functions.upl.php:804 -msgid "KDE KWord Document" -msgstr "KDE KWord Dokument" +#: templates/standard/template.symbolhelp.html:35 +#: templates/standard/template.symbolhelp.html:277 +msgid "Content" +msgstr "Content" -#: includes/functions.upl.php:807 -msgid "Microsoft Excel Worksheet" -msgstr "Microsoft Excel Arbeitsblatt" +#: templates/standard/template.symbolhelp.html:44 +#: templates/standard/template.symbolhelp.html:740 +msgid "File management" +msgstr "Dateiverwaltung" -#: includes/functions.upl.php:808 -msgid "OpenOffice.org Table" -msgstr "OpenOffice.org Tabelle" +#: templates/standard/template.symbolhelp.html:50 +#: templates/standard/template.symbolhelp.html:816 +msgid "Style" +msgstr "Style" -#: includes/functions.upl.php:809 -msgid "OpenOffice.org Table Template" -msgstr "OpenOffice.org Tabellenvorlage" +#: templates/standard/template.symbolhelp.html:53 +#: templates/standard/template.symbolhelp.html:822 +#: includes/include.mod_package.php:191 +msgid "Layouts" +msgstr "Layouts" -#: includes/functions.upl.php:810 -msgid "Microsoft Excel File" -msgstr "Microsoft Excel Datei" +#: templates/standard/template.symbolhelp.html:56 +#: templates/standard/template.symbolhelp.html:904 +msgid "Modules" +msgstr "Module" -#: includes/functions.upl.php:811 -msgid "Microsoft Excel Template" -msgstr "Microsoft Excel Vorlage" +#: templates/standard/template.symbolhelp.html:59 +#: templates/standard/template.symbolhelp.html:985 +msgid "Templates" +msgstr "Templates" -#: includes/functions.upl.php:812 -msgid "Comma Seperated Value File" -msgstr "Komma-separierte Datei" +#: templates/standard/template.symbolhelp.html:62 +#: templates/standard/template.symbolhelp.html:1055 +msgid "CSS editor" +msgstr "CSS-Editor" -#: includes/functions.upl.php:813 -msgid "KDE KSpread Document" -msgstr "KDE KSpread-Dokument" +#: templates/standard/template.symbolhelp.html:65 +#: templates/standard/template.symbolhelp.html:1110 +msgid "Script editor" +msgstr "Scripteditor" -#: includes/functions.upl.php:814 -msgid "StarOffice 5.0 Table" -msgstr "StarOffice 5.0 Tabelle" +#: templates/standard/template.symbolhelp.html:68 +#: templates/standard/template.symbolhelp.html:1165 +msgid "Module Templates" +msgstr "Modul-Templates" -#: includes/functions.upl.php:817 -msgid "Plain Text" -msgstr "einfache Textdatei" +#: templates/standard/template.symbolhelp.html:74 +#: templates/standard/template.symbolhelp.html:1242 +msgid "Extras" +msgstr "Extras" -#: includes/functions.upl.php:818 -msgid "Rich Text Format" -msgstr "Rich Text Format - Datei" +#: templates/standard/template.symbolhelp.html:77 +#: templates/standard/template.symbolhelp.html:1248 +msgid "Newsletter" +msgstr "Newsletter" -#: includes/functions.upl.php:821 -msgid "GIF Image" -msgstr "GIF-Bild" +#: templates/standard/template.symbolhelp.html:80 +msgid "Recipients" +msgstr "Empfänger" -#: includes/functions.upl.php:822 -msgid "PNG Image" -msgstr "PNG-Bild" +#: templates/standard/template.symbolhelp.html:86 +#: templates/standard/template.symbolhelp.html:1466 +msgid "Statistics" +msgstr "Statistiken" -#: includes/functions.upl.php:823 includes/functions.upl.php:824 -msgid "JPEG Image" -msgstr "JPEG-Bild" +#: templates/standard/template.symbolhelp.html:89 +#: templates/standard/template.symbolhelp.html:1472 +#: includes/include.stat_overview.php:92 +msgid "Hits" +msgstr "Hits" -#: includes/functions.upl.php:825 -msgid "TIFF Image" -msgstr "TIFF-Bild" +#: templates/standard/template.symbolhelp.html:95 +#: templates/standard/template.symbolhelp.html:1548 +msgid "Administration" +msgstr "Administration" -#: includes/functions.upl.php:826 -msgid "Adobe Photoshop Image" -msgstr "Adobe Photoshop Bild" +#: templates/standard/template.symbolhelp.html:98 +#: templates/standard/template.symbolhelp.html:1554 +msgid "Users" +msgstr "Benutzer" -#: includes/functions.upl.php:829 includes/functions.upl.php:830 -msgid "Hypertext Markup Language Document" -msgstr "Hypertext Markup Language Dokument" +#: templates/standard/template.symbolhelp.html:101 +#: templates/standard/template.symbolhelp.html:1609 +msgid "Groups" +msgstr "Gruppen" -#: includes/functions.upl.php:831 -msgid "Cascading Style Sheets" -msgstr "Cascading Style Sheets" +#: templates/standard/template.symbolhelp.html:104 +#: templates/standard/template.symbolhelp.html:1664 +msgid "Languages" +msgstr "Sprachen" -#: includes/functions.upl.php:834 -msgid "LHA Archive" -msgstr "LHA-Archiv" +#: templates/standard/template.symbolhelp.html:107 +#: templates/standard/template.symbolhelp.html:1734 +msgid "Clients" +msgstr "Mandanten" -#: includes/functions.upl.php:835 -msgid "RAR Archive" -msgstr "RAR-Archiv" +#: templates/standard/template.symbolhelp.html:129 +msgid "Table of Contents" +msgstr "Inhaltsverzeichnis" -#: includes/functions.upl.php:836 -msgid "ARJ Archive" -msgstr "ARJ-Archiv" +#: templates/standard/template.symbolhelp.html:166 +msgid "Execute query / Save" +msgstr "Anfrage senden / Speichern" -#: includes/functions.upl.php:837 -msgid "bz2-compressed File" -msgstr "bz2-komprimierte Datei" +#: templates/standard/template.symbolhelp.html:181 scripts/messageBox.js.php:79 +#: scripts/langref.php:21 includes/include.mod_package.php:311 +msgid "Cancel" +msgstr "Abbrechen" -#: includes/functions.upl.php:838 -msgid "bzip-compressed File" -msgstr "bzip-komprimierte Datei" +#: templates/standard/template.symbolhelp.html:208 +msgid "Change to MyContenido (Personal Settings)" +msgstr "Zu MyConLite wechseln (Persönliche Einstellungen)" -#: includes/functions.upl.php:839 -msgid "ZIP Archive" -msgstr "ZIP-Archiv" +#: templates/standard/template.symbolhelp.html:220 +msgid "Information (Impressum)" +msgstr "Information (Impressum)" -#: includes/functions.upl.php:840 -msgid "TAR Archive" -msgstr "TAR-Archiv" +#: templates/standard/template.symbolhelp.html:235 +msgid "Logout" +msgstr "Ausloggen" -#: includes/functions.upl.php:841 -msgid "GZ Compressed File" -msgstr "GZ-komprimierte Datei" +#: templates/standard/template.symbolhelp.html:314 +#: templates/standard/template.symbolhelp.html:506 +#: templates/standard/template.str_overview.html:148 +#: includes/cfg_language_de.inc.php:132 includes/include.str_overview.php:1041 +#: includes/include.str_overview.php:1044 +msgid "Configure category" +msgstr "Kategorie konfigurieren" -#: includes/functions.upl.php:844 -msgid "C Program Code" -msgstr "C Programmcode" +#: templates/standard/template.symbolhelp.html:329 +#: includes/include.con_art_overview.php:887 +#: includes/include.con_art_overview.php:888 +msgid "Create new article" +msgstr "Neuen Artikel erstellen" -#: includes/functions.upl.php:847 -msgid "C++ Program Code" -msgstr "C++ Programmcode" +#: templates/standard/template.symbolhelp.html:341 +msgid "Article is start article / is not start article" +msgstr "Artikel ist Startartikel / kein Startartikel" -#: includes/functions.upl.php:849 -msgid "C or C++ Program Header" -msgstr "C oder C++ Programmheader" +#: templates/standard/template.symbolhelp.html:353 +#: templates/standard/template.symbolhelp.html:868 +#: templates/standard/template.symbolhelp.html:949 +msgid "Set template / Add to To-Do list" +msgstr "Template setzen / zur Todo-Liste hinzufügen" -#: includes/functions.upl.php:852 -msgid "PHP Program Code" -msgstr "PHP Programmcode" +#: templates/standard/template.symbolhelp.html:365 +msgid "Configure article properties" +msgstr "Artikeleigenschaften bearbeiten" -#: includes/functions.upl.php:853 -msgid "PHP Source File" -msgstr "PHP Quellcode" +#: templates/standard/template.symbolhelp.html:377 +#: includes/cfg_language_de.inc.php:110 backend_search.php:677 +msgid "Configure template" +msgstr "Template konfigurieren" -#: includes/functions.upl.php:855 -msgid "Adobe Acrobat Portable Document" -msgstr "Adobe Acrobat Portable Document" +#: templates/standard/template.symbolhelp.html:389 +msgid "Element is online / offline (change through click)" +msgstr "Element ist online / offline (Durch Klick ändern)" -#: includes/functions.upl.php:858 -msgid "QuickTime Movie" -msgstr "QuickTime-Movie" +#: templates/standard/template.symbolhelp.html:401 +msgid "Element is protected / accessible (change through click)" +msgstr "Element ist geschützt / erreichbar (Ändern durch Klick)" -#: includes/functions.upl.php:859 -msgid "avi Movie" -msgstr "avi-Movie" +#: templates/standard/template.symbolhelp.html:413 +#: includes/include.con_art_overview.php:503 backend_search.php:675 +msgid "Duplicate article" +msgstr "Artikel duplizieren" -#: includes/functions.upl.php:861 -msgid "MPEG Movie" -msgstr "MPEG-Movie" +#: templates/standard/template.symbolhelp.html:425 +#: includes/cfg_language_de.inc.php:106 +#: includes/include.con_art_overview.php:551 backend_search.php:678 +msgid "Delete article" +msgstr "Artikel löschen" -#: includes/functions.upl.php:862 -msgid "Windows Media Video" -msgstr "Windows Media-Video" +#: templates/standard/template.symbolhelp.html:439 +msgid "Lock / unlock folder (change through click)" +msgstr "Kategorie sperren / entsperren (Ändern durch Klick)" -#: includes/functions.upl.php:864 -msgid "-File" -msgstr "-Datei" +#: templates/standard/template.symbolhelp.html:451 +msgid "Set folder offline / online (change through click)" +msgstr "Ordner offline / online setzen (Ändern durch Klick)" -#: includes/include.frontend.user_edit.php:50 -#: includes/include.frontend.user_edit.php:70 -#: includes/include.frontend.user_edit.php:107 -msgid "-- new user --" -msgstr "-- Neuer Benutzer --" +#: templates/standard/template.symbolhelp.html:524 +#: includes/cfg_language_de.inc.php:120 +msgid "Rename category" +msgstr "Kategorie umbenennen" -#: includes/include.frontend.user_edit.php:110 -msgid "Username empty or not set! Please choose one." -msgstr "Benutzername fehlt! Bitte wählen Sie einen Benutzernamen." +#: templates/standard/template.symbolhelp.html:542 +msgid "Create category" +msgstr "Kategorie erzeugen" -#: includes/include.frontend.user_edit.php:115 -msgid "Password not set right now!" -msgstr "Passwort noch nicht gesetzt!" +#: templates/standard/template.symbolhelp.html:560 +msgid "Set category online / offline" +msgstr "Kategorie online / offline setzen" -#: includes/include.frontend.user_edit.php:121 -msgid "Could not set new username: Username already exists" +#: templates/standard/template.symbolhelp.html:578 +msgid "Category is online and unprotected / protected" +msgstr "Kategorie ist online und ungeschützt / geschützt" + +#: templates/standard/template.symbolhelp.html:596 +msgid "Category is offline and unprotected / protected" +msgstr "Kategorie ist offline und ungeschützt / geschützt" + +#: templates/standard/template.symbolhelp.html:614 +msgid "Category is online, contains an error and is unprotected / protected" msgstr "" -"Konnte neuen Benutzernamen nicht setzen: Benutzername existiert bereits" +"Kategorie ist online, enthält einen Fehler und ist ungeschützt / " +"geschützt" -#: includes/include.frontend.user_edit.php:128 -msgid "Could not set new password: Passwords don't match" +#: templates/standard/template.symbolhelp.html:632 +msgid "Category is offline, contains an error and is unprotected / protected" msgstr "" -"Konnte neues Passwort nicht setzen: Passwort und Bestätigung stimmen " -"nicht überein" +"Kategorie ist offline, ist fehlerhaft und ist ungeschützt / geschü" +"tzt" -#: includes/include.frontend.user_edit.php:177 -#: includes/cfg_language_de.inc.php:176 -msgid "Edit user" -msgstr "Benutzer bearbeiten" +#: templates/standard/template.symbolhelp.html:650 +msgid "Move up one category" +msgstr "Eine Kategorie nach oben verschieben" -#: includes/include.frontend.user_edit.php:185 -#: includes/include.rights_left_top.php:115 -msgid "User name" -msgstr "Benutzername" +#: templates/standard/template.symbolhelp.html:665 +#: includes/cfg_language_de.inc.php:129 +msgid "Move category" +msgstr "Kategorie verschieben" -#: includes/include.frontend.user_edit.php:186 -#: includes/include.mycontenido_settings.php:116 -#: includes/include.rights_overview.php:217 -#: includes/include.rights_create.php:162 -msgid "New password" -msgstr "Neues Passwort" +#: templates/standard/template.symbolhelp.html:683 +msgid "Select move target" +msgstr "Verschiebeziel auswählen" -#: includes/include.frontend.user_edit.php:187 -msgid "New password (again)" -msgstr "Neues Passwort (erneut)" +#: templates/standard/template.symbolhelp.html:701 +#: includes/cfg_language_de.inc.php:131 +msgid "Duplicate category" +msgstr "Kategorie duplizieren" -#: includes/include.frontend.user_edit.php:215 -msgid "WARNING" -msgstr "WARNUNG" +#: templates/standard/template.symbolhelp.html:716 +#: templates/standard/template.symbolhelp.html:880 +#: templates/standard/template.symbolhelp.html:961 +#: templates/standard/template.symbolhelp.html:1031 +#: templates/standard/template.symbolhelp.html:1086 +#: templates/standard/template.symbolhelp.html:1141 +#: templates/standard/template.symbolhelp.html:1196 +#: templates/standard/template.symbolhelp.html:1306 +#: templates/standard/template.symbolhelp.html:1421 +#: templates/standard/template.symbolhelp.html:1585 +#: templates/standard/template.symbolhelp.html:1640 +#: templates/standard/template.symbolhelp.html:1710 +#: templates/standard/template.symbolhelp.html:1765 +#: templates/standard/template.symbolhelp.html:1871 +msgid "Delete / Delete not available" +msgstr "Löschen / Löschen nicht verfügbar" -#: includes/include.frontend.user_edit.php:215 +#: templates/standard/template.symbolhelp.html:762 +msgid "Root upload folder" +msgstr "Basis-Uploadverzeichnis" + +#: templates/standard/template.symbolhelp.html:780 +msgid "Regular folder" +msgstr "Normaler Ordner" + +#: templates/standard/template.symbolhelp.html:853 +msgid "Layout in use" +msgstr "Layout wird verwendet" + +#: templates/standard/template.symbolhelp.html:934 +msgid "Module in use" +msgstr "Modul wird verwendet" + +#: templates/standard/template.symbolhelp.html:1016 +#: includes/include.tpl_overview.php:111 includes/cfg_language_de.inc.php:167 +#: includes/cfg_language_de.inc.php:168 +msgid "Duplicate template" +msgstr "Template duplizieren" + +#: templates/standard/template.symbolhelp.html:1279 +#: includes/cfg_language_de.inc.php:217 +msgid "Create newsletter" +msgstr "Newsletter erzeugen" + +#: templates/standard/template.symbolhelp.html:1294 +msgid "Copy newsletter" +msgstr "Newsletter kopieren" + +#: templates/standard/template.symbolhelp.html:1330 +#: templates/standard/template.symbolhelp.html:1361 +msgid "Recipient" +msgstr "Empfänger" + +#: templates/standard/template.symbolhelp.html:1373 +#: includes/cfg_language_de.inc.php:229 +msgid "Create recipient" +msgstr "Empfänger erzeugen" + +#: templates/standard/template.symbolhelp.html:1385 +msgid "Remove recipient" +msgstr "Empfänger entfernen" + +#: templates/standard/template.symbolhelp.html:1397 +msgid "Recipient group" +msgstr "Empfängergruppe" + +#: templates/standard/template.symbolhelp.html:1409 +#: includes/cfg_language_de.inc.php:235 +msgid "Create recipient group" +msgstr "Empfängergruppe erstellen" + +#: templates/standard/template.symbolhelp.html:1503 +msgid "Article is online / offline" +msgstr "Artikel ist online / offline" + +#: templates/standard/template.symbolhelp.html:1695 +msgid "Language active / not active" +msgstr "Sprache ist aktiv / nicht aktiv" + +#: templates/standard/template.symbolhelp.html:1835 +#: includes/include.rights_left_top.php:103 +#: includes/cfg_language_de.inc.php:171 includes/cfg_language_de.inc.php:174 +#: includes/include.frontend.left_top.php:178 +msgid "Create user" +msgstr "Benutzer erstellen" + +#: templates/standard/template.symbolhelp.html:1847 +msgid "User group" +msgstr "Benutzergruppe" + +#: templates/standard/template.symbolhelp.html:1859 +msgid "Create user group" +msgstr "Benutzergruppe erzeugen" + +#: templates/standard/template.log_main.html:15 +#: includes/include.systemsettings.php:60 +#: includes/include.systemsettings.php:174 +#: includes/include.rights_create.php:147 includes/include.client_edit.php:226 +#: includes/include.rights_overview.php:200 +#: includes/include.rights_overview.php:354 +#: includes/include.grouprights_overview.php:109 +#: includes/include.grouprights_overview.php:210 +#: includes/include.clientsettings.php:95 +#: includes/include.clientsettings.php:191 +#: includes/include.grouprights_create.php:99 +msgid "Value" +msgstr "Wert" + +#: templates/standard/template.log_main.html:26 +#: templates/standard/template.log_main.html:51 +#: includes/include.mod_package.php:254 +msgid "Action" +msgstr "Aktion" + +#: templates/standard/template.log_main.html:38 +#: templates/standard/template.recipient_menu.html:88 +msgid "Limit" +msgstr "Beschränkung" + +#: templates/standard/template.log_main.html:49 +msgid "Date" +msgstr "Datum" + +#: templates/standard/template.tpl_edit_form.html:42 +#: includes/include.lay_overview.php:101 includes/include.tpl_edit_form.php:160 +msgid "Layout" +msgstr "Layout" + +#: templates/standard/template.tpl_edit_form.html:55 +#: includes/include.tpl_edit_form.php:161 +msgid "Layout description" +msgstr "Layoutbeschreibung" + +#: templates/standard/template.upl_files_overview.html:61 +msgid "Sort files" +msgstr "Dateisortierung" + +#: templates/standard/template.upl_files_overview.html:88 +msgid "Image size" +msgstr "Bildgröße" + +#: templates/standard/template.str_overview.html:133 +#: templates/standard/template.str_overview.html:227 +#: includes/include.con_edit_form.php:211 includes/include.str_overview.php:594 +msgid "Alias" +msgstr "Alias" + +#: templates/standard/template.str_overview.html:139 +#: includes/cfg_language_de.inc.php:105 includes/cfg_language_de.inc.php:124 +#: includes/include.str_overview.php:1055 +#: includes/include.str_overview.php:1057 +msgid "Protect category" +msgstr "Kategorie schützen" + +#: templates/standard/template.str_overview.html:157 +msgid "Category is a tree" +msgstr "Kategorie ist ein Baum" + +#: templates/standard/template.str_overview.html:164 +msgid "Position of category" +msgstr "Position der Kategorie" + +#: templates/standard/template.str_overview.html:233 +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.frontend.left_top.php:165 +#: includes/include.con_art_overview.php:79 +#: includes/include.upl_files_overview.php:530 backend_search.php:497 +msgid "Actions" +msgstr "Aktionen" + +#: templates/standard/template.recipient_menu.html:92 +#: includes/include.con_left_top.php:237 +msgid "Search" +msgstr "Suche" + +#: scripts/iZoom.js.php:70 scripts/iZoom.js.php:73 scripts/rights.js.php:67 +#: scripts/rights.js.php:70 scripts/langref.php:23 +msgid "Click to close" +msgstr "Klicken zum Schliessen" + +#: scripts/HTMLObj.js.php:239 scripts/langref.php:8 +#: includes/include.client_artspec.php:144 +#: includes/include.con_art_overview.php:524 backend_search.php:648 +msgid "Make offline" +msgstr "Offline setzen" + +#: scripts/HTMLObj.js.php:242 scripts/HTMLObj.js.php:245 scripts/langref.php:9 +#: includes/include.str_overview.php:1049 +#: includes/include.str_overview.php:1051 +#: includes/include.client_artspec.php:140 +#: includes/include.con_art_overview.php:530 backend_search.php:652 +msgid "Make online" +msgstr "Online setzen" + +#: scripts/HTMLObj.js.php:248 scripts/langref.php:10 +msgid "Protect" +msgstr "Schützen" + +#: scripts/HTMLObj.js.php:251 scripts/langref.php:11 +msgid "Remove protection" +msgstr "Schutz entfernen" + +#: scripts/HTMLObj.js.php:254 scripts/langref.php:12 +#: includes/include.con_left_top.php:369 +msgid "Choose template" +msgstr "Template wählen" + +#: scripts/messageBox.js.php:78 scripts/langref.php:20 +msgid "Confirm" +msgstr "Bestätigen" + +#: scripts/messageBox.js.php:80 scripts/langref.php:22 +msgid "Close window" +msgstr "Fenster schliessen" + +#: scripts/articleObject.js.php:248 scripts/langref.php:13 +msgid "Overview cannot be displayed" +msgstr "Übersicht kann nicht angezeigt werden" + +#: scripts/articleObject.js.php:257 scripts/articleObject.js.php:290 +#: scripts/articleObject.js.php:319 scripts/articleObject.js.php:335 +#: scripts/langref.php:18 +msgid "Editor can't be displayed" +msgstr "Editor kann nicht angezeigt werden" + +#: scripts/articleObject.js.php:257 scripts/articleObject.js.php:290 +#: scripts/articleObject.js.php:319 +msgid "Can't edit articles in foreign languages." +msgstr "" +"Artikel ist in nicht-aktiver bzw. nicht synchronisierter Sprache nicht " +"bearbeitbar." + +#: scripts/articleObject.js.php:274 scripts/langref.php:15 +msgid "Article can't be displayed" +msgstr "Artikel kann nicht angezeigt werden" + +#: scripts/articleObject.js.php:274 scripts/articleObject.js.php:305 +#: scripts/articleObject.js.php:335 scripts/articleObject.js.php:360 +#: scripts/articleObject.js.php:379 scripts/langref.php:16 +msgid "No article was selected" +msgstr "Kein Artikel ausgewählt" + +#: scripts/articleObject.js.php:305 scripts/langref.php:17 +msgid "Template configuration can't be displayed" +msgstr "Template-Konfiguration kann nicht angezeigt werden" + +#: scripts/articleObject.js.php:360 scripts/langref.php:19 +msgid "Preview can't be displayed" +msgstr "Vorschau kann nicht angezeigt werden" + +#: scripts/articleObject.js.php:379 +msgid "Tab can't be displayed" +msgstr "Reiter kann nicht angezeigt werden" + +#: scripts/langref.php:24 +msgid "Headline / HTML" +msgstr "Überschrift / HTML" + +#: scripts/langref.php:25 +msgid "Text / HTML" +msgstr "Text / HTML" + +#: scripts/langref.php:26 +msgid "Text / Standard" +msgstr "Text / Standard" + +#: scripts/langref.php:27 +msgid "Picture" +msgstr "Bild" + +#: scripts/langref.php:29 +msgid "Description / Standard" +msgstr "Beschreibung / Standard" + +#: scripts/langref.php:30 +msgid "Flash Movie" +msgstr "Flash-Film" + +#: scripts/langref.php:31 includes/include.CMS_SIMPLELINK.php:150 +msgid "Link" +msgstr "Link" + +#: scripts/langref.php:32 +msgid "Frame" +msgstr "Frame" + +#: includes/include.mod_package.php:111 +#: includes/include.js_files_overview.php:104 +#: includes/include.html_tpl_files_overview.php:105 +#: includes/include.style_files_overview.php:104 +msgid "is not readable!" +msgstr "Datei ist nicht lesbar!" + +#: includes/include.mod_package.php:123 +#: includes/include.js_files_overview.php:155 +#: includes/include.html_tpl_files_overview.php:156 +#: includes/include.style_files_overview.php:155 +msgid "Directory is not existing or readable!" +msgstr "Verzeichnis existiert nicht oder ist nicht lesbar!" + +#: includes/include.mod_package.php:139 +msgid "No elements available" +msgstr "Keine Elemente vorhanden" + +#: includes/include.mod_package.php:180 includes/include.CMS_SWF.php:80 +#: includes/include.mycontenido_lastarticles.php:183 +#: includes/cfg_language_de.inc.php:370 includes/include.CMS_LINK.php:180 +#: includes/include.CMS_LINK.php:182 includes/include.upl_search_results.php:55 +#: includes/include.con_art_overview.php:457 includes/include.CMS_IMG.php:235 +#: includes/include.con_left_top.php:449 backend_search.php:669 +msgid "None" +msgstr "Kein" + +#: includes/include.mod_package.php:188 +msgid "Javascript files" +msgstr "Javascript-Dateien" + +#: includes/include.mod_package.php:189 +msgid "Module template files" +msgstr "Modul-Template-Dateien" + +#: includes/include.mod_package.php:190 +msgid "Style files" +msgstr "Style-Dateien" + +#: includes/include.mod_package.php:192 +msgid "Translations" +msgstr "Übersetzung" + +#: includes/include.mod_package.php:219 includes/include.mod_package.php:357 +#: includes/include.mod_edit_form.php:77 #, php-format -msgid "" -"The plugin %s delivered an array for the displayed titles, but did not " -"return an array for the contents." +msgid "Error while importing XML file: %s" +msgstr "Fehler beim importieren der XML-Datei %s" + +#: includes/include.mod_package.php:238 +msgid "Skip" +msgstr "Überspringen" + +#: includes/include.mod_package.php:238 +msgid "Append" +msgstr "Hinzufügen" + +#: includes/include.mod_package.php:238 +msgid "Overwrite" +msgstr "Überschreiben" + +#: includes/include.mod_package.php:239 +msgid "OK" +msgstr "OK" + +#: includes/include.mod_package.php:240 +msgid "Assign" +msgstr "Zuordnen" + +#: includes/include.mod_package.php:241 +msgid "Conflict" +msgstr "Konflikt" + +#: includes/include.mod_package.php:242 +msgid "Ignored" +msgstr "Ignoriert" + +#: includes/include.mod_package.php:243 +msgid "- Select -" +msgstr "- Auswählen -" + +#: includes/include.mod_package.php:252 includes/include.mod_package.php:361 +#: includes/include.mod_package.php:366 includes/include.stat_overview.php:90 +#: includes/include.mycontenido.tasks.php:276 +#: includes/include.mycontenido.tasks.edit.php:137 +msgid "Status" +msgstr "Status" + +#: includes/include.mod_package.php:312 +msgid "Import" +msgstr "Import" + +#: includes/include.mod_package.php:361 +msgid "Import was not succesful, please check data and try again" msgstr "" -"Das Plugin %s lieferte ein Array für die angezeigten Titel, aber " -"lieferte kein Array für die Inhalte." +"Import nicht erfolgreich, bitte überprüfen Sie die Daten und " +"versuchen Sie es erneut" -#: includes/include.frontend.user_edit.php:237 -#: includes/include.tpl_visualedit.php:146 -#: includes/include.tpl_edit_form.php:86 includes/include.tpl_edit_form.php:91 -#: includes/include.tpl_edit_form.php:203 -#: includes/include.tplcfg_edit_form.php:301 -#: includes/include.con_left_top.php:374 -#: includes/include.rights_overview.php:455 -#: includes/include.str_overview.php:188 includes/include.str_overview.php:656 -msgid "none" -msgstr "kein" +#: includes/include.mod_package.php:362 +msgid "Retry" +msgstr "Wiederholen" -#: includes/include.frontend.user_edit.php:240 -#: includes/include.rights_overview.php:458 -msgid "Group membership" -msgstr "Gruppenzugehörigkeit" +#: includes/include.mod_package.php:366 +msgid "Import succesfully finished" +msgstr "Import erfolgreich abgeschlossen" -#: includes/include.frontend.user_edit.php:241 -#: includes/include.con_left_top.php:275 includes/include.upl_edit.php:102 -msgid "Author" -msgstr "Autor" +#: includes/include.mod_package.php:367 +msgid "Finish" +msgstr "Beenden" -#: includes/include.frontend.user_edit.php:242 -#: includes/include.upl_edit.php:103 -msgid "Last modified by" -msgstr "Zuletzt geändert von" +#: includes/include.mod_package.php:398 includes/include.mod_edit_form.php:106 +#, php-format +msgid "Module is in use by %s (%s)" +msgstr "Modul wird benutzt von %s (%s)" -#: includes/include.lay_preview.php:29 includes/include.tpl_visualedit.php:84 -msgid "No such layout" -msgstr "Layout nicht vorhanden" +#: includes/include.mod_package.php:421 +msgid "Edit package" +msgstr "Package bearbeiten" -#: includes/rights.inc.php:273 includes/functions.stat.php:992 -#: includes/functions.stat.php:1018 -#: includes/include.grouprights_left_top.php:59 -#: includes/include.con_art_overview.php:866 -#: includes/include.rights_left_top.php:76 includes/grouprights.inc.php:157 +#: includes/include.mod_package.php:442 +msgid "Package GUID" +msgstr "Package GUID" + +#: includes/include.mod_package.php:454 includes/include.mod_edit_form.php:423 +#: includes/include.mod_translate.php:174 +msgid "Import from file" +msgstr "Aus Datei importieren" + +#: includes/include.mod_package.php:455 includes/include.mod_edit_form.php:424 +#: includes/include.mod_translate.php:173 +msgid "Export to file" +msgstr "In Datei exportieren" + +#: includes/include.mod_package.php:472 includes/include.mod_edit_form.php:440 +#: includes/include.mod_translate.php:184 +msgid "Mode" +msgstr "Modus" + +#: includes/rights.inc.php:273 includes/grouprights.inc.php:157 +#: includes/include.rights_left_top.php:76 +#: includes/include.grouprights_left_top.php:59 includes/functions.stat.php:993 +#: includes/functions.stat.php:1019 includes/include.con_art_overview.php:770 msgid "All" msgstr "Alle" @@ -583,820 +1841,483 @@ msgstr "" msgid "Current user doesn't have any rights to any client/language." msgstr "" "Der aktuelle Benutzer hat keine Zugriffsrechte auf irgendeine(n) Sprache " -"bzw. Mandant" +"bzw. Mandant." -#: includes/include.grouprights_menu.php:178 -#, php-format -msgid "Do you really want to delete the group %s?" -msgstr "Möchten Sie die Gruppe %s wirklich löschen?" - -#: includes/include.grouprights_menu.php:196 -#: includes/cfg_language_de.inc.php:182 -msgid "Delete group" -msgstr "Gruppe löschen" - -#: includes/include.grouprights_menu.php:197 -#, php-format -msgid "Do you really want to delete the following group:

%s
" -msgstr "" -"Möchten Sie die folgende Gruppe wirklich löschen:

%s" - -#: includes/include.upl_left_top.php:53 includes/include.tpl_new.php:41 -#: includes/include.lay_new.php:40 includes/include.js_left_top.php:54 -#: includes/include.lang_left_top.php:82 -#: includes/include.style_left_top.php:54 -#: includes/include.frontend.left_top.php:181 -#: includes/include.frontend.left_top.php:445 includes/include.mod_new.php:76 -#: includes/include.html_tpl_left_top.php:54 -msgid "No Client selected" -msgstr "Kein Mandant ausgewählt" - -#: includes/include.upl_left_top.php:74 -#: includes/include.rights_left_top.php:159 -#: includes/include.frontend.left_top.php:265 includes/include.mod_new.php:169 -msgid "Search for" -msgstr "Suche nach" - -#: includes/include.upl_left_top.php:112 -msgid "Create directory in" -msgstr "Erstelle Verzeichnis in" - -#: includes/include.mod_sync.php:39 -msgid "Syncing Modules!" -msgstr "Module werden synchronisiert" - -#: includes/include.mod_sync.php:44 includes/include.mod_sync.php:56 -#, fuzzy -msgid "Module " -msgstr "Module" - -#: includes/include.mod_sync.php:44 -msgid "nothing to do" -msgstr "nichts zu tun" - -#: includes/include.mod_sync.php:56 -msgid "synchronized" -msgstr "synchronisiert" - -#: includes/include.mod_sync.php:61 -msgid "No modules to sync!" -msgstr "Keine Module zu synchronisieren" - -#: includes/include.mod_sync.php:66 -msgid "Nothing to do!" -msgstr "Nichts zu tun!" - -#: includes/include.logs.php:64 -msgid "Submit query" -msgstr "Abfrage absenden" - -#: includes/include.logs.php:75 -msgid "All users" -msgstr "Alle Benutzer" - -#: includes/include.logs.php:77 -msgid "All actions" -msgstr "Alle Aktionen" - -#: includes/include.logs.php:199 -msgid "Unlimited" -msgstr "Unbegrenzt" - -#: includes/include.logs.php:200 includes/include.logs.php:201 -#: includes/include.logs.php:202 includes/include.logs.php:203 -#: includes/include.logs.php:204 -msgid "Entries" -msgstr "Einträge" - -#: includes/include.logs.php:275 -msgid "No results" -msgstr "Keine Resultate" - -#: includes/include.frontend.group_rights.php:47 -msgid "Invalid plugin" -msgstr "Ungültiges Plugin" - -#: includes/include.frontend.group_rights.php:96 -#, php-format -msgid "Permissions for plugin '%s'" -msgstr "Rechte für Plugin '%s'" - -#: includes/include.frontend.group_rights.php:101 -msgid "(All)" -msgstr "(Alle)" - -#: includes/include.frontend.group_rights.php:109 -msgid "Global rights" -msgstr "Globale Rechte" - -#: includes/include.frontend.group_rights.php:131 -msgid "No items found" -msgstr "Keine Elemente gefunden" - -#: includes/include.style_files_overview.php:104 -#: includes/include.js_files_overview.php:104 -#: includes/include.mod_package.php:111 -#: includes/include.html_tpl_files_overview.php:105 -msgid "is not readable!" -msgstr "Datei ist nicht lesbar" - -#: includes/include.style_files_overview.php:131 -#: includes/include.js_files_overview.php:131 -#: includes/include.system_db_backup.php:294 -#: includes/include.html_tpl_files_overview.php:132 -msgid "Delete File" -msgstr "Datei löschen" - -#: includes/include.style_files_overview.php:132 -#: includes/include.js_files_overview.php:132 -#: includes/include.html_tpl_files_overview.php:133 -#, php-format -msgid "Do you really want to delete the following file:

%s
" -msgstr "" -"Möchten Sie die folgende Datei wirklich löschen:

%s" - -#: includes/include.style_files_overview.php:155 -#: includes/include.js_files_overview.php:155 -#: includes/include.mod_package.php:123 -#: includes/include.html_tpl_files_overview.php:156 -msgid "Directory is not existing or readable!" -msgstr "Verzeichnis existiert nicht oder ist nicht lesbar" - -#: includes/include.CMS_IMG.php:186 includes/include.CMS_EASYIMG.php:146 -#, php-format -msgid "Edit image for container %s" -msgstr "Bild für Container %s bearbeiten" - -#: includes/include.CMS_IMG.php:235 includes/include.CMS_LINK.php:180 -#: includes/include.CMS_LINK.php:182 includes/include.CMS_SWF.php:80 -#: includes/include.con_left_top.php:449 -#: includes/include.con_art_overview.php:523 -#: includes/include.upl_search_results.php:55 -#: includes/include.mod_package.php:180 -#: includes/include.mycontenido_lastarticles.php:183 -#: includes/cfg_language_de.inc.php:370 backend_search.php:669 -msgid "None" -msgstr "Kein" - -#: includes/include.CMS_IMG.php:275 -msgid "Directory / File" -msgstr "Verzeichnis / Datei" - -#: includes/include.CMS_IMG.php:283 -#: includes/include.upl_files_overview.php:526 -#: includes/include.upl_search_results.php:286 -#: includes/include.upl_edit.php:101 -msgid "Preview" -msgstr "Vorschau" - -#: includes/include.tpl_new.php:39 -msgid "New template" -msgstr "Neues Template" - -#: includes/functions.stat.php:44 -msgid "Info about article" -msgstr "Info über Artikel" - -#: includes/functions.stat.php:46 -msgid "Info about directory" -msgstr "Info über Verzeichnis" - -#: includes/functions.stat.php:285 -msgid "Category is online" -msgstr "Kategorie ist online" - -#: includes/functions.stat.php:287 -msgid "Category is offline" -msgstr "Kategorie ist offline" - -#: includes/functions.stat.php:313 includes/functions.stat.php:314 -#: includes/functions.stat.php:644 includes/functions.stat.php:645 -#: includes/grouprights_str.inc.php:215 -#: includes/include.upl_dirs_overview.php:56 includes/rights_con.inc.php:227 -#: includes/include.str_overview.php:169 includes/grouprights_con.inc.php:241 +#: includes/include.upl_dirs_overview.php:56 +#: includes/grouprights_str.inc.php:215 includes/include.str_overview.php:162 +#: includes/rights_con.inc.php:227 includes/functions.stat.php:313 +#: includes/functions.stat.php:314 includes/functions.stat.php:644 +#: includes/functions.stat.php:645 includes/grouprights_con.inc.php:241 #: includes/rights_str.inc.php:221 msgid "Open category" msgstr "Kategorie öffnen" -#: includes/functions.stat.php:478 -msgid "Sum" -msgstr "Summe" +#: includes/include.upl_dirs_overview.php:60 +#: includes/grouprights_str.inc.php:215 includes/include.str_overview.php:167 +#: includes/rights_con.inc.php:227 includes/grouprights_con.inc.php:241 +#: includes/rights_str.inc.php:221 +msgid "Close category" +msgstr "Kategorie schliessen" -#: includes/functions.stat.php:989 includes/functions.stat.php:1015 -#: includes/include.stat_overview.php:50 -msgid "Top 10" -msgstr "Top 10" +#: includes/include.upl_dirs_overview.php:153 +msgid "Failed to delete the following files:" +msgstr "Die folgenden Dateien konnten nicht gelöscht werden:" -#: includes/functions.stat.php:990 includes/functions.stat.php:1016 -#: includes/include.stat_overview.php:53 -msgid "Top 20" -msgstr "Top 20" - -#: includes/functions.stat.php:991 includes/functions.stat.php:1017 -#: includes/include.stat_overview.php:56 -msgid "Top 30" -msgstr "Top 30" - -#: includes/include.upl_files_overview.php:84 -#: includes/include.upl_edit.php:304 includes/include.upl_files_upload.php:67 -msgid "Directory not writable" -msgstr "Verzeichnis nicht beschreibbar" - -#: includes/include.upl_files_overview.php:240 +#: includes/include.upl_dirs_overview.php:159 #, php-format +msgid "Failed to remove directory %s" +msgstr "Folgendes Verzeichnis konnte nicht verschoben werden: %s" + +#: includes/include.upl_dirs_overview.php:190 +msgid "Upload directory" +msgstr "Upload Verzeichnis" + +#: includes/include.upl_dirs_overview.php:194 msgid "" -"The uploaded file (%s) exceeds the upload_max_filesize directive in php.ini." +"The following directories contains invalid characters and were ignored: " msgstr "" -"Die hochgeladene Datei (%s) überschreitet die Direktiveupload_max_filesize " -"in der php.ini." +"Die folgenden Verzeichnisnamen beinhalten ungültige Zeichen und wurden " +"daher ignoriert: " -#: includes/include.upl_files_overview.php:250 +#: includes/include.upl_dirs_overview.php:197 +msgid "Please click here in order to rename automatically." +msgstr "" +"Bitte klicken Sie hier, um die Verzeichnisse automatisch umzubennennen." + +#: includes/include.upl_dirs_overview.php:319 +msgid "Categories" +msgstr "Kategorien" + +#: includes/include.upl_dirs_overview.php:400 +#: includes/include.upl_dirs_overview.php:547 +msgid "Delete directory" +msgstr "Verzeichnis löschen" + +#: includes/include.upl_dirs_overview.php:400 +#: includes/include.upl_dirs_overview.php:547 +msgid "Do you really want to delete the following directory:" +msgstr "Möchten Sie das folgende Verzeichnis wirklich löschen:" + +#: includes/include.upl_dirs_overview.php:405 +#: includes/include.upl_dirs_overview.php:552 +msgid "Directory contains files" +msgstr "Verzeichnis enthält Dateien" + +#: includes/include.upl_dirs_overview.php:408 +#: includes/include.upl_dirs_overview.php:555 +#: includes/include.lay_edit_form.php:41 includes/include.lay_edit_form.php:48 +#: includes/include.lang_edit.php:122 includes/rights_lay.inc.php:57 +#: includes/grouprights_mod.inc.php:54 includes/grouprights_str.inc.php:54 +#: includes/include.lay_history.php:46 includes/rights_area.inc.php:58 +#: includes/include.rights_create.php:43 +#: includes/include.html_tpl_history.php:59 +#: includes/include.system_purge.php:37 includes/include.style_history.php:57 +#: includes/include.con_edit_form.php:764 includes/grouprights_lay.inc.php:55 +#: includes/grouprights_lay.inc.php:74 +#: includes/include.html_tpl_edit_form.php:50 +#: includes/grouprights_members.inc.php:41 includes/include.client_edit.php:46 +#: includes/include.style_edit_form.php:51 includes/include.logs.php:46 +#: includes/include.js_edit_form.php:50 includes/include.rights_overview.php:49 +#: includes/rights_con.inc.php:56 includes/include.js_history.php:55 +#: includes/rights_mod.inc.php:55 includes/include.grouprights_overview.php:42 +#: includes/grouprights_tpl.inc.php:53 includes/grouprights_area.inc.php:65 +#: includes/include.client_artspec.php:40 +#: includes/include.client_artspec.php:50 +#: includes/include.client_artspec.php:60 +#: includes/include.client_artspec.php:70 includes/grouprights_con.inc.php:56 +#: includes/include.con_art_overview.php:908 includes/rights_tpl.inc.php:55 +#: includes/include.tpl_edit_form.php:39 +#: includes/include.tplcfg_edit_form.php:144 includes/rights_str.inc.php:55 +#: includes/include.grouprights_create.php:42 +#: includes/include.mod_history.php:52 +msgid "Permission denied" +msgstr "Zugriff verweigert" + +#: includes/include.upl_dirs_overview.php:454 +msgid "Database Filesystem" +msgstr "Datenbank-Dateisystem" + +#: includes/include.lay_edit_form.php:44 +msgid "-- New Layout --" +msgstr "-- Neues Layout --" + +#: includes/include.lay_edit_form.php:52 +msgid "Layout deleted" +msgstr "Layout gelöscht" + +#: includes/include.lay_edit_form.php:116 #, php-format -msgid "Error while uploading file (%s)." -msgstr "Fehler beim Hochladen der Datei %s" +msgid "Container %s was defined %s times" +msgstr "Container %s wurde %sx definiert" -#: includes/include.upl_files_overview.php:302 -msgid "Errors while uploading file(s). Some or all files were not uploaded." +#: includes/include.lay_edit_form.php:127 +msgid "" +"The body tag does not exist in the layout. This is a requirement for the in-" +"site editing." msgstr "" -"Fehler beim Dateiupload. Einige oder alle Dateien konnten nicht hochgeladen " -"werden." +"Der body-Tag existiert nicht in diesem Layout. Dies ist eine Voraussetzung " +"für das In-Site-Editing." -#: includes/include.upl_files_overview.php:386 -#: includes/include.upl_files_overview.php:388 -msgid "Use file" -msgstr "Datei verwenden" - -#: includes/include.upl_files_overview.php:449 -#: includes/include.upl_files_overview.php:452 -#: includes/include.upl_files_overview.php:454 -#: includes/include.upl_search_results.php:190 -#: includes/include.upl_search_results.php:195 -#: includes/include.upl_search_results.php:198 -msgid "Filename / Description" -msgstr "Dateiname / Beschreibung" - -#: includes/include.upl_files_overview.php:459 -#: includes/include.upl_files_overview.php:462 -#: includes/include.upl_files_overview.php:464 -#: includes/include.upl_search_results.php:218 -#: includes/include.upl_search_results.php:223 -#: includes/include.upl_search_results.php:226 -msgid "Size" -msgstr "Größe" - -#: includes/include.upl_files_overview.php:469 -#: includes/include.upl_files_overview.php:472 -#: includes/include.upl_files_overview.php:474 -#: includes/include.systemsettings.php:60 -#: includes/include.systemsettings.php:170 -#: includes/include.upl_search_results.php:232 -#: includes/include.upl_search_results.php:237 -#: includes/include.upl_search_results.php:240 -#: includes/include.mod_edit_form.php:384 -#: includes/include.clientsettings.php:98 -#: includes/include.clientsettings.php:185 includes/include.mod_new.php:87 -#: includes/include.mod_new.php:110 -msgid "Type" -msgstr "Typ" - -#: includes/include.upl_files_overview.php:480 -msgid "Delete Files" -msgstr "Dateien löschen" - -#: includes/include.upl_files_overview.php:480 -msgid "Are you sure you want to delete the selected files?" +#: includes/include.lay_edit_form.php:132 +msgid "" +"The head tag does not exist in the layout. This is a requirement for the in-" +"site editing." msgstr "" -"Sind Sie sich sicher, dass Sie die gewählten Dateien wirklich lö" -"schen wollen?" +"Der head-Tag existiert nicht in diesem Layout. Dies ist eine Voraussetzung " +"für das In-Site-Editing." -#: includes/include.upl_files_overview.php:481 -msgid "Delete selected files" -msgstr "Markierte Dateien löschen" +#: includes/include.lay_edit_form.php:154 +#: includes/include.html_tpl_edit_form.php:185 +#, php-format +msgid "Tag '%s' %s has no end tag (start tag is on line %s char %s)" +msgstr "" +"Tag '%s' %s hat keinen End-Tag (Start-Tag befindet sich auf Zeile %s Zeichen " +"%s)" -#: includes/include.upl_files_overview.php:497 -msgid "Flip Selection" -msgstr "Markierung umkehren" +#: includes/include.lay_edit_form.php:164 includes/include.lay_history.php:87 +msgid "Edit Layout" +msgstr "Layout bearbeiten" -#: includes/include.upl_files_overview.php:502 -#: includes/include.upl_files_upload.php:59 -msgid "Path:" -msgstr "Pfad:" +#: includes/include.lay_edit_form.php:180 +msgid "On save, apply default modules to new containers" +msgstr "Beim Speichern alle Default-Module in neue Container zuweisen" -#: includes/include.upl_files_overview.php:517 -#: includes/include.upl_search_results.php:276 -msgid "Files per Page" -msgstr "Dateien pro Seite" - -#: includes/include.upl_files_overview.php:525 -msgid "Mark" -msgstr "Markieren" - -#: includes/include.upl_files_overview.php:530 -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.con_art_overview.php:83 -#: includes/include.frontend.left_top.php:165 backend_search.php:497 -#: templates/standard/template.str_overview.html:233 -msgid "Actions" -msgstr "Aktionen" - -#: includes/include.upl_files_overview.php:632 -msgid "Display properties" -msgstr "Eigenschaften anzeigen" - -#: includes/include.upl_files_overview.php:658 -#: includes/include.upl_search_results.php:417 -#: classes/class.cms_filelist.php:540 classes/class.cms_filelist.php:541 -msgid "No files found" -msgstr "Keine Dateien gefunden / vorhanden" - -#: includes/include.upl_files_overview.php:681 -#: includes/include.upl_search_results.php:445 -msgid "Previous Page" -msgstr "Vorherige Seite" - -#: includes/include.upl_files_overview.php:687 -#: includes/include.upl_search_results.php:452 -msgid "Next Page" -msgstr "Nächste Seite" - -#: includes/include.upl_files_overview.php:727 -#: includes/include.upl_search_results.php:490 -msgid "Page" -msgstr "Seite" - -#: includes/include.upl_files_overview.php:752 -#: includes/cfg_language_de.inc.php:143 -msgid "Delete file" -msgstr "Datei löschen" - -#: includes/include.upl_files_overview.php:753 -msgid "Do you really want to delete the following file:
" -msgstr "Möchten Sie wirklich die folgende Datei löschen:
" - -#: includes/include.upl_files_overview.php:884 -#: includes/include.upl_search_results.php:605 -msgid "Enter new filename" -msgstr "Neuer Dateiname" - -#: includes/grouprights_lay.inc.php:85 includes/rights_lay.inc.php:75 -msgid "Layout name" -msgstr "Layoutname" - -#: includes/grouprights_lay.inc.php:113 includes/rights_lay.inc.php:100 -#: includes/rights_mod.inc.php:99 includes/grouprights_str.inc.php:105 -#: includes/grouprights_tpl.inc.php:101 includes/rights_con.inc.php:112 -#: includes/grouprights_area.inc.php:86 includes/grouprights_mod.inc.php:99 -#: includes/grouprights_con.inc.php:111 includes/rights_str.inc.php:106 -#: includes/rights_area.inc.php:87 includes/rights_tpl.inc.php:100 -msgid "Check all" -msgstr "Alle markieren" - -#: includes/include.grouprights_left_top.php:60 -#: includes/include.rights_left_top.php:77 -msgid "Frontend only" -msgstr "Nur Frontend" - -#: includes/include.grouprights_left_top.php:61 -#: includes/include.rights_left_top.php:78 -msgid "Backend only" -msgstr "Nur Backend" - -#: includes/include.grouprights_left_top.php:90 -#: includes/cfg_language_de.inc.php:181 -#: includes/include.frontend.left_top.php:442 -msgid "Create group" -msgstr "Gruppe erzeugen" - -#: includes/include.tpl_edit_form.php:43 -msgid "- New Template -" -msgstr "-- Neues Template --" - -#: includes/include.tpl_edit_form.php:148 includes/cfg_language_de.inc.php:165 -msgid "Edit template" -msgstr "Template bearbeiten" - -#: includes/include.tpl_edit_form.php:151 -#: includes/include.js_edit_form.php:175 -#: includes/include.html_tpl_history.php:163 -#: includes/include.systemsettings.php:61 -#: includes/include.systemsettings.php:174 -#: includes/include.rights_left_top.php:116 -#: includes/include.mod_edit_form.php:377 -#: includes/include.mod_edit_form.php:381 includes/include.mod_history.php:131 -#: includes/include.js_history.php:155 includes/include.mod_package.php:235 -#: includes/include.mod_package.php:253 includes/include.mod_package.php:422 -#: includes/include.clientsettings.php:98 -#: includes/include.clientsettings.php:189 -#: includes/include.lay_history.php:120 includes/include.lay_edit_form.php:204 -#: includes/include.rights_overview.php:209 -#: includes/include.html_tpl_edit_form.php:213 -#: includes/include.style_history.php:160 -#: includes/include.style_edit_form.php:197 includes/include.mod_new.php:87 -#: includes/include.rights_create.php:156 -#: templates/standard/template.tpl_edit_form.html:19 -#: templates/standard/template.mod_edit_form.html:23 -#: templates/standard/template.lay_edit_form.html:22 -#: classes/class.ajax.php:162 classes/class.ajax.php:179 -msgid "Name" -msgstr "Name" - -#: includes/include.tpl_edit_form.php:158 -#: includes/include.tpl_edit_form.php:234 -msgid "Default" -msgstr "Standard" - -#: includes/include.tpl_edit_form.php:160 -#: includes/include.lay_overview.php:101 -#: templates/standard/template.tpl_edit_form.html:42 -msgid "Layout" -msgstr "Layout" - -#: includes/include.tpl_edit_form.php:161 -#: templates/standard/template.tpl_edit_form.html:55 -msgid "Layout description" -msgstr "Layoutbeschreibung" - -#: includes/include.js_edit_form.php:159 -#: includes/include.html_tpl_edit_form.php:197 -#: includes/include.style_edit_form.php:180 -msgid "Edit file" -msgstr "Datei bearbeiten" - -#: includes/include.js_edit_form.php:177 +#: includes/include.lay_edit_form.php:184 +#: includes/include.lay_edit_form.php:195 includes/include.lay_history.php:122 #: includes/include.html_tpl_history.php:165 -#: includes/include.js_history.php:157 includes/include.lay_history.php:122 -#: includes/include.lay_edit_form.php:206 -#: includes/include.lay_edit_form.php:217 -#: includes/include.html_tpl_edit_form.php:215 #: includes/include.style_history.php:162 +#: includes/include.html_tpl_edit_form.php:215 #: includes/include.style_edit_form.php:199 +#: includes/include.js_edit_form.php:177 includes/include.js_history.php:157 msgid "Code" msgstr "Quelltext" -#: includes/include.CMS_LINK.php:153 -msgid "External link" -msgstr "Externer Link" +#: includes/include.lay_edit_form.php:185 +#: includes/include.mycontenido.tasks.php:397 +#: includes/include.mycontenido_settings.php:127 +#: includes/include.client_artspec.php:80 +msgid "Options" +msgstr "Optionen" -#: includes/include.CMS_LINK.php:210 -msgid "Internal link" -msgstr "Interner Link" +#: includes/include.mod_new.php:69 +msgid "New module" +msgstr "Neues Modul" -#: includes/include.CMS_LINK.php:215 includes/include.CMS_LINK.php:244 -#: includes/include.CMS_LINK.php:273 includes/include.CMS_LINK.php:288 -#: includes/include.CMS_LINK.php:304 includes/functions.general.php:1136 -#: includes/functions.general.php:1176 includes/include.str_overview.php:90 -#: classes/class.cms_teaser.php:353 classes/class.cms_teaser.php:382 -#: classes/class.cms_teaser.php:419 classes/class.cms_teaser.php:447 -#: classes/class.cms_teaser.php:476 classes/class.cms_teaser.php:539 -msgid "Please choose" -msgstr "Bitte wählen" +#: includes/include.mod_new.php:72 +msgid "Sync module" +msgstr "Module synchronisieren" -#: includes/include.CMS_LINK.php:240 -msgid "Link to a document" -msgstr "Link zu einem Dokument" +#: includes/include.mod_new.php:76 includes/include.lang_left_top.php:82 +#: includes/include.upl_left_top.php:53 includes/include.tpl_new.php:41 +#: includes/include.lay_new.php:40 includes/include.js_left_top.php:54 +#: includes/include.frontend.left_top.php:181 +#: includes/include.frontend.left_top.php:445 +#: includes/include.html_tpl_left_top.php:54 +#: includes/include.style_left_top.php:54 +msgid "No Client selected" +msgstr "Kein Mandant ausgewählt" -#: includes/include.CMS_LINK.php:270 -msgid "Link to an image" -msgstr "Link zu einem Bild" +#: includes/include.mod_new.php:87 includes/include.mod_new.php:110 +#: includes/include.mod_edit_form.php:384 +#: includes/include.systemsettings.php:58 +#: includes/include.systemsettings.php:166 +#: includes/include.upl_search_results.php:232 +#: includes/include.upl_search_results.php:237 +#: includes/include.upl_search_results.php:240 +#: includes/include.clientsettings.php:95 +#: includes/include.clientsettings.php:183 +#: includes/include.upl_files_overview.php:469 +#: includes/include.upl_files_overview.php:472 +#: includes/include.upl_files_overview.php:474 +msgid "Type" +msgstr "Typ" -#: includes/include.CMS_LINK.php:285 -msgid "Link to an archive" -msgstr "Link zu einem Archiv" +#: includes/include.mod_new.php:94 includes/include.rights_left_top.php:123 +#: includes/include.frontend.user_menu.php:114 +#: includes/include.frontend.left_top.php:193 +msgid "List options" +msgstr "Anzeigeoptionen" -#: includes/include.CMS_LINK.php:300 -msgid "Link to a media file" -msgstr "Link zu einer Mediendatei" +#: includes/include.mod_new.php:97 includes/include.mod_new.php:107 +#: includes/include.mod_new.php:127 +msgid "-- All --" +msgstr "-- Alle --" -#: includes/include.CMS_LINK.php:316 -msgid "Link to any file" -msgstr "Link auf eine beliebige Datei" +#: includes/include.mod_new.php:108 +msgid "Modulname" +msgstr "Modulname" -#: includes/include.CMS_LINK.php:340 -msgid "Upload file" -msgstr "Datei hochladen" +#: includes/include.mod_new.php:111 includes/include.mod_edit_form.php:405 +#: includes/include.mod_edit_form.php:408 +msgid "Input" +msgstr "Eingabe" -#: includes/include.CMS_LINK.php:345 -msgid "Target frame" -msgstr "Zielframe" +#: includes/include.mod_new.php:112 includes/include.mod_edit_form.php:406 +#: includes/include.mod_edit_form.php:409 +msgid "Output" +msgstr "Ausgabe" -#: includes/include.CMS_LINK.php:353 -msgid "Open link in new window" -msgstr "Link in neues Fenster öffnen" +#: includes/include.mod_new.php:128 +msgid "-- Without type --" +msgstr "-- Ohne Typ --" -#: includes/include.CMS_LINK.php:375 -msgid "Open in new window" -msgstr "In neues Fenster öffnen" +#: includes/include.mod_new.php:153 includes/include.rights_left_top.php:147 +#: includes/include.frontend.left_top.php:249 +msgid "Items / page" +msgstr "Elemente / Seite" -#: includes/include.tpl_overview.php:96 includes/include.lay_overview.php:83 -#: includes/include.mod_overview.php:196 -msgid "Click for more information about usage" -msgstr "Klicken Sie für mehr Information über Verwendung" +#: includes/include.mod_new.php:157 includes/include.rights_left_top.php:151 +#: includes/include.frontend.left_top.php:253 +msgid "Sort by" +msgstr "Sortieren nach" -#: includes/include.tpl_overview.php:99 includes/cfg_language_de.inc.php:164 -msgid "Delete template" -msgstr "Template löschen" +#: includes/include.mod_new.php:165 +msgid "Type filter" +msgstr "Art des Moduls" -#: includes/include.tpl_overview.php:100 +#: includes/include.mod_new.php:169 includes/include.rights_left_top.php:159 +#: includes/include.upl_left_top.php:74 +#: includes/include.frontend.left_top.php:265 +msgid "Search for" +msgstr "Suche nach" + +#: includes/include.mod_new.php:173 includes/include.frontend.left_top.php:269 +msgid "Search in" +msgstr "Suche in" + +#: includes/include.mod_new.php:178 includes/include.rights_left_top.php:164 +#: includes/include.frontend.left_top.php:274 +msgid "Apply" +msgstr "Anwenden" + +#: includes/include.lang_edit.php:82 includes/include.lang_overview.php:103 +msgid "New language" +msgstr "Neue Sprache" + +#: includes/include.lang_edit.php:131 includes/grouprights.inc.php:335 +#: includes/include.client_edit.php:160 +#: includes/include.system_configuration.php:133 +#: includes/include.rights_overview.php:141 +#: includes/include.grouprights_overview.php:65 +msgid "Changes saved" +msgstr "Änderungen gespeichert" + +#: includes/include.lang_edit.php:218 +msgid "Left to right" +msgstr "Links nach rechts" + +#: includes/include.lang_edit.php:218 +msgid "Right to left" +msgstr "Rechts nach Links" + +#: includes/include.lang_edit.php:232 includes/cfg_language_de.inc.php:191 +msgid "Edit language" +msgstr "Sprache bearbeiten" + +#: includes/include.lang_edit.php:234 +msgid "Language name" +msgstr "Name der Sprache" + +#: includes/include.lang_edit.php:235 +#: includes/include.frontend.user_edit.php:188 +msgid "Active" +msgstr "Aktiv" + +#: includes/include.lang_edit.php:237 includes/include.lang_edit.php:239 +#: includes/include.con_editcontent.php:392 main.loginform.php:156 +msgid "Language" +msgstr "Sprachen" + +#: includes/include.lang_edit.php:238 +msgid "Encoding" +msgstr "Encoding" + +#: includes/include.lang_edit.php:240 includes/include.rights_create.php:204 +#: includes/include.rights_overview.php:260 +msgid "Country" +msgstr "Land" + +#: includes/include.lang_edit.php:241 +msgid "Text direction" +msgstr "Laufrichtung Text" + +#: includes/include.lang_edit.php:243 includes/include.lang_edit.php:246 +#: includes/include.mycontenido_settings.php:143 +msgid "Time format" +msgstr "Zeitformat" + +#: includes/include.lang_edit.php:244 +#: includes/include.mycontenido_settings.php:141 +msgid "Date/Time format" +msgstr "Format Datum/Zeit" + +#: includes/include.lang_edit.php:245 +#: includes/include.mycontenido_settings.php:142 +msgid "Date format" +msgstr "Datumsformat" + +#: includes/include.rights_menu.php:133 +#: includes/include.frontend.user_menu.php:273 +#: includes/include.frontend.left_top.php:395 #, php-format -msgid "Do you really want to delete the following template:

%s
" +msgid "Do you really want to delete the user %s?" msgstr "" -"Möchten Sie das folgende Template wirklich löschen:

%s" +"Möchten Sie den folgenden Benutzer %s wirklich löschen?" -#: includes/include.tpl_overview.php:105 -msgid "Template in use, cannot delete" -msgstr "Template wird benutzt, löschen nicht möglich" +#: includes/include.rights_menu.php:135 +#: includes/include.frontend.user_menu.php:275 +#: includes/cfg_language_de.inc.php:172 +#: includes/include.frontend.left_top.php:397 +msgid "Delete user" +msgstr "Benutzer löschen" -#: includes/include.tpl_overview.php:111 includes/cfg_language_de.inc.php:167 -#: includes/cfg_language_de.inc.php:168 -#: templates/standard/template.symbolhelp.html:1016 -msgid "Duplicate template" -msgstr "Template duplizieren" +#: includes/include.stat_overview.php:47 includes/include.stat_overview.php:60 +msgid "Full statistics" +msgstr "Alle Statistiken" -#: includes/include.tpl_overview.php:128 -#, php-format -msgid "The template '%s' is used for following categories and articles" -msgstr "Das Template '%s' wird bei folgenden Kategorien und Artikeln benutzt" +#: includes/include.stat_overview.php:50 includes/functions.stat.php:990 +#: includes/functions.stat.php:1016 +msgid "Top 10" +msgstr "Top 10" -#: includes/functions.system.php:55 -msgid "Can't clear install error log : Access is denied!" -msgstr "Upgrade-Fehlerlog konnte nicht geleert werden: Zugriff verweigert!" +#: includes/include.stat_overview.php:53 includes/functions.stat.php:991 +#: includes/functions.stat.php:1017 +msgid "Top 20" +msgstr "Top 20" -#: includes/functions.system.php:60 -msgid "error log successfully cleared" -msgstr "Errorlog erfolgreich geleert" +#: includes/include.stat_overview.php:56 includes/functions.stat.php:992 +#: includes/functions.stat.php:1018 +msgid "Top 30" +msgstr "Top 30" -#: includes/functions.system.php:278 -msgid "Contenido version" -msgstr "ConLite Version" +#: includes/include.stat_overview.php:76 +msgid "Yearly" +msgstr "Jährlich" -#: includes/functions.system.php:281 -msgid "Contenido path" -msgstr "ConLite Pfad" +#: includes/include.stat_overview.php:80 +msgid "Current" +msgstr "Aktuell" -#: includes/functions.system.php:283 -msgid "Contenido HTML path" -msgstr "ConLite HTML-Pfad" - -#: includes/functions.system.php:285 -msgid "Contenido full HTML path" -msgstr "ConLite vollständiger HTML-Pfad" - -#: includes/functions.system.php:287 -msgid "Contenido frontend path" -msgstr "ConLite Frontend-Pfad" - -#: includes/functions.system.php:289 -msgid "Contenido PHPLIB path" -msgstr "ConLite PHPLIB-Pfad" - -#: includes/functions.system.php:291 -msgid "Contenido wysiwyg path" -msgstr "ConLite WYSIWYG-Pfad" - -#: includes/functions.system.php:293 -msgid "Contenido wysiwyg HTML path" -msgstr "ConLite WYSIWYG-HTML-Pfad" - -#: includes/functions.system.php:296 -msgid "Host name" -msgstr "Host-Name" - -#: includes/functions.system.php:299 -msgid "Browser path" -msgstr "Browser-Pfad" - -#: includes/functions.system.php:321 -msgid "client settings" -msgstr "Mandanten-Einstellungen" - -#: includes/functions.system.php:322 -msgid "values" -msgstr "Werte" - -#: includes/functions.system.php:353 -msgid "language(s)" -msgstr "Sprache(n)" - -#: includes/functions.system.php:362 -msgid "htmlpath" -msgstr "HTML-Pfad" - -#: includes/functions.system.php:366 -msgid "frontendpath" -msgstr "Frontend-Pfad" - -#: includes/functions.system.php:378 -msgid "No permissions!" -msgstr "Kein Zugriff!" - -#: includes/functions.system.php:384 -msgid "Number of installed clients: " -msgstr "Anzahl der installierten Mandanten: " - -#: includes/functions.system.php:387 -msgid "Client informations" -msgstr "Mandanteninformationen" - -#: includes/functions.system.php:394 -msgid "Number of users" -msgstr "Anzahl Benutzer" - -#: includes/functions.system.php:401 includes/include.stat_overview.php:91 +#: includes/include.stat_overview.php:91 includes/functions.system.php:405 msgid "Number of articles" msgstr "Anzahl der Artikel" -#: includes/functions.system.php:404 -msgid "Server operating system" -msgstr "Server Betriebssystem" +#: includes/include.stat_overview.php:94 +msgid "Hits in this language" +msgstr "Hits in dieser Sprache" -#: includes/functions.system.php:408 -msgid "PHP database extension" -msgstr "PHP Datenbankerweiterung" +#: includes/include.CMS_SIMPLELINK.php:139 includes/include.CMS_LINK.php:142 +#, php-format +msgid "Edit link for container %s" +msgstr "Link für Container %s bearbeiten" -#: includes/functions.system.php:410 -msgid "Database server version" -msgstr "Datenbankserver-Version" +#: includes/include.system_db_backup.php:34 +msgid "Backupfolder missing or not writable!" +msgstr "Sicherungsverzeichnis fehlt oder nicht beschreibbar!" -#: includes/functions.system.php:413 -msgid "Installed PHP version" -msgstr "Installierte PHP-Version" +#: includes/include.system_db_backup.php:53 +msgid "Start your Backup!" +msgstr "Starte das Backup!" -#: includes/functions.system.php:418 includes/functions.system.php:422 -#: includes/functions.system.php:426 includes/functions.system.php:447 -msgid "activated" -msgstr "Aktiviert" +#: includes/include.system_db_backup.php:87 +msgid "Permission denied!" +msgstr "Zugriff verweigert!" -#: includes/functions.system.php:418 includes/functions.system.php:422 -#: includes/functions.system.php:426 includes/functions.system.php:447 -msgid "deactivated" -msgstr "Deaktiviert" +#: includes/include.system_db_backup.php:98 +msgid "Starting Backup." +msgstr "Backup startet." -#: includes/functions.system.php:439 -msgid "nothing disabled" -msgstr "nichts deaktiviert" +#: includes/include.system_db_backup.php:215 +msgid "Backup in Progress!" +msgstr "Backup in Bearbeitung!" -#: includes/functions.system.php:440 -msgid "Disabled functions" -msgstr "Deaktivierte Funktionen" +#: includes/include.system_db_backup.php:222 +#: includes/include.system_db_backup.php:247 +msgid "Tables saved: " +msgstr "Tabellen gespeichert: " -#: includes/functions.system.php:443 -msgid "loaded" -msgstr "geladen" +#: includes/include.system_db_backup.php:222 +msgid "Last processed: " +msgstr "Zuletzt bearbeitet: " -#: includes/functions.system.php:443 -msgid "not loaded" -msgstr "nicht geladen" +#: includes/include.system_db_backup.php:223 +#: includes/include.system_db_backup.php:247 +msgid "Pageviews: " +msgstr "Seitenaufrufe: " -#: includes/functions.system.php:444 -msgid "Gettext extension" -msgstr "Gettext Erweiterung" +#: includes/include.system_db_backup.php:246 +msgid "Backup done!" +msgstr "Backup fertig!" -#: includes/functions.system.php:455 includes/main.login.php:213 -msgid "Settings" -msgstr "Einstellungen" +#: includes/include.system_db_backup.php:251 +msgid "Go Back to Overview" +msgstr "Zurück zur Übersicht" -#: includes/functions.system.php:456 -msgid "Values" -msgstr "Werte" +#: includes/include.system_db_backup.php:285 +msgid "File successfully deleted." +msgstr "Datei erfolgreich gelöscht." -#: includes/functions.system.php:473 -msgid "GD library" -msgstr "GD-Bibliothek" +#: includes/include.system_db_backup.php:293 +#: includes/include.js_files_overview.php:131 +#: includes/include.html_tpl_files_overview.php:132 +#: includes/include.style_files_overview.php:131 +msgid "Delete File" +msgstr "Datei löschen" -#: includes/functions.system.php:636 -msgid "an error occured while sending your bug report! Please try again" +#: includes/include.system_db_backup.php:300 +msgid "Download File" +msgstr "Datei herunterladen" + +#: includes/functions.general.php:165 +msgid "Saterday" +msgstr "Samstag" + +#: includes/functions.general.php:2010 +#, php-format +msgid "MySQL Database not reachable for installation %s" +msgstr "MySQL-Datenbank für die Installation %s ist nicht erreichbar" + +#: includes/functions.general.php:2013 +#, php-format +msgid "" +"The MySQL Database for the installation %s is not reachable. Please check if " +"this is a temporary problem or if it is a real fault." msgstr "" -"Ein Fehler ist während des Sendens des Bugreports aufgetreten! Bitte " -"versuchen Sie es noch einmal" +"Die MySQL-Datenbank für die Installation %s ist nicht erreichbar. Bitte " +"prüfen Sie, ob dies ein temporäres Problem oder ein wirklicher " +"Fehler ist." -#: includes/functions.system.php:639 -msgid "bug report forwarded" -msgstr "Bug Report abgeschickt" +#: includes/rights_lay.inc.php:75 includes/grouprights_lay.inc.php:85 +msgid "Layout name" +msgstr "Layoutname" -#: includes/functions.system.php:645 -msgid "please fill out all mandatory fields" -msgstr "Bitte alle Pflichtfelder ausfüllen" +#: includes/rights_lay.inc.php:100 includes/grouprights_mod.inc.php:99 +#: includes/grouprights_str.inc.php:105 includes/rights_area.inc.php:87 +#: includes/grouprights_lay.inc.php:113 includes/rights_con.inc.php:112 +#: includes/rights_mod.inc.php:99 includes/grouprights_tpl.inc.php:101 +#: includes/grouprights_area.inc.php:86 includes/grouprights_con.inc.php:111 +#: includes/rights_tpl.inc.php:100 includes/rights_str.inc.php:106 +msgid "Check all" +msgstr "Alle markieren" -#: includes/functions.system.php:649 -msgid "please enter a valid E-Mail adress" -msgstr "Bitte geben Sie eine gültige E-Mail Adresse an" +#: includes/grouprights_mod.inc.php:73 includes/rights_mod.inc.php:75 +msgid "Module name" +msgstr "Modulname" -#: includes/functions.system.php:653 -msgid "you must agree the declaration of consent" -msgstr "Sie müssen der Vereinbarung zustimmen" +#: includes/grouprights_str.inc.php:212 includes/rights_con.inc.php:223 +#: includes/grouprights_con.inc.php:237 includes/rights_str.inc.php:217 +msgid "" +"Apply rights for this category to all categories on the same level or above" +msgstr "" +"Rechte dieser Kategorie allen Kategorien auf derselben Ebene oder darü" +"ber zuweisen" -#: includes/include.grouprights_create.php:57 -msgid "New Group" -msgstr "Neue Gruppe" - -#: includes/include.grouprights_create.php:71 -msgid "group created" -msgstr "Gruppe erzeugt" - -#: includes/include.grouprights_create.php:76 -msgid "Group couldn't created" -msgstr "Gruppe konnte nicht erstellt werden" - -#: includes/include.grouprights_create.php:94 -#: includes/include.CMS_EASYIMG.php:158 includes/include.client_edit.php:227 -#: includes/include.grouprights_overview.php:102 -#: includes/include.rights_overview.php:192 -#: includes/include.rights_create.php:142 -#: classes/widgets/class.widgets.tableedit.php:188 -#: classes/widgets/class.widgets.views.php:80 classes/class.ui.php:351 -msgid "Save changes" -msgstr "Änderungen speichern" - -#: includes/include.grouprights_create.php:96 -#: includes/include.client_edit.php:236 -#: includes/include.grouprights_overview.php:106 -#: includes/include.grouprights_overview.php:209 -#: includes/include.rights_overview.php:197 -#: includes/include.rights_overview.php:353 -#: includes/include.rights_create.php:144 -msgid "Property" -msgstr "Eigenschaft" - -#: includes/include.grouprights_create.php:99 -#: includes/include.systemsettings.php:62 -#: includes/include.systemsettings.php:178 -#: includes/include.client_edit.php:239 includes/include.clientsettings.php:98 -#: includes/include.clientsettings.php:193 -#: includes/include.grouprights_overview.php:109 -#: includes/include.grouprights_overview.php:210 -#: includes/include.rights_overview.php:200 -#: includes/include.rights_overview.php:354 -#: includes/include.rights_create.php:147 -#: templates/standard/template.log_main.html:15 -msgid "Value" -msgstr "Wert" - -#: includes/include.grouprights_create.php:102 -#: includes/include.frontend.group_edit.php:221 -msgid "Group name" -msgstr "Gruppenname" - -#: includes/include.grouprights_create.php:123 -#: includes/include.grouprights_overview.php:129 -#: includes/include.rights_overview.php:271 -#: includes/include.rights_create.php:215 -msgid "System administrator" -msgstr "Systemadministrator" - -#: includes/include.grouprights_create.php:141 -#: includes/include.grouprights_overview.php:147 -#: includes/include.rights_overview.php:289 -#: includes/include.rights_create.php:233 -msgid "Administrator" -msgstr "Administrator" - -#: includes/include.grouprights_create.php:156 -#: includes/include.grouprights_overview.php:163 -#: includes/include.rights_overview.php:305 -#: includes/include.rights_create.php:248 -msgid "Access clients" -msgstr "Zugriff auf Mandanten" - -#: includes/include.grouprights_create.php:172 -#: includes/include.grouprights_overview.php:180 -#: includes/include.rights_overview.php:322 -#: includes/include.rights_create.php:263 -msgid "Access languages" -msgstr "Zugriff auf Sprache" - -#: includes/include.html_tpl_history.php:64 -#: includes/include.mod_history.php:57 includes/include.js_history.php:60 -#: includes/include.lay_history.php:51 includes/include.style_history.php:62 -msgid "Versioning is not activated" -msgstr "Die Versionierung ist nicht aktiv" - -#: includes/include.html_tpl_history.php:129 -#: includes/include.js_history.php:125 -msgid "Edit JScript" -msgstr "JScript bearbeiten" - -#: includes/include.html_tpl_history.php:166 -#: includes/include.mod_history.php:135 includes/include.js_history.php:158 -#: includes/include.lay_history.php:123 includes/include.style_history.php:163 -msgid "Copy to current" -msgstr "In die aktuelle Version kopieren" - -#: includes/include.html_tpl_history.php:179 -#: includes/include.html_tpl_history.php:187 -msgid "No template history available" -msgstr "Keine Template-Historie verfügbar" - -#: includes/include.html_tpl_history.php:185 -#: includes/include.mod_history.php:150 includes/include.js_history.php:177 -#: includes/include.lay_history.php:135 includes/include.style_history.php:182 -msgid "Version history was cleared" -msgstr "Die Versionshistorie wurde erfolgreich gelöscht" - -#: includes/include.client_left_top.php:50 -#: includes/cfg_language_de.inc.php:243 -msgid "Create client" -msgstr "Mandant erzeugen" +#: includes/grouprights_str.inc.php:213 includes/rights_con.inc.php:224 +#: includes/grouprights_con.inc.php:238 includes/rights_str.inc.php:218 +msgid "" +"Apply rights for this category to all categories below the current category" +msgstr "" +"Rechte dieser Kategorie allen Kategorien unter dieser Kategorie zuweisen" #: includes/include.todo.popup.php:58 msgid "Add TODO item" @@ -1413,14 +2334,6 @@ msgstr "Betreff" msgid "Reminder date" msgstr "Zeitpunkt Wiedervorlage" -#: includes/include.todo.popup.php:79 -#: includes/include.mycontenido.tasks.edit.php:75 -#: includes/include.upl_edit.php:219 -#: templates/standard/template.con_edit_form.html:150 -#: templates/standard/template.log_main.html:34 -msgid "End date" -msgstr "Enddatum" - #: includes/include.todo.popup.php:80 msgid "eMail notification" msgstr "E-Mail Benachrichtigung" @@ -1435,188 +2348,111 @@ msgstr "Erinnerungsoptionen" msgid "Assigned to" msgstr "Zugewiesen zu" -#: includes/include.lay_new.php:38 -msgid "New Layout" -msgstr "Neues Layout" +#: includes/include.lay_history.php:51 includes/include.html_tpl_history.php:64 +#: includes/include.style_history.php:62 includes/include.js_history.php:60 +#: includes/include.mod_history.php:57 +msgid "Versioning is not activated" +msgstr "Die Versionierung ist nicht aktiv" -#: includes/functions.general.php:103 -#: classes/datatypes/class.datatype.datetime.php:140 -msgid "January" -msgstr "Januar" +#: includes/include.lay_history.php:123 +#: includes/include.html_tpl_history.php:166 +#: includes/include.style_history.php:163 includes/include.js_history.php:158 +#: includes/include.mod_history.php:135 +msgid "Copy to current" +msgstr "In die aktuelle Version kopieren" -#: includes/functions.general.php:106 -#: classes/datatypes/class.datatype.datetime.php:141 -msgid "February" -msgstr "Februar" +#: includes/include.lay_history.php:135 +#: includes/include.html_tpl_history.php:185 +#: includes/include.style_history.php:182 includes/include.js_history.php:177 +#: includes/include.mod_history.php:150 +msgid "Version history was cleared" +msgstr "Die Versionshistorie wurde erfolgreich gelöscht" -#: includes/functions.general.php:109 -#: classes/datatypes/class.datatype.datetime.php:142 -msgid "March" -msgstr "März" +#: includes/include.lay_history.php:137 +msgid "No layout history available" +msgstr "Keine Layout-Historie verfügbar" -#: includes/functions.general.php:112 -#: classes/datatypes/class.datatype.datetime.php:143 -msgid "April" -msgstr "April" +#: includes/include.lay_overview.php:78 includes/include.mod_edit_form.php:54 +#: includes/include.str_overview.php:846 includes/include.mod_overview.php:209 +msgid "No permission" +msgstr "Kein Zugriff" -#: includes/functions.general.php:115 -#: classes/datatypes/class.datatype.datetime.php:144 -msgid "May" -msgstr "Mai" +#: includes/include.lay_overview.php:82 +msgid "Layout is in use, cannot delete" +msgstr "Layout wird benutzt, löschen nicht möglich" -#: includes/functions.general.php:118 -#: classes/datatypes/class.datatype.datetime.php:145 -msgid "June" -msgstr "Juni" +#: includes/include.lay_overview.php:83 includes/include.tpl_overview.php:96 +#: includes/include.mod_overview.php:196 +msgid "Click for more information about usage" +msgstr "Klicken Sie für mehr Information über Verwendung" -#: includes/functions.general.php:121 -#: classes/datatypes/class.datatype.datetime.php:146 -msgid "July" -msgstr "Juli" +#: includes/include.lay_overview.php:92 includes/cfg_language_de.inc.php:147 +msgid "Delete layout" +msgstr "Layout löschen" -#: includes/functions.general.php:124 -#: classes/datatypes/class.datatype.datetime.php:147 -msgid "August" -msgstr "August" - -#: includes/functions.general.php:127 -#: classes/datatypes/class.datatype.datetime.php:148 -msgid "September" -msgstr "September" - -#: includes/functions.general.php:130 -#: classes/datatypes/class.datatype.datetime.php:149 -msgid "October" -msgstr "Oktober" - -#: includes/functions.general.php:133 -#: classes/datatypes/class.datatype.datetime.php:150 -msgid "November" -msgstr "November" - -#: includes/functions.general.php:136 -#: classes/datatypes/class.datatype.datetime.php:151 -msgid "December" -msgstr "Dezember" - -#: includes/functions.general.php:150 -#: classes/datatypes/class.datatype.datetime.php:160 -msgid "Monday" -msgstr "Montag" - -#: includes/functions.general.php:153 -#: classes/datatypes/class.datatype.datetime.php:161 -msgid "Tuesday" -msgstr "Dienstag" - -#: includes/functions.general.php:156 -#: classes/datatypes/class.datatype.datetime.php:162 -msgid "Wednesday" -msgstr "Mittwoch" - -#: includes/functions.general.php:159 -#: classes/datatypes/class.datatype.datetime.php:163 -msgid "Thursday" -msgstr "Donnerstag" - -#: includes/functions.general.php:162 -#: classes/datatypes/class.datatype.datetime.php:164 -msgid "Friday" -msgstr "Freitag" - -#: includes/functions.general.php:165 -msgid "Saterday" -msgstr "Samstag" - -#: includes/functions.general.php:168 -#: classes/datatypes/class.datatype.datetime.php:159 -#: classes/datatypes/class.datatype.datetime.php:166 -msgid "Sunday" -msgstr "Sonntag" - -#: includes/functions.general.php:1977 +#: includes/include.lay_overview.php:93 #, php-format -msgid "MySQL Database not reachable for installation %s" -msgstr "MySQL-Datenbank für die Installation %s ist nicht erreichbar " - -#: includes/functions.general.php:1980 -#, php-format -msgid "" -"The MySQL Database for the installation %s is not reachable. Please check if " -"this is a temporary problem or if it is a real fault." +msgid "Do you really want to delete the following layout:

%s
" msgstr "" -"Die MySQL-Datenbank für die Installation %s ist nicht erreichbar. Bitte " -"prüfen Sie, ob dies ein temporäres Problem oder ein wirklicher " -"Fehler ist." +"Möchten Sie das folgende Layout wirklich löschen:

%s" -#: includes/rights_mod.inc.php:75 includes/grouprights_mod.inc.php:73 -msgid "Module name" -msgstr "Modulname" +#: includes/include.lay_overview.php:118 +#, php-format +msgid "The layout '%s' is used for following templates" +msgstr "Das Layout '%s' wird bei folgenden Templates benutzt" -#: includes/include.client_artspec.php:79 -#: includes/include.con_edit_form.php:241 -msgid "Article specification" -msgstr "Artikelspezifikation" +#: includes/include.mod_edit_form.php:59 +msgid "" +msgstr "" -#: includes/include.client_artspec.php:80 -#: includes/include.mycontenido.tasks.php:397 -#: includes/include.mycontenido_settings.php:127 -#: includes/include.lay_edit_form.php:207 -msgid "Options" -msgstr "Optionen" +#: includes/include.mod_edit_form.php:59 +msgid "Author: " +msgstr "Autor: " -#: includes/include.client_artspec.php:90 -#: includes/include.systemsettings.php:71 -#: includes/include.systemsettings.php:75 -#: includes/include.clientsettings.php:114 includes/include.upl_edit.php:66 -msgid "Edit" -msgstr "Bearbeiten" +#: includes/include.mod_edit_form.php:59 +msgid "Version:" +msgstr "Version:" -#: includes/include.client_artspec.php:94 -#: includes/include.systemsettings.php:79 -#: includes/include.systemsettings.php:81 -#: includes/include.clientsettings.php:108 -msgid "Delete" -msgstr "Löschen" +#: includes/include.mod_edit_form.php:88 +msgid "Module folder created" +msgstr "Modulverzeichnis erstellt" -#: includes/include.client_artspec.php:131 -msgid "Save" -msgstr "Speichern" +#: includes/include.mod_edit_form.php:91 +msgid "Error while creating module folder" +msgstr "Fehler beim Erstellen des Modulverzeichisses" -#: includes/include.client_artspec.php:140 -#: includes/include.con_art_overview.php:601 -#: includes/include.str_overview.php:957 includes/include.str_overview.php:959 -#: backend_search.php:652 scripts/HTMLObj.js.php:242 -#: scripts/HTMLObj.js.php:245 scripts/langref.php:9 -msgid "Make online" -msgstr "Online setzen" +#: includes/include.mod_edit_form.php:127 includes/cfg_language_de.inc.php:157 +msgid "Edit module" +msgstr "Modul bearbeiten" -#: includes/include.client_artspec.php:144 -#: includes/include.con_art_overview.php:593 backend_search.php:648 -#: scripts/HTMLObj.js.php:239 scripts/langref.php:8 -msgid "Make offline" -msgstr "Offline setzen" +#: includes/include.mod_edit_form.php:299 +#: includes/include.mod_edit_form.php:301 +msgid "Custom" +msgstr "Benutzerdefiniert" -#: includes/include.client_artspec.php:150 -msgid "Make this article specification default" -msgstr "Diese Artikelspezifikation als Standard definieren" +#: includes/include.mod_edit_form.php:324 +#: includes/include.mod_edit_form.php:333 +#, php-format +msgid "Error in module. Error location: %s" +msgstr "Fehler in Modul. Fehlerquelle: %s" -#: includes/include.client_artspec.php:154 -msgid "This article specification is default" -msgstr "Diese Artikelspezifikation ist Standard" +#: includes/include.mod_edit_form.php:327 +#: includes/include.mod_edit_form.php:336 +msgid "Module successfully compiled" +msgstr "Modul erfolgreich kompiliert" -#: includes/include.client_artspec.php:163 -#: includes/include.con_edit_form.php:238 -msgid "No article specifications found!" -msgstr "Keine Artikelspezifikation gefunden" +#: includes/include.mod_edit_form.php:371 +msgid "Create Folder" +msgstr "Verzeichnis erstellen" -#: includes/include.client_artspec.php:173 -msgid "Create new article specification" -msgstr "Neue Artikelspezifikation erstellen" - -#: includes/include.client_artspec.php:176 -msgid "Specification name" -msgstr "Name der Spezifikation" +#: includes/include.mod_edit_form.php:415 +msgid "" +"This module uses variables and/or functions which are probably not available " +"in this Contenido version. Please make sure that you use up-to-date modules." +msgstr "" +"Dieses Modul verwendet Variablen und/oder Funktionen, die in dieser " +"Contenido-Version nicht mehr vorhanden sind. Bitte stellen Sie sicher, dass " +"Sie aktuelle Module verwenden." #: includes/include.mycontenido.tasks.php:128 msgid "No status type set" @@ -1636,23 +2472,10 @@ msgstr "Heute" msgid "Day(s)" msgstr "Tag(e)" -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.con_edit_form.php:284 includes/include.upl_artlist.php:81 -#: templates/standard/template.mycontenido_lastarticles.html:64 -msgid "Created" -msgstr "Erstelldatum" - #: includes/include.mycontenido.tasks.php:276 msgid "End Date" msgstr "Enddatum" -#: includes/include.mycontenido.tasks.php:276 -#: includes/include.mycontenido.tasks.edit.php:137 -#: includes/include.stat_overview.php:90 includes/include.mod_package.php:252 -#: includes/include.mod_package.php:361 includes/include.mod_package.php:366 -msgid "Status" -msgstr "Status" - #: includes/include.mycontenido.tasks.php:276 #: includes/include.mycontenido.tasks.edit.php:132 msgid "Priority" @@ -1691,10 +2514,6 @@ msgstr "Element bearbeiten" msgid "Restrict display" msgstr "Anzeige einschränken" -#: includes/include.mycontenido.tasks.php:380 classes/class.version.php:522 -msgid "Refresh" -msgstr "Aktualisieren" - #: includes/include.mycontenido.tasks.php:386 msgid "Hide done tasks" msgstr "Erledigte Aufgaben ausblenden" @@ -1703,20 +2522,411 @@ msgstr "Erledigte Aufgaben ausblenden" msgid "No tasks found" msgstr "Keine Aufgaben gefunden" -#: includes/include.systemsettings.php:47 +#: includes/include.CMS_HTMLHEAD.php:100 includes/include.CMS_HTML.php:98 +msgid "Save without leaving the editor" +msgstr "Speichern und im Editor bleiben" + +#: includes/include.CMS_HTMLHEAD.php:101 includes/include.CMS_HTML.php:99 +msgid "Save and close editor" +msgstr "Speichern und Editor schließen" + +#: includes/include.systemsettings.php:46 msgid "Please set this property in systemsettings directly" msgstr "Bitte setzen Sie diese Einstellung direkt in den Systemeinstellungen" -#: includes/include.systemsettings.php:157 -#: includes/include.clientsettings.php:172 +#: includes/include.systemsettings.php:69 +#: includes/include.systemsettings.php:73 includes/include.upl_edit.php:66 +#: includes/include.clientsettings.php:110 +#: includes/include.client_artspec.php:90 +msgid "Edit" +msgstr "Bearbeiten" + +#: includes/include.systemsettings.php:77 +#: includes/include.systemsettings.php:79 +#: includes/include.clientsettings.php:104 +#: includes/include.client_artspec.php:94 +msgid "Delete" +msgstr "Löschen" + +#: includes/include.systemsettings.php:153 +#: includes/include.clientsettings.php:170 msgid "No defined properties" msgstr "Keine definierten Eigenschaften" -#: includes/include.systemsettings.php:167 -#: includes/include.clientsettings.php:181 +#: includes/include.systemsettings.php:163 +#: includes/include.clientsettings.php:179 msgid "Add new variable" msgstr "Neue Variable hinzufügen" +#: includes/include.rights_create.php:53 +msgid "Username can't be empty" +msgstr "Benutzername darf nicht leer sein" + +#: includes/include.rights_create.php:85 +msgid "User created" +msgstr "Benutzer erstellt" + +#: includes/include.rights_create.php:106 +msgid "Username already exists" +msgstr "Benutzername existiert bereits" + +#: includes/include.rights_create.php:110 +msgid "Unknown error" +msgstr "Unbekannter Fehler" + +#: includes/include.rights_create.php:122 +#: includes/include.mycontenido_settings.php:62 +#: includes/include.rights_overview.php:132 +msgid "Passwords don't match" +msgstr "Passwörter stimmen nicht überein" + +#: includes/include.rights_create.php:144 includes/include.client_edit.php:223 +#: includes/include.rights_overview.php:197 +#: includes/include.rights_overview.php:353 +#: includes/include.grouprights_overview.php:106 +#: includes/include.grouprights_overview.php:209 +#: includes/include.grouprights_create.php:96 +msgid "Property" +msgstr "Eigenschaft" + +#: includes/include.rights_create.php:150 +#: includes/include.frontend.user_menu.php:53 +#: includes/include.frontend.user_menu.php:54 +#: includes/include.rights_overview.php:203 +#: includes/include.frontend.left_top.php:58 +#: includes/include.frontend.left_top.php:59 +msgid "Username" +msgstr "Benutzername" + +#: includes/include.rights_create.php:162 +#: includes/include.mycontenido_settings.php:116 +#: includes/include.frontend.user_edit.php:186 +#: includes/include.rights_overview.php:217 +msgid "New password" +msgstr "Neues Passwort" + +#: includes/include.rights_create.php:168 +#: includes/include.mycontenido_settings.php:117 +#: includes/include.rights_overview.php:223 +msgid "Confirm new password" +msgstr "Neues Passwort bestätigen" + +#: includes/include.rights_create.php:174 +#: includes/include.mycontenido_settings.php:121 +#: includes/include.rights_overview.php:230 +msgid "E-Mail" +msgstr "E-Mail" + +#: includes/include.rights_create.php:180 +#: includes/include.rights_overview.php:236 +msgid "Phone number" +msgstr "Telefonnummer" + +#: includes/include.rights_create.php:186 +#: includes/include.rights_overview.php:242 +msgid "Street" +msgstr "Strasse" + +#: includes/include.rights_create.php:192 +#: includes/include.rights_overview.php:248 +msgid "ZIP code" +msgstr "Postleitzahl" + +#: includes/include.rights_create.php:198 +#: includes/include.rights_overview.php:254 +msgid "City" +msgstr "Stadt" + +#: includes/include.rights_create.php:215 +#: includes/include.rights_overview.php:271 +#: includes/include.grouprights_overview.php:129 +#: includes/include.grouprights_create.php:123 +msgid "System administrator" +msgstr "Systemadministrator" + +#: includes/include.rights_create.php:233 +#: includes/include.rights_overview.php:289 +#: includes/include.grouprights_overview.php:147 +#: includes/include.grouprights_create.php:141 +msgid "Administrator" +msgstr "Administrator" + +#: includes/include.rights_create.php:248 +#: includes/include.rights_overview.php:305 +#: includes/include.grouprights_overview.php:163 +#: includes/include.grouprights_create.php:156 +msgid "Access clients" +msgstr "Zugriff auf Mandanten" + +#: includes/include.rights_create.php:263 +#: includes/include.rights_overview.php:322 +#: includes/include.grouprights_overview.php:180 +#: includes/include.grouprights_create.php:172 +msgid "Access languages" +msgstr "Zugriff auf Sprache" + +#: includes/include.rights_create.php:269 +#: includes/include.rights_overview.php:373 +msgid "Use WYSIWYG-Editor" +msgstr "WYSIWYG-Editor benutzen" + +#: includes/include.rights_create.php:290 +#: includes/include.rights_overview.php:399 +msgid "Valid from" +msgstr "Gültig von" + +#: includes/include.rights_create.php:307 +#: includes/include.rights_overview.php:420 +msgid "Valid to" +msgstr "Gültig bis" + +#: includes/include.lang_left_top.php:80 includes/cfg_language_de.inc.php:189 +msgid "Create language" +msgstr "Sprache erstellen für" + +#: includes/include.html_tpl_history.php:129 +#: includes/include.js_history.php:125 +msgid "Edit JScript" +msgstr "JScript bearbeiten" + +#: includes/include.html_tpl_history.php:179 +#: includes/include.html_tpl_history.php:187 +msgid "No template history available" +msgstr "Keine Template-Historie verfügbar" + +#: includes/include.system_purge.php:79 includes/include.system_purge.php:87 +#: includes/include.system_purge.php:95 includes/include.system_purge.php:103 +#: includes/include.system_purge.php:112 +msgid "Client " +msgstr "Mandant " + +#: includes/include.system_purge.php:80 includes/include.system_purge.php:128 +#: includes/include.system_purge.php:135 +#, php-format +msgid "The entries of %s table are not deleted!" +msgstr "Einträge von der Tabelle %s wurden nicht gelöscht!" + +#: includes/include.system_purge.php:88 +#, php-format +msgid "The %s is not updated!" +msgstr "Tabelle %s ist nicht akutalisiert!" + +#: includes/include.system_purge.php:96 +msgid "The cache is not deleted!" +msgstr "Cache wurde nicht gelöscht!" + +#: includes/include.system_purge.php:104 +msgid "The log is not deleted!" +msgstr "Log-Datei wurde nicht geleert!" + +#: includes/include.system_purge.php:113 +msgid "The history is not deleted!" +msgstr "Versionierung wurde nicht gelöscht!" + +#: includes/include.system_purge.php:143 +msgid "The contenido log is not cleaned!" +msgstr "ConLite Log-Datei wurde nicht geleert!" + +#: includes/include.system_purge.php:150 +msgid "The contenido cache is not deleted!" +msgstr "ConLite Cache wurde nicht gelöscht!" + +#: includes/include.system_purge.php:157 +msgid "The contenido cronjobs are not cleaned!" +msgstr "ConLite Cronjob-Dateien wurden nicht geleert!" + +#: includes/include.system_purge.php:164 +msgid "Update of sequence table not completed!" +msgstr "Aktualisierung der Sequence Tabelle nicht komplett!" + +#: includes/include.system_purge.php:169 +msgid "The changes were successfully executed." +msgstr "Die Änderungen wurden erfolgreich ausgeführt." + +#: includes/include.system_purge.php:171 +msgid "The changes were not all successfully completed." +msgstr "" +"Die Änderungen wurden teilweise nicht erfolgreich ausgeführt." + +#: includes/include.system_purge.php:190 includes/include.system_purge.php:214 +msgid "System purge" +msgstr "System Bereinigen" + +#: includes/include.system_purge.php:191 +msgid "No Client selected!" +msgstr "Kein Mandant ausgewählt!" + +#: includes/include.system_purge.php:196 +msgid "all clients" +msgstr "alle Mandanten" + +#: includes/include.system_purge.php:197 +msgid "from list" +msgstr "aus Liste" + +#: includes/include.system_purge.php:198 +msgid "Select clients" +msgstr "Mandanten Auswahl" + +#: includes/include.system_purge.php:199 includes/include.system_purge.php:201 +#: includes/include.system_purge.php:209 +#, php-format +msgid "Reset the table %s" +msgstr "Tabelle %s leeren" + +#: includes/include.system_purge.php:200 +#, php-format +msgid "Activate the code generation in %s" +msgstr "Code-Generierung in der Tabelle %s" + +#: includes/include.system_purge.php:202 +msgid "Clear client cache" +msgstr "Cache-Dateien löschen" + +#: includes/include.system_purge.php:203 +msgid "Clear client log file" +msgstr "Log-Datei leeren" + +#: includes/include.system_purge.php:204 +msgid "Clear client history" +msgstr "Versionierung löschen" + +#: includes/include.system_purge.php:205 +msgid "Keep last histories" +msgstr "Letzten Versionierungen beibehalten" + +#: includes/include.system_purge.php:207 +msgid "Contenido" +msgstr "ConLite" + +#: includes/include.system_purge.php:208 +msgid "Clear contenido log file" +msgstr "ConLite Log-Datei leeren" + +#: includes/include.system_purge.php:210 +msgid "Clear contenido cache" +msgstr "ConLite Cache löschen" + +#: includes/include.system_purge.php:211 +msgid "Reset cronjobs" +msgstr "Job-Dateien von Cronjob leeren" + +#: includes/include.system_purge.php:212 +msgid "Update sequence table" +msgstr "Sequence-Tabelle aktualisiert" + +#: includes/include.system_purge.php:215 +msgid "These changes can not be cancelled." +msgstr "Die Änderungen können Sie nicht rückgängig machen." + +#: includes/include.system_purge.php:215 +msgid "Do you really want to complete it?" +msgstr "Wollen Sie diese Aktion wirklich ausführen?" + +#: includes/include.system_purge.php:220 +msgid "No action selected!" +msgstr "Keine Aktion ausgewählt!" + +#: includes/include.system_purge.php:222 +msgid "Send" +msgstr "Gesendet" + +#: includes/grouprights.inc.php:215 +msgid "Current group doesn't have any rights to any client/language." +msgstr "" +"Die aktuelle Gruppe hat keine Zugriffsrechte auf irgendeine(n) Sprache bzw " +"Mandant." + +#: includes/include.rights_left_top.php:77 +#: includes/include.grouprights_left_top.php:60 +msgid "Frontend only" +msgstr "Nur Frontend" + +#: includes/include.rights_left_top.php:78 +#: includes/include.grouprights_left_top.php:61 +msgid "Backend only" +msgstr "Nur Backend" + +#: includes/include.rights_left_top.php:115 +#: includes/include.frontend.user_edit.php:185 +msgid "User name" +msgstr "Benutzername" + +#: includes/include.con_editcontent.php:215 +msgid "Close editor" +msgstr "Editor schließen" + +#: includes/include.con_editcontent.php:216 +msgid "Close editor and save changes" +msgstr "Editor schließen und Änderungen speichern" + +#: includes/include.con_editcontent.php:217 +msgid "Do you want to save changes?" +msgstr "Möchten Sie die Änderungen speichern?" + +#: includes/include.con_editcontent.php:375 +msgid "No template assigned to the category
and/or the article" +msgstr "Kein Template mit einer Kategorie
und/oder einem Artikel assoziiert" + +#: includes/include.con_editcontent.php:376 +msgid "The code for the following article
couldnt be generated:" +msgstr "" +"Der Code für den folgenden Artikel
konnte nicht erstellt werden:" + +#: includes/include.grouprights_left_top.php:90 +#: includes/cfg_language_de.inc.php:181 +#: includes/include.frontend.left_top.php:442 +msgid "Create group" +msgstr "Gruppe erzeugen" + +#: includes/include.mycontenido_lastarticles.php:137 +#: includes/main.login.php:211 includes/include.con_left_top.php:302 +msgid "Recently edited articles" +msgstr "Zuletzt bearbeitete Artikel" + +#: includes/include.mycontenido_lastarticles.php:221 +#: includes/include.con_art_overview.php:526 +msgid "Article is online" +msgstr "Artikel ist online" + +#: includes/include.mycontenido_lastarticles.php:224 +#: includes/include.con_art_overview.php:532 +msgid "Article is offline" +msgstr "Artikel ist offline" + +#: includes/include.mycontenido_lastarticles.php:293 +msgid "No article found" +msgstr "Keine Artikel gefunden" + +#: includes/include.style_history.php:126 +msgid "Edit Style" +msgstr "Style bearbeiten" + +#: includes/include.style_history.php:176 +#: includes/include.style_history.php:184 includes/include.js_history.php:179 +msgid "No style history available" +msgstr "Keine Style-Historie verfügbar" + +#: includes/functions.con.php:331 includes/functions.con.php:518 +msgid "Default title" +msgstr "Standardtitel" + +#: includes/functions.con.php:1837 includes/functions.str.php:1359 +#: includes/functions.tpl.php:412 +#, php-format +msgid "%s (Copy)" +msgstr "%s (Kopie)" + +#: includes/include.frontend.user_menu.php:53 +#: includes/include.frontend.left_top.php:58 +msgid "-- All fields --" +msgstr "-- Alle Felder --" + +#: includes/include.frontend.user_menu.php:139 +#: includes/include.frontend.left_top.php:228 +msgid "-- All Groups --" +msgstr "-- Alle Gruppen --" + #: includes/include.con_edit_form.php:134 #: includes/include.tplcfg_edit_form.php:57 #: external/backendedit/front_content.php:484 @@ -1725,21 +2935,15 @@ msgstr "Neue Variable hinzufügen" msgid "Article is in use by %s (%s)" msgstr "Artikel wird benutzt von %s (%s)" -#: includes/include.con_edit_form.php:208 -#: includes/include.con_art_overview.php:78 -#: includes/include.con_art_overview.php:746 -#: includes/include.stat_overview.php:89 includes/include.upl_artlist.php:81 -#: backend_search.php:492 -#: templates/standard/template.mycontenido_lastarticles.html:62 -msgid "Title" -msgstr "Titel" +#: includes/include.con_edit_form.php:238 +#: includes/include.client_artspec.php:163 +msgid "No article specifications found!" +msgstr "Keine Artikelspezifikation gefunden!" -#: includes/include.con_edit_form.php:211 -#: includes/include.str_overview.php:509 -#: templates/standard/template.str_overview.html:133 -#: templates/standard/template.str_overview.html:227 -msgid "Alias" -msgstr "Alias" +#: includes/include.con_edit_form.php:241 +#: includes/include.client_artspec.php:79 +msgid "Article specification" +msgstr "Artikelspezifikation" #: includes/include.con_edit_form.php:253 msgid "Articlelink" @@ -1782,7 +2986,7 @@ msgid "Publishing date" msgstr "Veröffentlichungsdatum" #: includes/include.con_edit_form.php:297 -#: includes/include.con_art_overview.php:354 +#: includes/include.con_art_overview.php:309 msgid "not yet published" msgstr "noch nicht veröffentlicht" @@ -1799,12 +3003,12 @@ msgid "New Window" msgstr "Neues Fenster" #: includes/include.con_edit_form.php:350 -#: includes/include.con_art_overview.php:553 +#: includes/include.con_art_overview.php:487 msgid "Start article" msgstr "Startartikel" #: includes/include.con_edit_form.php:354 -#: includes/include.con_art_overview.php:841 +#: includes/include.con_art_overview.php:746 msgid "Sort key" msgstr "Sortierschlüssel" @@ -1834,20 +3038,6 @@ msgstr "" "und sind online. Um die Kategoriezuweisung zu verändern, setzen Sie die " "anderen sprachabhängigen Teile zuerst offline." -#: includes/include.con_edit_form.php:510 includes/grouprights_str.inc.php:76 -#: includes/rights_con.inc.php:78 includes/include.con_editcontent.php:387 -#: includes/grouprights_con.inc.php:78 includes/rights_str.inc.php:77 -#: includes/include.note.popup.php:93 -#: templates/standard/template.symbolhelp.html:41 -#: templates/standard/template.symbolhelp.html:472 -#: templates/standard/template.str_overview.html:124 -#: templates/standard/template.str_overview.html:224 -#: templates/standard/template.mycontenido_lastarticles.html:63 -#: templates/standard/template.log_main.html:52 -#: classes/class.cms_teaser.php:595 classes/class.ajax.php:153 -msgid "Category" -msgstr "Kategorie" - #: includes/include.con_edit_form.php:549 msgid "Choose Startdate" msgstr "Startzeitpunkt wählen" @@ -1864,1408 +3054,33 @@ msgstr "Datum auswählen" msgid "Summary" msgstr "Zusammenfassung" -#: includes/include.CMS_EASYIMG.php:153 -msgid "Upload image" -msgstr "Bild hochladen" +#: includes/include.tpl_overview.php:99 includes/cfg_language_de.inc.php:164 +msgid "Delete template" +msgstr "Template löschen" -#: includes/include.CMS_EASYIMG.php:157 includes/include.client_edit.php:228 -#: includes/include.grouprights_overview.php:103 -#: includes/include.rights_overview.php:193 -msgid "Discard changes" -msgstr "Ängerungen verwerfen" - -#: includes/grouprights_str.inc.php:212 includes/rights_con.inc.php:223 -#: includes/grouprights_con.inc.php:237 includes/rights_str.inc.php:217 -msgid "" -"Apply rights for this category to all categories on the same level or above" -msgstr "" -"Rechte dieser Kategorie allen Kategorien auf derselben Ebene oder darü" -"ber zuweisen" - -#: includes/grouprights_str.inc.php:213 includes/rights_con.inc.php:224 -#: includes/grouprights_con.inc.php:238 includes/rights_str.inc.php:218 -msgid "" -"Apply rights for this category to all categories below the current category" -msgstr "" -"Rechte dieser Kategorie allen Kategorien unter dieser Kategorie zuweisen" - -#: includes/grouprights_str.inc.php:215 -#: includes/include.upl_dirs_overview.php:60 includes/rights_con.inc.php:227 -#: includes/include.str_overview.php:174 includes/grouprights_con.inc.php:241 -#: includes/rights_str.inc.php:221 -msgid "Close category" -msgstr "Kategorie schliessen" - -#: includes/include.upl_dirs_overview.php:153 -msgid "Failed to delete the following files:" -msgstr "Die folgenden Dateien konnten nicht gelöscht werden:" - -#: includes/include.upl_dirs_overview.php:159 +#: includes/include.tpl_overview.php:100 #, php-format -msgid "Failed to remove directory %s" -msgstr "Folgendes Verzeichnis konnte nicht verschoben werden: %s" - -#: includes/include.upl_dirs_overview.php:190 -msgid "Upload directory" -msgstr "Upload Verzeichnis" - -#: includes/include.upl_dirs_overview.php:194 -msgid "" -"The following directories contains invalid characters and were ignored: " +msgid "Do you really want to delete the following template:

%s
" msgstr "" -"Die folgenden Verzeichnisnamen beinhalten ungültige Zeichen und wurden " -"daher ignoriert: " - -#: includes/include.upl_dirs_overview.php:197 -msgid "Please click here in order to rename automatically." -msgstr "" -"Bitte klicken Sie hier, um die Verzeichnisse automatisch umzubennennen." - -#: includes/include.upl_dirs_overview.php:319 -msgid "Categories" -msgstr "Kategorien" - -#: includes/include.upl_dirs_overview.php:400 -#: includes/include.upl_dirs_overview.php:547 -msgid "Delete directory" -msgstr "Verzeichnis löschen" - -#: includes/include.upl_dirs_overview.php:400 -#: includes/include.upl_dirs_overview.php:547 -msgid "Do you really want to delete the following directory:" -msgstr "" -"Möchten Sie das folgende Verzeichnis wirklich löschen:


%s" -#: includes/include.upl_dirs_overview.php:405 -#: includes/include.upl_dirs_overview.php:552 -msgid "Directory contains files" -msgstr "Verzeichnis enthält Dateien" +#: includes/include.tpl_overview.php:105 +msgid "Template in use, cannot delete" +msgstr "Template wird benutzt, löschen nicht möglich" -#: includes/include.upl_dirs_overview.php:454 -msgid "Database Filesystem" -msgstr "Datenbank-Dateisystem" - -#: includes/include.tplcfg_edit_form.php:76 +#: includes/include.tpl_overview.php:128 #, php-format -msgid "Category Template configuration is in use by %s (%s)" -msgstr "Templatekonfiguration (Kategorie) wird benutzt von %s (%s)" +msgid "The template '%s' is used for following categories and articles" +msgstr "Das Template '%s' wird bei folgenden Kategorien und Artikeln benutzt" -#: includes/include.tplcfg_edit_form.php:276 -#: includes/include.con_art_overview.php:82 -#: includes/include.pretplcfg_edit_form.php:76 backend_search.php:496 -#: templates/standard/template.str_overview.html:230 -#: templates/standard/template.mycontenido_lastarticles.html:66 -msgid "Template" -msgstr "Template" - -#: includes/include.tplcfg_edit_form.php:352 -msgid "Module in container" -msgstr "Modul in Container" - -#: includes/include.tplcfg_edit_form.php:476 -msgid "Categorytemplate configuration" -msgstr "Kategorietemplate konfigurieren" - -#: includes/include.tplcfg_edit_form.php:479 -msgid "Articletemplate configuration" -msgstr "Artikeltemplate konfigurieren" - -#: includes/include.rights_menu.php:133 -#: includes/include.frontend.user_menu.php:273 -#: includes/include.frontend.left_top.php:395 +#: includes/include.js_files_overview.php:132 +#: includes/include.html_tpl_files_overview.php:133 +#: includes/include.style_files_overview.php:132 #, php-format -msgid "Do you really want to delete the user %s?" +msgid "Do you really want to delete the following file:

%s
" msgstr "" -"Möchten Sie den folgenden Benutzer wirklich löschen:

%s" - -#: includes/include.rights_menu.php:135 -#: includes/include.frontend.user_menu.php:275 -#: includes/cfg_language_de.inc.php:172 -#: includes/include.frontend.left_top.php:397 -msgid "Delete user" -msgstr "Benutzer löschen" - -#: includes/include.info.php:38 -#, fuzzy -msgid "" -"You can find a lot of information and a community forum on the ConLite Portal" -msgstr "" -"Alle Informationen zu ConLite und das ConLite Community Forum finden Sie auf " -"dem ConLite Portal" - -#: includes/include.CMS_HTMLHEAD.php:100 includes/include.CMS_HTML.php:98 -msgid "Save without leaving the editor" -msgstr "Speichern und im Editor bleiben" - -#: includes/include.CMS_HTMLHEAD.php:101 includes/include.CMS_HTML.php:99 -msgid "Save and close editor" -msgstr "Speichern und Editor schließen" - -#: includes/functions.tpl.php:436 includes/functions.con.php:1837 -#: includes/functions.str.php:1387 -#, php-format -msgid "%s (Copy)" -msgstr "%s (Kopie)" - -#: includes/include.con_left_top.php:135 -msgid "Ignore" -msgstr "Ignorieren" - -#: includes/include.con_left_top.php:136 classes/class.cms_filelist.php:444 -msgid "Date created" -msgstr "Erstelldatum" - -#: includes/include.con_left_top.php:137 classes/class.cms_filelist.php:447 -msgid "Date modified" -msgstr "Änderungsdatum" - -#: includes/include.con_left_top.php:138 -msgid "Date published" -msgstr "Veröffentlichungsdatum" - -#: includes/include.con_left_top.php:141 -msgid "Article Search" -msgstr "Artikelsuche" - -#: includes/include.con_left_top.php:237 -#: templates/standard/template.recipient_menu.html:92 -msgid "Search" -msgstr "Suche" - -#: includes/include.con_left_top.php:250 -msgid "Title/Content" -msgstr "Titel/Inhalt" - -#: includes/include.con_left_top.php:255 -msgid "Article ID" -msgstr "Artikel-ID" - -#: includes/include.con_left_top.php:260 -msgid "Datum" -msgstr "Datum" - -#: includes/include.con_left_top.php:265 -msgid "Date from" -msgstr "Datum von" - -#: includes/include.con_left_top.php:270 -msgid "Date to" -msgstr "Datum bis" - -#: includes/include.con_left_top.php:291 -msgid "Saved Searches" -msgstr "Gespeicherte Suchen" - -#: includes/include.con_left_top.php:302 -#: includes/include.mycontenido_lastarticles.php:137 -#: includes/main.login.php:211 -msgid "Recently edited articles" -msgstr "Zuletzt bearbeitete Artikel" - -#: includes/include.con_left_top.php:306 -msgid "My articles" -msgstr "Meine Artikel" - -#: includes/include.con_left_top.php:311 -msgid "Workflow" -msgstr "Workflow" - -#: includes/include.con_left_top.php:369 scripts/HTMLObj.js.php:254 -#: scripts/langref.php:12 -msgid "Choose template" -msgstr "Template wählen" - -#: includes/include.con_left_top.php:379 -msgid "Edit Category" -msgstr "Kategorie bearbeiten" - -#: includes/include.con_left_top.php:395 -msgid "Template:" -msgstr "Template:" - -#: includes/include.con_left_top.php:404 includes/include.con_left_top.php:405 -msgid "Configure Category" -msgstr "Kategorie konfigurieren" - -#: includes/include.con_left_top.php:407 includes/include.con_left_top.php:408 -msgid "Online / Offline" -msgstr "Online / Offline" - -#: includes/include.con_left_top.php:410 includes/include.con_left_top.php:411 -msgid "Lock / Unlock" -msgstr "Schützen / Freigeben" - -#: includes/include.con_left_top.php:428 -msgid "close all" -msgstr "alle schließen" - -#: includes/include.con_left_top.php:428 -#: includes/include.con_str_overview.php:612 -#: includes/include.str_overview.php:486 includes/include.str_overview.php:487 -#: includes/include.str_overview.php:488 -#: templates/standard/template.stat_overview.html:135 -msgid "Close all categories" -msgstr "Alle Kategorien schließen" - -#: includes/include.con_left_top.php:429 -msgid "open all" -msgstr "alle öffnen" - -#: includes/include.con_left_top.php:429 -#: includes/include.con_str_overview.php:613 -#: includes/include.str_overview.php:493 includes/include.str_overview.php:494 -#: includes/include.str_overview.php:495 -#: templates/standard/template.stat_overview.html:137 -msgid "Open all categories" -msgstr "Alle Kategorien öffnen" - -#: includes/include.con_left_top.php:439 -msgid "Synchronize from" -msgstr "Synchronisieren von" - -#: includes/include.con_left_top.php:472 includes/include.con_left_top.php:473 -msgid "Copy to current language" -msgstr "In die aktuelle Sprache kopieren" - -#: includes/include.con_left_top.php:474 includes/include.con_left_top.php:475 -msgid "Also copy subcategories" -msgstr "Unterkategorien mit kopieren" - -#: includes/include.con_art_overview.php:77 -#: includes/include.con_editcontent.php:382 -#: includes/include.con_subnav.php:104 backend_search.php:491 -#: templates/standard/template.symbolhelp.html:38 -#: templates/standard/template.symbolhelp.html:283 -#: templates/standard/template.log_main.html:53 -#: classes/class.cms_teaser.php:596 classes/class.ajax.php:170 -msgid "Article" -msgstr "Artikel" - -#: includes/include.con_art_overview.php:79 backend_search.php:493 -msgid "Changed" -msgstr "Geändert" - -#: includes/include.con_art_overview.php:80 backend_search.php:494 -msgid "Published" -msgstr "Veröffentlicht" - -#: includes/include.con_art_overview.php:81 -#: includes/include.rights_left_top.php:155 -#: includes/include.frontend.left_top.php:257 includes/include.mod_new.php:161 -#: backend_search.php:495 classes/class.cms_teaser.php:588 -#: classes/class.cms_filelist.php:738 -msgid "Sort order" -msgstr "Sortierreihenfolge" - -#: includes/include.con_art_overview.php:369 -msgid "Article is in use" -msgstr "Artikel wird benutzt" - -#: includes/include.con_art_overview.php:370 -#, php-format -msgid "Article in use by %s (%s)" -msgstr "Artikel wird benutzt von %s (%s)" - -#: includes/include.con_art_overview.php:436 backend_search.php:658 -msgid "Unfreeze article" -msgstr "Artikel auftauen" - -#: includes/include.con_art_overview.php:439 -#: includes/cfg_language_de.inc.php:98 backend_search.php:661 -msgid "Freeze article" -msgstr "Artikel einfrieren" - -#: includes/include.con_art_overview.php:446 -msgid "Article is frozen" -msgstr "Artikel ist eingefroren" - -#: includes/include.con_art_overview.php:449 -msgid "Article is not frozen" -msgstr "Artikel ist nicht eingefroren" - -#: includes/include.con_art_overview.php:472 backend_search.php:676 -msgid "Article properties" -msgstr "Artikeleigenschaften" - -#: includes/include.con_art_overview.php:486 -msgid "Copy article to the current language" -msgstr "Artikel in die aktuelle Sprache kopieren" - -#: includes/include.con_art_overview.php:547 backend_search.php:635 -msgid "Flag as start article" -msgstr "Als Startartikel markieren" - -#: includes/include.con_art_overview.php:549 backend_search.php:632 -msgid "Flag as normal article" -msgstr "Als normalen Artikel markieren" - -#: includes/include.con_art_overview.php:555 -msgid "Normal article" -msgstr "Normaler Artikel" - -#: includes/include.con_art_overview.php:569 backend_search.php:675 -#: templates/standard/template.symbolhelp.html:413 -msgid "Duplicate article" -msgstr "Artikel duplizieren" - -#: includes/include.con_art_overview.php:581 -#, php-format -msgid "Reminder for Article '%s'" -msgstr "Wiedervorlage für Artikel '%s'" - -#: includes/include.con_art_overview.php:584 -#, php-format -msgid "" -"Reminder for Article '%s'\n" -"Category: %s" -msgstr "" -"Wiedervorlage für Artikel '%s'\n" -"Kategorie: %s" - -#: includes/include.con_art_overview.php:595 -#: includes/include.mycontenido_lastarticles.php:221 -msgid "Article is online" -msgstr "Artikel ist online" - -#: includes/include.con_art_overview.php:603 -#: includes/include.mycontenido_lastarticles.php:224 -msgid "Article is offline" -msgstr "Artikel ist offline" - -#: includes/include.con_art_overview.php:625 -#, php-format -msgid "Are you sure to delete the following article:

%s" -msgstr "" -"Möchten Sie den folgenden Artikel wirklich löschen:

%s" - -#: includes/include.con_art_overview.php:626 -#: includes/cfg_language_de.inc.php:106 backend_search.php:678 -#: templates/standard/template.symbolhelp.html:425 -msgid "Delete article" -msgstr "Artikel löschen" - -#: includes/include.con_art_overview.php:771 -#: includes/include.con_art_overview.php:774 -#, php-format -msgid "Go to page: %s" -msgstr "Gehe zu Seite: %s" - -#: includes/include.con_art_overview.php:777 -msgid "with click select line for further treatment" -msgstr "mit Klick Zeile zur weiteren Bearbeitung auswählen" - -#: includes/include.con_art_overview.php:832 -#: includes/include.con_art_overview.php:938 -msgid "No articles found" -msgstr "Keine Artikel gefunden" - -#: includes/include.con_art_overview.php:838 -msgid "Alphabetical" -msgstr "Alphabetisch" - -#: includes/include.con_art_overview.php:839 -msgid "Last change" -msgstr "Letzte Änderung" - -#: includes/include.con_art_overview.php:840 -msgid "Published date" -msgstr "Veröffentlichungsdatum" - -#: includes/include.con_art_overview.php:860 -msgid "Sort articles:" -msgstr "Sortierung:" - -#: includes/include.con_art_overview.php:887 -msgid "Items per page:" -msgstr "Elemente/Seite:" - -#: includes/include.con_art_overview.php:988 -#: includes/include.con_art_overview.php:989 -#: templates/standard/template.symbolhelp.html:329 -msgid "Create new article" -msgstr "Neuen Artikel erstellen" - -#: includes/include.frontend.user_menu.php:53 -#: includes/include.frontend.left_top.php:58 -msgid "-- All fields --" -msgstr "-- Alle Felder --" - -#: includes/include.frontend.user_menu.php:53 -#: includes/include.frontend.user_menu.php:54 -#: includes/include.rights_overview.php:203 -#: includes/include.frontend.left_top.php:58 -#: includes/include.frontend.left_top.php:59 -#: includes/include.rights_create.php:150 -msgid "Username" -msgstr "Benutzername" - -#: includes/include.frontend.user_menu.php:112 -#: includes/include.rights_left_top.php:118 -#: includes/include.frontend.left_top.php:118 includes/include.mod_new.php:88 -#: classes/class.cms_teaser.php:423 classes/class.cms_filelist.php:465 -msgid "Ascending" -msgstr "Aufsteigend" - -#: includes/include.frontend.user_menu.php:112 -#: includes/include.rights_left_top.php:119 -#: includes/include.frontend.left_top.php:118 includes/include.mod_new.php:88 -#: classes/class.cms_teaser.php:426 classes/class.cms_filelist.php:468 -msgid "Descending" -msgstr "Absteigend" - -#: includes/include.frontend.user_menu.php:114 -#: includes/include.rights_left_top.php:123 -#: includes/include.frontend.left_top.php:193 includes/include.mod_new.php:94 -msgid "List options" -msgstr "Anzeigeoptionen" - -#: includes/include.frontend.user_menu.php:139 -#: includes/include.frontend.left_top.php:228 -msgid "-- All Groups --" -msgstr "-- Alle Gruppen --" - -#: includes/include.mycontenido.tasks.edit.php:43 -msgid "Edit Reminder item" -msgstr "Wiedervorlage bearbeiten" - -#: includes/include.mycontenido.tasks.edit.php:77 -msgid "E-Mail notification" -msgstr "E-Mail Benachrichtigung" - -#: includes/include.mycontenido.tasks.edit.php:140 -msgid "Progress" -msgstr "Fortschritt" - -#: includes/grouprights_tpl.inc.php:72 includes/rights_tpl.inc.php:73 -#: classes/class.ajax.php:105 classes/class.ajax.php:129 -msgid "Template name" -msgstr "Templatename" - -#: includes/include.upl_search_results.php:204 -#: includes/include.upl_search_results.php:209 -#: includes/include.upl_search_results.php:212 -#: includes/include.upl_edit.php:92 -msgid "Path" -msgstr "Pfad" - -#: includes/include.upl_search_results.php:246 -#: includes/include.upl_search_results.php:251 -#: includes/include.upl_search_results.php:254 -msgid "Relevance" -msgstr "Relevanz" - -#: includes/include.upl_search_results.php:260 -msgid "Searched for:" -msgstr "Suchbegriff:" - -#: includes/include.client_edit.php:52 -msgid "No client ID passed" -msgstr "Keine ClientID übergeben" - -#: includes/include.client_edit.php:65 -msgid "" -"Notice: In order to use this client, you must create a new language for it." -msgstr "" -"Hinweis: Um den neuen Mandanten zu nutzen, müssen Sie eine neue Sprache " -"dafür anlegen." - -#: includes/include.client_edit.php:69 -#, php-format -msgid "Please click %shere%s to create a new language." -msgstr "Bitte klicken Sie %shier%s, um dies zu tun." - -#: includes/include.client_edit.php:110 -msgid "Couldn't write the file config.php." -msgstr "Konnte die Datei config.php nicht schreiben" - -#: includes/include.client_edit.php:118 -#, php-format -msgid "Succesfully copied client-template to %s." -msgstr "Mandantentemplate erfolgreich nach %s kopiert." - -#: includes/include.client_edit.php:121 -#, php-format -msgid "" -"Cannot create directory %s . The client was created, but you have to copy " -"the frontend-template yourself" -msgstr "" -"Kann Verzeichnis %s nicht erstellen. Der Mandant wurde erstellt, das " -"Frontend-Template muß jedoch noch dorthin kopiert werden" - -#: includes/include.client_edit.php:125 -#, php-format -msgid "" -"The directory %s already exists. The client was created, but you have to " -"copy the frontend-template yourself" -msgstr "" -"Das Verzeichnis %s existiert bereits. Der Mandant wurde erstellt, das " -"Frontend-Template muß jedoch noch dorthin kopiert werden" - -#: includes/include.client_edit.php:129 -#, php-format -msgid "Client '%s' created." -msgstr "Mandant '%s erstellt." - -#: includes/include.client_edit.php:147 -msgid "" -"You changed the client path. You might need to copy the frontend to the new " -"location" -msgstr "" -"Der Mandanten-Pfad wurde geändert. Das Frontend muss eventuell an die " -"neue Position kopiert werden." - -#: includes/include.client_edit.php:245 -msgid "Client name" -msgstr "Name des Mandanten" - -#: includes/include.client_edit.php:261 -msgid "Server path" -msgstr "Server-Pfad" - -#: includes/include.client_edit.php:277 -msgid "Web address" -msgstr "Web-Adresse" - -#: includes/include.client_edit.php:286 -msgid "Error page category" -msgstr "Fehlerseiten-Kategorie" - -#: includes/include.client_edit.php:295 -msgid "Error page article" -msgstr "Fehlerseiten-Artikel" - -#: includes/include.client_edit.php:306 -msgid "Client logo" -msgstr "Mandantenlogo" - -#: includes/include.client_edit.php:315 -msgid "HTML" -msgstr "HTML" - -#: includes/include.client_edit.php:315 -msgid "XHTML" -msgstr "XHTML" - -#: includes/include.client_edit.php:315 -msgid "HTML5" -msgstr "HTML5" - -#: includes/include.client_edit.php:330 -msgid "Generate" -msgstr "Erstelle" - -#: includes/include.client_edit.php:341 -msgid "Copy frontend template" -msgstr "Frontend-Template kopieren" - -#: includes/include.rights_left_top.php:103 -#: includes/cfg_language_de.inc.php:171 includes/cfg_language_de.inc.php:174 -#: includes/include.frontend.left_top.php:178 -#: templates/standard/template.symbolhelp.html:1835 -msgid "Create user" -msgstr "Benutzer erstellen" - -#: includes/include.rights_left_top.php:147 -#: includes/include.frontend.left_top.php:249 includes/include.mod_new.php:153 -msgid "Items / page" -msgstr "Elemente / Seite" - -#: includes/include.rights_left_top.php:151 -#: includes/include.frontend.left_top.php:253 includes/include.mod_new.php:157 -msgid "Sort by" -msgstr "Sortieren nach" - -#: includes/include.rights_left_top.php:164 -#: includes/include.frontend.left_top.php:274 includes/include.mod_new.php:178 -msgid "Apply" -msgstr "Anwenden" - -#: includes/include.mycontenido_settings.php:57 -msgid "Old password incorrect" -msgstr "Altes Passwort nicht korrekt" - -#: includes/include.mycontenido_settings.php:62 -#: includes/include.rights_overview.php:132 -#: includes/include.rights_create.php:122 -msgid "Passwords don't match" -msgstr "Passwörter stimmen nicht überein" - -#: includes/include.mycontenido_settings.php:77 -msgid "Password changed" -msgstr "Passwort geändert" - -#: includes/include.mycontenido_settings.php:97 -#, php-format -msgid "Settings for %s" -msgstr "Einstellungen für %s" - -#: includes/include.mycontenido_settings.php:115 -msgid "Old password" -msgstr "Altes Passwort" - -#: includes/include.mycontenido_settings.php:117 -#: includes/include.rights_overview.php:223 -#: includes/include.rights_create.php:168 -msgid "Confirm new password" -msgstr "Neues Passwort bestätigen" - -#: includes/include.mycontenido_settings.php:121 -#: includes/include.rights_overview.php:230 -#: includes/include.rights_create.php:174 -msgid "E-Mail" -msgstr "E-Mail" - -#: includes/include.mycontenido_settings.php:125 -msgid "Use WYSIWYG Editor" -msgstr "WYSIWYG-Editor benutzen" - -#: includes/include.mycontenido_settings.php:129 -msgid "The format is equal to PHP's date() function." -msgstr "Das Format stimmt mit dem der PHP date()-Funktion überein" - -#: includes/include.mycontenido_settings.php:131 -msgid "Common date formattings" -msgstr "Gebräuchliche Datumsformatierungen" - -#: includes/include.mod_edit_form.php:54 includes/include.lay_overview.php:78 -#: includes/include.mod_overview.php:209 includes/include.str_overview.php:741 -msgid "No permission" -msgstr "Kein Zugriff" - -#: includes/include.mod_edit_form.php:58 -#: classes/contenido/class.module.php:395 -msgid "- Unnamed Module -" -msgstr "- Unbenanntes Modul -" - -#: includes/include.mod_edit_form.php:59 -msgid "" -msgstr "" - -#: includes/include.mod_edit_form.php:59 -msgid "Author: " -msgstr "Autor:" - -#: includes/include.mod_edit_form.php:59 -msgid "Version:" -msgstr "Version:" - -#: includes/include.mod_edit_form.php:77 includes/include.mod_package.php:219 -#: includes/include.mod_package.php:357 -#, php-format -msgid "Error while importing XML file: %s" -msgstr "Fehler beim importieren der XML-Datei %s" - -#: includes/include.mod_edit_form.php:88 -msgid "Module folder created" -msgstr "Modulverzeichnis erstellt" - -#: includes/include.mod_edit_form.php:91 -msgid "Error while creating module folder" -msgstr "Fehler beim Erstellen des Modulverzeichisses" - -#: includes/include.mod_edit_form.php:106 includes/include.mod_package.php:398 -#, php-format -msgid "Module is in use by %s (%s)" -msgstr "Modul wird benutzt von %s (%s)" - -#: includes/include.mod_edit_form.php:127 includes/cfg_language_de.inc.php:157 -msgid "Edit module" -msgstr "Modul bearbeiten" - -#: includes/include.mod_edit_form.php:299 -#: includes/include.mod_edit_form.php:301 -msgid "Custom" -msgstr "Benutzerdefiniert" - -#: includes/include.mod_edit_form.php:324 -#: includes/include.mod_edit_form.php:333 -#, php-format -msgid "Error in module. Error location: %s" -msgstr "Fehler in Modul. Fehlerquelle: %s" - -#: includes/include.mod_edit_form.php:327 -#: includes/include.mod_edit_form.php:336 -msgid "Module successfully compiled" -msgstr "Modul erfolgreich kompiliert" - -#: includes/include.mod_edit_form.php:371 -msgid "Create Folder" -msgstr "Verzeichnis erstellen" - -#: includes/include.mod_edit_form.php:405 -#: includes/include.mod_edit_form.php:408 includes/include.mod_new.php:111 -msgid "Input" -msgstr "Eingabe" - -#: includes/include.mod_edit_form.php:406 -#: includes/include.mod_edit_form.php:409 includes/include.mod_new.php:112 -msgid "Output" -msgstr "Ausgabe" - -#: includes/include.mod_edit_form.php:415 -msgid "" -"This module uses variables and/or functions which are probably not available " -"in this Contenido version. Please make sure that you use up-to-date modules." -msgstr "" -"Dieses Modul verwendet Variablen und/oder Funktionen, die in dieser " -"Contenido-Version nicht mehr vorhanden sind. Bitte stellen Sie sicher, dass " -"Sie aktuelle Module verwenden." - -#: includes/include.mod_edit_form.php:423 -#: includes/include.mod_translate.php:174 includes/include.mod_package.php:454 -msgid "Import from file" -msgstr "Aus Datei importieren" - -#: includes/include.mod_edit_form.php:424 -#: includes/include.mod_translate.php:173 includes/include.mod_package.php:455 -msgid "Export to file" -msgstr "In Datei exportieren" - -#: includes/include.mod_edit_form.php:440 -#: includes/include.mod_translate.php:184 includes/include.mod_package.php:472 -msgid "Mode" -msgstr "Modus" - -#: includes/include.mod_edit_form.php:442 -#: includes/include.mod_edit_form.php:444 -#: includes/include.mod_translate.php:185 includes/include.mod_package.php:476 -#: includes/include.mod_package.php:478 classes/class.cms_filelist.php:745 -msgid "File" -msgstr "Datei" - -#: includes/grouprights.inc.php:215 -msgid "Current group doesn't have any rights to any client/language." -msgstr "" -"Die aktuelle Gruppe hat keine Zugriffsrechte auf irgendeine(n) Sprache bzw " -"Mandant" - -#: includes/include.lay_overview.php:82 -msgid "Layout is in use, cannot delete" -msgstr "Layout wird benutzt, löschen nicht möglich" - -#: includes/include.lay_overview.php:92 includes/cfg_language_de.inc.php:147 -msgid "Delete layout" -msgstr "Layout löschen" - -#: includes/include.lay_overview.php:93 -#, php-format -msgid "Do you really want to delete the following layout:

%s
" -msgstr "" -"Möchten Sie das folgende Layout wirklich löschen:

%s" - -#: includes/include.lay_overview.php:118 -#, php-format -msgid "The layout '%s' is used for following templates" -msgstr "Das Layout '%s' wird bei folgenden Templates benutzt" - -#: includes/include.stat_overview.php:47 includes/include.stat_overview.php:60 -msgid "Full statistics" -msgstr "Alle Statistiken" - -#: includes/include.stat_overview.php:76 -msgid "Yearly" -msgstr "Jährlich" - -#: includes/include.stat_overview.php:80 -msgid "Current" -msgstr "Aktuell" - -#: includes/include.stat_overview.php:92 -#: templates/standard/template.symbolhelp.html:89 -#: templates/standard/template.symbolhelp.html:1472 -msgid "Hits" -msgstr "Hits" - -#: includes/include.stat_overview.php:94 -msgid "Hits in this language" -msgstr "Hits in dieser Sprache" - -#: includes/include.mod_history.php:94 -msgid "Edit Module" -msgstr "Modul bearbeiten" - -#: includes/include.mod_history.php:133 -msgid "Code Input" -msgstr "Code Input" - -#: includes/include.mod_history.php:134 -msgid "Code Output" -msgstr "Code Output" - -#: includes/include.mod_history.php:152 -msgid "No module history available" -msgstr "Keine Modul-Historie verfügbar" - -#: includes/include.js_history.php:171 -msgid "No jscript history available" -msgstr "Keine JavaScript-Historie verfügbar" - -#: includes/include.js_history.php:179 includes/include.style_history.php:176 -#: includes/include.style_history.php:184 -msgid "No style history available" -msgstr "Keine Style-Historie verfügbar" - -#: includes/include.mod_translate.php:138 -#, php-format -msgid "Translate module '%s'" -msgstr "Modul übersetzen \"%s\"" - -#: includes/include.mod_translate.php:147 -msgid "Translated Name" -msgstr "Übersetzter Name" - -#: includes/include.mod_translate.php:157 -msgid "Original module string" -msgstr "Ursprünglicher Modulstring" - -#: includes/include.mod_translate.php:157 -#, php-format -msgid "Translation for %s" -msgstr "Übersetzung für %s" - -#: includes/include.mod_translate.php:165 -msgid "" -"Hint: Hit ALT+SHIFT+S to save the translated entry and advance to the next " -"string." -msgstr "" -"Hinweis: Drücken Sie ALT+SHIFT+S, um den aktuellen Eintrag zu speichern " -"und zur nächsten Zeichenkette zu springen." - -#: includes/include.mod_translate.php:166 -msgid "String list" -msgstr "Zeichenkettenliste" - -#: includes/include.mod_package.php:139 -msgid "No elements available" -msgstr "Keine Elemente vorhanden" - -#: includes/include.mod_package.php:188 -msgid "Javascript files" -msgstr "Javascript-Dateien" - -#: includes/include.mod_package.php:189 -msgid "Module template files" -msgstr "Modul-Template-Dateien" - -#: includes/include.mod_package.php:190 -msgid "Style files" -msgstr "Style-Dateien" - -#: includes/include.mod_package.php:191 -#: templates/standard/template.symbolhelp.html:53 -#: templates/standard/template.symbolhelp.html:822 -msgid "Layouts" -msgstr "Layouts" - -#: includes/include.mod_package.php:192 -msgid "Translations" -msgstr "Übersetzung" - -#: includes/include.mod_package.php:238 -msgid "Skip" -msgstr "Überspringen" - -#: includes/include.mod_package.php:238 -msgid "Append" -msgstr "Hinzufügen" - -#: includes/include.mod_package.php:238 -msgid "Overwrite" -msgstr "Überschreiben" - -#: includes/include.mod_package.php:239 -msgid "OK" -msgstr "OK" - -#: includes/include.mod_package.php:240 -msgid "Assign" -msgstr "Zuordnen" - -#: includes/include.mod_package.php:241 -msgid "Conflict" -msgstr "Konflikt" - -#: includes/include.mod_package.php:242 -msgid "Ignored" -msgstr "Ignoriert" - -#: includes/include.mod_package.php:243 -msgid "- Select -" -msgstr "- Auswählen -" - -#: includes/include.mod_package.php:254 -#: templates/standard/template.log_main.html:26 -#: templates/standard/template.log_main.html:51 -msgid "Action" -msgstr "Aktion" - -#: includes/include.mod_package.php:311 -#: templates/standard/template.symbolhelp.html:181 -#: scripts/messageBox.js.php:79 scripts/langref.php:21 -msgid "Cancel" -msgstr "Abbrechen" - -#: includes/include.mod_package.php:312 -msgid "Import" -msgstr "Import" - -#: includes/include.mod_package.php:361 -msgid "Import was not succesful, please check data and try again" -msgstr "" -"Import nicht erfolgreich, bitte überprüfen Sie die Daten und " -"versuchen Sie es erneut" - -#: includes/include.mod_package.php:362 -msgid "Retry" -msgstr "Wiederholen" - -#: includes/include.mod_package.php:366 -msgid "Import succesfully finished" -msgstr "Import erfolgreich abgeschlossen" - -#: includes/include.mod_package.php:367 -msgid "Finish" -msgstr "Beenden" - -#: includes/include.mod_package.php:421 -msgid "Edit package" -msgstr "Package bearbeiten" - -#: includes/include.mod_package.php:442 -msgid "Package GUID" -msgstr "Package GUID" - -#: includes/include.clientsettings.php:50 -msgid "Select range" -msgstr "Bereich auswählen" - -#: includes/include.clientsettings.php:53 -msgid "Language independent" -msgstr "Sprachunabhängig" - -#: includes/include.clientsettings.php:79 -msgid "Range" -msgstr "Bereich" - -#: includes/include.system_db_backup.php:35 -msgid "Backupfolder missing or not writable!" -msgstr "Sicherungsverzeichnis fehlt oder nicht beschreibbar!" - -#: includes/include.system_db_backup.php:54 -msgid "Start your Backup!" -msgstr "Starte das Backup!" - -#: includes/include.system_db_backup.php:88 -#, fuzzy -msgid "Permission denied!" -msgstr "Zugriff verweigert" - -#: includes/include.system_db_backup.php:99 -msgid "Starting Backup." -msgstr "Backup startet." - -#: includes/include.system_db_backup.php:216 -msgid "Backup in Progress!" -msgstr "Backup in Bearbeitung" - -#: includes/include.system_db_backup.php:223 -#: includes/include.system_db_backup.php:248 -msgid "Tables saved: " -msgstr "Tabellen gespeichert:" - -#: includes/include.system_db_backup.php:223 -msgid "Last processed: " -msgstr "Zuletzt bearbeitet:" - -#: includes/include.system_db_backup.php:224 -#: includes/include.system_db_backup.php:248 -msgid "Pageviews: " -msgstr "Seitenaufrufe:" - -#: includes/include.system_db_backup.php:247 -msgid "Backup done!" -msgstr "Backup fertig!" - -#: includes/include.system_db_backup.php:252 -msgid "Go Back to Overview" -msgstr "Zurück zur Übersicht" - -#: includes/include.system_db_backup.php:286 -msgid "File successfully deleted." -msgstr "Datei erfolgreich gelöscht!" - -#: includes/include.system_db_backup.php:301 -msgid "Download File" -msgstr "Datei herunterladen" - -#: includes/include.upl_artlist.php:66 -msgid "Use this category" -msgstr "Diese Kategorie verwenden" - -#: includes/include.upl_artlist.php:81 -#: templates/standard/template.mycontenido_lastarticles.html:61 -msgid "Start" -msgstr "Start" - -#: includes/include.upl_artlist.php:81 -#: templates/standard/template.mycontenido_lastarticles.html:65 -msgid "Modified" -msgstr "Geändert" - -#: includes/include.upl_artlist.php:81 -msgid "Sort Order" -msgstr "Sortierreihenfolge" - -#: includes/include.upl_artlist.php:81 -msgid "Online" -msgstr "Online" - -#: includes/include.js_left_top.php:50 includes/cfg_language_de.inc.php:206 -msgid "Create script" -msgstr "Script erstellen" - -#: includes/include.stat_menu.php:37 -msgid "Current Report" -msgstr "Aktuelle Statistik" - -#: includes/include.stat_menu.php:45 -msgid "Statistics Overview" -msgstr "Statistikübersicht" - -#: includes/include.stat_menu.php:56 -msgid "Archived Statistics" -msgstr "Archivierte Statistiken" - -#: includes/include.con_editcontent.php:215 -msgid "Close editor" -msgstr "Editor schließen" - -#: includes/include.con_editcontent.php:216 -msgid "Close editor and save changes" -msgstr "Editor schließen und Änderungen speichern" - -#: includes/include.con_editcontent.php:217 -msgid "Do you want to save changes?" -msgstr "Möchten Sie die Änderungen speichern?" - -#: includes/include.con_editcontent.php:375 -msgid "No template assigned to the category
and/or the article" -msgstr "Kein Template mit einer Kategorie
und/oder einem Artikel assoziiert" - -#: includes/include.con_editcontent.php:376 -msgid "The code for the following article
couldnt be generated:" -msgstr "" -"Der Code für den folgenden Artikel
konnte nicht erstellt werden:" - -#: includes/include.con_editcontent.php:397 -#: includes/include.system_purge.php:195 -#: templates/standard/template.log_main.html:18 -#: templates/standard/template.log_main.html:48 -#: classes/class.navigation.php:340 classes/class.navigation.php:343 -msgid "Client" -msgstr "Mandant" - -#: includes/functions.con.php:331 includes/functions.con.php:518 -msgid "Default title" -msgstr "Standardtitel" - -#: includes/include.lay_history.php:87 includes/include.lay_edit_form.php:186 -msgid "Edit Layout" -msgstr "Layout bearbeiten" - -#: includes/include.lay_history.php:137 -msgid "No layout history available" -msgstr "Keine Layout-Historie verfügbar" - -#: includes/include.upl_edit.php:91 -msgid "File name" -msgstr "Dateiname" - -#: includes/include.upl_edit.php:93 -msgid "Replace file" -msgstr "Datei ersetzen" - -#: includes/include.upl_edit.php:94 -msgid "Media name" -msgstr "Medienname" - -#: includes/include.upl_edit.php:96 -msgid "Keywords" -msgstr "Schlüsselwörter" - -#: includes/include.upl_edit.php:97 -msgid "Internal notes" -msgstr "Interne Notiz" - -#: includes/include.upl_edit.php:98 -msgid "Copyright" -msgstr "Copyright" - -#: includes/include.upl_edit.php:99 -msgid "Protection" -msgstr "Schutz" - -#: includes/include.upl_edit.php:100 -#: templates/standard/template.con_edit_form.html:141 -msgid "Time control" -msgstr "Zeitsteuerung" - -#: includes/include.upl_edit.php:200 -msgid "Protected for non-logged in users" -msgstr "Geschützt für nichteingeloggte Benutzer" - -#: includes/include.upl_edit.php:209 -#: templates/standard/template.con_edit_form.html:144 -msgid "Use time control" -msgstr "Zeitsteuerung aktivieren" - -#: includes/include.upl_edit.php:215 -#: templates/standard/template.con_edit_form.html:146 -#: templates/standard/template.log_main.html:30 -msgid "Start date" -msgstr "Startdatum" - -#: includes/include.upl_edit.php:313 -#, php-format -msgid "Could not load file %s" -msgstr "Konnte Datei %s nicht laden" - -#: includes/functions.file.php:206 -msgid "Please insert filename." -msgstr "Bitte Dateinamen angeben." - -#: includes/functions.file.php:218 -#, php-format -msgid "Could not open file %s" -msgstr "Konnte Datei %s nicht öffnen" - -#: includes/functions.file.php:223 -#, php-format -msgid "Could not write file %s" -msgstr "Konnte Datei %s nicht schreiben" - -#: includes/functions.file.php:234 includes/functions.file.php:338 -#, php-format -msgid "%s is not writable" -msgstr "%s ist nicht schreibbar" - -#: includes/functions.file.php:255 -#, php-format -msgid "Can not open file%s " -msgstr "Kann Datei %s nicht öffnen" - -#: includes/functions.file.php:304 -msgid "Unable to change file access permission." -msgstr "Konnte die Dateisystem-Berechtigungen nicht ändern." - -#: includes/functions.file.php:308 -#, php-format -msgid "Unable to create file %s" -msgstr "Konnte Datei %s nicht erstellen" - -#: includes/functions.file.php:334 -#, php-format -msgid "Can not rename file %s" -msgstr "Konnte Datei %s nicht umbenennen" - -#: includes/functions.file.php:361 -msgid "Wrong filename." -msgstr "Falscher Dateiname." - -#: includes/include.mycontenido_lastarticles.php:293 -msgid "No article found" -msgstr "Keine Artikel gefunden" - -#: includes/include.grouprights_overview.php:67 -msgid "Changes couldn't saved" -msgstr "Änderungen nicht gespeichert" - -#: includes/include.grouprights_overview.php:112 -msgid "Groupname" -msgstr "Gruppenname" - -#: includes/include.grouprights_overview.php:208 -#: includes/include.rights_overview.php:352 -msgid "Area/Type" -msgstr "Area/Type" - -#: includes/include.grouprights_overview.php:222 -#: includes/include.rights_overview.php:366 -msgid "User-defined properties" -msgstr "Benutzerdefinierte Eigenschaften" - -#: includes/include.upl_files_upload.php:51 -msgid "Upload" -msgstr "Hochladen" - -#: includes/include.upl_files_upload.php:63 -#: includes/cfg_language_de.inc.php:136 includes/cfg_language_de.inc.php:144 -msgid "Upload files" -msgstr "Dateien hochladen" - -#: includes/include.lay_edit_form.php:46 -msgid "-- New Layout --" -msgstr "-- Neues Layout --" - -#: includes/include.lay_edit_form.php:56 -msgid "Layout deleted" -msgstr "Layout gelöscht" - -#: includes/include.lay_edit_form.php:128 -#, php-format -msgid "Container %s was defined %s times" -msgstr "Container %s wurde %sx definiert" - -#: includes/include.lay_edit_form.php:141 -msgid "" -"The body tag does not exist in the layout. This is a requirement for the in-" -"site editing." -msgstr "" -"Der body-Tag existiert nicht in diesem Layout. Dies ist eine Voraussetzung " -"für das In-Site-Editing." - -#: includes/include.lay_edit_form.php:147 -msgid "" -"The head tag does not exist in the layout. This is a requirement for the in-" -"site editing." -msgstr "" -"Der head-Tag existiert nicht in diesem Layout. Dies ist eine Voraussetzung " -"für das In-Site-Editing." - -#: includes/include.lay_edit_form.php:173 -#: includes/include.html_tpl_edit_form.php:185 -#, php-format -msgid "Tag '%s' %s has no end tag (start tag is on line %s char %s)" -msgstr "" -"Tag '%s' %s hat keinen End-Tag (Start-Tag befindet sich auf Zeile %s Zeichen " -"%s)" - -#: includes/include.lay_edit_form.php:202 -msgid "On save, apply default modules to new containers" -msgstr "Beim Speichern alle Default-Module in neue Container zuweisen" - -#: includes/include.rights_overview.php:75 -msgid "User deleted" -msgstr "Benutzer gelöscht" - -#: includes/include.rights_overview.php:144 -#: includes/include.rights_overview.php:149 -msgid "An error occured while saving user info." -msgstr "" -"Ein Fehler ist während des Sendens des Bugreports aufgetreten! Bitte " -"versuchen Sie es noch einmal" - -#: includes/include.rights_overview.php:236 -#: includes/include.rights_create.php:180 -msgid "Phone number" -msgstr "Telefonnummer" - -#: includes/include.rights_overview.php:242 -#: includes/include.rights_create.php:186 -msgid "Street" -msgstr "Strasse" - -#: includes/include.rights_overview.php:248 -#: includes/include.rights_create.php:192 -msgid "ZIP code" -msgstr "Postleitzahl" - -#: includes/include.rights_overview.php:254 -#: includes/include.rights_create.php:198 -msgid "City" -msgstr "Stadt" - -#: includes/include.rights_overview.php:373 -#: includes/include.rights_create.php:269 -msgid "Use WYSIWYG-Editor" -msgstr "WYSIWYG-Editor benutzen" - -#: includes/include.rights_overview.php:398 -#: includes/include.rights_create.php:290 -msgid "Valid from" -msgstr "Gültig von" - -#: includes/include.rights_overview.php:418 -#: includes/include.rights_create.php:307 -msgid "Valid to" -msgstr "Gültig bis" - -#: includes/include.rights_overview.php:436 -msgid "This account is currently inactive." -msgstr "Dieser Benutzer ist momentan deaktiviert." - -#: includes/include.rights_overview.php:439 -msgid "This account is currently active." -msgstr "Dieser Benutzer ist momentan aktiviert." - -#: includes/include.pretplcfg_edit_form.php:101 -#, php-format -msgid "Module in Container %s" -msgstr "Modul in Container %s" - -#: includes/include.pretplcfg_edit_form.php:150 -msgid "Template preconfiguration" -msgstr "Template Vorkonfiguration" - -#: includes/include.mod_overview.php:198 -msgid "Module in use, cannot delete" -msgstr "Modul wird benutzt, löschen nicht möglich" - -#: includes/include.mod_overview.php:200 -msgid "Module in filesystem, cannot delete" -msgstr "Modul liegt im Dateisystem und kann nicht gelöscht werden" - -#: includes/include.mod_overview.php:204 includes/cfg_language_de.inc.php:154 -msgid "Delete module" -msgstr "Modul löschen" - -#: includes/include.mod_overview.php:205 -#, php-format -msgid "Do you really want to delete the following module:

%s
" -msgstr "" -"Möchten Sie das folgende Modul wirklich löschen:

%s" - -#: includes/include.mod_overview.php:271 -#, php-format -msgid "The module '%s' is used for following templates" -msgstr "Das Modul '%s' wird bei folgenden Templates benutzt" - -#: includes/include.lang_left_top.php:80 includes/cfg_language_de.inc.php:189 -msgid "Create language" -msgstr "Sprache erstellen für" - -#: includes/include.frontend.group.subnav.php:40 includes/main.login.php:210 -msgid "Overview" -msgstr "Übersicht" - -#: includes/include.frontend.group_edit.php:56 -msgid "-- new group --" -msgstr "-- Neue Gruppe --" - -#: includes/include.frontend.group_edit.php:121 -msgid "Could not set new group name: Group already exists" -msgstr "Konnte Gruppennamen nicht setzen: Gruppe existiert bereits" - -#: includes/include.frontend.group_edit.php:227 -msgid "Default group" -msgstr "Standardgruppe" - -#: includes/include.frontend.group_edit.php:275 -#: includes/cfg_language_de.inc.php:180 -msgid "Edit group" -msgstr "Gruppe bearbeiten" - -#: includes/grouprights_members.inc.php:208 -msgid "Manage group members" -msgstr "Gruppenmitglieder verwalten" - -#: includes/include.style_left_top.php:50 -msgid "Create style" -msgstr "Style erstellen" +"Möchten Sie die folgende Datei wirklich löschen:

%s" #: includes/main.login.php:67 msgid "No Login Information available." @@ -3325,6 +3140,14 @@ msgstr "Wiedervorlage: %d Aufgabe offen" msgid "Reminder list: %d Tasks open" msgstr "Wiedervorlage: %d Aufgaben offen" +#: includes/main.login.php:210 includes/include.frontend.group.subnav.php:40 +msgid "Overview" +msgstr "Übersicht" + +#: includes/main.login.php:213 includes/functions.system.php:459 +msgid "Settings" +msgstr "Einstellungen" + #: includes/main.login.php:238 msgid "Symbol help" msgstr "Symbolhilfe" @@ -3333,6 +3156,28 @@ msgstr "Symbolhilfe" msgid "Contenido Manual" msgstr "Contenido Redakteurshandbuch" +#: includes/include.html_tpl_edit_form.php:197 +#: includes/include.style_edit_form.php:180 +#: includes/include.js_edit_form.php:159 +msgid "Edit file" +msgstr "Datei bearbeiten" + +#: includes/include.frontend.group_menu.php:51 +msgid "Delete frontend group" +msgstr "Frontend-Gruppe löschen" + +#: includes/include.frontend.group_menu.php:52 +#, php-format +msgid "Do you really want to delete the following frontend group:
%s" +msgstr "" +"Möchten Sie die folgende Frontend-Gruppe wirklich löschen:
" +"%s" + +#: includes/cfg_language_de.inc.php:98 +#: includes/include.con_art_overview.php:384 backend_search.php:661 +msgid "Freeze article" +msgstr "Artikel einfrieren" + #: includes/cfg_language_de.inc.php:99 msgid "Make category online" msgstr "Kategorie online setzen" @@ -3357,12 +3202,6 @@ msgstr "Kategorie synchronisieren" msgid "Syncronize Article" msgstr "Artikel synchronisieren" -#: includes/cfg_language_de.inc.php:105 includes/cfg_language_de.inc.php:124 -#: includes/include.str_overview.php:963 includes/include.str_overview.php:965 -#: templates/standard/template.str_overview.html:139 -msgid "Protect category" -msgstr "Kategorie schützen" - #: includes/cfg_language_de.inc.php:107 msgid "Edit template configuration" msgstr "Template-Konfiguration bearbeiten" @@ -3375,11 +3214,6 @@ msgstr "Artikel duplizieren" msgid "Expand boxes" msgstr "Boxen ausklappen/einklappen" -#: includes/cfg_language_de.inc.php:110 backend_search.php:677 -#: templates/standard/template.symbolhelp.html:377 -msgid "Configure template" -msgstr "Template konfigurieren" - #: includes/cfg_language_de.inc.php:111 msgid "Create article" msgstr "Neuen Artikel erstellen" @@ -3404,11 +3238,6 @@ msgstr "Artikeleigenschaften bearbeiten" msgid "Help" msgstr "Hilfe" -#: includes/cfg_language_de.inc.php:120 -#: templates/standard/template.symbolhelp.html:524 -msgid "Rename category" -msgstr "Kategorie umbenennen" - #: includes/cfg_language_de.inc.php:121 msgid "New category" msgstr "Neue Kategorie" @@ -3437,28 +3266,10 @@ msgstr "Eine Kategorie nach oben verschieben" msgid "Move category down" msgstr "Eine Kategorie nach unten verschieben" -#: includes/cfg_language_de.inc.php:129 -#: templates/standard/template.symbolhelp.html:665 -msgid "Move category" -msgstr "Kategorie verschieben" - #: includes/cfg_language_de.inc.php:130 msgid "Create new tree" msgstr "Neuen Baum anlegen" -#: includes/cfg_language_de.inc.php:131 -#: templates/standard/template.symbolhelp.html:701 -msgid "Duplicate category" -msgstr "Kategorie duplizieren" - -#: includes/cfg_language_de.inc.php:132 includes/include.str_overview.php:949 -#: includes/include.str_overview.php:952 -#: templates/standard/template.symbolhelp.html:314 -#: templates/standard/template.symbolhelp.html:506 -#: templates/standard/template.str_overview.html:148 -msgid "Configure category" -msgstr "Kategorie konfigurieren" - #: includes/cfg_language_de.inc.php:133 msgid "Edit category" msgstr "Kategorie bearbeiten" @@ -3467,6 +3278,11 @@ msgstr "Kategorie bearbeiten" msgid "Create directory" msgstr "Verzeichnis erstellen" +#: includes/cfg_language_de.inc.php:136 includes/cfg_language_de.inc.php:144 +#: includes/include.upl_files_upload.php:63 +msgid "Upload files" +msgstr "Dateien hochladen" + #: includes/cfg_language_de.inc.php:137 msgid "Delete files" msgstr "Dateien löschen" @@ -3491,6 +3307,11 @@ msgstr "Datei umbenennen" msgid "Multidelete Files" msgstr "Mehrfachlöschung" +#: includes/cfg_language_de.inc.php:143 +#: includes/include.upl_files_overview.php:752 +msgid "Delete file" +msgstr "Datei löschen" + #: includes/cfg_language_de.inc.php:148 msgid "Modify layout" msgstr "Layout bearbeiten" @@ -3511,6 +3332,10 @@ msgstr "Historie verwalten" msgid "Truncate History" msgstr "Historie löschen" +#: includes/cfg_language_de.inc.php:154 includes/include.mod_overview.php:204 +msgid "Delete module" +msgstr "Modul löschen" + #: includes/cfg_language_de.inc.php:158 msgid "Create module" msgstr "Modul erstellen" @@ -3531,6 +3356,10 @@ msgstr "Übersetzungen importieren/exportieren" msgid "Import/Export package" msgstr "Paket importieren/exportieren" +#: includes/cfg_language_de.inc.php:165 includes/include.tpl_edit_form.php:148 +msgid "Edit template" +msgstr "Template bearbeiten" + #: includes/cfg_language_de.inc.php:166 msgid "Create template" msgstr "Template erstellen" @@ -3547,6 +3376,11 @@ msgstr "User-Bereichsrechte speichern" msgid "Edit rights" msgstr "Rechte bearbeiten" +#: includes/cfg_language_de.inc.php:176 +#: includes/include.frontend.user_edit.php:177 +msgid "Edit user" +msgstr "Benutzer bearbeiten" + #: includes/cfg_language_de.inc.php:178 msgid "Delete group members" msgstr "Gruppenmitglieder löschen" @@ -3555,6 +3389,16 @@ msgstr "Gruppenmitglieder löschen" msgid "Add group members" msgstr "Gruppenmitglied hinzufügen" +#: includes/cfg_language_de.inc.php:180 +#: includes/include.frontend.group_edit.php:275 +msgid "Edit group" +msgstr "Gruppe bearbeiten" + +#: includes/cfg_language_de.inc.php:182 +#: includes/include.grouprights_menu.php:196 +msgid "Delete group" +msgstr "Gruppe löschen" + #: includes/cfg_language_de.inc.php:184 msgid "Show statistics" msgstr "Statistik anzeigen" @@ -3607,6 +3451,10 @@ msgstr "Script bearbeiten" msgid "Delete script" msgstr "Script löschen" +#: includes/cfg_language_de.inc.php:206 includes/include.js_left_top.php:50 +msgid "Create script" +msgstr "Script erstellen" + #: includes/cfg_language_de.inc.php:210 msgid "Modify HTML-Template" msgstr "HTML-Template verändern" @@ -3623,11 +3471,6 @@ msgstr "HTML-Template löschen" msgid "Edit newsletter" msgstr "Newsletter bearbeiten" -#: includes/cfg_language_de.inc.php:217 -#: templates/standard/template.symbolhelp.html:1279 -msgid "Create newsletter" -msgstr "Newsletter erzeugen" - #: includes/cfg_language_de.inc.php:218 msgid "Delete newsletter" msgstr "Newsletter löschen" @@ -3668,11 +3511,6 @@ msgstr "Newsletter Versand-Job-Details ansehen" msgid "Edit recipient" msgstr "Empfänger bearbeiten" -#: includes/cfg_language_de.inc.php:229 -#: templates/standard/template.symbolhelp.html:1373 -msgid "Create recipient" -msgstr "Empfänger erzeugen" - #: includes/cfg_language_de.inc.php:230 msgid "Delete recipient" msgstr "Empfänger löschen" @@ -3693,11 +3531,6 @@ msgstr "Empfänger-Import ausführen" msgid "Delete recipient group" msgstr "Empfängergruppe löschen" -#: includes/cfg_language_de.inc.php:235 -#: templates/standard/template.symbolhelp.html:1409 -msgid "Create recipient group" -msgstr "Empfängergruppe erstellen" - #: includes/cfg_language_de.inc.php:236 msgid "Delete recipient from group" msgstr "Empfänger aus Gruppe entfernen" @@ -3718,6 +3551,10 @@ msgstr "Wiedervorlage löschen" msgid "Save todo item" msgstr "Todo-Eintrag speichern" +#: includes/cfg_language_de.inc.php:243 includes/include.client_left_top.php:50 +msgid "Create client" +msgstr "Mandant erzeugen" + #: includes/cfg_language_de.inc.php:244 msgid "Edit client" msgstr "Mandant bearbeiten" @@ -3842,64 +3679,240 @@ msgstr "E-Mail senden" msgid "Fake permissions" msgstr "Berechtigungen emulieren" -#: includes/include.style_history.php:126 -msgid "Edit Style" -msgstr "Style bearbeiten" +#: includes/include.frontend.group_edit.php:56 +msgid "-- new group --" +msgstr "-- Neue Gruppe --" -#: includes/include.frontend.left_top.php:141 -msgid "Frontend users" -msgstr "Frontend-Benutzer" +#: includes/include.frontend.group_edit.php:121 +msgid "Could not set new group name: Group already exists" +msgstr "Konnte Gruppennamen nicht setzen: Gruppe existiert bereits" -#: includes/include.frontend.left_top.php:148 -msgid "Frontend groups" -msgstr "Frontend-Gruppen" +#: includes/include.frontend.group_edit.php:221 +#: includes/include.grouprights_create.php:102 +msgid "Group name" +msgstr "Gruppenname" -#: includes/include.frontend.left_top.php:261 -msgid "Show group" -msgstr "Gruppe anzeigen" +#: includes/include.frontend.group_edit.php:227 +msgid "Default group" +msgstr "Standardgruppe" -#: includes/include.frontend.left_top.php:269 includes/include.mod_new.php:173 -msgid "Search in" -msgstr "Suche in" +#: includes/grouprights_members.inc.php:208 +msgid "Manage group members" +msgstr "Gruppenmitglieder verwalten" -#: includes/include.mod_new.php:69 -msgid "New module" -msgstr "Neues Modul" +#: includes/include.mycontenido_settings.php:57 +msgid "Old password incorrect" +msgstr "Altes Passwort nicht korrekt" -#: includes/include.mod_new.php:72 -msgid "Sync module" -msgstr "Module synchronisieren" +#: includes/include.mycontenido_settings.php:77 +msgid "Password changed" +msgstr "Passwort geändert" -#: includes/include.mod_new.php:97 includes/include.mod_new.php:107 -#: includes/include.mod_new.php:127 -msgid "-- All --" -msgstr "-- Alle --" +#: includes/include.mycontenido_settings.php:97 +#, php-format +msgid "Settings for %s" +msgstr "Einstellungen für %s" -#: includes/include.mod_new.php:108 -msgid "Modulname" -msgstr "Modulname" +#: includes/include.mycontenido_settings.php:115 +msgid "Old password" +msgstr "Altes Passwort" -#: includes/include.mod_new.php:128 -msgid "-- Without type --" -msgstr "-- Ohne Typ --" +#: includes/include.mycontenido_settings.php:125 +msgid "Use WYSIWYG Editor" +msgstr "WYSIWYG-Editor benutzen" -#: includes/include.mod_new.php:165 -msgid "Type filter" -msgstr "Art des Moduls" +#: includes/include.mycontenido_settings.php:129 +msgid "The format is equal to PHP's date() function." +msgstr "Das Format stimmt mit dem der PHP date()-Funktion überein." -#: includes/functions.lang.php:119 +#: includes/include.mycontenido_settings.php:131 +msgid "Common date formattings" +msgstr "Gebräuchliche Datumsformatierungen" + +#: includes/include.client_edit.php:49 +msgid "No client ID passed" +msgstr "Keine ClientID übergeben" + +#: includes/include.client_edit.php:59 msgid "" -"Could not set the language-ID in the file 'config.php'. Please set the " -"language manually." +"Notice: In order to use this client, you must create a new language for it." msgstr "" -"Konnte die Sprach-ID in der Datei \"config.php\" nicht setzen. Bitte Sprach-" -"ID manuell setzen." +"Hinweis: Um den neuen Mandanten zu nutzen, müssen Sie eine neue Sprache " +"dafür anlegen." -#: includes/functions.lang.php:591 -msgid "Could not delete language" -msgstr "Konnte Sprache nicht löschen" +#: includes/include.client_edit.php:63 +#, php-format +msgid "Please click %shere%s to create a new language." +msgstr "Bitte klicken Sie %shier%s, um dies zu tun." -#: includes/include.str_overview.php:511 +#: includes/include.client_edit.php:102 +msgid "Couldn't write the file config.php." +msgstr "Konnte die Datei config.php nicht schreiben." + +#: includes/include.client_edit.php:110 +#, php-format +msgid "Succesfully copied client-template to %s." +msgstr "Mandantentemplate erfolgreich nach %s kopiert." + +#: includes/include.client_edit.php:113 +#, php-format +msgid "" +"Cannot create directory %s . The client was created, but you have to copy " +"the frontend-template yourself" +msgstr "" +"Kann Verzeichnis %s nicht erstellen. Der Mandant wurde erstellt, das " +"Frontend-Template muß jedoch noch dorthin kopiert werden" + +#: includes/include.client_edit.php:117 +#, php-format +msgid "" +"The directory %s already exists. The client was created, but you have to " +"copy the frontend-template yourself" +msgstr "" +"Das Verzeichnis %s existiert bereits. Der Mandant wurde erstellt, das " +"Frontend-Template muß jedoch noch dorthin kopiert werden" + +#: includes/include.client_edit.php:121 +#, php-format +msgid "Client '%s' created." +msgstr "Mandant '%s erstellt." + +#: includes/include.client_edit.php:136 +msgid "" +"You changed the client path. You might need to copy the frontend to the new " +"location" +msgstr "" +"Der Mandanten-Pfad wurde geändert. Das Frontend muss eventuell an die " +"neue Position kopiert werden" + +#: includes/include.client_edit.php:216 +#: includes/include.rights_overview.php:193 +#: includes/include.grouprights_overview.php:103 +#: includes/include.CMS_EASYIMG.php:157 +msgid "Discard changes" +msgstr "Ängerungen verwerfen" + +#: includes/include.client_edit.php:232 +msgid "Client name" +msgstr "Name des Mandanten" + +#: includes/include.client_edit.php:247 +msgid "Server path" +msgstr "Server-Pfad" + +#: includes/include.client_edit.php:262 +msgid "Web address" +msgstr "Web-Adresse" + +#: includes/include.client_edit.php:271 +msgid "Error page category" +msgstr "Fehlerseiten-Kategorie" + +#: includes/include.client_edit.php:280 +msgid "Error page article" +msgstr "Fehlerseiten-Artikel" + +#: includes/include.client_edit.php:291 +msgid "Client logo" +msgstr "Mandantenlogo" + +#: includes/include.client_edit.php:300 +msgid "HTML" +msgstr "HTML" + +#: includes/include.client_edit.php:300 +msgid "XHTML" +msgstr "XHTML" + +#: includes/include.client_edit.php:300 +msgid "HTML5" +msgstr "HTML5" + +#: includes/include.client_edit.php:315 +msgid "Generate" +msgstr "Erstelle" + +#: includes/include.client_edit.php:325 +msgid "Copy frontend template" +msgstr "Frontend-Template kopieren" + +#: includes/include.upl_edit.php:91 +msgid "File name" +msgstr "Dateiname" + +#: includes/include.upl_edit.php:92 includes/include.upl_search_results.php:204 +#: includes/include.upl_search_results.php:209 +#: includes/include.upl_search_results.php:212 +msgid "Path" +msgstr "Pfad" + +#: includes/include.upl_edit.php:93 +msgid "Replace file" +msgstr "Datei ersetzen" + +#: includes/include.upl_edit.php:94 +msgid "Media name" +msgstr "Medienname" + +#: includes/include.upl_edit.php:96 +msgid "Keywords" +msgstr "Schlüsselwörter" + +#: includes/include.upl_edit.php:97 +msgid "Internal notes" +msgstr "Interne Notiz" + +#: includes/include.upl_edit.php:98 +msgid "Copyright" +msgstr "Copyright" + +#: includes/include.upl_edit.php:99 +msgid "Protection" +msgstr "Schutz" + +#: includes/include.upl_edit.php:101 +#: includes/include.upl_search_results.php:286 +#: includes/include.upl_files_overview.php:526 includes/include.CMS_IMG.php:283 +msgid "Preview" +msgstr "Vorschau" + +#: includes/include.upl_edit.php:102 +#: includes/include.frontend.user_edit.php:241 +#: includes/include.con_left_top.php:275 +msgid "Author" +msgstr "Autor" + +#: includes/include.upl_edit.php:103 +#: includes/include.frontend.user_edit.php:242 +msgid "Last modified by" +msgstr "Zuletzt geändert von" + +#: includes/include.upl_edit.php:200 +msgid "Protected for non-logged in users" +msgstr "Geschützt für nichteingeloggte Benutzer" + +#: includes/include.upl_edit.php:304 includes/include.upl_files_upload.php:67 +#: includes/include.upl_files_overview.php:84 +msgid "Directory not writable" +msgstr "Verzeichnis nicht beschreibbar" + +#: includes/include.upl_edit.php:313 +#, php-format +msgid "Could not load file %s" +msgstr "Konnte Datei %s nicht laden" + +#: includes/include.str_overview.php:181 includes/include.str_overview.php:763 +#: includes/include.frontend.user_edit.php:237 +#: includes/include.rights_overview.php:457 +#: includes/include.tpl_visualedit.php:146 +#: includes/include.tpl_edit_form.php:86 includes/include.tpl_edit_form.php:91 +#: includes/include.tpl_edit_form.php:203 +#: includes/include.tplcfg_edit_form.php:301 +#: includes/include.con_left_top.php:374 +msgid "none" +msgstr "kein" + +#: includes/include.str_overview.php:596 #, php-format msgid "" "Do you really want to duplicate the following category:

%s

Hinweis: Der Duplizierungsprozess kann mehrere Minuten dauern, " "abhängig von der Anzahl der Artikel und Unterkategorien." -#: includes/include.str_overview.php:513 +#: includes/include.str_overview.php:598 #, php-format msgid "Do you really want to delete the following category:

%s" msgstr "" "Möchten Sie die folgende Kategorie wirklich löschen:

%s" -#: includes/include.str_overview.php:920 +#: includes/include.str_overview.php:1013 msgid "Create new category" msgstr "Neue Kategorie erstellen" -#: includes/include.str_overview.php:993 +#: includes/include.str_overview.php:1085 #, php-format msgid "Cancel moving %s" msgstr "Verschieben von %s abbrechen" -#: includes/include.html_tpl_left_top.php:50 -msgid "Create module template" -msgstr "Modul-Template erstellen" +#: includes/include.logs.php:64 +msgid "Submit query" +msgstr "Abfrage absenden" -#: includes/include.lang_overview.php:77 -#, php-format -msgid "Do you really want to delete the language %s?" -msgstr "Möchten Sie die Sprache %s wirklich löschen?" +#: includes/include.logs.php:75 +msgid "All users" +msgstr "Alle Benutzer" -#: includes/include.lang_overview.php:118 -msgid "Language deleted" -msgstr "Sprache gelöscht" +#: includes/include.logs.php:77 +msgid "All actions" +msgstr "Alle Aktionen" -#: includes/include.system_sysvalues.php:79 -#: includes/include.system_sysvalues.php:123 -msgid "No error log entries found" -msgstr "Keine Einträge im Errorlog gefunden" +#: includes/include.logs.php:199 +msgid "Unlimited" +msgstr "Unbegrenzt" -#: includes/include.system_sysvalues.php:83 -msgid "No error log file found" -msgstr "Keine Errorlog-Datei gefunden" +#: includes/include.logs.php:200 includes/include.logs.php:201 +#: includes/include.logs.php:202 includes/include.logs.php:203 +#: includes/include.logs.php:204 +msgid "Entries" +msgstr "Einträge" -#: includes/include.system_sysvalues.php:116 -msgid "No install error log entries found" -msgstr "Keine Einträge im install error log gefunden." +#: includes/include.logs.php:275 +msgid "No results" +msgstr "Keine Resultate" -#: includes/include.frontend.group_menu.php:51 -msgid "Delete frontend group" -msgstr "Frontend-Gruppe löschen" +#: includes/include.lay_preview.php:29 includes/include.tpl_visualedit.php:84 +msgid "No such layout" +msgstr "Layout nicht vorhanden" -#: includes/include.frontend.group_menu.php:52 -#, php-format -msgid "Do you really want to delete the following frontend group:
%s" +#: includes/include.upl_artlist.php:66 +msgid "Use this category" +msgstr "Diese Kategorie verwenden" + +#: includes/include.upl_artlist.php:81 +msgid "Sort Order" +msgstr "Sortierreihenfolge" + +#: includes/include.upl_artlist.php:81 +msgid "Online" +msgstr "Online" + +#: includes/include.frontend.user_edit.php:50 +#: includes/include.frontend.user_edit.php:70 +#: includes/include.frontend.user_edit.php:107 +msgid "-- new user --" +msgstr "-- Neuer Benutzer --" + +#: includes/include.frontend.user_edit.php:110 +msgid "Username empty or not set! Please choose one." +msgstr "Benutzername fehlt! Bitte wählen Sie einen Benutzernamen." + +#: includes/include.frontend.user_edit.php:115 +msgid "Password not set right now!" +msgstr "Passwort noch nicht gesetzt!" + +#: includes/include.frontend.user_edit.php:121 +msgid "Could not set new username: Username already exists" msgstr "" -"Möchten Sie die folgende Frontend-Gruppe wirklich löschen:
" -"%s" +"Konnte neuen Benutzernamen nicht setzen: Benutzername existiert bereits" -#: includes/include.rights_create.php:53 -msgid "Username can't be empty" -msgstr "Benutzername darf nicht leer sein" - -#: includes/include.rights_create.php:85 -msgid "User created" -msgstr "Benutzer erstellt" - -#: includes/include.rights_create.php:106 -msgid "Username already exists" -msgstr "Benutzername existiert bereits" - -#: includes/include.rights_create.php:110 -msgid "Unknown error" -msgstr "Unbekannter Fehler" - -#: includes/functions.mod.php:200 -msgid "Please do not use short open Tags. (Use
%s
" +msgid "" +"The plugin %s delivered an array for the displayed titles, but did not " +"return an array for the contents." msgstr "" -"Möchten Sie den folgenden Mandant wirklich löschen:

%s" +"Das Plugin %s lieferte ein Array für die angezeigten Titel, aber " +"lieferte kein Array für die Inhalte." + +#: includes/include.frontend.user_edit.php:240 +#: includes/include.rights_overview.php:460 +msgid "Group membership" +msgstr "Gruppenzugehörigkeit" + +#: includes/functions.system.php:55 +msgid "Can't clear install error log : Access is denied!" +msgstr "Upgrade-Fehlerlog konnte nicht geleert werden: Zugriff verweigert!" + +#: includes/functions.system.php:60 +msgid "error log successfully cleared" +msgstr "Errorlog erfolgreich geleert" + +#: includes/functions.system.php:281 +msgid "Contenido version" +msgstr "ConLite Version" + +#: includes/functions.system.php:284 +msgid "Contenido path" +msgstr "ConLite Pfad" + +#: includes/functions.system.php:286 +msgid "Contenido HTML path" +msgstr "ConLite HTML-Pfad" + +#: includes/functions.system.php:288 +msgid "Contenido full HTML path" +msgstr "ConLite vollständiger HTML-Pfad" + +#: includes/functions.system.php:290 +msgid "Contenido frontend path" +msgstr "ConLite Frontend-Pfad" + +#: includes/functions.system.php:292 +msgid "Contenido PHPLIB path" +msgstr "ConLite PHPLIB-Pfad" + +#: includes/functions.system.php:294 +msgid "Contenido wysiwyg path" +msgstr "ConLite WYSIWYG-Pfad" + +#: includes/functions.system.php:296 +msgid "Contenido wysiwyg HTML path" +msgstr "ConLite WYSIWYG-HTML-Pfad" + +#: includes/functions.system.php:299 +msgid "Host name" +msgstr "Host-Name" + +#: includes/functions.system.php:302 +msgid "Browser path" +msgstr "Browser-Pfad" + +#: includes/functions.system.php:325 +msgid "client settings" +msgstr "Mandanten-Einstellungen" + +#: includes/functions.system.php:326 +msgid "values" +msgstr "Werte" + +#: includes/functions.system.php:357 +msgid "language(s)" +msgstr "Sprache(n)" + +#: includes/functions.system.php:366 +msgid "htmlpath" +msgstr "HTML-Pfad" + +#: includes/functions.system.php:370 +msgid "frontendpath" +msgstr "Frontend-Pfad" + +#: includes/functions.system.php:382 +msgid "No permissions!" +msgstr "Kein Zugriff!" + +#: includes/functions.system.php:388 +msgid "Number of installed clients: " +msgstr "Anzahl der installierten Mandanten: " + +#: includes/functions.system.php:391 +msgid "Client informations" +msgstr "Mandanteninformationen" + +#: includes/functions.system.php:398 +msgid "Number of users" +msgstr "Anzahl Benutzer" + +#: includes/functions.system.php:408 +msgid "Server operating system" +msgstr "Server Betriebssystem" + +#: includes/functions.system.php:412 +msgid "PHP database extension" +msgstr "PHP Datenbankerweiterung" + +#: includes/functions.system.php:414 +msgid "Database server version" +msgstr "Datenbankserver-Version" + +#: includes/functions.system.php:417 +msgid "Installed PHP version" +msgstr "Installierte PHP-Version" + +#: includes/functions.system.php:422 includes/functions.system.php:426 +#: includes/functions.system.php:430 includes/functions.system.php:451 +msgid "activated" +msgstr "Aktiviert" + +#: includes/functions.system.php:422 includes/functions.system.php:426 +#: includes/functions.system.php:430 includes/functions.system.php:451 +msgid "deactivated" +msgstr "Deaktiviert" + +#: includes/functions.system.php:443 +msgid "nothing disabled" +msgstr "nichts deaktiviert" + +#: includes/functions.system.php:444 +msgid "Disabled functions" +msgstr "Deaktivierte Funktionen" + +#: includes/functions.system.php:447 +msgid "loaded" +msgstr "geladen" + +#: includes/functions.system.php:447 +msgid "not loaded" +msgstr "nicht geladen" + +#: includes/functions.system.php:448 +msgid "Gettext extension" +msgstr "Gettext Erweiterung" + +#: includes/functions.system.php:460 +msgid "Values" +msgstr "Werte" + +#: includes/functions.system.php:477 +msgid "GD library" +msgstr "GD-Bibliothek" + +#: includes/functions.system.php:640 +msgid "an error occured while sending your bug report! Please try again" +msgstr "" +"Ein Fehler ist während des Sendens des Bugreports aufgetreten! Bitte " +"versuchen Sie es noch einmal" + +#: includes/functions.system.php:643 +msgid "bug report forwarded" +msgstr "Bug Report abgeschickt" + +#: includes/functions.system.php:649 +msgid "please fill out all mandatory fields" +msgstr "Bitte alle Pflichtfelder ausfüllen" + +#: includes/functions.system.php:653 +msgid "please enter a valid E-Mail adress" +msgstr "Bitte geben Sie eine gültige E-Mail Adresse an" + +#: includes/functions.system.php:657 +msgid "you must agree the declaration of consent" +msgstr "Sie müssen der Vereinbarung zustimmen" + +#: includes/include.system_configuration.php:93 +msgid "Versioning activated" +msgstr "Versionierung aktiviert" + +#: includes/include.system_configuration.php:93 +#: includes/include.system_configuration.php:94 +#: includes/include.system_configuration.php:95 +msgid "Versioning" +msgstr "Versionierung" + +#: includes/include.system_configuration.php:94 +msgid "Serverpath to version files" +msgstr "Serverpfad für Versionierungsdateien" + +#: includes/include.system_configuration.php:95 +msgid "Maximum number of stored versions" +msgstr "Maximale Anzahl gespeicherter Versionen" + +#: includes/include.system_configuration.php:96 +msgid "Check for updates" +msgstr "Auf Aktualisierungen prüfen" + +#: includes/include.system_configuration.php:96 +#: includes/include.system_configuration.php:97 +#: includes/include.system_configuration.php:98 +msgid "Update notifier" +msgstr "Update Benachrichtigung" + +#: includes/include.system_configuration.php:97 +msgid "Get news from conlite.org" +msgstr "Neuigkeiten von conlite.org lesen" + +#: includes/include.system_configuration.php:98 +msgid "Update check period (minutes)" +msgstr "Aktualisierungsperiode (Minuten)" + +#: includes/include.system_configuration.php:99 +msgid "Clickable menu in backend" +msgstr "Hauptmenüwechsel bei Klick" + +#: includes/include.system_configuration.php:99 +#: includes/include.system_configuration.php:100 +#: includes/include.system_configuration.php:101 +#: includes/include.system_configuration.php:102 +#: includes/include.system_configuration.php:103 +#: includes/include.system_configuration.php:104 +msgid "Backend" +msgstr "Backend" + +#: includes/include.system_configuration.php:100 +msgid "Use passwordrequest in Backend" +msgstr "Passwort vergessen Funktion benutzen" + +#: includes/include.system_configuration.php:101 +msgid "Activate maintenance mode" +msgstr "Wartungsmodus aktiviert" + +#: includes/include.system_configuration.php:102 +msgid "Use editarea for code highlighting" +msgstr "Editarea für Syntaxhighlighting verwenden" + +#: includes/include.system_configuration.php:103 +msgid "Use TinyMce as insight editor" +msgstr "TinyMce als Insite Editor verwenden" + +#: includes/include.system_configuration.php:104 +msgid "Default client (ID)" +msgstr "Standardmandant (ID)" + +#: includes/include.system_configuration.php:105 +msgid "Mailserver host" +msgstr "Mailserver Host" + +#: includes/include.system_configuration.php:105 +#: includes/include.system_configuration.php:106 +#: includes/include.system_configuration.php:107 +msgid "Mailserver" +msgstr "Mailserver" + +#: includes/include.system_configuration.php:106 +msgid "Mailserver sender mail" +msgstr "Mailserver Absender-Mail" + +#: includes/include.system_configuration.php:107 +msgid "Mailserver sender name" +msgstr "Mailserver Absender-Name" + +#: includes/include.system_configuration.php:109 +msgid "Generate basehref" +msgstr "Base-href erzeugen" + +#: includes/include.system_configuration.php:109 +#: includes/include.system_configuration.php:110 +msgid "Development" +msgstr "Entwicklung" + +#: includes/include.system_configuration.php:110 +msgid "Use image magic (if available)" +msgstr "Image magic benutzen (wenn verfügbar)" + +#: includes/include.system_configuration.php:123 +msgid "Update check period must be at least 60 minutes." +msgstr "Die Aktualisierungsperiode muss mindestens 60 Minuten betragen." + +#: includes/include.system_configuration.php:142 +msgid "System Configuration" +msgstr "Systemeinstellungen" + +#: includes/include.system_configuration.php:192 +msgid "Access denied" +msgstr "Zugriff verweigert" + +#: includes/include.rights_overview.php:75 +msgid "User deleted" +msgstr "Benutzer gelöscht" + +#: includes/include.rights_overview.php:144 +#: includes/include.rights_overview.php:149 +msgid "An error occured while saving user info." +msgstr "" +"Ein Fehler ist während des Speicherns der Benutzer Info aufgetreten." + +#: includes/include.rights_overview.php:352 +#: includes/include.grouprights_overview.php:208 +msgid "Area/Type" +msgstr "Area/Type" + +#: includes/include.rights_overview.php:366 +#: includes/include.grouprights_overview.php:222 +msgid "User-defined properties" +msgstr "Benutzerdefinierte Eigenschaften" + +#: includes/include.rights_overview.php:438 +msgid "This account is currently inactive." +msgstr "Dieser Benutzer ist momentan deaktiviert." + +#: includes/include.rights_overview.php:441 +msgid "This account is currently active." +msgstr "Dieser Benutzer ist momentan aktiviert." + +#: includes/include.upl_left_top.php:112 +msgid "Create directory in" +msgstr "Erstelle Verzeichnis in" + +#: includes/include.CMS_LINK.php:153 +msgid "External link" +msgstr "Externer Link" + +#: includes/include.CMS_LINK.php:210 +msgid "Internal link" +msgstr "Interner Link" + +#: includes/include.CMS_LINK.php:240 +msgid "Link to a document" +msgstr "Link zu einem Dokument" + +#: includes/include.CMS_LINK.php:270 +msgid "Link to an image" +msgstr "Link zu einem Bild" + +#: includes/include.CMS_LINK.php:285 +msgid "Link to an archive" +msgstr "Link zu einem Archiv" + +#: includes/include.CMS_LINK.php:300 +msgid "Link to a media file" +msgstr "Link zu einer Mediendatei" + +#: includes/include.CMS_LINK.php:316 +msgid "Link to any file" +msgstr "Link auf eine beliebige Datei" + +#: includes/include.CMS_LINK.php:340 +msgid "Upload file" +msgstr "Datei hochladen" + +#: includes/include.CMS_LINK.php:345 +msgid "Target frame" +msgstr "Zielframe" + +#: includes/include.CMS_LINK.php:353 +msgid "Open link in new window" +msgstr "Link in neues Fenster öffnen" + +#: includes/include.CMS_LINK.php:375 +msgid "Open in new window" +msgstr "In neues Fenster öffnen" + +#: includes/include.js_history.php:171 +msgid "No jscript history available" +msgstr "Keine JavaScript-Historie verfügbar" + +#: includes/include.upl_search_results.php:190 +#: includes/include.upl_search_results.php:195 +#: includes/include.upl_search_results.php:198 +#: includes/include.upl_files_overview.php:449 +#: includes/include.upl_files_overview.php:452 +#: includes/include.upl_files_overview.php:454 +msgid "Filename / Description" +msgstr "Dateiname / Beschreibung" + +#: includes/include.upl_search_results.php:218 +#: includes/include.upl_search_results.php:223 +#: includes/include.upl_search_results.php:226 +#: includes/include.upl_files_overview.php:459 +#: includes/include.upl_files_overview.php:462 +#: includes/include.upl_files_overview.php:464 +msgid "Size" +msgstr "Größe" + +#: includes/include.upl_search_results.php:246 +#: includes/include.upl_search_results.php:251 +#: includes/include.upl_search_results.php:254 +msgid "Relevance" +msgstr "Relevanz" + +#: includes/include.upl_search_results.php:260 +msgid "Searched for:" +msgstr "Suchbegriff:" + +#: includes/include.upl_search_results.php:276 +#: includes/include.upl_files_overview.php:517 +msgid "Files per Page" +msgstr "Dateien pro Seite" + +#: includes/include.upl_search_results.php:445 +#: includes/include.upl_files_overview.php:681 +msgid "Previous Page" +msgstr "Vorherige Seite" + +#: includes/include.upl_search_results.php:452 +#: includes/include.upl_files_overview.php:687 +msgid "Next Page" +msgstr "Nächste Seite" + +#: includes/include.upl_search_results.php:490 +#: includes/include.upl_files_overview.php:727 +msgid "Page" +msgstr "Seite" + +#: includes/include.upl_search_results.php:605 +#: includes/include.upl_files_overview.php:884 +msgid "Enter new filename" +msgstr "Neuer Dateiname" #: includes/include.note.popup.php:63 msgid "Add note" @@ -4007,187 +4445,842 @@ msgstr "Keine Kategorie" msgid "Note" msgstr "Notiz" +#: includes/functions.stat.php:44 +msgid "Info about article" +msgstr "Info über Artikel" + +#: includes/functions.stat.php:46 +msgid "Info about directory" +msgstr "Info über Verzeichnis" + +#: includes/functions.stat.php:285 +msgid "Category is online" +msgstr "Kategorie ist online" + +#: includes/functions.stat.php:287 +msgid "Category is offline" +msgstr "Kategorie ist offline" + +#: includes/functions.stat.php:478 +msgid "Sum" +msgstr "Summe" + +#: includes/include.grouprights_overview.php:67 +msgid "Changes couldn't saved" +msgstr "Änderungen nicht gespeichert" + +#: includes/include.grouprights_overview.php:112 +msgid "Groupname" +msgstr "Gruppenname" + +#: includes/include.stat_menu.php:37 +msgid "Current Report" +msgstr "Aktuelle Statistik" + +#: includes/include.stat_menu.php:45 +msgid "Statistics Overview" +msgstr "Statistikübersicht" + +#: includes/include.stat_menu.php:56 +msgid "Archived Statistics" +msgstr "Archivierte Statistiken" + +#: includes/include.clientsettings.php:49 +msgid "Select range" +msgstr "Bereich auswählen" + +#: includes/include.clientsettings.php:52 +msgid "Language independent" +msgstr "Sprachunabhängig" + +#: includes/include.clientsettings.php:78 +msgid "Range" +msgstr "Bereich" + +#: includes/functions.file.php:206 +msgid "Please insert filename." +msgstr "Bitte Dateinamen angeben." + +#: includes/functions.file.php:218 +#, php-format +msgid "Could not open file %s" +msgstr "Konnte Datei %s nicht öffnen" + +#: includes/functions.file.php:223 +#, php-format +msgid "Could not write file %s" +msgstr "Konnte Datei %s nicht schreiben" + +#: includes/functions.file.php:234 includes/functions.file.php:338 +#, php-format +msgid "%s is not writable" +msgstr "%s ist nicht schreibbar" + +#: includes/functions.file.php:255 +#, php-format +msgid "Can not open file%s " +msgstr "Kann Datei %s nicht öffnen " + +#: includes/functions.file.php:304 +msgid "Unable to change file access permission." +msgstr "Konnte die Dateisystem-Berechtigungen nicht ändern." + +#: includes/functions.file.php:308 +#, php-format +msgid "Unable to create file %s" +msgstr "Konnte Datei %s nicht erstellen" + +#: includes/functions.file.php:334 +#, php-format +msgid "Can not rename file %s" +msgstr "Konnte Datei %s nicht umbenennen" + +#: includes/functions.file.php:361 +msgid "Wrong filename." +msgstr "Falscher Dateiname." + +#: includes/include.frontend.group_rights.php:47 +msgid "Invalid plugin" +msgstr "Ungültiges Plugin" + +#: includes/include.frontend.group_rights.php:96 +#, php-format +msgid "Permissions for plugin '%s'" +msgstr "Rechte für Plugin '%s'" + +#: includes/include.frontend.group_rights.php:101 +msgid "(All)" +msgstr "(Alle)" + +#: includes/include.frontend.group_rights.php:109 +msgid "Global rights" +msgstr "Globale Rechte" + +#: includes/include.frontend.group_rights.php:131 +msgid "No items found" +msgstr "Keine Elemente gefunden" + +#: includes/functions.lang.php:119 +msgid "" +"Could not set the language-ID in the file 'config.php'. Please set the " +"language manually." +msgstr "" +"Konnte die Sprach-ID in der Datei \"config.php\" nicht setzen. Bitte Sprach-" +"ID manuell setzen." + +#: includes/functions.lang.php:585 +msgid "Could not delete language" +msgstr "Konnte Sprache nicht löschen" + +#: includes/include.tpl_new.php:39 +msgid "New template" +msgstr "Neues Template" + +#: includes/include.lay_new.php:38 +msgid "New Layout" +msgstr "Neues Layout" + +#: includes/include.system_sysvalues.php:80 +#: includes/include.system_sysvalues.php:124 +msgid "No error log entries found" +msgstr "Keine Einträge im Errorlog gefunden" + +#: includes/include.system_sysvalues.php:84 +msgid "No error log file found" +msgstr "Keine Errorlog-Datei gefunden" + +#: includes/include.system_sysvalues.php:117 +msgid "No install error log entries found" +msgstr "Keine Einträge im install error log gefunden" + +#: includes/include.upl_files_upload.php:51 +msgid "Upload" +msgstr "Hochladen" + +#: includes/include.upl_files_upload.php:59 +#: includes/include.upl_files_overview.php:502 +msgid "Path:" +msgstr "Pfad:" + +#: includes/functions.mod.php:200 +msgid "Please do not use short open Tags. (Use
%s" +msgstr "" +"Möchten Sie den folgenden Artikel wirklich löschen:

%s" + +#: includes/include.con_art_overview.php:683 +#: includes/include.con_art_overview.php:686 +#, php-format +msgid "Go to page: %s" +msgstr "Gehe zu Seite: %s" + +#: includes/include.con_art_overview.php:689 +msgid "with click select line for further treatment" +msgstr "mit Klick Zeile zur weiteren Bearbeitung auswählen" + +#: includes/include.con_art_overview.php:737 +#: includes/include.con_art_overview.php:841 +msgid "No articles found" +msgstr "Keine Artikel gefunden" + +#: includes/include.con_art_overview.php:743 +msgid "Alphabetical" +msgstr "Alphabetisch" + +#: includes/include.con_art_overview.php:744 +msgid "Last change" +msgstr "Letzte Änderung" + +#: includes/include.con_art_overview.php:745 +msgid "Published date" +msgstr "Veröffentlichungsdatum" + +#: includes/include.con_art_overview.php:764 +msgid "Sort articles:" +msgstr "Sortierung:" + +#: includes/include.con_art_overview.php:791 +msgid "Items per page:" +msgstr "Elemente/Seite:" + +#: includes/functions.upl.php:723 +msgid "OpenOffice.org Presentation" +msgstr "OpenOffice.org Präsentation" + +#: includes/functions.upl.php:724 +msgid "OpenOffice.org Presentation Template" +msgstr "OpenOffice.org Präsentationsvorlage" + +#: includes/functions.upl.php:725 +msgid "Microsoft PowerPoint Screen Presentation" +msgstr "Microsoft PowerPoint Bildschirmpräsentation" + +#: includes/functions.upl.php:726 includes/functions.upl.php:728 +msgid "Microsoft PowerPoint Presentation Template" +msgstr "Microsoft PowerPoint Präsentationsvorlage" + +#: includes/functions.upl.php:727 +msgid "KDE KPresenter Document" +msgstr "KDE KPresenter-Dokument" + +#: includes/functions.upl.php:731 +msgid "Microsoft Word Document or regular text file" +msgstr "Microsoft Word-Dokument oder reguläre Textdatei" + +#: includes/functions.upl.php:732 +msgid "Microsoft Word Template" +msgstr "Microsoft Word Vorlage" + +#: includes/functions.upl.php:733 +msgid "OpenOffice.org Text Document" +msgstr "OpenOffice.org Textdokument" + +#: includes/functions.upl.php:734 +msgid "OpenOffice.org Text Document Template" +msgstr "OpenOffice.org Dokumentenvorlage" + +#: includes/functions.upl.php:735 +msgid "StarOffice 5.0 Text Document" +msgstr "StarOffice 5.0 Textdokument" + +#: includes/functions.upl.php:736 +msgid "KDE KWord Document" +msgstr "KDE KWord Dokument" + +#: includes/functions.upl.php:739 +msgid "Microsoft Excel Worksheet" +msgstr "Microsoft Excel Arbeitsblatt" + +#: includes/functions.upl.php:740 +msgid "OpenOffice.org Table" +msgstr "OpenOffice.org Tabelle" + +#: includes/functions.upl.php:741 +msgid "OpenOffice.org Table Template" +msgstr "OpenOffice.org Tabellenvorlage" + +#: includes/functions.upl.php:742 +msgid "Microsoft Excel File" +msgstr "Microsoft Excel Datei" + +#: includes/functions.upl.php:743 +msgid "Microsoft Excel Template" +msgstr "Microsoft Excel Vorlage" + +#: includes/functions.upl.php:744 +msgid "Comma Seperated Value File" +msgstr "Komma-separierte Datei" + +#: includes/functions.upl.php:745 +msgid "KDE KSpread Document" +msgstr "KDE KSpread-Dokument" + +#: includes/functions.upl.php:746 +msgid "StarOffice 5.0 Table" +msgstr "StarOffice 5.0 Tabelle" + +#: includes/functions.upl.php:749 +msgid "Plain Text" +msgstr "Einfache Textdatei" + +#: includes/functions.upl.php:750 +msgid "Rich Text Format" +msgstr "Rich Text Format - Datei" + +#: includes/functions.upl.php:753 +msgid "GIF Image" +msgstr "GIF-Bild" + +#: includes/functions.upl.php:754 +msgid "PNG Image" +msgstr "PNG-Bild" + +#: includes/functions.upl.php:755 includes/functions.upl.php:756 +msgid "JPEG Image" +msgstr "JPEG-Bild" + +#: includes/functions.upl.php:757 +msgid "TIFF Image" +msgstr "TIFF-Bild" + +#: includes/functions.upl.php:758 +msgid "Adobe Photoshop Image" +msgstr "Adobe Photoshop Bild" + +#: includes/functions.upl.php:761 includes/functions.upl.php:762 +msgid "Hypertext Markup Language Document" +msgstr "Hypertext Markup Language Dokument" + +#: includes/functions.upl.php:763 +msgid "Cascading Style Sheets" +msgstr "Cascading Style Sheets" + +#: includes/functions.upl.php:766 +msgid "LHA Archive" +msgstr "LHA-Archiv" + +#: includes/functions.upl.php:767 +msgid "RAR Archive" +msgstr "RAR-Archiv" + +#: includes/functions.upl.php:768 +msgid "ARJ Archive" +msgstr "ARJ-Archiv" + +#: includes/functions.upl.php:769 +msgid "bz2-compressed File" +msgstr "bz2-komprimierte Datei" + +#: includes/functions.upl.php:770 +msgid "bzip-compressed File" +msgstr "bzip-komprimierte Datei" + +#: includes/functions.upl.php:771 +msgid "ZIP Archive" +msgstr "ZIP-Archiv" + +#: includes/functions.upl.php:772 +msgid "TAR Archive" +msgstr "TAR-Archiv" + +#: includes/functions.upl.php:773 +msgid "GZ Compressed File" +msgstr "GZ-komprimierte Datei" + +#: includes/functions.upl.php:776 +msgid "C Program Code" +msgstr "C Programmcode" + +#: includes/functions.upl.php:779 +msgid "C++ Program Code" +msgstr "C++ Programmcode" + +#: includes/functions.upl.php:781 +msgid "C or C++ Program Header" +msgstr "C oder C++ Programmheader" + +#: includes/functions.upl.php:784 +msgid "PHP Program Code" +msgstr "PHP Programmcode" + +#: includes/functions.upl.php:785 +msgid "PHP Source File" +msgstr "PHP Quellcode" + +#: includes/functions.upl.php:787 +msgid "Adobe Acrobat Portable Document" +msgstr "Adobe Acrobat Portable Document" + +#: includes/functions.upl.php:790 +msgid "QuickTime Movie" +msgstr "QuickTime-Movie" + +#: includes/functions.upl.php:791 +msgid "avi Movie" +msgstr "avi-Movie" + +#: includes/functions.upl.php:793 +msgid "MPEG Movie" +msgstr "MPEG-Movie" + +#: includes/functions.upl.php:794 +msgid "Windows Media Video" +msgstr "Windows Media-Video" + +#: includes/functions.upl.php:796 +msgid "-File" +msgstr "-Datei" + +#: includes/include.upl_files_overview.php:240 +#, php-format +msgid "" +"The uploaded file (%s) exceeds the upload_max_filesize directive in php.ini." +msgstr "" +"Die hochgeladene Datei (%s) überschreitet die Direktiveupload_max_filesize " +"in der php.ini." + +#: includes/include.upl_files_overview.php:250 +#, php-format +msgid "Error while uploading file (%s)." +msgstr "Fehler beim Hochladen der Datei (%s)." + +#: includes/include.upl_files_overview.php:302 +msgid "Errors while uploading file(s). Some or all files were not uploaded." +msgstr "" +"Fehler beim Dateiupload. Einige oder alle Dateien konnten nicht hochgeladen " +"werden." + +#: includes/include.upl_files_overview.php:386 +#: includes/include.upl_files_overview.php:388 +msgid "Use file" +msgstr "Datei verwenden" + +#: includes/include.upl_files_overview.php:480 +msgid "Delete Files" +msgstr "Dateien löschen" + +#: includes/include.upl_files_overview.php:480 +msgid "Are you sure you want to delete the selected files?" +msgstr "" +"Sind Sie sich sicher, dass Sie die gewählten Dateien wirklich lö" +"schen wollen?" + +#: includes/include.upl_files_overview.php:481 +msgid "Delete selected files" +msgstr "Markierte Dateien löschen" + +#: includes/include.upl_files_overview.php:497 +msgid "Flip Selection" +msgstr "Markierung umkehren" + +#: includes/include.upl_files_overview.php:525 +msgid "Mark" +msgstr "Markieren" + +#: includes/include.upl_files_overview.php:632 +msgid "Display properties" +msgstr "Eigenschaften anzeigen" + +#: includes/include.upl_files_overview.php:753 +msgid "Do you really want to delete the following file:
" +msgstr "Möchten Sie wirklich die folgende Datei löschen:
" + +#: includes/include.pretplcfg_edit_form.php:101 +#, php-format +msgid "Module in Container %s" +msgstr "Modul in Container %s" + +#: includes/include.pretplcfg_edit_form.php:150 +msgid "Template preconfiguration" +msgstr "Template Vorkonfiguration" + +#: includes/include.info.php:38 +msgid "" +"You can find a lot of information and a community forum on the ConLite Portal" +msgstr "" +"Alle Informationen zu ConLite und das ConLite Community Forum finden Sie auf " +"dem ConLite Portal" + +#: includes/include.CMS_IMG.php:275 +msgid "Directory / File" +msgstr "Verzeichnis / Datei" + +#: includes/include.tpl_edit_form.php:43 +msgid "- New Template -" +msgstr "-- Neues Template --" + +#: includes/include.tpl_edit_form.php:158 +#: includes/include.tpl_edit_form.php:234 +msgid "Default" +msgstr "Standard" + +#: includes/include.mod_translate.php:138 +#, php-format +msgid "Translate module '%s'" +msgstr "Modul übersetzen \"%s\"" + +#: includes/include.mod_translate.php:147 +msgid "Translated Name" +msgstr "Übersetzter Name" + +#: includes/include.mod_translate.php:157 +msgid "Original module string" +msgstr "Ursprünglicher Modulstring" + +#: includes/include.mod_translate.php:157 +#, php-format +msgid "Translation for %s" +msgstr "Übersetzung für %s" + +#: includes/include.mod_translate.php:165 +msgid "" +"Hint: Hit ALT+SHIFT+S to save the translated entry and advance to the next " +"string." +msgstr "" +"Hinweis: Drücken Sie ALT+SHIFT+S, um den aktuellen Eintrag zu speichern " +"und zur nächsten Zeichenkette zu springen." + +#: includes/include.mod_translate.php:166 +msgid "String list" +msgstr "Zeichenkettenliste" + +#: includes/include.tplcfg_edit_form.php:76 +#, php-format +msgid "Category Template configuration is in use by %s (%s)" +msgstr "Templatekonfiguration (Kategorie) wird benutzt von %s (%s)" + +#: includes/include.tplcfg_edit_form.php:352 +msgid "Module in container" +msgstr "Modul in Container" + +#: includes/include.tplcfg_edit_form.php:476 +msgid "Categorytemplate configuration" +msgstr "Kategorietemplate konfigurieren" + +#: includes/include.tplcfg_edit_form.php:479 +msgid "Articletemplate configuration" +msgstr "Artikeltemplate konfigurieren" + +#: includes/include.mod_sync.php:39 +msgid "Syncing Modules!" +msgstr "Module werden synchronisiert!" + +#: includes/include.mod_sync.php:44 includes/include.mod_sync.php:56 +msgid "Module " +msgstr "Module " + +#: includes/include.mod_sync.php:44 +msgid "nothing to do" +msgstr "nichts zu tun" + +#: includes/include.mod_sync.php:56 +msgid "synchronized" +msgstr "synchronisiert" + +#: includes/include.mod_sync.php:61 +msgid "No modules to sync!" +msgstr "Keine Module zu synchronisieren!" + +#: includes/include.mod_sync.php:66 +msgid "Nothing to do!" +msgstr "Nichts zu tun!" + +#: includes/include.html_tpl_left_top.php:50 +msgid "Create module template" +msgstr "Modul-Template erstellen" + +#: includes/include.mycontenido.tasks.edit.php:43 +msgid "Edit Reminder item" +msgstr "Wiedervorlage bearbeiten" + +#: includes/include.mycontenido.tasks.edit.php:77 +msgid "E-Mail notification" +msgstr "E-Mail Benachrichtigung" + +#: includes/include.mycontenido.tasks.edit.php:140 +msgid "Progress" +msgstr "Fortschritt" + +#: includes/include.con_left_top.php:135 +msgid "Ignore" +msgstr "Ignorieren" + +#: includes/include.con_left_top.php:138 +msgid "Date published" +msgstr "Veröffentlichungsdatum" + +#: includes/include.con_left_top.php:141 +msgid "Article Search" +msgstr "Artikelsuche" + +#: includes/include.con_left_top.php:250 +msgid "Title/Content" +msgstr "Titel/Inhalt" + +#: includes/include.con_left_top.php:255 +msgid "Article ID" +msgstr "Artikel-ID" + +#: includes/include.con_left_top.php:260 +msgid "Datum" +msgstr "Datum" + +#: includes/include.con_left_top.php:265 +msgid "Date from" +msgstr "Datum von" + +#: includes/include.con_left_top.php:270 +msgid "Date to" +msgstr "Datum bis" + +#: includes/include.con_left_top.php:291 +msgid "Saved Searches" +msgstr "Gespeicherte Suchen" + +#: includes/include.con_left_top.php:306 +msgid "My articles" +msgstr "Meine Artikel" + +#: includes/include.con_left_top.php:311 +msgid "Workflow" +msgstr "Workflow" + +#: includes/include.con_left_top.php:379 +msgid "Edit Category" +msgstr "Kategorie bearbeiten" + +#: includes/include.con_left_top.php:395 +msgid "Template:" +msgstr "Template:" + +#: includes/include.con_left_top.php:404 includes/include.con_left_top.php:405 +msgid "Configure Category" +msgstr "Kategorie konfigurieren" + +#: includes/include.con_left_top.php:407 includes/include.con_left_top.php:408 +msgid "Online / Offline" +msgstr "Online / Offline" + +#: includes/include.con_left_top.php:410 includes/include.con_left_top.php:411 +msgid "Lock / Unlock" +msgstr "Schützen / Freigeben" + +#: includes/include.con_left_top.php:428 +msgid "close all" +msgstr "alle schließen" + +#: includes/include.con_left_top.php:429 +msgid "open all" +msgstr "alle öffnen" + +#: includes/include.con_left_top.php:439 +msgid "Synchronize from" +msgstr "Synchronisieren von" + +#: includes/include.con_left_top.php:472 includes/include.con_left_top.php:473 +msgid "Copy to current language" +msgstr "In die aktuelle Sprache kopieren" + +#: includes/include.con_left_top.php:474 includes/include.con_left_top.php:475 +msgid "Also copy subcategories" +msgstr "Unterkategorien mit kopieren" + +#: includes/include.grouprights_menu.php:178 +#, php-format +msgid "Do you really want to delete the group %s?" +msgstr "Möchten Sie die Gruppe %s wirklich löschen?" + +#: includes/include.grouprights_menu.php:197 +#, php-format +msgid "Do you really want to delete the following group:

%s
" +msgstr "" +"Möchten Sie die folgende Gruppe wirklich löschen:

%s" + #: includes/functions.lay.php:66 msgid "-- Unnamed Layout --" msgstr "-- Unbenanntes Layout --" -#: includes/include.system_purge.php:79 includes/include.system_purge.php:87 -#: includes/include.system_purge.php:95 includes/include.system_purge.php:103 -#: includes/include.system_purge.php:112 -msgid "Client " -msgstr "Mandant" +#: includes/include.client_menu.php:80 +msgid "Delete client" +msgstr "Mandant löschen" -#: includes/include.system_purge.php:80 includes/include.system_purge.php:128 -#: includes/include.system_purge.php:135 +#: includes/include.client_menu.php:81 #, php-format -msgid "The entries of %s table are not deleted!" -msgstr "Einträge von der Tabelle %s wurden nicht gelöscht!" - -#: includes/include.system_purge.php:88 -#, php-format -msgid "The %s is not updated!" -msgstr "Tabelle %s ist nicht akutalisiert!" - -#: includes/include.system_purge.php:96 -msgid "The cache is not deleted!" -msgstr "Cache wurde nicht gelöscht" - -#: includes/include.system_purge.php:104 -msgid "The log is not deleted!" -msgstr "Log-Datei wurde nicht geleert" - -#: includes/include.system_purge.php:113 -msgid "The history is not deleted!" -msgstr "Versionierung wurde nicht gelöscht!" - -#: includes/include.system_purge.php:143 -msgid "The contenido log is not cleaned!" -msgstr "ConLite Log-Datei wurde nicht geleert" - -#: includes/include.system_purge.php:150 -msgid "The contenido cache is not deleted!" -msgstr "ConLite Cache wurde nicht gelöscht!" - -#: includes/include.system_purge.php:157 -msgid "The contenido cronjobs are not cleaned!" -msgstr "ConLite Cronjob-Dateien wurden nicht geleert!" - -#: includes/include.system_purge.php:164 -msgid "Update of sequence table not completed!" -msgstr "Aktualisierung der Sequence Tabelle nicht komplett " - -#: includes/include.system_purge.php:169 -msgid "The changes were successfully executed." -msgstr "Die Änderungen wurden erfolgreich ausgeführt." - -#: includes/include.system_purge.php:171 -msgid "The changes were not all successfully completed." +msgid "Do you really want to delete the following client:

%s
" msgstr "" -"Die Änderungen wurden teilweise nicht erfolgreich ausgeführt." +"Möchten Sie den folgenden Mandant wirklich löschen:

%s" -#: includes/include.system_purge.php:190 includes/include.system_purge.php:214 -msgid "System purge" -msgstr "System Bereinigen" +#: includes/include.grouprights_create.php:57 +msgid "New Group" +msgstr "Neue Gruppe" -#: includes/include.system_purge.php:191 -msgid "No Client selected!" -msgstr "Kein Mandant ausgewählt!" +#: includes/include.grouprights_create.php:71 +msgid "group created" +msgstr "Gruppe erzeugt" -#: includes/include.system_purge.php:196 -msgid "all clients" -msgstr "alle Mandanten" +#: includes/include.grouprights_create.php:76 +msgid "Group couldn't created" +msgstr "Gruppe konnte nicht erstellt werden" -#: includes/include.system_purge.php:197 -msgid "from list" -msgstr "aus Liste" +#: includes/include.style_left_top.php:50 +msgid "Create style" +msgstr "Style erstellen" -#: includes/include.system_purge.php:198 -msgid "Select clients" -msgstr "Mandanten Auswahl" +#: includes/include.mod_history.php:94 +msgid "Edit Module" +msgstr "Modul bearbeiten" -#: includes/include.system_purge.php:199 includes/include.system_purge.php:201 -#: includes/include.system_purge.php:209 +#: includes/include.mod_history.php:133 +msgid "Code Input" +msgstr "Code Input" + +#: includes/include.mod_history.php:134 +msgid "Code Output" +msgstr "Code Output" + +#: includes/include.mod_history.php:152 +msgid "No module history available" +msgstr "Keine Modul-Historie verfügbar" + +#: includes/include.mod_overview.php:198 +msgid "Module in use, cannot delete" +msgstr "Modul wird benutzt, löschen nicht möglich" + +#: includes/include.mod_overview.php:200 +msgid "Module in filesystem, cannot delete" +msgstr "Modul liegt im Dateisystem und kann nicht gelöscht werden" + +#: includes/include.mod_overview.php:205 #, php-format -msgid "Reset the table %s" -msgstr "Tabelle %s leeren" +msgid "Do you really want to delete the following module:

%s
" +msgstr "" +"Möchten Sie das folgende Modul wirklich löschen:

%s" -#: includes/include.system_purge.php:200 +#: includes/include.mod_overview.php:271 #, php-format -msgid "Activate the code generation in %s" -msgstr "Code-Generierung in der Tabelle %s" - -#: includes/include.system_purge.php:202 -msgid "Clear client cache" -msgstr "Cache-Dateien löschen" - -#: includes/include.system_purge.php:203 -msgid "Clear client log file" -msgstr "Log-Datei leeren" - -#: includes/include.system_purge.php:204 -msgid "Clear client history" -msgstr "Versionierung löschen" - -#: includes/include.system_purge.php:205 -msgid "Keep last histories" -msgstr "Letzten Versionierungen beibehalten" - -#: includes/include.system_purge.php:207 -msgid "Contenido" -msgstr "ConLite" - -#: includes/include.system_purge.php:208 -msgid "Clear contenido log file" -msgstr "ConLite Log-Datei leeren" - -#: includes/include.system_purge.php:210 -msgid "Clear contenido cache" -msgstr "ConLite Cache löschen" - -#: includes/include.system_purge.php:211 -msgid "Reset cronjobs" -msgstr "Job-Dateien von Cronjob leeren" - -#: includes/include.system_purge.php:212 -msgid "Update sequence table" -msgstr "Sequence-Tabelle aktualisiert" - -#: includes/include.system_purge.php:215 -msgid "These changes can not be cancelled." -msgstr "Die Änderungen können Sie nicht rückgängig machen." - -#: includes/include.system_purge.php:215 -msgid "Do you really want to complete it?" -msgstr "Wollen Sie diese Aktion wirklich ausführen!" - -#: includes/include.system_purge.php:220 -msgid "No action selected!" -msgstr "Keine Aktion ausgewählt!" - -#: includes/include.system_purge.php:222 -msgid "Send" -msgstr "Gesendet" - -#: backend_search.php:328 -msgid "Thank you for saving this search from extinction !" -msgstr "Vielen Dank für die Speicherung dieser Suche!" - -#: backend_search.php:490 -msgid "Search results" -msgstr "Suchergebnisse" - -#: backend_search.php:506 -msgid "Missing search value." -msgstr "Suchwert fehlt." - -#: backend_search.php:507 backend_search.php:734 -msgid "No article found." -msgstr "Keine Artikel gefunden." - -#: backend_search.php:672 -msgid "Reminder" -msgstr "Erinnerung" - -#: backend_search.php:674 classes/class.todo.php:158 -#: classes/class.todo.php:161 -msgid "Set reminder / add to todo list" -msgstr "Wiedervorlage setzen / zur Todo-Liste hinzufügen" - -#: backend_search.php:679 -msgid "Do you really want to delete following article" -msgstr "Möchten Sie wirklich die folgende Datei löschen:
" - -#: backend_search.php:765 -msgid "Search Name" -msgstr "Bezeichnung" - -#: backend_search.php:767 -msgid "Store" -msgstr "Speichern" - -#: backend_search.php:772 -msgid "Save this Search" -msgstr "Suche speichern" +msgid "The module '%s' is used for following templates" +msgstr "Das Modul '%s' wird bei folgenden Templates benutzt" #: external/backendedit/front_content.php:331 #: external/backendedit/front_content.php:386 @@ -4196,405 +5289,6 @@ msgstr "Suche speichern" msgid "No start article for this category" msgstr "Kein Startartikel für diese Kategorie" -#: templates/standard/template.symbolhelp.html:23 -msgid "Table of contents" -msgstr "Inhaltsverzeichnis" - -#: templates/standard/template.symbolhelp.html:29 -#: templates/standard/template.symbolhelp.html:135 -msgid "Common" -msgstr "Allgemeines" - -#: templates/standard/template.symbolhelp.html:35 -#: templates/standard/template.symbolhelp.html:277 -msgid "Content" -msgstr "Content" - -#: templates/standard/template.symbolhelp.html:44 -#: templates/standard/template.symbolhelp.html:740 -msgid "File management" -msgstr "Dateiverwaltung" - -#: templates/standard/template.symbolhelp.html:50 -#: templates/standard/template.symbolhelp.html:816 -msgid "Style" -msgstr "Style" - -#: templates/standard/template.symbolhelp.html:56 -#: templates/standard/template.symbolhelp.html:904 -msgid "Modules" -msgstr "Module" - -#: templates/standard/template.symbolhelp.html:59 -#: templates/standard/template.symbolhelp.html:985 -msgid "Templates" -msgstr "Templates" - -#: templates/standard/template.symbolhelp.html:62 -#: templates/standard/template.symbolhelp.html:1055 -msgid "CSS editor" -msgstr "CSS-Editor" - -#: templates/standard/template.symbolhelp.html:65 -#: templates/standard/template.symbolhelp.html:1110 -msgid "Script editor" -msgstr "Scripteditor" - -#: templates/standard/template.symbolhelp.html:68 -#: templates/standard/template.symbolhelp.html:1165 -msgid "Module Templates" -msgstr "Modul-Templates" - -#: templates/standard/template.symbolhelp.html:74 -#: templates/standard/template.symbolhelp.html:1242 -msgid "Extras" -msgstr "Extras" - -#: templates/standard/template.symbolhelp.html:77 -#: templates/standard/template.symbolhelp.html:1248 -msgid "Newsletter" -msgstr "Newsletter" - -#: templates/standard/template.symbolhelp.html:80 -msgid "Recipients" -msgstr "Empfänger" - -#: templates/standard/template.symbolhelp.html:86 -#: templates/standard/template.symbolhelp.html:1466 -msgid "Statistics" -msgstr "Statistiken" - -#: templates/standard/template.symbolhelp.html:95 -#: templates/standard/template.symbolhelp.html:1548 -msgid "Administration" -msgstr "Administration" - -#: templates/standard/template.symbolhelp.html:98 -#: templates/standard/template.symbolhelp.html:1554 -msgid "Users" -msgstr "Benutzer" - -#: templates/standard/template.symbolhelp.html:101 -#: templates/standard/template.symbolhelp.html:1609 -msgid "Groups" -msgstr "Gruppen" - -#: templates/standard/template.symbolhelp.html:104 -#: templates/standard/template.symbolhelp.html:1664 -msgid "Languages" -msgstr "Sprachen" - -#: templates/standard/template.symbolhelp.html:107 -#: templates/standard/template.symbolhelp.html:1734 -msgid "Clients" -msgstr "Mandanten" - -#: templates/standard/template.symbolhelp.html:129 -msgid "Table of Contents" -msgstr "Inhaltsverzeichnis" - -#: templates/standard/template.symbolhelp.html:166 -msgid "Execute query / Save" -msgstr "Anfrage senden / Speichern" - -#: templates/standard/template.symbolhelp.html:196 -#: classes/class.request.password.php:247 -msgid "Submit" -msgstr "Absenden" - -#: templates/standard/template.symbolhelp.html:208 -msgid "Change to MyContenido (Personal Settings)" -msgstr "Zu MyConLite wechseln (Persönliche Einstellungen)" - -#: templates/standard/template.symbolhelp.html:220 -msgid "Information (Impressum)" -msgstr "Information (Impressum)" - -#: templates/standard/template.symbolhelp.html:235 -msgid "Logout" -msgstr "Ausloggen" - -#: templates/standard/template.symbolhelp.html:341 -msgid "Article is start article / is not start article" -msgstr "Artikel ist Startartikel / kein Startartikel" - -#: templates/standard/template.symbolhelp.html:353 -#: templates/standard/template.symbolhelp.html:868 -#: templates/standard/template.symbolhelp.html:949 -msgid "Set template / Add to To-Do list" -msgstr "Template setzen / zur Todo-Liste hinzufügen" - -#: templates/standard/template.symbolhelp.html:365 -msgid "Configure article properties" -msgstr "Artikeleigenschaften bearbeiten" - -#: templates/standard/template.symbolhelp.html:389 -msgid "Element is online / offline (change through click)" -msgstr "Element ist online / offline (Durch Klick ändern)" - -#: templates/standard/template.symbolhelp.html:401 -msgid "Element is protected / accessible (change through click)" -msgstr "Element ist geschützt / erreichbar (Ändern durch Klick)" - -#: templates/standard/template.symbolhelp.html:439 -msgid "Lock / unlock folder (change through click)" -msgstr "Kategorie sperren / entsperren (Ändern durch Klick)" - -#: templates/standard/template.symbolhelp.html:451 -msgid "Set folder offline / online (change through click)" -msgstr "Ordner offline / online setzen (Ändern durch Klick)" - -#: templates/standard/template.symbolhelp.html:542 -msgid "Create category" -msgstr "Kategorie erzeugen" - -#: templates/standard/template.symbolhelp.html:560 -msgid "Set category online / offline" -msgstr "Kategorie online / offline setzen" - -#: templates/standard/template.symbolhelp.html:578 -msgid "Category is online and unprotected / protected" -msgstr "Kategorie ist online und ungeschützt / geschützt" - -#: templates/standard/template.symbolhelp.html:596 -msgid "Category is offline and unprotected / protected" -msgstr "Kategorie ist offline und ungeschützt / geschützt" - -#: templates/standard/template.symbolhelp.html:614 -msgid "Category is online, contains an error and is unprotected / protected" -msgstr "" -"Kategorie ist online, enthält einen Fehler und ist ungeschützt / " -"geschützt" - -#: templates/standard/template.symbolhelp.html:632 -msgid "Category is offline, contains an error and is unprotected / protected" -msgstr "" -"Kategorie ist offline, ist fehlerhaft und ist ungeschützt / geschü" -"tzt" - -#: templates/standard/template.symbolhelp.html:650 -msgid "Move up one category" -msgstr "Eine Kategorie nach oben verschieben" - -#: templates/standard/template.symbolhelp.html:683 -msgid "Select move target" -msgstr "Verschiebeziel auswählen" - -#: templates/standard/template.symbolhelp.html:716 -#: templates/standard/template.symbolhelp.html:880 -#: templates/standard/template.symbolhelp.html:961 -#: templates/standard/template.symbolhelp.html:1031 -#: templates/standard/template.symbolhelp.html:1086 -#: templates/standard/template.symbolhelp.html:1141 -#: templates/standard/template.symbolhelp.html:1196 -#: templates/standard/template.symbolhelp.html:1306 -#: templates/standard/template.symbolhelp.html:1421 -#: templates/standard/template.symbolhelp.html:1585 -#: templates/standard/template.symbolhelp.html:1640 -#: templates/standard/template.symbolhelp.html:1710 -#: templates/standard/template.symbolhelp.html:1765 -#: templates/standard/template.symbolhelp.html:1871 -msgid "Delete / Delete not available" -msgstr "Löschen / Löschen nicht verfügbar" - -#: templates/standard/template.symbolhelp.html:762 -msgid "Root upload folder" -msgstr "Basis-Uploadverzeichnis" - -#: templates/standard/template.symbolhelp.html:780 -msgid "Regular folder" -msgstr "Normaler Ordner" - -#: templates/standard/template.symbolhelp.html:853 -msgid "Layout in use" -msgstr "Layout wird verwendet" - -#: templates/standard/template.symbolhelp.html:934 -msgid "Module in use" -msgstr "Modul wird verwendet" - -#: templates/standard/template.symbolhelp.html:1294 -msgid "Copy newsletter" -msgstr "Newsletter kopieren" - -#: templates/standard/template.symbolhelp.html:1330 -#: templates/standard/template.symbolhelp.html:1361 -msgid "Recipient" -msgstr "Empfänger" - -#: templates/standard/template.symbolhelp.html:1385 -msgid "Remove recipient" -msgstr "Empfänger entfernen" - -#: templates/standard/template.symbolhelp.html:1397 -msgid "Recipient group" -msgstr "Empfängergruppe" - -#: templates/standard/template.symbolhelp.html:1503 -msgid "Article is online / offline" -msgstr "Artikel ist online / offline" - -#: templates/standard/template.symbolhelp.html:1695 -msgid "Language active / not active" -msgstr "Sprache ist aktiv / nicht aktiv" - -#: templates/standard/template.symbolhelp.html:1823 -#: templates/standard/template.log_main.html:22 -#: templates/standard/template.log_main.html:50 -#: classes/class.navigation.php:360 -msgid "User" -msgstr "Benutzer" - -#: templates/standard/template.symbolhelp.html:1847 -msgid "User group" -msgstr "Benutzergruppe" - -#: templates/standard/template.symbolhelp.html:1859 -msgid "Create user group" -msgstr "Benutzergruppe erzeugen" - -#: templates/standard/template.info.html:15 -msgid "Concept and Implementation" -msgstr "Konzept und Implementierung" - -#: templates/standard/template.info.html:15 -msgid "Germany" -msgstr "Deutschland" - -#: templates/standard/template.info.html:15 -msgid "Phone" -msgstr "Telefon" - -#: templates/standard/template.system_variables.html:16 -msgid "Your system configuration" -msgstr "Ihre Systemkonfiguration" - -#: templates/standard/template.system_variables.html:21 -msgid "Variable" -msgstr "Variable" - -#: templates/standard/template.system_variables.html:22 -msgid "Local value" -msgstr "Lokaler Wert" - -#: templates/standard/template.system_variables.html:37 -msgid "Contenido Error Log" -msgstr "Contenido Fehlerlog" - -#: templates/standard/template.system_variables.html:50 -msgid "clear error log" -msgstr "Fehlerlog leeren" - -#: templates/standard/template.system_variables.html:58 -msgid "Contenido Upgrade Error Log" -msgstr "Contenido Upgrade-Fehlerlog" - -#: templates/standard/template.system_variables.html:72 -msgid "clear upgrade error log" -msgstr "Upgrade-Fehlerlog leeren" - -#: templates/standard/template.rights_inc.html:24 -msgid "Client / Language" -msgstr "Mandant / Sprache" - -#: templates/standard/template.str_overview.html:157 -msgid "Category is a tree" -msgstr "Kategorie ist ein Baum" - -#: templates/standard/template.str_overview.html:164 -msgid "Position of category" -msgstr "Position der Kategorie" - -#: templates/standard/template.con_edit_form.html:153 -msgid "When expired, move to category" -msgstr "Nach Endzeitpunkt in diese Kategorie verschieben" - -#: templates/standard/template.con_edit_form.html:155 -msgid "Make online after move" -msgstr "Nach Verschieben Artikel online lassen" - -#: templates/standard/template.con_edit_form.html:184 -msgid "Page title" -msgstr "Seitentitel" - -#: templates/standard/template.con_edit_form.html:190 -msgid "Meta tags" -msgstr "Meta-Tags" - -#: templates/standard/template.mycontenido_lastarticles.html:35 -msgid "Your clients" -msgstr "Ihre Mandanten" - -#: templates/standard/template.mycontenido_lastarticles.html:67 -#: classes/class.notification.php:126 -msgid "Info" -msgstr "Information" - -#: templates/standard/template.welcome.html:22 -msgid "Available clients" -msgstr "Verfügbare Mandanten" - -#: templates/standard/template.welcome.html:42 -msgid "Currently" -msgstr "Momentan" - -#: templates/standard/template.welcome.html:42 -msgid "Users online" -msgstr "Benutzer online" - -#: templates/standard/template.welcome.html:50 -msgid "Contact System Administrators" -msgstr "Kontakt Systemadministrator(en)" - -#: templates/standard/template.upl_files_overview.html:61 -msgid "Sort files" -msgstr "Dateisortierung" - -#: templates/standard/template.upl_files_overview.html:82 -#: classes/class.cms_filelist.php:438 -msgid "Filename" -msgstr "Dateiname" - -#: templates/standard/template.upl_files_overview.html:86 -#: classes/class.cms_filelist.php:441 -msgid "File size" -msgstr "Dateigröße" - -#: templates/standard/template.upl_files_overview.html:88 -msgid "Image size" -msgstr "Bildgröße" - -#: templates/standard/template.recipient_menu.html:88 -#: templates/standard/template.log_main.html:38 -msgid "Limit" -msgstr "Beschränkung" - -#: templates/standard/template.log_main.html:14 -#: classes/class.cms_filelist.php:722 -msgid "Filter" -msgstr "Filter" - -#: templates/standard/template.log_main.html:49 -msgid "Date" -msgstr "Datum" - -#: cronjobs/send_reminder.php:97 -#, php-format -msgid "" -"Hello %s,\n" -"\n" -"you've got a new reminder for the client '%s' at\n" -"%s:\n" -"\n" -"%s" -msgstr "" -"Hallo %s,\n" -"\n" -"Du hast eine Wiedervorlage erhalten für den Mandanten '%s' bei\n" -"%s:\n" -"\n" -"%s" - #: main.loginform.php:70 msgid "" "Contenido is in maintenance mode. Only sysadmins are allowed to login. " @@ -4616,780 +5310,58 @@ msgstr "Login fehlgeschlagen!" msgid "Password" msgstr "Passwort" -#: classes/class.versionFile.php:131 -msgid "Can not open file " -msgstr "Konnte Datei %s nicht Öffnen" +#: backend_search.php:328 +msgid "Thank you for saving this search from extinction !" +msgstr "Vielen Dank für die Speicherung dieser Suche!" -#: classes/class.request.password.php:251 -msgid "Please enter your login" -msgstr "Bitte geben Sie hier Ihren Login ein" +#: backend_search.php:490 +msgid "Search results" +msgstr "Suchergebnisse" -#: classes/class.request.password.php:257 -msgid "Hide request" -msgstr "Fenster schliessen" +#: backend_search.php:506 +msgid "Missing search value." +msgstr "Suchwert fehlt." -#: classes/class.request.password.php:301 -#, php-format -msgid "Password requests are allowed every %s minutes." -msgstr "Passwörter können nur alle %s Minuten angefordert werden." +#: backend_search.php:507 backend_search.php:734 +msgid "No article found." +msgstr "Keine Artikel gefunden." -#: classes/class.request.password.php:309 -#: classes/class.request.password.php:322 -msgid "No matching data found. Please contact your systemadministrator." -msgstr "" -"Keine passenden Daten gefunden. Bitte wenden Sie sich an Ihren System-" -"Administrator." +#: backend_search.php:672 +msgid "Reminder" +msgstr "Erinnerung" -#: classes/class.request.password.php:315 -msgid "New password was submitted to your e-mail address." -msgstr "Das neue Passwort wurde soeben an Ihre E-Mailadresse gesendet." +#: backend_search.php:679 +msgid "Do you really want to delete following article" +msgstr "Möchten Sie wirklich die folgende Datei löschen:
" -#: classes/class.request.password.php:358 +#: backend_search.php:765 +msgid "Search Name" +msgstr "Bezeichnung" + +#: backend_search.php:767 +msgid "Store" +msgstr "Speichern" + +#: backend_search.php:772 +msgid "Save this Search" +msgstr "Suche speichern" + +#: cronjobs/send_reminder.php:97 #, php-format msgid "" -"Dear Contenidouser %s,\n" +"Hello %s,\n" "\n" -"Your password to log in Content Management System Contenido is: %s\n" +"you've got a new reminder for the client '%s' at\n" +"%s:\n" "\n" -"Best regards\n" +"%s" +msgstr "" +"Hallo %s,\n" "\n" -"Your Contenido sysadmin" -msgstr "" -"Lieber ConLite-User %s,\n" +"Du hast eine Wiedervorlage erhalten für den Mandanten '%s' bei\n" +"%s:\n" "\n" -"Ihr Passwort für das Login in das Content Management System ConLite " -"ist: %s\n" -"\n" -"Viele Grüße\n" -"\n" -"Ihr ConLite Systemadministrator" - -#: classes/class.request.password.php:374 -msgid "Your new password for Contenido Backend" -msgstr "Ihr neues Passwort für das ConLite Backend" - -#: classes/class.notification.php:114 scripts/langref.php:14 -#: scripts/articleObject.js.php:228 scripts/articleObject.js.php:231 -msgid "Error" -msgstr "Fehler" - -#: classes/class.notification.php:120 -msgid "Warning" -msgstr "Warnung" - -#: classes/class.notification.php:133 -msgid "Notification" -msgstr "Hinweis" - -#: classes/widgets/class.widgets.datawidgets.php:314 -#: classes/widgets/class.widgets.datawidgets.php:315 -msgid "Clear contents" -msgstr "Inhalt leeren" - -#: classes/widgets/class.widgets.pager.php:47 -#: classes/widgets/class.widgets.pager.php:51 -msgid "Paging" -msgstr "Seitennavigation" - -#: classes/widgets/class.widgets.pager.php:85 -msgid "First page" -msgstr "Erste Seite" - -#: classes/widgets/class.widgets.pager.php:92 -msgid "Previous page" -msgstr "Vorherige Seite" - -#: classes/widgets/class.widgets.pager.php:106 -#, php-format -msgid "Page %s" -msgstr "Seite %s" - -#: classes/widgets/class.widgets.pager.php:122 -msgid "Next page" -msgstr "Nächste Seite" - -#: classes/widgets/class.widgets.pager.php:132 -msgid "Last page" -msgstr "Letzte Seite" - -#: classes/con2con/class.filehandler.php:451 -#, fuzzy -msgid "Wrong file name." -msgstr "Falscher Dateiname." - -#: classes/con2con/class.filehandler.php:467 -#, fuzzy -msgid "Please insert file name." -msgstr "Bitte Dateinamen angeben." - -#: classes/class.cms_teaser.php:386 -msgid "Block Style" -msgstr "Blockdarstellung" - -#: classes/class.cms_teaser.php:389 -msgid "Blog Style" -msgstr "Listendarstellung" - -#: classes/class.cms_teaser.php:451 -msgid "Scaled" -msgstr "Skaliert" - -#: classes/class.cms_teaser.php:454 -msgid "Cropped" -msgstr "Zugeschnitten" - -#: classes/class.cms_teaser.php:480 -msgid "Sort Sequence" -msgstr "Sortierreihenfolge" - -#: classes/class.cms_teaser.php:483 -msgid "Creationdate" -msgstr "Erstellungsdatum" - -#: classes/class.cms_teaser.php:486 -msgid "Publisheddate" -msgstr "Veröffentlichungsdatum" - -#: classes/class.cms_teaser.php:489 -msgid "Modificationdate" -msgstr "Änderungsdatum" - -#: classes/class.cms_teaser.php:578 -msgid "Teasersettings" -msgstr "Teasereinstellungen" - -#: classes/class.cms_teaser.php:579 -msgid "Teasertitle" -msgstr "Teaserüberschrift" - -#: classes/class.cms_teaser.php:580 -msgid "Teaser Startarticle" -msgstr "Teaser Startartikel" - -#: classes/class.cms_teaser.php:581 -msgid "Sourcecategory" -msgstr "Quellkategorie" - -#: classes/class.cms_teaser.php:582 -msgid "Number of Articles" -msgstr "Anzahl der Artikel" - -#: classes/class.cms_teaser.php:583 classes/class.cms_filelist.php:724 -msgid "General Settings" -msgstr "Allgemeine Einstellungen" - -#: classes/class.cms_teaser.php:584 -msgid "Teaser Style" -msgstr "Teaser Darstellung" - -#: classes/class.cms_teaser.php:585 -msgid "Advanced Teaser Settings" -msgstr "Erweiterte Teaser Einstellungen" - -#: classes/class.cms_teaser.php:586 -msgid "Teaser Filter" -msgstr "Teaser Filter" - -#: classes/class.cms_teaser.php:587 -msgid "Teaser Sort" -msgstr "Teaser Sortierung" - -#: classes/class.cms_teaser.php:589 -msgid "Source Headline" -msgstr "Quelle Überschrift" - -#: classes/class.cms_teaser.php:590 -msgid "Source Settings" -msgstr "Quelleinstellungen" - -#: classes/class.cms_teaser.php:591 -msgid "Source Text" -msgstr "Quelle Text" - -#: classes/class.cms_teaser.php:592 -msgid "Source Image" -msgstr "Quelle Bild" - -#: classes/class.cms_teaser.php:593 -msgid "Source Date" -msgstr "Quelle Datum" - -#: classes/class.cms_teaser.php:598 classes/class.cms_filelist.php:720 -msgid "General" -msgstr "Allgemein" - -#: classes/class.cms_teaser.php:599 -msgid "Advanced" -msgstr "Erweitert" - -#: classes/class.cms_teaser.php:600 classes/class.cms_filelist.php:721 -msgid "Manual" -msgstr "Manuell" - -#: classes/class.cms_teaser.php:601 -msgid "Included Articles" -msgstr "Eingebundene Artikel" - -#: classes/class.cms_teaser.php:602 -msgid "Add Article" -msgstr "Artikel hinzufügen" - -#: classes/class.cms_teaser.php:603 -msgid "Manual Teaser Settings" -msgstr "Manuelle Teaser Einstellungen" - -#: classes/class.cms_teaser.php:604 -msgid "Manual Teaser" -msgstr "Manueller Teaser" - -#: classes/class.cms_teaser.php:607 -msgid "Size Settings" -msgstr "Größeneinstellungen" - -#: classes/class.cms_teaser.php:608 -msgid "Characterlength" -msgstr "Zeichenanzahl" - -#: classes/class.cms_teaser.php:609 -msgid "Imagewidth" -msgstr "Bildbreite" - -#: classes/class.cms_teaser.php:610 -msgid "Imageheight" -msgstr "Bildhöhe" - -#: classes/class.cms_teaser.php:611 -msgid "Image Scale" -msgstr "Bildskalierung" - -#: classes/class.cms_teaser.php:648 -msgid "Add" -msgstr "Hinzufügen" - -#: classes/class.ajax.php:111 classes/class.ajax.php:135 -#: classes/class.ajax.php:185 -msgid "No data found!" -msgstr "Keine Daten gefunden!" - -#: classes/class.ajax.php:160 -msgid "idcat" -msgstr "idcat" - -#: classes/class.ajax.php:161 classes/class.ajax.php:178 -msgid "idlang" -msgstr "idlang" - -#: classes/class.ajax.php:177 -msgid "idart" -msgstr "idart" - -#: classes/class.cms_date.php:212 -msgid "Please Choose Format" -msgstr "Format Auswählen" - -#: classes/datatypes/class.datatype.datetime.php:165 -msgid "Saturday" -msgstr "Samstag" - -#: classes/class.version.php:199 -#, php-format -msgid "Alternative path %s does not exist. Version was saved in frondendpath." -msgstr "" -"Der alternative Pfad %s existiert nicht. Die Verison wurde im Frontendpfad " -"gespeichert." - -#: classes/class.version.php:538 -msgid "Clear layout history" -msgstr "Layouthistorie löschen" - -#: classes/class.version.php:539 -msgid "Do you really want to clear layout history?" -msgstr "Möchten Sie wirklich die Layouthistorie löschen?" - -#: classes/class.version.php:539 -msgid "Note: This only affects the current layout." -msgstr "Hinweis: Dies betrifft nur das aktuelle Layout." - -#: classes/class.version.php:542 -msgid "Clear module history" -msgstr "Modulhistorie löschen" - -#: classes/class.version.php:543 -msgid "Do you really want to clear module history?" -msgstr "Möchte Sie wirklich die Modulhistorie löschen?" - -#: classes/class.version.php:543 -msgid "Note: This only affects the current module." -msgstr "Hinweis: Dies betrifft nur das aktuelle Modul." - -#: classes/class.version.php:546 -msgid "Clear style history" -msgstr "Stylehistorie löschen" - -#: classes/class.version.php:547 -msgid "Do you really want to clear style history?" -msgstr "Möchten Sie wirklich die Stylehistorie löschen?" - -#: classes/class.version.php:547 -msgid "Note: This only affects the current style." -msgstr "Hinweis: Dies betrifft nur das aktuelle Style." - -#: classes/class.version.php:550 -msgid "Clear Java-Script history" -msgstr "Java-Script Historie löschen" - -#: classes/class.version.php:551 -msgid "Do you really want to clear Java-Script history?" -msgstr "Möchten Sie wirklich die Java-Script Historie löschen?" - -#: classes/class.version.php:551 -msgid "Note: This only affects the current Java-Script." -msgstr "Hinweis: Dies betrifft nur das aktuelle Java-Script." - -#: classes/class.version.php:554 -msgid "Clear HTML-Template history" -msgstr "HTML-Template Historie löschen" - -#: classes/class.version.php:555 -msgid "Do you really want to clear HTML-Template history?" -msgstr "Möchten Sie wirklich die HTML-Template Historie löschen?" - -#: classes/class.version.php:555 -msgid "Note: This only the affects current HTML-Template." -msgstr "Hinweis: Dies betrifft nur das aktuelle HTML-Template." - -#: classes/class.version.php:558 -msgid "Clear history" -msgstr "Stylehistorie löschen" - -#: classes/class.version.php:559 -msgid "Do you really want to clear history?" -msgstr "Möchten Sie wirklich die Stylehistorie löschen?" - -#: classes/class.version.php:559 -msgid "Note: This only affects the current history." -msgstr "Hinweis: Dies betrifft nur die aktuelle Historie." - -#: classes/class.conuser.php:842 classes/class.conuser.php:867 -#, php-format -msgid "" -"Please use at least %d lower and upper case characters in your password!" -msgstr "" -"Bitte benutzen Sie mindestens %d Klein- und Groß-Buchstaben in Ihrem " -"Passwort!" - -#: classes/class.conuser.php:847 -#, php-format -msgid "Please use at least %d numbers in your password!" -msgstr "Bitte benutzen Sie mindestens %d Zahlen in Ihrem Passwort!" - -#: classes/class.conuser.php:852 -#, php-format -msgid "Please use at least %d symbols in your password!" -msgstr "Bitte benutzen Sie mindestens %d Sonderzeichen in Ihrem Passwort!" - -#: classes/class.conuser.php:857 -#, php-format -msgid "Password is too short! Please use at least %d signs." -msgstr "Ihr Passwort ist zu kurz! Bitte benutzen Sie mindestens %d Zeichen." - -#: classes/class.conuser.php:863 -msgid "Password does not contain enough different characters." -msgstr "Ihr Passwort beinhaltet nicht genug unterschiedliche Zeichen." - -#: classes/class.conuser.php:872 -msgid "Please choose a more secure password!" -msgstr "" -"Ihr Passwort ist nicht sicher genug. Bitte wählen Sie ein sichereres " -"Passwort!" - -#: classes/class.update.notifier.php:422 classes/class.update.notifier.php:427 -msgid "Unable to check for new updates!" -msgstr "Update-Überprüfung kann nicht durchgeführt werden!" - -#: classes/class.update.notifier.php:422 -msgid "Could not handle server response!" -msgstr "Server-Antwort konnte nicht verarbeitet werden!" - -#: classes/class.update.notifier.php:427 -msgid "Could not determine vendor version!" -msgstr "Hersteller-Version konnte nicht gelesen werden!" - -#: classes/class.update.notifier.php:540 -msgid "Unable to check for updates!" -msgstr "Es kann nicht auf Updates geprüft werden" - -#: classes/class.update.notifier.php:541 -#, fuzzy, php-format -msgid "Connection to %s failed!" -msgstr "Verbindung zu %s fehlgeschlagen!" - -#: classes/class.update.notifier.php:646 -msgid "Disable update notification" -msgstr "Update-Nachrichten deaktivieren" - -#: classes/class.update.notifier.php:648 classes/class.update.notifier.php:660 -msgid "Disable notification" -msgstr "Benachrichtigung deaktivieren" - -#: classes/class.update.notifier.php:651 -msgid "Enable update notification (recommended)" -msgstr "Update-Nachrichten aktivieren (empfohlen)" - -#: classes/class.update.notifier.php:653 classes/class.update.notifier.php:667 -msgid "Enable notification" -msgstr "Benachrichtigung aktivieren" - -#: classes/class.update.notifier.php:658 -msgid "Disable RSS notification" -msgstr "RSS-Nachrichten deaktivieren" - -#: classes/class.update.notifier.php:665 -msgid "Enable RSS notification (recommended)" -msgstr "RSS-Nachrichten aktivieren (empfohlen)" - -#: classes/class.update.notifier.php:669 -msgid "RSS notification is disabled" -msgstr "RSS-Nachrichten sind deaktiviert" - -#: classes/class.update.notifier.php:718 -msgid "read more" -msgstr "mehr lesen" - -#: classes/class.update.notifier.php:728 classes/class.update.notifier.php:737 -msgid "No RSS content available" -msgstr "Keine RSS-Inhalte verfügbar" - -#: classes/class.update.notifier.php:735 classes/class.update.notifier.php:753 -msgid "" -"Your webserver does not have write permissions for the directory /contenido/" -"cache/!" -msgstr "" -"Ihr Webserver hat keine Schreibberechtigungen für das Verzeichnis /" -"contenido/cache/!" - -#: classes/class.update.notifier.php:756 -msgid "" -"Update notification is disabled! For actual update information, please " -"activate." -msgstr "" -"Die Update-Benachrichtigung ist deaktiviert! Für aktuelle Update-" -"Nachrichten, bitte aktivieren." - -#: classes/class.update.notifier.php:761 -#, fuzzy -msgid "You have an unknown or unsupported version of ConLite!" -msgstr "" -"Sie haben eine unbekannte oder nicht unterstützte Version von ConLite!" - -#: classes/class.update.notifier.php:764 -#, fuzzy, php-format -msgid "" -"Your version of ConLite is deprecated and not longer supported for any " -"updates. Please update to a higher version!
Download now!" -msgstr "" -"Ihre Version von ConLite wird nicht länger mit Updates gepflegt. Bitte " -"aktualisieren Sie auf eine höhere Version!
Jetzt herunterladen!" - -#: classes/class.update.notifier.php:768 -#, fuzzy, php-format -msgid "" -"A new version of ConLite is available!
Download %s now!" -msgstr "" -"Eine neue Version von ConLite ist verfügbar!
%s jetzt herunterladen!" - -#: classes/class.update.notifier.php:771 -#, fuzzy, php-format -msgid "" -"It seems to be that your version string was manipulated. ConLite %s does not " -"exist!" -msgstr "" -"Es scheint so als wenn der ConLite Versionsstring manipuliert wurde. ConLite " -"%s gibt es nicht!" - -#: classes/class.update.notifier.php:774 -#, fuzzy -msgid "Your version of ConLite is up to date!" -msgstr "Ihre Version von ConLite ist aktuell!" - -#: classes/template/class.template.php:332 -msgid "\"" -msgstr "" - -#: classes/contenido/class.layout.php:179 -msgid "" -"Layout uses LayFromFile. Editing and Saving may not be possible in backend." -msgstr "" -"Das Layout liegt im Dateisystem. Das Bearbeiten und Speichern ist im Backend " -"nicht möglich." - -#: classes/contenido/class.client.php:97 classes/class.client.php:131 -msgid "No client" -msgstr "Kein Mandant" - -#: classes/contenido/class.module.php:916 -msgid "" -"Using old CamelCase for name of modulefolder. You may lowercase the name for " -"modulefolder" -msgstr "" -"Using old CamelCase for name of modulefolder. You may lowercase the name for " -"modulefolder" - -#: classes/contenido/class.module.php:919 -msgid "" -"Module uses Output- and/or InputFromFile. Editing and Saving may not be " -"possible in backend." -msgstr "" -"Das Modul liegt im Dateisystem. Das Bearbeiten und Speichern ist im Backend " -"nicht möglich." - -#: classes/class.todo.php:101 -msgid "New" -msgstr "Neu" - -#: classes/class.todo.php:102 -msgid "In progress" -msgstr "In Bearbeitung" - -#: classes/class.todo.php:103 -msgid "Done" -msgstr "Erledigt" - -#: classes/class.todo.php:104 -msgid "Waiting for action" -msgstr "Warte auf Aktion" - -#: classes/class.todo.php:105 -msgid "Deferred" -msgstr "Aufgeschoben" - -#: classes/class.todo.php:113 -msgid "Low" -msgstr "Niedrig" - -#: classes/class.todo.php:114 -msgid "Medium" -msgstr "Mittel" - -#: classes/class.todo.php:115 -msgid "High" -msgstr "Hoch" - -#: classes/class.todo.php:116 -msgid "Immediately" -msgstr "Sofort" - -#: classes/class.navigation.php:435 -msgid "-- No Language available --" -msgstr "-- Keine Sprache verfügbar --" - -#: classes/class.note.php:331 classes/class.note.php:334 -msgid "View notes / add note" -msgstr "Notizen anzeigen / hinzufügen" - -#: classes/class.inuse.php:242 -msgid "Click here if you want to override the lock" -msgstr "Hier klicken, um die Sperre zu übergehen" - -#: classes/class.inuse.php:246 -msgid "Do you really want to override the lock?" -msgstr "Möchten Sie wirklich die Sperre übergehen?" - -#: classes/class.inuse.php:248 -msgid "Override lock" -msgstr "Sperre übergehen" - -#: classes/class.inuse.php:248 -msgid "Hide notification" -msgstr "Benachrichtigung ausblenden" - -#: classes/class.cms_filelist.php:413 -msgid "Default Style" -msgstr "Standarddarstellung" - -#: classes/class.cms_filelist.php:719 -msgid "Directories" -msgstr "Verzeichnisse" - -#: classes/class.cms_filelist.php:725 -msgid "Manual Settings" -msgstr "Manuelle Einstellungen" - -#: classes/class.cms_filelist.php:726 -msgid "Filter settings" -msgstr "Filter-Einstellungen" - -#: classes/class.cms_filelist.php:727 -msgid "File list settings" -msgstr "Dateilisteneinstellungen" - -#: classes/class.cms_filelist.php:728 -msgid "File list title" -msgstr "Dateilistentitel" - -#: classes/class.cms_filelist.php:729 -msgid "File size limit" -msgstr "Dateigrößenbeschränkung" - -#: classes/class.cms_filelist.php:730 -msgid "Creation date limit" -msgstr "Zeitraum des Erstellungsdatums" - -#: classes/class.cms_filelist.php:731 -msgid "Modify date limit" -msgstr "Zeitraum des Änderungsdatums" - -#: classes/class.cms_filelist.php:733 -msgid "File list style" -msgstr "Darstellungsart" - -#: classes/class.cms_filelist.php:734 -msgid "Source directory" -msgstr "Quellverzeichnis" - -#: classes/class.cms_filelist.php:735 -msgid "Include subdirectories?" -msgstr "Unterverzeichnisse berücksichtigen?" - -#: classes/class.cms_filelist.php:736 -msgid "Include meta data?" -msgstr "Meta-Daten laden?" - -#: classes/class.cms_filelist.php:737 -msgid "File list sort" -msgstr "Sortierungsart" - -#: classes/class.cms_filelist.php:739 -msgid "Displayed file extensions" -msgstr "Angezeigte Datei-Erweiterungen" - -#: classes/class.cms_filelist.php:740 -msgid "Ignore selection (use all)" -msgstr "Auswahl ignorieren (alle benutzen)" - -#: classes/class.cms_filelist.php:741 -msgid "Selection will be ignored!" -msgstr "Auswahl wird ignoriert!" - -#: classes/class.cms_filelist.php:742 -msgid "Select all entries" -msgstr "Alle Einträge selektieren" - -#: classes/class.cms_filelist.php:743 -msgid "Use manual file list?" -msgstr "Manuelle Dateiliste verwenden?" - -#: classes/class.cms_filelist.php:744 -msgid "Directory" -msgstr "Verzeichnis" - -#: classes/class.cms_filelist.php:746 -msgid "Files" -msgstr "Dateien" - -#: classes/class.cms_filelist.php:747 -msgid "Existing files" -msgstr "Ausgewählte Dateien" - -#: classes/class.cms_filelist.php:748 -msgid "Add file" -msgstr "Datei hinzufügen" - -#: classes/class.cms_filelist.php:749 -msgid "File count" -msgstr "Anzahl der Dateien" - -#: scripts/HTMLObj.js.php:248 scripts/langref.php:10 -msgid "Protect" -msgstr "Schützen" - -#: scripts/HTMLObj.js.php:251 scripts/langref.php:11 -msgid "Remove protection" -msgstr "Schutz entfernen" - -#: scripts/messageBox.js.php:78 scripts/langref.php:20 -msgid "Confirm" -msgstr "Bestätigen" - -#: scripts/messageBox.js.php:80 scripts/langref.php:22 -msgid "Close window" -msgstr "Fenster schliessen" - -#: scripts/rights.js.php:67 scripts/rights.js.php:70 scripts/langref.php:23 -#: scripts/iZoom.js.php:70 scripts/iZoom.js.php:73 -msgid "Click to close" -msgstr "Klicken zum Schliessen" - -#: scripts/langref.php:13 scripts/articleObject.js.php:248 -msgid "Overview cannot be displayed" -msgstr "Übersicht kann nicht angezeigt werden" - -#: scripts/langref.php:15 scripts/articleObject.js.php:274 -msgid "Article can't be displayed" -msgstr "Artikel kann nicht angezeigt werden" - -#: scripts/langref.php:16 scripts/articleObject.js.php:274 -#: scripts/articleObject.js.php:305 scripts/articleObject.js.php:335 -#: scripts/articleObject.js.php:360 scripts/articleObject.js.php:379 -msgid "No article was selected" -msgstr "Kein Artikel ausgewählt" - -#: scripts/langref.php:17 scripts/articleObject.js.php:305 -msgid "Template configuration can't be displayed" -msgstr "Template-Konfiguration kann nicht angezeigt werden" - -#: scripts/langref.php:18 scripts/articleObject.js.php:257 -#: scripts/articleObject.js.php:290 scripts/articleObject.js.php:319 -#: scripts/articleObject.js.php:335 -msgid "Editor can't be displayed" -msgstr "Editor kann nicht angezeigt werden" - -#: scripts/langref.php:19 scripts/articleObject.js.php:360 -msgid "Preview can't be displayed" -msgstr "Vorschau kann nicht angezeigt werden" - -#: scripts/langref.php:24 -msgid "Headline / HTML" -msgstr "Überschrift / HTML" - -#: scripts/langref.php:25 -msgid "Text / HTML" -msgstr "Text / HTML" - -#: scripts/langref.php:26 -msgid "Text / Standard" -msgstr "Text / Standard" - -#: scripts/langref.php:27 -msgid "Picture" -msgstr "Bild" - -#: scripts/langref.php:29 -msgid "Description / Standard" -msgstr "Beschreibung / Standard" - -#: scripts/langref.php:30 -msgid "Flash Movie" -msgstr "Flash-Film" - -#: scripts/langref.php:32 -msgid "Frame" -msgstr "Frame" - -#: scripts/articleObject.js.php:257 scripts/articleObject.js.php:290 -#: scripts/articleObject.js.php:319 -msgid "Can't edit articles in foreign languages." -msgstr "" -"Artikel ist in nicht-aktiver bzw. nicht synchronisierter Sprache nicht " -"bearbeitbar." - -#: scripts/articleObject.js.php:379 -msgid "Tab can't be displayed" -msgstr "Reiter kann nicht angezeigt werden" +"%s" #~ msgid "No" #~ msgstr "Nein" diff --git a/conlite/locale/potfiles.txt b/conlite/locale/potfiles.txt index aa6c315..0c0a86b 100644 --- a/conlite/locale/potfiles.txt +++ b/conlite/locale/potfiles.txt @@ -1,585 +1,614 @@ -./main.php -./tools/phpcompatinfo.php -./tools/mpAutoloaderClassMap/mpClassTypeFinder.php -./tools/mpAutoloaderClassMap/mpClassMapFileCreator.php -./tools/mpAutoloaderClassMap/mpClassMapFileCreatorContenido.php -./tools/create_autoloader_cfg.php -./includes/include.system_configuration.php -./includes/functions.con2.php -./includes/include.left_top_blank.php -./includes/include.lang_edit.php -./includes/include.CMS_SIMPLELINK.php -./includes/functions.upl.php -./includes/include.frontend.user_edit.php -./includes/include.lay_preview.php -./includes/rights.inc.php -./includes/include.grouprights_menu.php -./includes/functions.api.category.php -./includes/include.upl_left_top.php -./includes/include.mod_sync.php -./includes/include.tpl_visualedit.php -./includes/include.logs.php -./includes/include.frontend.group_rights.php -./includes/include.style_files_overview.php -./includes/include.CMS_IMG.php -./includes/include.tpl_new.php -./includes/functions.stat.php -./includes/include.upl_files_overview.php -./includes/include.tplcfg_edit.php -./includes/grouprights_lay.inc.php -./includes/include.grouprights_left_top.php -./includes/include.blank.php -./includes/functions.api.string.php -./includes/include.tpl_edit_form.php -./includes/include.js_edit_form.php -./includes/include.CMS_HEAD.php -./includes/functions.api.images.php -./includes/functions.api.php -./includes/include.CMS_LINK.php -./includes/include.tpl_overview.php -./includes/functions.system.php -./includes/include.stat_left_top.php -./includes/include.grouprights_create.php -./includes/include.html_tpl_history.php -./includes/include.default_subnav.php -./includes/include.client_left_top.php -./includes/rights_lay.inc.php -./includes/include.todo.popup.php -./includes/include.lay_new.php -./includes/functions.general.php -./includes/rights_mod.inc.php -./includes/include.CMS_HTMLTEXT.php -./includes/index.php -./includes/include.client_artspec.php -./includes/include.mycontenido.tasks.php -./includes/include.systemsettings.php -./includes/include.con_edit_form.php -./includes/include.CMS_EASYIMG.php -./includes/grouprights_str.inc.php -./includes/include.upl_dirs_overview.php -./includes/include.pretplcfg_edit.php -./includes/api/functions.frontend.list.php -./includes/api/functions.api.general.php -./includes/include.tplcfg_edit_form.php -./includes/include.rights_menu.php -./includes/include.mod_translate_stringlist.php -./includes/include.CMS_SWF.php -./includes/include.info.php -./includes/include.CMS_HTMLHEAD.php -./includes/functions.tpl.php -./includes/include.con_left_top.php -./includes/include.con_art_overview.php -./includes/include.frontend.user_menu.php -./includes/include.rights_external.php -./includes/include.mycontenido.tasks.edit.php -./includes/grouprights_tpl.inc.php -./includes/include.grouprights_subnav.php -./includes/rights_con.inc.php -./includes/functions.forms.php -./includes/include.upl_search_results.php -./includes/include.client_edit.php -./includes/functions.pathresolver.php -./includes/include.debug.php -./includes/include.rights_left_top.php -./includes/include.mycontenido_settings.php -./includes/include.mod_edit_form.php -./includes/startup.php -./includes/ajax/include.ajax.con.php -./includes/include.js_files_overview.php -./includes/grouprights.inc.php -./includes/include.str_subnav.php -./includes/include.lay_overview.php -./includes/include.stat_overview.php -./includes/include.mod_history.php -./includes/include.js_history.php -./includes/include.grouprights_details.php -./includes/include.mod_translate.php -./includes/include.mod_package.php -./includes/include.clientsettings.php -./includes/include.system_db_backup.php -./includes/include.upl_artlist.php -./includes/include.js_left_top.php -./includes/include.stat_menu.php -./includes/include.con_editcontent.php -./includes/functions.con.php -./includes/include.lay_history.php -./includes/include.note.display.php -./includes/include.con_subnav.php -./includes/include.upl_edit.php -./includes/functions.file.php -./includes/include.mycontenido_lastarticles.php -./includes/include.grouprights_overview.php -./includes/functions.includePluginConf.php -./includes/include.upl_files_upload.php -./includes/include.lay_edit_form.php -./includes/include.rights_overview.php -./includes/functions.database.php -./includes/include.pretplcfg_edit_form.php -./includes/include.files_subnav.php -./includes/functions.rights.php -./includes/grouprights_area.inc.php -./includes/include.mod_overview.php -./includes/include.lang_left_top.php -./includes/include.backendedit.php -./includes/include.frontend.group.subnav.php -./includes/include.html_tpl_files_overview.php -./includes/grouprights_mod.inc.php -./includes/include.CMS_HTML.php -./includes/include.frontend.group_edit.php -./includes/functions.php54.php -./includes/grouprights_members.inc.php -./includes/globals_off.inc.php -./includes/include.style_left_top.php -./includes/functions.str.php -./includes/include.html_tpl_edit_form.php -./includes/functions.domxml-php4-to-php5.php -./includes/include.grouprights_external.php -./includes/main.login.php -./includes/cfg_language_de.inc.php -./includes/include.style_history.php -./includes/include.style_edit_form.php -./includes/include.con_str_overview.php -./includes/include.frontend.left_top.php -./includes/include.mod_new.php -./includes/functions.lang.php -./includes/include.str_overview.php -./includes/functions.i18n.php -./includes/include.upl_subnav.php -./includes/include.CMS_TEXT.php -./includes/functions.encoding.php -./includes/include.html_tpl_left_top.php -./includes/grouprights_con.inc.php -./includes/include.lang_overview.php -./includes/pseudo-cron.inc.php -./includes/include.CMS_QRCODE.php -./includes/include.system_sysvalues.php -./includes/include.symbolhelp.php -./includes/include.frontend.group_menu.php -./includes/include.rights_create.php -./includes/functions.mod.php -./includes/rights_str.inc.php -./includes/rights_area.inc.php -./includes/include.client_menu.php -./includes/include.note.popup.php -./includes/functions.lay.php -./includes/old.config.misc.php -./includes/rights_tpl.inc.php -./includes/include.system_purge.php -./includes/include.subnav.php -./backend_search.php -./ajaxmain.php -./logout.php -./images/index.php -./external/edit_area/edit_area_compressor_cl.php -./external/edit_area/class.edit_area.php -./external/edit_area/template.html -./external/edit_area/plugins/charmap/popup.html -./external/edit_area/edit_area_compressor.php -./external/index.php -./external/backendedit/front_content.php -./external/PHPMailer/test/contents.html -./external/PHPMailer/test/test_callback.php -./external/PHPMailer/test/testemail.php -./external/PHPMailer/test/phpmailerTest.php -./external/PHPMailer/class.phpmailer.php -./external/PHPMailer/class.pop3.php -./external/PHPMailer/class.smtp.php -./external/PHPMailer/examples/test_smtp_gmail_advanced.php -./external/PHPMailer/examples/contents.html -./external/PHPMailer/examples/test_smtp_advanced.php -./external/PHPMailer/examples/test_pop_before_smtp_advanced.php -./external/PHPMailer/examples/test_db_smtp_basic.php -./external/PHPMailer/examples/test_smtp_basic.php -./external/PHPMailer/examples/test_mail_basic.php -./external/PHPMailer/examples/test_pop_before_smtp_basic.php -./external/PHPMailer/examples/test_smtp_basic_no_auth.php -./external/PHPMailer/examples/test_sendmail_advanced.php -./external/PHPMailer/examples/test_mail_advanced.php -./external/PHPMailer/examples/test_smtp_gmail_basic.php -./external/PHPMailer/examples/index.html -./external/PHPMailer/examples/test_smtp_advanced_no_auth.php -./external/PHPMailer/examples/test_sendmail_basic.php -./external/PHPMailer/language/phpmailer.lang-tr.php -./external/PHPMailer/language/phpmailer.lang-ca.php -./external/PHPMailer/language/phpmailer.lang-dk.php -./external/PHPMailer/language/phpmailer.lang-fo.php -./external/PHPMailer/language/phpmailer.lang-et.php -./external/PHPMailer/language/phpmailer.lang-ja.php -./external/PHPMailer/language/phpmailer.lang-nl.php -./external/PHPMailer/language/phpmailer.lang-ch.php -./external/PHPMailer/language/phpmailer.lang-es.php -./external/PHPMailer/language/phpmailer.lang-it.php -./external/PHPMailer/language/phpmailer.lang-ro.php -./external/PHPMailer/language/phpmailer.lang-zh.php -./external/PHPMailer/language/phpmailer.lang-br.php -./external/PHPMailer/language/phpmailer.lang-zh_cn.php -./external/PHPMailer/language/phpmailer.lang-cz.php -./external/PHPMailer/language/phpmailer.lang-hu.php -./external/PHPMailer/language/phpmailer.lang-pl.php -./external/PHPMailer/language/phpmailer.lang-se.php -./external/PHPMailer/language/phpmailer.lang-fr.php -./external/PHPMailer/language/phpmailer.lang-fi.php -./external/PHPMailer/language/phpmailer.lang-no.php -./external/PHPMailer/language/phpmailer.lang-ar.php -./external/PHPMailer/language/phpmailer.lang-de.php -./external/PHPMailer/language/phpmailer.lang-ru.php -./external/PHPMailer/aboutus.html -./external/PHPMailer/docs/faq.html -./external/PHPMailer/docs/extending.html -./external/frontend/includes/index.php -./external/frontend/includes/class.input.helper.php -./external/frontend/includes/concache.php -./external/frontend/includes/class.concache.php -./external/frontend/js/index.php -./external/frontend/dbfs.php -./external/frontend/images/index.php -./external/frontend/index.php -./external/frontend/css/index.php -./external/frontend/error.php -./external/frontend/templates/index.php -./external/frontend/front_content.php -./external/frontend/front_crcloginform.inc.php -./external/frontend/config.php -./external/frontend/cache/index.php -./external/frontend/logs/index.php -./external/phpqrcode/tools/merged_config.php -./external/phpqrcode/tools/merged_header.php -./external/phpqrcode/tools/merge.php -./external/phpqrcode/bindings/tcpdf/qrcode.php -./external/phpqrcode/qrbitstream.php -./external/phpqrcode/qrinput.php -./external/phpqrcode/index.php -./external/phpqrcode/qrconst.php -./external/phpqrcode/qrimage.php -./external/phpqrcode/qrconfig.php -./external/phpqrcode/qrrscode.php -./external/phpqrcode/qrtools.php -./external/phpqrcode/qrsplit.php -./external/phpqrcode/phpqrcode.php -./external/phpqrcode/qrmask.php -./external/phpqrcode/qrencode.php -./external/phpqrcode/qrspec.php -./external/phpqrcode/qrlib.php -./external/wysiwyg/tinymce3/editor.php -./external/wysiwyg/tinymce3/editorclass.php -./external/wysiwyg/tinymce3/jscripts/tiny_mce/plugins/preview/preview.html -./external/wysiwyg/tinymce3/jscripts/tiny_mce/plugins/preview/example.html -./external/wysiwyg/tinymce3/list.php -./external/wysiwyg/tinymce3/tiny_mce_gzip.php -./external/wysiwyg/tinymce3/tinymce.tpl.html -./external/wysiwyg/tinymce3/config.php -./external/wysiwyg/index.php -./index.php -./subnav.php -./templates/index.php -./templates/standard/template.cms_filelist_metadata_limititem.html -./templates/standard/template.blank.html -./templates/standard/template.mycontenido_subnav.html -./templates/standard/template.system_purge.html -./templates/standard/template.grouprights_memberselect.html -./templates/standard/template.con_str_overview.html -./templates/standard/template.tplcfg_edit_form.html -./templates/standard/template.tpl_edit_form.html -./templates/standard/frameset_content_right.html -./templates/standard/template.generic_form.html -./templates/standard/template.js_left_top.html -./templates/standard/template.symbolhelp.html -./templates/standard/template.mycontenido_start.html -./templates/standard/template.cms_teaser_edit.html -./templates/standard/template.backend_search_results.html -./templates/standard/template.generic_page.html -./templates/standard/template.file_subnav.html -./templates/standard/template.info.html -./templates/standard/template.inuse_lay_mod.html -./templates/standard/submenu.html -./templates/standard/template.system_variables.html -./templates/standard/template.newsletter_edit.html -./templates/standard/template.upl_left_top.html -./templates/standard/template.rights_inc.html -./templates/standard/template.deco.html -./templates/standard/widgets/template.widgets.left_top.html -./templates/standard/template.str_overview.html -./templates/standard/template.stat_menu.html -./templates/standard/template.generic_list_row.html -./templates/standard/template.lang_overview.html -./templates/standard/template.subnav_blank.html -./templates/standard/template.rights_overview.html -./templates/standard/template.client_subnav.html -./templates/standard/index.php -./templates/standard/template.con_art_overview.html -./templates/standard/template.system_subnav.html -./templates/standard/template.grouprights_overview.html -./templates/standard/frameset.html -./templates/standard/template.cms_filelist_edit.html -./templates/standard/template.html_tpl_left_top.html -./templates/standard/template.lang_edit.html -./templates/standard/template.con_subnav.html -./templates/standard/html5/template.generic_page.html -./templates/standard/template.tpl_overview.html -./templates/standard/template.grouprights_memberlist.html -./templates/standard/template.lang_left_top.html -./templates/standard/template.generic_list.html -./templates/standard/template.log_menu.html -./templates/standard/template.grouprights_menu.html -./templates/standard/template.generic_left_top.html -./templates/standard/white.html -./templates/standard/template.recipient_edit.html -./templates/standard/template.newsletter_menu.html -./templates/standard/template.default_subnav.html -./templates/standard/template.mycontenido_settings.html -./templates/standard/template.client_edit.html -./templates/standard/template.right_top_blank.html -./templates/standard/template.left_top.html -./templates/standard/template.subnav.html -./templates/standard/template.stat_top.html -./templates/standard/template.client_menu.html -./templates/standard/template.recipient_left_top.html -./templates/standard/filler.html -./templates/standard/template.con_edit_form.html -./templates/standard/template.con_str_overview.list.html -./templates/standard/template.left_top_blank.html -./templates/standard/template.upl_dirs_overview.html -./templates/standard/generic_list.html -./templates/standard/template.mod_left_top.html -./templates/standard/template.stat_subnav.html -./templates/standard/template.con_left_top.html -./templates/standard/frameset_menuless_content.html -./templates/standard/template.cms_filelist_dirlistitem.html -./templates/standard/template.rights_menu.html -./templates/standard/header.html -./templates/standard/template.rights_details.html -./templates/standard/template.grouprights_create.html -./templates/standard/frameset_content_left.html -./templates/standard/template.mycontenido_lastarticles.html -./templates/standard/template.welcome.html -./templates/standard/template.newsletter_left_top.html -./templates/standard/template.upl_files_overview.html -./templates/standard/template.select.html -./templates/standard/template.generic_table_form.html -./templates/standard/template.mod_edit_form.html -./templates/standard/template.con_subnav_noleft.html -./templates/standard/template.grouprights_left_top.html -./templates/standard/template.admin_frontend.html -./templates/standard/template.generic_menu.html -./templates/standard/template.recipient_menu.html -./templates/standard/template.request_password.html -./templates/standard/template.client_left_top.html -./templates/standard/template.rights_left_top.html -./templates/standard/template.style_left_top.html -./templates/standard/template.files_overview.html -./templates/standard/template.lay_overview.html -./templates/standard/template.stat_left_top.html -./templates/standard/template.inuse_tpl.html -./templates/standard/template.lay_edit_form.html -./templates/standard/template.grouprights_details.html -./templates/standard/template.welcome_update.html -./templates/standard/template.subnav_noleft.html -./templates/standard/template.rights_create.html -./templates/standard/template.log_main.html -./templates/standard/template.stat_overview.html -./templates/standard/frameset_content.html -./cronjobs/setfrontenduserstate.php -./cronjobs/send_reminder.php -./cronjobs/index.php -./cronjobs/move_old_stats.php -./cronjobs/linkchecker.php -./cronjobs/optimize_database.php -./cronjobs/session_cleanup.php -./cronjobs/run_newsletter_job.php -./cronjobs/advance_workflow.php -./cronjobs/move_articles.php -./main.loginform.php -./classes/Url/Contenido_Url.class.php -./classes/class.versionFile.php -./classes/class.cec.php -./classes/abstract_classes/class.conuser.php -./classes/class.csv.php -./classes/class.backend.php -./classes/class.frontend.groups.php -./classes/class.htmlparser.php -./classes/class.xsltprocessor.php -./classes/class.request.password.php -./classes/class.cec_hook.php -./classes/class.area.php -./classes/class.notification.php -./classes/widgets/class.views.advancedmenu.php -./classes/widgets/class.widgets.actionlist.php -./classes/widgets/class.widgets.tableedit.php -./classes/widgets/class.widgets.actionbutton.php -./classes/widgets/class.widgets.foldingrow.php -./classes/widgets/class.widgets.datawidgets.php -./classes/widgets/class.widgets.datefield.php -./classes/widgets/class.widgets.switchabledatechooser.php -./classes/widgets/class.widgets.treeview.php -./classes/widgets/class.widgets.views.php -./classes/widgets/class.widgets.dateselect.php -./classes/widgets/class.widgets.pager.php -./classes/widgets/class.widgets.page.php -./classes/widgets/class.widgets.buttons.php -./classes/widgets/class.widgets.datechooser.php -./classes/widgets/class.widgets.nominaltextfield.php -./classes/widgets/class.widgets.calendar.php -./classes/class.genericdb.php -./classes/class.treeitem.php -./classes/class.frontend.logic.php +./frameset_right.php +./xml/index.php +./classes/xml/class.xml.base.php +./classes/xml/class.xml.writer.php +./classes/xml/class.xml2array.php +./classes/xml/class.xml.reader.php ./classes/con2con/class.filehandler.php ./classes/con2con/class.registry.php ./classes/con2con/class.dirhandler.php -./classes/class.autoload.php -./classes/exceptions/exception.conuser.php -./classes/class.versionImport.php -./classes/class.ui.php -./classes/class.user.php -./classes/class.metaobject.php -./classes/index.php -./classes/class.cms_teaser.php -./classes/class.ajax.php -./classes/class.iterator.php -./classes/Debug/Debug_File.class.php -./classes/Debug/DebuggerFactory.class.php -./classes/Debug/Debug_DevNull.class.php -./classes/Debug/Debug_Hidden.class.php -./classes/Debug/Debug_Visible.class.php -./classes/Debug/Sample.php -./classes/Debug/Debug_VisibleAdv.class.php -./classes/Debug/IDebug.php -./classes/class.frontend.users.php -./classes/class.action.php -./classes/class.cms_date.php -./classes/class.versionModule.php -./classes/class.purge.php -./classes/datatypes/class.datatype.number.php -./classes/datatypes/class.datatype.currency.php -./classes/datatypes/class.datatype.datetime.php -./classes/datatypes/class.datatype.php -./classes/class.version.php +./classes/class.frontend.logic.php ./classes/class.conuser.php -./classes/cApi/class.upload.meta.php -./classes/cApi/class.action.php -./classes/cApi/class.system_property.php -./classes/cApi/class.upload.php -./classes/cApi/class.stat_archive.php -./classes/cApi/class.stat.php -./classes/class.structure.php -./classes/class.search.php -./classes/class.input.helper.php -./classes/class.security.php -./classes/class.phpmailer.php -./classes/class.chartable.php -./classes/class.xmltree.php -./classes/class.templateconfig.php -./classes/class.form.php -./classes/class.htmlvalidator.php -./classes/class.update.notifier.php -./classes/class.httpinputvalidator.php -./classes/tree/class.ctreeitem.php -./classes/tree/class.ctree.php +./classes/class.action.php ./classes/interfaces/interface.conuser.php -./classes/class.lang.php -./classes/cHTML5/class.chtml5.list.element.php -./classes/cHTML5/class.chtml5.button.php -./classes/cHTML5/class.chtml5.meta.php -./classes/cHTML5/class.chtml.php -./classes/cHTML5/class.chtml5.list.php -./classes/class.xml.php -./classes/Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php -./classes/Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php -./classes/Contenido_FrontendNavigation/Contenido_FrontendNavigation_Base.class.php -./classes/Contenido_FrontendNavigation/Sample.php -./classes/class.smtp.php -./classes/class.dbfs.php -./classes/template/class.clCounterFunctionParser.php -./classes/template/class.clStrAPIFunctionsParser.php -./classes/template/class.clAbstractTemplateParser.php -./classes/template/class.template.php -./classes/template/class.clIfFunctionParser.php -./classes/class.communications.php -./classes/class.group.php -./classes/contenido/class.clientslang.php -./classes/contenido/class.file.php -./classes/contenido/class.area.php -./classes/contenido/class.articlelanguage.php -./classes/contenido/class.categorytree.php -./classes/contenido/class.user.php -./classes/contenido/class.metatag.php -./classes/contenido/class.containerconfig.php -./classes/contenido/class.templateconfig.php -./classes/contenido/class.language.php -./classes/contenido/class.type.php -./classes/contenido/class.layout.php -./classes/contenido/class.categoryarticle.php -./classes/contenido/class.category.php -./classes/contenido/class.container.php -./classes/contenido/class.client.php -./classes/contenido/class.article.php -./classes/contenido/class.framefile.php -./classes/contenido/class.categorylanguage.php -./classes/contenido/class.metatype.php -./classes/contenido/class.template.php -./classes/contenido/class.module.php -./classes/contenido/class.content.php -./classes/class.todo.php ./classes/class.artspec.php -./classes/class.layout.php -./classes/class.xmlparser.php -./classes/UrlBuilder/Contenido_UrlBuilder_CustomPath.class.php -./classes/UrlBuilder/Contenido_UrlBuilder_Frontcontent.class.php -./classes/UrlBuilder/Contenido_UrlBuilderFactory.class.php -./classes/UrlBuilder/Contenido_UrlBuilder_Custom.class.php -./classes/UrlBuilder/Sample.php -./classes/UrlBuilder/Contenido_UrlBuilderConfig.class.php -./classes/UrlBuilder/Contenido_UrlBuilder.class.php -./classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php -./classes/class.cl_db_backup.php -./classes/log/class.log.writer.php +./classes/class.version.php +./classes/class.table.php ./classes/log/class.modulelog.php +./classes/log/class.log.writer.php ./classes/log/class.log.writer.file.php ./classes/log/class.log.php -./classes/class.upload.php -./classes/class.versionLayout.php +./classes/class.frontend.users.php +./classes/Debug/Debug_File.class.php +./classes/Debug/Sample.php +./classes/Debug/Debug_Hidden.class.php +./classes/Debug/Debug_Visible.class.php +./classes/Debug/IDebug.php +./classes/Debug/DebuggerFactory.class.php +./classes/Debug/Debug_VisibleAdv.class.php +./classes/Debug/Debug_DevNull.class.php +./classes/class.cec_hook.php +./classes/class.backend.php +./classes/class.article.php +./classes/class.user.php +./classes/class.cl_db_backup.php +./classes/class.form.php ./classes/class.activeusers.php +./classes/contenido/class.categoryarticle.php +./classes/contenido/class.container.php +./classes/contenido/class.metatype.php +./classes/contenido/class.language.php +./classes/contenido/class.article.php +./classes/contenido/class.user.php +./classes/contenido/class.framefile.php +./classes/contenido/class.clientslang.php +./classes/contenido/class.file.php +./classes/contenido/class.module.php +./classes/contenido/class.client.php +./classes/contenido/class.type.php +./classes/contenido/class.template.php +./classes/contenido/class.templateconfig.php +./classes/contenido/class.area.php +./classes/contenido/class.articlelanguage.php +./classes/contenido/class.categorylanguage.php +./classes/contenido/class.metatag.php +./classes/contenido/class.category.php +./classes/contenido/class.layout.php +./classes/contenido/class.containerconfig.php +./classes/contenido/class.content.php +./classes/contenido/class.categorytree.php +./classes/class.notification.php +./classes/class.communications.php +./classes/class.versionLayout.php +./classes/class.group.php +./classes/class.xsltprocessor.php +./classes/class.input.helper.php +./classes/class.client.php +./classes/class.navigation.php ./classes/class.wysiwyg_editor.php -./classes/class.category.php +./classes/class.ui.php +./classes/index.php +./classes/class.request.password.php +./classes/Url/Contenido_Url.class.php +./classes/class.cat.php +./classes/class.upload.php ./classes/content_types/class.content.type.abstract.php +./classes/class.dbfs.php +./classes/class.excel.php +./classes/class.chartable.php +./classes/class.versionImport.php +./classes/cHTML5/class.chtml5.meta.php +./classes/cHTML5/class.chtml5.button.php +./classes/cHTML5/class.chtml5.list.php +./classes/cHTML5/class.chtml.php +./classes/cHTML5/class.chtml5.list.element.php +./classes/class.string.php +./classes/class.cms_date.php +./classes/class.cec.php +./classes/class.xml.php +./classes/class.template.php +./classes/class.templateconfig.php +./classes/class.htmlvalidator.php +./classes/class.csv.php +./classes/abstract_classes/class.conuser.php +./classes/class.structure.php +./classes/class.area.php +./classes/class.xmlparser.php +./classes/class.string.multi.byte.wrapper.php +./classes/Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php +./classes/Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php +./classes/Contenido_FrontendNavigation/Sample.php +./classes/Contenido_FrontendNavigation/Contenido_FrontendNavigation_Base.class.php +./classes/class.frontend.permissions.php +./classes/class.ajax.php +./classes/class.htmlelements.php +./classes/class.todo.php +./classes/class.htmlparser.php +./classes/Contenido_Category/Contenido_Category_Articles.class.php +./classes/Contenido_Category/Sample.php +./classes/Contenido_Category/Contenido_Category.class.php +./classes/class.update.notifier.php +./classes/class.i18n.php +./classes/class.autoload.php +./classes/tree/class.ctreeitem.php +./classes/tree/class.ctree.php +./classes/class.purge.php +./classes/class.treeitem.php +./classes/class.properties.php +./classes/genericdb/class.item.cache.php +./classes/genericdb/class.item.base.abstract.php +./classes/class.genericdb.php +./classes/class.note.php +./classes/class.cms_teaser.php +./classes/UrlBuilder/Contenido_UrlBuilderConfig.class.php +./classes/UrlBuilder/Contenido_UrlBuilder_Custom.class.php +./classes/UrlBuilder/Contenido_UrlBuilder.class.php +./classes/UrlBuilder/Sample.php +./classes/UrlBuilder/Contenido_UrlBuilder_CustomPath.class.php +./classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php +./classes/UrlBuilder/Contenido_UrlBuilder_Frontcontent.class.php +./classes/UrlBuilder/Contenido_UrlBuilderFactory.class.php +./classes/class.versionModule.php +./classes/class.smtp.php +./classes/class.security.php +./classes/class.xmltree.php +./classes/class.lang.php +./classes/class.inuse.php +./classes/class.cms_filelist.php +./classes/class.category.php +./classes/class.frontend.groups.php +./classes/class.article.collector.php +./classes/datatypes/class.datatype.number.php +./classes/datatypes/class.datatype.datetime.php +./classes/datatypes/class.datatype.currency.php +./classes/datatypes/class.datatype.php +./classes/cApi/class.nav.main.php +./classes/cApi/class.action.php +./classes/cApi/class.upload.php +./classes/cApi/class.system_property.php +./classes/cApi/class.upload.meta.php +./classes/cApi/class.stat.php +./classes/cApi/class.stat_archive.php +./classes/cApi/class.nav.sub.php +./classes/template/class.clIfFunctionParser.php +./classes/template/class.clAbstractTemplateParser.php +./classes/template/class.template.php +./classes/template/class.clCounterFunctionParser.php +./classes/template/class.clStrAPIFunctionsParser.php +./classes/class.versionFile.php +./classes/class.layout.php ./classes/frontend/navigation/class.frontend.navigation.php ./classes/frontend/navigation/class.frontend.navigation.abstract.php -./classes/class.frontend.permissions.php -./classes/class.htmlelements.php -./classes/class.client.php -./classes/xml/class.xml.base.php -./classes/xml/class.xml.writer.php -./classes/xml/class.xml.reader.php -./classes/xml/class.xml2array.php -./classes/class.navigation.php -./classes/class.cat.php -./classes/drivers/mysql/class.gdb.mysql.php -./classes/drivers/class.gdb.driver.php -./classes/class.properties.php -./classes/class.note.php -./classes/class.article.php -./classes/class.inuse.php -./classes/class.output_compressor.php -./classes/class.article.collector.php -./classes/class.cms_filelist.php -./classes/class.excel.php -./classes/Contenido_Category/Contenido_Category_Articles.class.php -./classes/Contenido_Category/Contenido_Category.class.php -./classes/Contenido_Category/Sample.php -./classes/class.template.php -./classes/class.table.php +./classes/class.httpinputvalidator.php +./classes/exceptions/exception.conuser.php ./classes/class.art.php -./header.php -./frameset.php -./frameset_left.php -./frameset_right.php -./styles/index.php -./xml/index.php -./scripts/HTMLObj.js.php -./scripts/help.js.php +./classes/class.iterator.php +./classes/widgets/class.widgets.pager.php +./classes/widgets/class.widgets.views.php +./classes/widgets/class.widgets.calendar.php +./classes/widgets/class.widgets.actionbutton.php +./classes/widgets/class.widgets.actionlist.php +./classes/widgets/class.widgets.treeview.php +./classes/widgets/class.widgets.datechooser.php +./classes/widgets/class.widgets.datawidgets.php +./classes/widgets/class.widgets.dateselect.php +./classes/widgets/class.views.advancedmenu.php +./classes/widgets/class.widgets.switchabledatechooser.php +./classes/widgets/class.widgets.tableedit.php +./classes/widgets/class.widgets.buttons.php +./classes/widgets/class.widgets.page.php +./classes/widgets/class.widgets.nominaltextfield.php +./classes/widgets/class.widgets.foldingrow.php +./classes/widgets/class.widgets.datefield.php +./classes/drivers/class.gdb.driver.php +./classes/drivers/mysql/class.gdb.mysql.php +./classes/class.search.php +./classes/class.metaobject.php +./classes/class.output_compressor.php +./main.php +./logs/index.php +./templates/index.php +./templates/standard/filler.html +./templates/standard/template.log_menu.html +./templates/standard/template.con_subnav_noleft.html +./templates/standard/template.generic_page.html +./templates/standard/template.cms_teaser_edit.html +./templates/standard/template.mod_left_top.html +./templates/standard/header.html +./templates/standard/template.lang_left_top.html +./templates/standard/template.files_overview.html +./templates/standard/template.info.html +./templates/standard/template.con_subnav.html +./templates/standard/template.con_art_overview.html +./templates/standard/template.stat_overview.html +./templates/standard/template.grouprights_create.html +./templates/standard/template.grouprights_details.html +./templates/standard/template.stat_top.html +./templates/standard/template.grouprights_memberlist.html +./templates/standard/template.newsletter_edit.html +./templates/standard/template.recipient_edit.html +./templates/standard/template.generic_list_row.html +./templates/standard/template.welcome_update.html +./templates/standard/template.subnav.html +./templates/standard/template.mycontenido_start.html +./templates/standard/frameset.html +./templates/standard/frameset_menuless_content.html +./templates/standard/template.request_password.html +./templates/standard/template.deco.html +./templates/standard/template.left_top_blank.html +./templates/standard/template.client_menu.html +./templates/standard/template.client_subnav.html +./templates/standard/template.welcome.html +./templates/standard/template.upl_dirs_overview.html +./templates/standard/template.system_variables.html +./templates/standard/template.rights_overview.html +./templates/standard/template.mycontenido_lastarticles.html +./templates/standard/template.client_edit.html +./templates/standard/template.default_subnav.html +./templates/standard/template.grouprights_memberselect.html +./templates/standard/template.mycontenido_settings.html +./templates/standard/template.upl_left_top.html +./templates/standard/template.grouprights_menu.html +./templates/standard/template.tpl_overview.html +./templates/standard/template.rights_inc.html +./templates/standard/html5/template.generic_page.html +./templates/standard/template.lay_edit_form.html +./templates/standard/template.inuse_tpl.html +./templates/standard/template.subnav_noleft.html +./templates/standard/template.lang_edit.html +./templates/standard/index.php +./templates/standard/template.rights_menu.html +./templates/standard/template.con_edit_form.html +./templates/standard/template.tplcfg_edit_form.html +./templates/standard/template.right_top_blank.html +./templates/standard/template.con_str_overview.html +./templates/standard/generic_list.html +./templates/standard/template.grouprights_left_top.html +./templates/standard/template.generic_list.html +./templates/standard/template.cms_filelist_metadata_limititem.html +./templates/standard/template.style_left_top.html +./templates/standard/frameset_content.html +./templates/standard/template.admin_frontend.html +./templates/standard/template.mycontenido_subnav.html +./templates/standard/template.cms_filelist_edit.html +./templates/standard/template.subnav_blank.html +./templates/standard/template.file_subnav.html +./templates/standard/template.symbolhelp.html +./templates/standard/template.generic_left_top.html +./templates/standard/template.log_main.html +./templates/standard/white.html +./templates/standard/template.blank.html +./templates/standard/template.generic_table_form.html +./templates/standard/template.tpl_edit_form.html +./templates/standard/template.rights_left_top.html +./templates/standard/template.generic_form.html +./templates/standard/frameset_content_left.html +./templates/standard/template.generic_menu.html +./templates/standard/template.html_tpl_left_top.html +./templates/standard/template.rights_details.html +./templates/standard/template.backend_search_results.html +./templates/standard/template.lay_overview.html +./templates/standard/template.newsletter_left_top.html +./templates/standard/template.client_left_top.html +./templates/standard/template.stat_menu.html +./templates/standard/template.left_top.html +./templates/standard/template.stat_left_top.html +./templates/standard/frameset_content_right.html +./templates/standard/template.cms_filelist_dirlistitem.html +./templates/standard/template.inuse_lay_mod.html +./templates/standard/template.rights_create.html +./templates/standard/submenu.html +./templates/standard/template.upl_files_overview.html +./templates/standard/template.js_left_top.html +./templates/standard/template.select.html +./templates/standard/template.lang_overview.html +./templates/standard/template.str_overview.html +./templates/standard/template.stat_subnav.html +./templates/standard/template.con_str_overview.list.html +./templates/standard/template.system_purge.html +./templates/standard/template.mod_edit_form.html +./templates/standard/template.system_subnav.html +./templates/standard/template.newsletter_menu.html +./templates/standard/template.recipient_left_top.html +./templates/standard/template.recipient_menu.html +./templates/standard/widgets/template.widgets.left_top.html +./templates/standard/template.con_left_top.html +./templates/standard/template.grouprights_overview.html +./scripts/iZoom.js.php ./scripts/index.php +./scripts/HTMLObj.js.php ./scripts/messageBox.js.php ./scripts/rights.js.php -./scripts/langref.php ./scripts/articleObject.js.php -./scripts/iZoom.js.php -./logs/index.php +./scripts/help.js.php +./scripts/langref.php +./includes/include.CMS_TEXT.php +./includes/include.mod_package.php +./includes/rights.inc.php +./includes/include.upl_dirs_overview.php +./includes/include.CMS_SWF.php +./includes/include.lay_edit_form.php +./includes/include.mod_new.php +./includes/include.lang_edit.php +./includes/include.rights_menu.php +./includes/include.stat_overview.php +./includes/functions.api.category.php +./includes/include.CMS_SIMPLELINK.php +./includes/include.system_db_backup.php +./includes/functions.general.php +./includes/functions.api.php +./includes/rights_lay.inc.php +./includes/grouprights_mod.inc.php +./includes/functions.includePluginConf.php +./includes/grouprights_str.inc.php +./includes/include.str_subnav.php +./includes/functions.api.images.php +./includes/include.CMS_QRCODE.php +./includes/include.todo.popup.php +./includes/include.lay_history.php +./includes/include.lay_overview.php +./includes/functions.pathresolver.php +./includes/include.mod_edit_form.php +./includes/include.mycontenido.tasks.php +./includes/include.CMS_HTMLHEAD.php +./includes/rights_area.inc.php +./includes/include.systemsettings.php +./includes/include.rights_create.php +./includes/include.lang_left_top.php +./includes/include.html_tpl_history.php +./includes/include.system_purge.php +./includes/grouprights.inc.php +./includes/include.rights_left_top.php +./includes/include.con_editcontent.php +./includes/include.grouprights_left_top.php +./includes/functions.php54.php +./includes/include.mycontenido_lastarticles.php +./includes/include.style_history.php +./includes/include.left_top_blank.php +./includes/include.tplcfg_edit.php +./includes/functions.con.php +./includes/include.frontend.user_menu.php +./includes/pseudo-cron.inc.php +./includes/include.con_edit_form.php +./includes/include.tpl_overview.php +./includes/include.js_files_overview.php +./includes/include.grouprights_details.php +./includes/grouprights_lay.inc.php +./includes/include.symbolhelp.php +./includes/main.login.php +./includes/functions.i18n.php +./includes/include.html_tpl_edit_form.php +./includes/include.grouprights_external.php +./includes/index.php +./includes/include.frontend.group_menu.php +./includes/cfg_language_de.inc.php +./includes/include.files_subnav.php +./includes/functions.forms.php +./includes/include.frontend.group_edit.php +./includes/grouprights_members.inc.php +./includes/include.mycontenido_settings.php +./includes/include.client_edit.php +./includes/include.upl_edit.php +./includes/include.style_edit_form.php +./includes/include.str_overview.php +./includes/include.logs.php +./includes/include.lay_preview.php +./includes/include.upl_artlist.php +./includes/include.frontend.user_edit.php +./includes/include.rights_external.php +./includes/include.js_edit_form.php +./includes/functions.system.php +./includes/include.system_configuration.php +./includes/include.rights_overview.php +./includes/include.pretplcfg_edit.php +./includes/include.upl_left_top.php +./includes/include.client_left_top.php +./includes/include.upl_subnav.php +./includes/include.CMS_LINK.php +./includes/globals_off.inc.php +./includes/rights_con.inc.php +./includes/include.debug.php +./includes/include.default_subnav.php +./includes/include.CMS_HEAD.php +./includes/include.js_history.php +./includes/functions.php73.php +./includes/include.backendedit.php +./includes/include.upl_search_results.php +./includes/include.note.popup.php +./includes/functions.stat.php +./includes/rights_mod.inc.php +./includes/api/functions.api.general.php +./includes/api/functions.frontend.list.php +./includes/include.grouprights_overview.php +./includes/include.stat_menu.php +./includes/include.clientsettings.php +./includes/include.mod_translate_stringlist.php +./includes/include.frontend.group.subnav.php +./includes/functions.file.php +./includes/include.frontend.group_rights.php +./includes/grouprights_tpl.inc.php +./includes/include.CMS_HTMLTEXT.php +./includes/functions.lang.php +./includes/include.tpl_new.php +./includes/include.lay_new.php +./includes/include.html_tpl_files_overview.php +./includes/include.system_sysvalues.php +./includes/grouprights_area.inc.php +./includes/include.upl_files_upload.php +./includes/functions.mod.php +./includes/include.CMS_EASYIMG.php +./includes/functions.database.php +./includes/include.grouprights_subnav.php +./includes/include.tpl_visualedit.php +./includes/include.note.display.php +./includes/include.js_left_top.php +./includes/include.client_artspec.php +./includes/grouprights_con.inc.php +./includes/include.lang_overview.php +./includes/include.frontend.left_top.php +./includes/functions.encoding.php +./includes/include.subnav.php +./includes/include.con_art_overview.php +./includes/include.blank.php +./includes/functions.upl.php +./includes/include.upl_files_overview.php +./includes/include.pretplcfg_edit_form.php +./includes/include.info.php +./includes/rights_tpl.inc.php +./includes/include.CMS_IMG.php +./includes/include.tpl_edit_form.php +./includes/include.style_files_overview.php +./includes/include.stat_left_top.php +./includes/include.mod_translate.php +./includes/functions.str.php +./includes/include.tplcfg_edit_form.php +./includes/include.mod_sync.php +./includes/include.html_tpl_left_top.php +./includes/rights_str.inc.php +./includes/include.mycontenido.tasks.edit.php +./includes/include.con_left_top.php +./includes/include.grouprights_menu.php +./includes/functions.lay.php +./includes/include.client_menu.php +./includes/include.grouprights_create.php +./includes/include.style_left_top.php +./includes/include.mod_history.php +./includes/ajax/include.ajax.con.php +./includes/startup.php +./includes/functions.rights.php +./includes/functions.tpl.php +./includes/include.con_str_overview.php +./includes/include.con_subnav.php +./includes/functions.api.string.php +./includes/functions.domxml-php4-to-php5.php +./includes/functions.con2.php +./includes/include.CMS_HTML.php +./includes/include.mod_overview.php +./frameset.php +./subnav.php +./index.php +./external/index.php +./external/edit_area/template.html +./external/edit_area/class.edit_area.php +./external/edit_area/edit_area_compressor_cl.php +./external/edit_area/edit_area_compressor.php +./external/edit_area/plugins/charmap/popup.html +./external/PHPMailer/class.phpmaileroauth.php +./external/PHPMailer/class.phpmaileroauthgoogle.php +./external/PHPMailer/class.phpmailer.php +./external/PHPMailer/examples/contentsutf8.html +./external/PHPMailer/examples/test_smtp_basic.php +./external/PHPMailer/examples/test_smtp_advanced.php +./external/PHPMailer/examples/test_mail_basic.php +./external/PHPMailer/examples/test_smtp_basic_no_auth.php +./external/PHPMailer/examples/index.html +./external/PHPMailer/examples/test_sendmail_advanced.php +./external/PHPMailer/examples/test_smtp_gmail_basic.php +./external/PHPMailer/examples/test_pop_before_smtp_advanced.php +./external/PHPMailer/examples/test_smtp_advanced_no_auth.php +./external/PHPMailer/examples/contents.html +./external/PHPMailer/examples/test_mail_advanced.php +./external/PHPMailer/examples/test_sendmail_basic.php +./external/PHPMailer/examples/test_db_smtp_basic.php +./external/PHPMailer/examples/test_pop_before_smtp_basic.php +./external/PHPMailer/examples/test_smtp_gmail_advanced.php +./external/PHPMailer/PHPMailerAutoload.php +./external/PHPMailer/language/phpmailer.lang-el.php +./external/PHPMailer/language/phpmailer.lang-he.php +./external/PHPMailer/language/phpmailer.lang-lv.php +./external/PHPMailer/language/phpmailer.lang-ch.php +./external/PHPMailer/language/phpmailer.lang-et.php +./external/PHPMailer/language/phpmailer.lang-lt.php +./external/PHPMailer/language/phpmailer.lang-sv.php +./external/PHPMailer/language/phpmailer.lang-da.php +./external/PHPMailer/language/phpmailer.lang-es.php +./external/PHPMailer/language/phpmailer.lang-nb.php +./external/PHPMailer/language/phpmailer.lang-de.php +./external/PHPMailer/language/phpmailer.lang-gl.php +./external/PHPMailer/language/phpmailer.lang-pl.php +./external/PHPMailer/language/phpmailer.lang-zh.php +./external/PHPMailer/language/phpmailer.lang-am.php +./external/PHPMailer/language/phpmailer.lang-pt.php +./external/PHPMailer/language/phpmailer.lang-nl.php +./external/PHPMailer/language/phpmailer.lang-fr.php +./external/PHPMailer/language/phpmailer.lang-ja.php +./external/PHPMailer/language/phpmailer.lang-cs.php +./external/PHPMailer/language/phpmailer.lang-sr.php +./external/PHPMailer/language/phpmailer.lang-tr.php +./external/PHPMailer/language/phpmailer.lang-fo.php +./external/PHPMailer/language/phpmailer.lang-fa.php +./external/PHPMailer/language/phpmailer.lang-hu.php +./external/PHPMailer/language/phpmailer.lang-bg.php +./external/PHPMailer/language/phpmailer.lang-it.php +./external/PHPMailer/language/phpmailer.lang-be.php +./external/PHPMailer/language/phpmailer.lang-ms.php +./external/PHPMailer/language/phpmailer.lang-fi.php +./external/PHPMailer/language/phpmailer.lang-vi.php +./external/PHPMailer/language/phpmailer.lang-ru.php +./external/PHPMailer/language/phpmailer.lang-pt_br.php +./external/PHPMailer/language/phpmailer.lang-sk.php +./external/PHPMailer/language/phpmailer.lang-hr.php +./external/PHPMailer/language/phpmailer.lang-id.php +./external/PHPMailer/language/phpmailer.lang-ca.php +./external/PHPMailer/language/phpmailer.lang-ka.php +./external/PHPMailer/language/phpmailer.lang-ro.php +./external/PHPMailer/language/phpmailer.lang-eo.php +./external/PHPMailer/language/phpmailer.lang-zh_cn.php +./external/PHPMailer/language/phpmailer.lang-ko.php +./external/PHPMailer/language/phpmailer.lang-sl.php +./external/PHPMailer/language/phpmailer.lang-az.php +./external/PHPMailer/language/phpmailer.lang-ar.php +./external/PHPMailer/language/phpmailer.lang-uk.php +./external/PHPMailer/extras/ntlm_sasl_client.php +./external/PHPMailer/extras/htmlfilter.php +./external/PHPMailer/extras/EasyPeasyICS.php +./external/PHPMailer/class.smtp.php +./external/PHPMailer/class.pop3.php +./external/PHPMailer/get_oauth_token.php +./external/backendedit/front_content.php +./external/phpqrcode/qrconst.php +./external/phpqrcode/qrconfig.php +./external/phpqrcode/qrmask.php +./external/phpqrcode/index.php +./external/phpqrcode/bindings/tcpdf/qrcode.php +./external/phpqrcode/qrimage.php +./external/phpqrcode/qrtools.php +./external/phpqrcode/qrrscode.php +./external/phpqrcode/qrsplit.php +./external/phpqrcode/qrbitstream.php +./external/phpqrcode/qrspec.php +./external/phpqrcode/qrencode.php +./external/phpqrcode/tools/merged_header.php +./external/phpqrcode/tools/merged_config.php +./external/phpqrcode/tools/merge.php +./external/phpqrcode/qrinput.php +./external/phpqrcode/qrlib.php +./external/phpqrcode/phpqrcode.php +./external/wysiwyg/index.php +./external/wysiwyg/tinymce3/editor.php +./external/wysiwyg/tinymce3/tinymce.tpl.html +./external/wysiwyg/tinymce3/list.php +./external/wysiwyg/tinymce3/editorclass.php +./external/wysiwyg/tinymce3/tiny_mce_gzip.php +./external/wysiwyg/tinymce3/config.php +./external/wysiwyg/tinymce3/jscripts/tiny_mce/plugins/preview/example.html +./external/wysiwyg/tinymce3/jscripts/tiny_mce/plugins/preview/preview.html +./external/frontend/front_crcloginform.inc.php +./external/frontend/dbfs.php +./external/frontend/js/index.php +./external/frontend/cache/index.php +./external/frontend/logs/index.php +./external/frontend/templates/index.php +./external/frontend/includes/class.input.helper.php +./external/frontend/includes/index.php +./external/frontend/includes/concache.php +./external/frontend/includes/class.concache.php +./external/frontend/index.php +./external/frontend/images/index.php +./external/frontend/error.php +./external/frontend/front_content.php +./external/frontend/css/index.php +./external/frontend/config.php +./main.loginform.php +./styles/index.php +./images/index.php +./frameset_left.php +./ajaxmain.php +./backend_search.php +./logout.php +./tools/mpAutoloaderClassMap/mpClassMapFileCreator.php +./tools/mpAutoloaderClassMap/mpClassTypeFinder.php +./tools/mpAutoloaderClassMap/mpClassMapFileCreatorContenido.php +./tools/create_autoloader_cfg.php +./tools/phpcompatinfo.php +./header.php +./cronjobs/session_cleanup.php +./cronjobs/move_articles.php +./cronjobs/index.php +./cronjobs/setfrontenduserstate.php +./cronjobs/optimize_database.php +./cronjobs/run_newsletter_job.php +./cronjobs/linkchecker.php +./cronjobs/send_reminder.php +./cronjobs/move_old_stats.php +./cronjobs/advance_workflow.php diff --git a/conlite/plugins/.gitignore b/conlite/plugins/.gitignore new file mode 100644 index 0000000..87384ea --- /dev/null +++ b/conlite/plugins/.gitignore @@ -0,0 +1,7 @@ +/cl-linkchecker +/cl-mod-rewrite +/cl-newsletter +/cl-workflow +/org.conlite.twig +/smarty +/phpbo.cookie_consent diff --git a/conlite/plugins/pluginmanager/classes/Util/Zip/Contenido_ArchiveExtractor.class.php b/conlite/plugins/pluginmanager/classes/Util/Zip/Contenido_ArchiveExtractor.class.php new file mode 100644 index 0000000..acbc065 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/Util/Zip/Contenido_ArchiveExtractor.class.php @@ -0,0 +1,212 @@ + + * @license http://www.contenido.org/license/LIZENZ.txt + * @link http://www.4fb.de + * @link http://www.contenido.org + * @since file available since contenido release 4.8.7 + * + * {@internal + * created 2008-06-06 + * modified 2008-07-03, Frederic Schneider, add security fix + * + * $Id: Contenido_ArchiveExtractor.class.php 7 2015-06-23 11:01:26Z oldperl $: + * }} + * + */ + +if(!defined('CON_FRAMEWORK')) { + die('Illegal call'); +} + +plugin_include('pluginmanager', 'classes/Exceptions/Contenido_ArchiveExtractor_Exception.php'); +//cInclude('pear', 'PHP/Archive.php'); +cInclude('pear', 'File/Archive.php'); + +class Contenido_ArchiveExtractor { + + /** + * The archive file + * @var string + */ + protected $sSource = ""; + + /** + * The destination path + * @var string + */ + protected $sDestination = ""; + + /** + * List of all files in the archive + * @var array + */ + protected $aFileList = array(); + + /** + * The absolute path + * @var string + */ + protected $sAbsPath = ""; + + /** + * Constructor of ArchiveExtractor, load the file list + * @access public + * @param string $sSource + * @return void + */ + public function __construct($sSource) { + global $cfg; + + $this->sSource = (string) $sSource; + + if (file_exists($sSource)) { + + $sTrailingSlash = substr($this->sSource, -1); + + if( $sTrailingSlash != DIRECTORY_SEPARATOR) { + $this->sSource = $this->sSource . DIRECTORY_SEPARATOR; + } + + // generate absolute path to the plugin manager directory + $this->sAbsPath = $cfg['path']['contenido'] . $cfg['path']['plugins'] . "pluginmanager" . DIRECTORY_SEPARATOR; + + $this->getFileList(); + + } else { + throw new Contenido_ArchiveExtractor_Exception("Source file does not exists"); + } + + } + + public function setErrorHandling($mode, $options) { + PEAR::setErrorHandling($mode, $options); // use temporary the error handler of PEAR + } + + /** + * Sets the path where the extractor extracts the archive files + * @access public + * @param string $sDestination + * @return void + */ + public function setDestinationPath($sDestination) { + + if (!is_dir($sDestination)) { + $bMakeDirectory = mkdir($sDestination, 0777); + + if ($bMakeDirectory != true) { + throw new Contenido_ArchiveExtractor_Exception("Can not set destination path: directoy is not writable"); + } + + $this->sDestination = (string) $sDestination; + + } else { + throw new Contenido_ArchiveExtractor_Exception("Destination already exists"); + } + + } + + /** + * Extracts the whole archive + * @access public + * @return void + */ + public function extractArchive() { + + if ($this->sDestination != "") { + File_Archive::extract($this->sSource, $this->sDestination); + } else { + throw new Contenido_ArchiveExtractor_Exception("Extraction failed: no destination path setted"); + } + + } + + /** + * Loads the file list of the archive + * @access public + * @return void + */ + public function getFileList(){ + $objArchiveReader = File_Archive::read($this->sSource); + $this->aFileList = $objArchiveReader->getFileList(); + } + + /** + * Extract only one specific file from archive + * @access public + * @param string $sFilename + * @return void + */ + public function extractArchiveFile($sFilename) { + + $sFilename = (string) $sFilename; + $sExtractFile = $this->sSource . $sFilename; + + if ($this->sDestination != "") { + File_Archive::extract($sExtractFile, $this->sDestination); + } else { + throw new Contenido_ArchiveExtractor_Exception("Extraction failed: no destination path setted"); + } + + } + + /** + * Returns the archives file list + * @access public + * @return array + */ + public function getArchiveFileList() { + return $this->aFileList; + } + + /** + * Checks if a specific file exists in archive + * @access public + * @param string $sFilename + * @return boolean + */ + public function existsInArchive($sFilename) { + + $aFileList = $this->getArchiveFileList(); + + if (in_array($sFilename, $aFileList)) { + $bFileCheck = true; + } else { + $bFileCheck = false; + } + + return $bFileCheck; + + } + + /** + * Extracts a specific file from archive and return its content to use it in a variable + * @access public + * @param string $sFilename + * @return string + */ + public function extractArchiveFileToVariable($sFilename) { + + $sFilename = (string) $sFilename; + $sExtractFile = $this->sSource . $sFilename; + + File_Archive::extract($sExtractFile, File_Archive::toVariable($sReturn)); + return $sReturn; + + } + +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/classes/Util/Zip/class.pim.plugin.archive.extractor.php b/conlite/plugins/pluginmanager/classes/Util/Zip/class.pim.plugin.archive.extractor.php new file mode 100644 index 0000000..ad2c1a3 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/Util/Zip/class.pim.plugin.archive.extractor.php @@ -0,0 +1,143 @@ +_extractor = new ZipArchive(); + + // path to temp directory + $this->tempDir = $source; + + // temp directory with zip archive + $this->_source = (string) $source . (string) $filename; + + if (file_exists($source)) { + // generate absolute path to the plugin manager directory + $this->_absPath = $cfg['path']['contenido'] . $cfg['path']['plugins'] . 'pluginmanager' . DIRECTORY_SEPARATOR; + + // open the zip archive + $this->_extractor->open($this->_source); + } else { + throw new pimException('Source file does not exists'); + } + } + + public function closeArchive() { + $this->_extractor->close(); + } + + /** + * + * @param string $destination + * @throws pimException + */ + public function setDestinationPath($destination) { + if (!is_dir($destination)) { + $makeDirectory = mkdir($destination, 0777); + if ($makeDirectory != true) { + throw new pimException('Can not set destination path: directoy is not writable'); + } + $this->_destination = (string) $destination; + } else { + throw new pimException('Destination already exists'); + } + } + + /** + * + * @throws pimException + */ + public function extractArchive() { + if ($this->_destination != '') { + $this->_extractor->extractTo($this->_destination); + } else { + throw new pimException('Extraction failed: no destination path setted'); + } + } + + /** + * + * @param string $filename + * @param boolean $content + * @return type + */ + public function extractArchiveFileToVariable($filename, $content = true) { + $filename = (string) $filename; + $this->_extractor->extractTo($this->tempDir, $filename); + + if ($content) { + return file_get_contents($this->tempDir . $filename); + } else { + return $this->tempDir . $filename; + } + } + + /** + * + */ + public function destroyTempFiles() { + + // remove plugin.xml if exists + if (file_exists($this->tempDir . 'cl_plugin.xml')) { + unlink($this->tempDir . 'cl_plugin.xml'); + } + + // remove plugin_install.sql if exists + if (file_exists($this->tempDir . 'plugin_install.sql')) { + unlink($this->tempDir . 'plugin_install.sql'); + } + + // remove temporary plugin dir if exists + if (file_exists($this->_source)) { + unlink($this->_source); + } + } +} diff --git a/conlite/plugins/pluginmanager/classes/Util/class.pim.sql.parser.php b/conlite/plugins/pluginmanager/classes/Util/class.pim.sql.parser.php new file mode 100644 index 0000000..8616bef --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/Util/class.pim.sql.parser.php @@ -0,0 +1,55 @@ + \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/classes/class.pim.plugin.dummy.php b/conlite/plugins/pluginmanager/classes/class.pim.plugin.dummy.php new file mode 100644 index 0000000..20e0c8b --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/class.pim.plugin.dummy.php @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/classes/class.pim.plugin.handler.php b/conlite/plugins/pluginmanager/classes/class.pim.plugin.handler.php new file mode 100644 index 0000000..82e59e6 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/class.pim.plugin.handler.php @@ -0,0 +1,271 @@ +_oDomDocument = new DOMDocument(); + $this->_oDomDocument->preserveWhiteSpace = FALSE; + } + + /** + * + * @param int $iPluginId + * @return boolean + */ + public function loadPluginFromDb($iPluginId) { + $this->_oPlugin = new pimPlugin($iPluginId); + if ($this->_oPlugin->isLoaded()) { + $this->_iPluginId = $this->_oPlugin->get('idplugin'); + $this->_sPluginPath = cRegistry::getBackendPath() + . cRegistry::getConfigValue('path', 'plugins') + . $this->_oPlugin->get('folder') + . "/"; + return TRUE; + } + $this->_oPlugin = NULL; + return FALSE; + } + + /** + * + * @param string $sPluginFolderName + * @return boolean + */ + public function installPlugin($sPluginFolderName) { + $iNewPluginId = 0; + if (empty($sPluginFolderName)) { + return FALSE; + } + $pluginPath = cRegistry::getBackendPath() + . cRegistry::getConfigValue('path', 'plugins') + . $sPluginFolderName + . "/"; + + if (is_null($this->getCfgXmlObject())) { + $sPiCfg = $pluginPath . 'cl_plugin.xml'; + if (is_dir($pluginPath) && file_exists($sPiCfg)) { + $this->loadXmlFile($sPiCfg); + } else { + return FALSE; + } + } + + $oPluginInstaller = new pimSetupPluginInstall(); + $oPluginInstaller->setXsdFile($this->_xsd); + $oPluginInstaller->setXmlObject($this->getCfgXmlObject()); + $oPluginInstaller->setPluginPath($pluginPath); + $this->_iPluginId = $oPluginInstaller->installPlugin(); + if ($this->_iPluginId > 0) { + return TRUE; + } + return FALSE; + } + + /** + * + * @param string $sHandleSql + * @return boolean + */ + public function uninstallPlugin($sHandleSql) { + $oPluginUninstall = new pimSetupPluginUninstall(); + $oPluginUninstall->setPluginPath($this->_sPluginPath); + return $oPluginUninstall->uninstallPlugin($this->_iPluginId, $sHandleSql); + } + + /** + * + * @return int + */ + public function getPluginId() { + return $this->_iPluginId; + } + + /** + * + * @param string $sFile + * @return boolean + */ + public function loadXmlFile($sFile) { + $this->_oDomDocument->load($sFile); + if ($this->_validateXml()) { + $this->_oPiXml = simplexml_load_string($this->_oDomDocument->C14N()); + } + return (is_a($this->_oPiXml, "SimpleXMLElement")) ? TRUE : FALSE; + } + + /** + * + * @return object|null + */ + public function getCfgXmlObject() { + if (is_object($this->_oPiXml)) { + return $this->_oPiXml; + } + return NULL; + } + + /** + * + * @return array + */ + public function getPiGeneralArray() { + $aGeneral = array(); + if (is_object($this->_oPiXml)) { + $aGeneral = $this->_xml2Array($this->_oPiXml->general); + if($aDependencies = $this->_getDepencyArray()) { + foreach ($aDependencies as $aDependency) { + + } + } + $aGeneral['dependencies'] = print_r($aDependencies, TRUE); + } + return $aGeneral; + } + + /** + * Returns generated list entry (li) for plugin or empty string + * + * @param int $iPluginId + * @return string + */ + public function getInfoInstalled($iPluginId) { + $oPlugin = new pimPlugin($iPluginId); + if ($oPlugin->isLoaded()) { + $oView = new pimView(); + $oView->setMultiVariables($oPlugin->toArray()); + $aLang = array( + 'LANG_FOLDERNAME' => i18n("Foldername", "pluginmanager"), + 'LANG_AUTHOR' => i18n("Author", "pluginmanager"), + 'LANG_CONTACT' => i18n("Contact", "pluginmanager"), + 'LANG_LICENSE' => i18n("License", "pluginmanager"), + 'LANG_INSTALLED' => i18n('Installed since', 'pluginmanager'), + 'LANG_DEPENDENCIES' => i18n("Dependencies", "pluginmanager"), + 'LANG_WRITEABLE' => i18n("Writable", "pluginmanager"), + 'LANG_INSTALL' => i18n("Install", "pluginmanager"), + 'LANG_REMOVE' => i18n("Remove", "pluginmanager"), + 'LANG_UPDATE' => i18n('Update', 'pluginmanager'), + 'LANG_UPDATE_CHOOSE' => i18n('Please choose your new file', 'pluginmanager'), + 'LANG_UPDATE_UPLOAD' => i18n('Update', 'pluginmanager'), + 'LANG_REMOVE_SQL' => i18n('Execute uninstall.sql', 'pluginmanager') + ); + $oView->setMultiVariables($aLang); + // nav sub placeholder, @Todo: fill with content + $oView->set('s', 'NAVSUB', ''); + // enable / disable functionality + $activeStatus = $oPlugin->get('active'); + $oButton = new cHTMLButton('toggle_active'); + $oButton->setID("but-toggle-plugin-" . $oPlugin->get("idplugin")); + $oButton->setClass("pimImgBut"); + $oButton->setMode('image'); + $oButtonLabel = new cHTMLLabel("placeholder", $oButton->getID()); + $oButtonLabel->setClass("pimButLabel"); + if ($activeStatus == 1) { + $oButton->setAlt("Click to toggle status"); + $oButton->setImageSource('images/online.gif'); + $oButtonLabel->setLabelText(i18n("Plugin is active", "pluginmanager")); + } else { + $oButton->setImageSource('images/offline.gif'); + $oButtonLabel->setLabelText(i18n("Plugin not active", "pluginmanager")); + } + $oView->set('s', 'BUT_ACTIVESTATUS', $oButton->render() . ' ' . $oButtonLabel->render()); + + // update button - not used right now + $oView->set('s', 'BUT_UPDATE_PLUGIN', ''); + + // uninstall + $oDelBut = new cHTMLButton('uninstall_plugin'); + $oDelBut->setImageSource('images/but_cancel.gif'); + $oDelBut->setID("but-uninstall-plugin-" . $oPlugin->get("idplugin")); + $oDelBut->setClass("pimImgBut"); + $oDelBut->setMode('image'); + $oDelSqlCheckbox = new cHTMLCheckbox("delete_sql", "TRUE"); + $oDelSqlCheckbox->setStyle("display: inline-block;"); + $sDelSqlTxt = " " . sprintf(i18n("(%s remove database tables)", "pluginmanager"), $oDelSqlCheckbox->toHtml(FALSE)); + $oDelButLabel = new cHTMLLabel("placeholder", $oDelBut->getID()); + $oDelButLabel->setClass("pimButLabel"); + $oDelButLabel->setLabelText(i18n("Uninstall Plugin", "pluginmanager") . $sDelSqlTxt); + $oView->set('s', 'BUT_UNINSTALL_PLUGIN', $oDelBut->render() . ' ' . $oDelButLabel->render()); + + $oView->setTemplate('pi_manager_installed_plugins.html'); + return $oView->getRendered(1); + } + return ''; + } + + protected function _getDepencyArray() { + $aDependencies = array(); + $aAttributes = array(); + $iCountDependencies = count($this->_oPiXml->dependencies); + if($iCountDependencies > 0) { + for ($i = 0; $i < $iCountDependencies; $i++) { + $sPluginName = cSecurity::escapeString($this->_oPiXml->dependencies[$i]->depend); + foreach ($this->_oPiXml->dependencies[$i]->depend->attributes() as $sKey => $sValue) { + $aAttributes[$sKey] = cSecurity::escapeString($sValue); + } + $aDependencies[$i]["name"] = $sPluginName; + $aDependencies[$i] = array_merge($aDependencies[$i],$aAttributes); + } + return $aDependencies; + } + + return FALSE; + } + + /** + * + * @return boolean + * @throws pimXmlStructureException + */ + private function _validateXml() { + if ($this->_oDomDocument->schemaValidate($this->_xsd)) { + $this->_bValid = true; + return true; + } else { + return FALSE; + } + } + + /** + * + * @param xml $xml + * @return array + */ + private function _xml2Array($xml) { + $string = json_encode($xml); + $array = json_decode($string, true); + return $array; + } + +} diff --git a/conlite/plugins/pluginmanager/classes/class.pim.plugin.php b/conlite/plugins/pluginmanager/classes/class.pim.plugin.php new file mode 100644 index 0000000..2ab1531 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/class.pim.plugin.php @@ -0,0 +1,34 @@ + + */ +class pimPluginCollection extends ItemCollection { + + public function __construct() { + global $cfg; + parent::__construct($cfg['tab']['plugins'], 'idplugin'); + $this->_setItemClass("pimPlugin"); + } +} + +class pimPlugin extends Item { + + public function __construct($mId = false) { + global $cfg; + parent::__construct($cfg['tab']['plugins'], 'idplugin'); + + if ($mId !== false) { + $this->loadByPrimaryKey($mId); + } + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/classes/class.pim.plugin.relation.php b/conlite/plugins/pluginmanager/classes/class.pim.plugin.relation.php new file mode 100644 index 0000000..fe37081 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/class.pim.plugin.relation.php @@ -0,0 +1,58 @@ + + */ +class pimPluginRelationCollection extends ItemCollection { + + const REL_AREA = 'area'; + const REL_ACTION = 'action'; + const REL_NAVS = 'navs'; + const REL_CTYPE = 'ctype'; + + public function __construct() { + global $cfg; + parent::__construct($cfg['tab']['plugins_rel'], 'idpluginrelation'); + $this->_setItemClass("pimPluginRelation"); + } + + public function create($idItem, $idPlugin, $type) { + // create a new entry + $item = parent::create(); + $item->set('iditem', $idItem); + $item->set('idplugin', $idPlugin); + $item->set('type', $type); + + $item->store(); + return $item; + } + + public function getRelations($idPlugin, $type=NULL) { + return; + } + + public function deleteRelations($idPlugin, $type=NULL) { + return; + } +} + +class pimPluginRelation extends Item { + + public function __construct($mId = false) { + global $cfg; + parent::__construct($cfg['tab']['plugins_rel'], 'idpluginrelation'); + + if ($mId !== false) { + $this->loadByPrimaryKey($mId); + } + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/classes/class.pim.view.php b/conlite/plugins/pluginmanager/classes/class.pim.view.php new file mode 100644 index 0000000..9c3183c --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/class.pim.view.php @@ -0,0 +1,83 @@ + + * @license http://www.contenido.org/license/LIZENZ.txt + * @link http://www.4fb.de + * @link http://www.contenido.org + * @since file available since contenido release 4.8.7 + * + * {@internal + * created 2008-03-17 + * modified 2008-07-04, Frederic Schneider, add security fix and tpl settings + * + * $Id: class.pim.view.php 11 2015-07-14 12:34:24Z oldperl $: + * }} + * + */ + +if(!defined('CON_FRAMEWORK')) { + die('Illegal call'); +} + +class pimView extends Template{ + + protected $sPathToTpl; + protected $bIsGenerated; + protected $_sTplPath; + + public function __construct($tags = false, $parser = false) { + $this->reset(); + $this->set('s', 'SESSID', cRegistry::getSessionId()); + $this->bIsGenerated = false; + $this->_sTplPath = dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR."templates".DIRECTORY_SEPARATOR; + parent::__construct($tags, $parser); + } + + public function setTemplate($sTplName) { + $this->sPathToTpl = $this->_sTplPath.$sTplName; + } + + public function setMultiVariables($aVariables) { + if(is_array($aVariables)) { + foreach($aVariables as $sName=>$sContent) { + if(is_numeric($sName)) { + continue; + } + $this->setVariable($sContent, strtoupper($sName)); + } + } + } + + public function setVariable($sVariable, $sName = '') { + if(empty($sName)) { + $sName = strtoupper($$sVariable); + } + $this->set('s', $sName, $sVariable); + } + + public function getRendered($mode = '') { + $this->bIsGenerated = true; + return $this->generate($this->sPathToTpl, $mode); + } + + public function __destruct() { + if ($this->bIsGenerated === false) { + $this->generate($this->sPathToTpl, true, false); + } + } + +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/classes/class.pluginmanager.ajax.php b/conlite/plugins/pluginmanager/classes/class.pluginmanager.ajax.php new file mode 100644 index 0000000..99239b0 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/class.pluginmanager.ajax.php @@ -0,0 +1,104 @@ +isLoaded()) { + $iCurrentStat = (int) $oPlugin->get('active'); + $iNewStat = ($iCurrentStat == 1)?0:1; + $oPlugin->set('active', $iNewStat); + if($oPlugin->store()) { + $sString = "Ok:".$iNewStat; + if($iNewStat) { + $sString .= ":".i18n("Plugin is active", "pluginmanager"); + } else { + $sString .= ":".i18n("Plugin not active", "pluginmanager"); + } + break; + } + } + $sString = "Error:no changes! (Err21)"; + break; + + // save sortorder of plugins + case 'pim_save_sort': + parse_str($_REQUEST['plugins'], $aPlugins); + //print_r($aPlugins['plugin']); + if(is_array($aPlugins['plugin']) && count($aPlugins['plugin']) > 0) { + foreach($aPlugins['plugin'] as $sortorder=>$pluginid) { + $oPlugin = new pimPlugin($pluginid); + $oPlugin->set('executionorder', $sortorder); + $oPlugin->store(); + } + } + $sString = "Ok:executionorder saved"; + break; + + // install plugin with existing source in plugin dir + case 'pim_install': + //sleep(3); + $iNewPluginId = 0; + $sPluginPath = cRegistry::getBackendPath() + .cRegistry::getConfigValue('path', 'plugins') + .Contenido_Security::escapeDB($_POST['plugin_folder']).DIRECTORY_SEPARATOR; + + if(is_dir($sPluginPath) && is_readable($sPluginPath."cl_plugin.xml")) { + $oPluginHandler = new pimPluginHandler(); + if($oPluginHandler->loadXmlFile($sPluginPath."cl_plugin.xml")) { + if($oPluginHandler->installPlugin(Contenido_Security::escapeDB($_POST['plugin_folder']))) { + $iNewPluginId = $oPluginHandler->getPluginId(); + if($iNewPluginId > 0) { + $sString = "Ok:".$iNewPluginId.":Plugin successfully installed!"; + } else { + $sString = "Error:".$iNewPluginId.":Plugin not installed! (Err10)"; + } + } else { + $sString = "Error:0:Plugin not installed! (Err12)"; + } + } else { + $sString = "Error:0:Plugin xml-file missing or not correct! (Err13)"; + } + break; + } + $sString = "Error:0:Plugin folder missing or no readable xml-file found! (Err14)"; + break; + + // return info about installed plugin + case 'pim_get_info_installed': + $oPluginHandler = new pimPluginHandler(); + $sString = $oPluginHandler->getInfoInstalled((int) $_POST['plugin_id']); + break; + + //if action is unknown generate error message + default: + $sString = "Unknown Ajax Action! (Err01)"; + break; + } + return $sString; + } + +} diff --git a/conlite/plugins/pluginmanager/classes/exeptions/class.pim.exeption.php b/conlite/plugins/pluginmanager/classes/exeptions/class.pim.exeption.php new file mode 100644 index 0000000..76397ad --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/exeptions/class.pim.exeption.php @@ -0,0 +1,46 @@ + cRegistry::getConfigValue('path', 'data') + . 'logs/exception.log' + )); + $this->_logger = new cLog($writer); + + // determine if exception should be logged + if (false === $this->_log_exception + && !is_null(cRegistry::getConfigValue('debug', 'log_exeptions'))) { + $this->_log_exception = cRegistry::getConfigValue('debug', 'log_exeptions'); + } + + // log the exception if it should be logged + if (true === $this->_log_exception) { + $this->log(); + } + } + + public function log() { + // construct the log message with all infos and write it via the logger + $logMessage = get_class($this) . ' thrown at line ' . $this->getLine() . ' of file ' . $this->getFile() . ".\r\n"; + $logMessage .= 'Exception message: ' . $this->getMessage() . "\r\n"; + $logMessage .= "Call stack:\r\n"; + $logMessage .= $this->getTraceAsString(); + $logMessage .= "\r\n"; + $this->_logger->log($logMessage); + } +} + +class pimXmlStructureException extends pimExeption { + +} \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/classes/plugin/class.plugin.handler.abstract.php b/conlite/plugins/pluginmanager/classes/plugin/class.plugin.handler.abstract.php new file mode 100644 index 0000000..28be1a8 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/plugin/class.plugin.handler.abstract.php @@ -0,0 +1,67 @@ +getFileName())); + } + return self::$_piPath; + } +} diff --git a/conlite/plugins/pluginmanager/classes/plugin/interface.plugins.php b/conlite/plugins/pluginmanager/classes/plugin/interface.plugins.php new file mode 100644 index 0000000..1e8fb24 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/plugin/interface.plugins.php @@ -0,0 +1,19 @@ + 'idaction', + 'area' => 'idarea', + 'files' => 'idfile', + 'framefiles' => 'idframefile', + 'nav_main' => 'idnavm', + 'nav_sub' => 'idnavs', + 'plugins' => 'idplugin' + ); + + /** + * holds db object + * @var DB_ConLite + */ + protected $_oDb; + protected $_aSql = array(); + protected $_iPiId = 0; + protected $_iCntQueries = 0; + protected $_iClient; + protected $_aRelations; + + /** + * + * @var pimPluginCollection + */ + protected $_PimPluginCollection; + + /** + * + * @var pimPluginRelationCollection + */ + protected $_PimPluginRelationCollection; + protected $_sPluginPath; + + public function __construct() { + $this->_oDb = new DB_ConLite(); + $this->_iClient = cRegistry::getClientId(); + $this->_xmlParseIntoStruct(); + + $this->_PimPluginCollection = new pimPluginCollection(); + $this->_PimPluginRelationCollection = new pimPluginRelationCollection(); + + //print_r($this->_getAttrForTag("area")); + } + + public function setPluginPath($sPath) { + $this->_sPluginPath = $sPath; + } + + public function getPluginPath() { + return $this->_sPluginPath; + } + + /** + * + * @return boolean + */ + public function doQueries() { + if (!is_array($this->_aSql) || count($this->_aSql) <= 0) { + return TRUE; + } + $iQueries = count($this->_aSql); + + if ($iQueries > 0 && is_a($this->_oDb, "DB_ConLite")) { + foreach ($this->_aSql as $sSql) { + try { + $this->_oDb->query($sSql); + } catch (Exception $exc) { + self::error($exc->getTraceAsString()); + } + $this->_iCntQueries++; + } + if ($iQueries == $this->_iCntQueries) { + return TRUE; + } + } + return FALSE; + } + + public function undoQueries() { + + } + + public function setXmlObject($oXml, $bSplit = TRUE) { + if (is_object($oXml)) { + $this->_oXml = & $oXml; + } + + if ($bSplit) { + $this->_setXml(); + } + } + + public function setXsdFile($sFile) { + $this->_sXsdPath = $sFile; + } + + /** + * Returns next id for given table + * + * @param string $sTable + * @return int the next usable table id + */ + protected function _getNextId($sTable) { + cInclude("includes", "functions.database.php"); + dbUpdateSequence(cRegistry::getConfigValue("tab", "sequence"), cRegistry::getConfigValue('tab', $sTable), cRegistry::getDb()); + + $iNextId = $this->_oDb->nextid(cRegistry::getConfigValue('tab', $sTable)); + // id must be over 10.000 + if ($iNextId < 10000) { + $iNextId = 10000; + } + + // added ten + $iNextId = $iNextId + 10; + + // how long is the number? + $iResultStrlen = strlen($iNextId); + + // removed the last number + $iNextId = substr($iNextId, 0, $iResultStrlen - 1); + + return Contenido_Security::toInteger($iNextId . 0); // last number is always a zero + } + + protected function _getAttrForTag($sTag) { + foreach ($this->_aXmlDefaultValues as $Key => $aValue) { + if ($aValue['tag'] === strtoupper($sTag) && $aValue['type'] === "complete") { + if (isset($aValue['attributes']) && is_array($aValue['attributes'])) { + return array_change_key_case($aValue['attributes']); + } + } + } + return FALSE; + } + + protected function _getPluginSql() { + $sSqlFile = $this->_sPluginPath . static::SQL_FILE; + if (file_exists($sSqlFile) && is_readable($sSqlFile)) { + $this->_aSql = pimSqlParser::parse(file_get_contents($sSqlFile)); + } else if (!is_array($this->_aSql)) { + $this->_aSql = array(); + } + } + + protected static function error($sMessage, $iPiId = NULL) { + if (!is_null($iPiId)) { + $oUnInstall = new pimSetupPluginUninstall(); + $oUnInstall->uninstallPlugin($iPiId, ''); + } + print "Error:0:" . $sMessage; + die(); + } + + protected function _getRelations() { + $aTmpArray = array(); + $this->_PimPluginRelationCollection->setWhere('idplugin', $this->_iPiId); + $this->_PimPluginRelationCollection->query(); + if ($this->_PimPluginRelationCollection->count() > 0) { + while ($oPluginRelation = $this->_PimPluginRelationCollection->next()) { + if (isset($aTmpArray[$oPluginRelation->get('type')]) && is_array($aTmpArray[$oPluginRelation->get('type')])) { + array_push($aTmpArray[$oPluginRelation->get('type')], $oPluginRelation->get('iditem')); + } else { + $aTmpArray[$oPluginRelation->get('type')] = array($oPluginRelation->get('iditem')); + } + } + $this->_aRelations = $aTmpArray; + unset($aTmpArray); + } + } + + protected function _deleteRelations() { + $iDeletetRelations = $this->_PimPluginRelationCollection->deleteByWhereClause("idplugin = " . $this->_iPiId); + } + + protected function _deleteRelationEntries() { + $oDb = new DB_ConLite(); + foreach ($this->_aRelations as $sType => $aIds) { + $sSQL = 'DELETE FROM ' . cRegistry::getConfigValue('tab', $sType) . ' WHERE ' . $this->_aTables[$sType] . ' IN (' . implode(',', $aIds) . ')'; + if ($oDb->query($sSQL) == FALSE) { + return FALSE; + } + } + unset($oDb); + return TRUE; + } + + protected function _updateSortOrder() { + if(!isset($_REQUEST['new_position'])) { + return 0; + } + + $oPluginColl = new pimPluginCollection(); + $oPluginColl->setWhere("executionorder", (int) $_REQUEST['new_position'], ">="); + $oPluginColl->query(); + if($oPluginColl->count() > 0) { + /* @var $oPlugin cApiPlugin */ + while ($oPlugin = $oPluginColl->next()) { + $iOrder = $oPlugin->get("executionorder"); + $oPlugin->set("executionorder", $iOrder++); + $oPlugin->store(); + } + } + return (int) $_REQUEST['new_position']; + } + + /** + * Set temporary xml content to static variables + * + * @param string $xml + */ + private function _setXml() { + //simplexml_tree($this->_oXml); + // General plugin informations + self::$XmlGeneral = $this->_oXml->general; + + // Plugin requirements + self::$XmlRequirements = $this->_oXml->requirements; + + // Plugin dependencies + self::$XmlDependencies = $this->_oXml->dependencies; + + // CONTENIDO areas: *_area + self::$XmlArea = $this->_oXml->conlite->areas; + + // CONTENIDO actions: *_actions + self::$XmlActions = $this->_oXml->conlite->actions; + + // CONTENIDO frames: *_frame_files and *_files + self::$XmlFrames = $this->_oXml->conlite->frames; + + // CONTENIDO main navigations: *_nav_main + self::$XmlNavMain = $this->_oXml->conlite->nav_main; + + // CONTENIDO sub navigations: *_nav_sub + self::$XmlNavSub = $this->_oXml->conlite->nav_sub; + + // CONTENIDO Content Types: *_type + self::$XmlContentType = $this->_oXml->content_types; + } + + private function _xmlParseIntoStruct() { + $sData = implode("", file($this->_xmlDefault)); + $oParser = xml_parser_create(); + xml_parse_into_struct($oParser, $sData, $this->_aXmlDefaultValues, $this->_aXmlDefaultIndex); + xml_parser_free($oParser); + } + + private function _updateSequence($table = false) { + global $db, $cfg; + if (!$table) { + $sql = "SHOW TABLES"; + $db->query($sql); + while ($db->next_record()) { + dbUpdateSequence($cfg['sql']['sqlprefix'] . "_sequence", $db->f(0)); + } + } else { + dbUpdateSequence($cfg['sql']['sqlprefix'] . "_sequence", $table); + } + } +} diff --git a/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.install.php b/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.install.php new file mode 100644 index 0000000..64db36b --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.install.php @@ -0,0 +1,427 @@ +_initInstalledAreasArray(); + } + + public function installPlugin() { + if (is_null($this->_oXml)) { + cWarning(__FILE__, __LINE__, "installPlugin: No plugin xml loaded!"); + return 0; + } + $this->_installCheckUuid(); + $this->_installCheckRequirements(); + + $oPiColl = new pimPluginCollection(); + $this->_oPlugin = $oPiColl->createNewItem(); + if ($this->_oPlugin->isLoaded()) { + $this->_iPiId = $this->_oPlugin->get('idplugin'); + $this->_insertDbEntries(); + $this->_getPluginSql(); + if ($this->doQueries()) { + $this->_oPlugin->set('idclient', $this->_iClient, FALSE); + $this->_oPlugin->set('name', Contenido_Security::escapeDB(self::$XmlGeneral->plugin_name)); + $this->_oPlugin->set('description', Contenido_Security::escapeDB(self::$XmlGeneral->description)); + $this->_oPlugin->set('author', Contenido_Security::escapeDB(self::$XmlGeneral->author)); + $this->_oPlugin->set('copyright', Contenido_Security::escapeDB(self::$XmlGeneral->copyright)); + $this->_oPlugin->set('mail', Contenido_Security::escapeDB(self::$XmlGeneral->mail)); + $this->_oPlugin->set('website', Contenido_Security::escapeDB(self::$XmlGeneral->website)); + $this->_oPlugin->set('version', Contenido_Security::escapeDB(self::$XmlGeneral->version)); + $this->_oPlugin->set('folder', Contenido_Security::escapeDB(self::$XmlGeneral->plugin_foldername)); + $this->_oPlugin->set('uuid', Contenido_Security::escapeDB(self::$XmlGeneral->uuid)); + $this->_oPlugin->set('executionorder', $this->_updateSortOrder(), FALSE); + $this->_oPlugin->set('installed', date('Y-m-d H:i:s'), FALSE); + $this->_oPlugin->set('active', (int) self::$XmlGeneral['active'], FALSE); + + if ($this->_oPlugin->store()) { + //echo "stored: ".$this->_iPiId; + return $this->_iPiId; + } + } else { + $this->_removeEmptyPlugin(); + } + } + // something went wrong, return 0 + return 0; + } + + protected function _insertDbEntries() { + $this->_addAreas(); + $this->_addActions(); + $this->_addFrames(); + $this->_addNavMain(); + $this->_addNavSub(); + } + + protected function _addRelation($iIdItem, $sType) { + $oPluginRelation = $this->_PimPluginRelationCollection->createNewItem(); + $oPluginRelation->set('iditem', $iIdItem, FALSE); + $oPluginRelation->set('idplugin', $this->_iPiId, FALSE); + $oPluginRelation->set('type', $sType); + $oPluginRelation->store(); + unset($oPluginRelation); + } + + private function _addAreas() { + $aAttributes = array(); + $aDefaultAttr = array( + 'menuless' => 0, + 'parent' => 0, + 'relevant' => 1 + ); + + $iCountAreas = count(self::$XmlArea->area); + if ($iCountAreas > 0) { + $oAreaColl = new cApiAreaCollection(); + for ($i = 0; $i < $iCountAreas; $i++) { + $sName = Contenido_Security::escapeDB(self::$XmlArea->area[$i], $this->oDb); + // build attributes + foreach (self::$XmlArea->area[$i]->attributes() as $sKey => $sValue) { + $aAttributes[$sKey] = (string) $sValue; + } + $aAttributes = array_merge($aDefaultAttr, $aAttributes); + /* @var $oArea cApiArea */ + $oArea = $oAreaColl->createNewItem($this->_getNextId("area")); + $oArea->set('parent_id', Contenido_Security::escapeDB($aAttributes['parent'], $this->oDb)); + $oArea->set('name', $sName); + $oArea->set('menuless', Contenido_Security::toInteger($aAttributes['menuless'])); + $oArea->set('relevant', 1, FALSE); + $oArea->set('online', 1, FALSE); + if ($oArea->store()) { + $iIdItem = $oArea->get($oArea->primaryKey); + $this->_aAreas[$sName] = $iIdItem; + $this->_aInstalledAreas[] = $sName; + $this->_addRelation($iIdItem, 'area'); + } + } + } + } + + private function _addActions() { + $aAttributes = array(); + $aDefaultAttr = array( + 'relevant' => 1 + ); + + $iCountActions = count(self::$XmlActions->action); + if ($iCountActions > 0) { + $oActionColl = new cApiActionCollection(); + for ($i = 0; $i < $iCountActions; $i++) { + $sName = Contenido_Security::escapeDB(self::$XmlActions->action[$i], $this->_oDb); + foreach (self::$XmlActions->action[$i]->attributes() as $sKey => $sValue) { + $aAttributes[$sKey] = cSecurity::escapeString($sValue); + } + $aAttributes = array_merge($aDefaultAttr, array_filter($aAttributes)); + if (!in_array($aAttributes['area'], $this->_aInstalledAreas)) { + parent::error(sprintf(i18n('Defined area %s are not found on your ConLite installation. Please contact your plugin author.', 'pluginmanager'), $aAttributes['area'])); + } + /* @var $oAction cApiAction */ + $oAction = $oActionColl->createNewItem($this->_getNextId("actions")); + if ($oAction->isLoaded()) { + $oAction->set("idarea", $this->_getIdForArea($aAttributes['area'])); + $oAction->set("name", $sName); + $oAction->set("code", ''); + $oAction->set("location", ''); + $oAction->set("relevant", (int) $aAttributes['relevant']); + if ($oAction->store()) { + $this->_addRelation($oAction->get('idaction'), 'actions'); + } + } + //$oAction = $oActionColl->create($aAttributes['area'], $sName, '', '', $aAttributes['relevant']); + //$this->_addRelation($oAction->get('idaction'), 'actions'); + } + unset($oActionColl); + unset($oAction); + } + } + + private function _addFrames() { + $aAttributes = array(); + $aDefaultAttr = array(); + + $iCountFrames = count(self::$XmlFrames->frame); + if ($iCountFrames > 0) { + $oFrameFileColl = new cApiFrameFileCollection(); + $oFileColl = new cApiFileCollection(); + + for ($i = 0; $i < $iCountFrames; $i++) { + // Build attributes with security checks + foreach (self::$XmlFrames->frame[$i]->attributes() as $sKey => $sValue) { + $aAttributes[$sKey] = cSecurity::escapeString($sValue); + } + $aAttributes = array_merge($aDefaultAttr, array_filter($aAttributes)); + + // Check for valid area + if (!array_key_exists($aAttributes['area'], $this->_aAreas) && !in_array($aAttributes['area'], $this->_aInstalledAreas)) { + parent::error(sprintf(i18n('Defined area %s are not found on your ConLite installation. Please contact your plugin author.', 'pluginmanager'), $aAttributes['area'])); + } + + /* @var $oFile cApiFile */ + $oFile = $oFileColl->createNewItem($this->_getNextId("files")); + if ($oFile->isLoaded()) { + $this->_addRelation($oFile->get('idfile'), 'files'); + + $oFile->set("idarea", $this->_getIdForArea($aAttributes['area'])); + $oFile->set("filename", $aAttributes['name']); + $oFile->set("filetype", cSecurity::escapeString($aAttributes['filetype'])); + + if ($oFile->store()) { + if (!empty($aAttributes['frameId'])) { + /* @var $oFrameFile cApiFrameFile */ + $oFrameFile = $oFrameFileColl->createNewItem($this->_getNextId("framefiles")); + if ($oFrameFile->isLoaded()) { + $this->_addRelation($oFrameFile->get('idframefile'), 'framefiles'); + + $oFrameFile->set("idarea", $this->_getIdForArea($aAttributes['area'])); + $oFrameFile->set("idframe", (int) $aAttributes['frameId'], FALSE); + $oFrameFile->set("idfile", (int) $oFile->get('idfile'), FALSE); + + $oFrameFile->store(); + } + } + } + } + } + unset($oFrameFileColl); + unset($oFileColl); + unset($oFile); + unset($oFrameFile); + } + } + + private function _addNavMain() { + $aAttributes = array(); + + $iCountNavMain = count(self::$XmlNavMain->nav); + if ($iCountNavMain > 0) { + $oNavMainColl = new cApiNavMainCollection(); + + for ($i = 0; $i < $iCountNavMain; $i++) { + $sLocation = cSecurity::escapeString(self::$XmlNavMain->nav[$i]); + if (empty($sLocation)) { + parent::error(i18n('There seem to be an empty main navigation entry in plugin.xml. Please contact your plugin author.', 'pluginmanager'), $this->_iPiId); + } + + // Build attributes with security checks + foreach (self::$XmlNavMain->nav[$i]->attributes() as $sKey => $sValue) { + $aAttributes[$sKey] = cSecurity::escapeString($sValue); + } + + /* @var $oNavMain cApiNavMain */ + $oNavMain = $oNavMainColl->createNewItem($this->_getNextId("nav_main")); + if($oNavMain->isLoaded()) { + $this->_addRelation($oNavMain->get('idnavm'), 'nav_main'); + + $oNavMain->set("location", $sLocation, FALSE); + $oNavMain->set("name", cSecurity::escapeString($aAttributes['name'])); + + $oNavMain->store(); + } + } + unset($oNavMainColl); + unset($oNavMain); + } + } + + private function _addNavSub() { + $aAttributes = array(); + $this->_initInstalledNavMainArray(); + $iCountNavSub = count(self::$XmlNavSub->nav); + + if ($iCountNavSub > 0) { + $oNavSubColl = new cApiNavSubCollection(); + + for ($i = 0; $i < $iCountNavSub; $i++) { + $sLocation = cSecurity::escapeString(self::$XmlNavSub->nav[$i]); + + if (empty($sLocation)) { + parent::error(i18n('There seem to be an empty sub navigation entry in plugin.xml. Please contact your plugin author.', 'pluginmanager'), $this->_iPiId); + } + + // Build attributes with security checks + foreach (self::$XmlNavSub->nav[$i]->attributes() as $sKey => $sValue) { + $aAttributes[$sKey] = cSecurity::escapeString($sValue); + } + /* @var $oNavSub cApiNavSub */ + $oNavSub = $oNavSubColl->createNewItem($this->_getNextId("nav_sub")); + if ($oNavSub->isLoaded()) { + $this->_addRelation($oNavSub->get('idnavs'), 'nav_sub'); + + $oNavSub->set("idnavm", $this->_getIdForNavMain($aAttributes['navm'])); + $oNavSub->set("idarea", $this->_getIdForArea($aAttributes['area'])); + $oNavSub->set("level", (int) $aAttributes['level']); + $oNavSub->set("location", $sLocation, FALSE); + $oNavSub->set("online", 1, FALSE); + + $oNavSub->store(); + } + } + unset($oNavSubColl); + unset($oNavSub); + } + } + + private function _removeEmptyPlugin() { + if (empty($this->_iPiId)) { + return FALSE; + } + $this->_getRelations(); + if (count($this->_aRelations) > 0) { + $this->_deleteRelationEntries(); + $this->_deleteRelations(); + } + $this->_PimPluginCollection->delete($this->_iPiId); + } + + /** + * Check uuId: You can install a plugin only for one time + */ + private function _installCheckUuid() { + $this->_PimPluginCollection->setWhere('uuid', self::$XmlGeneral->uuid); + $this->_PimPluginCollection->query(); + if ($this->_PimPluginCollection->count() > 0) { + parent::error(i18n('You can install this plugin only for one time.', 'pluginmanager')); + } + } + + private function _installCheckRequirements() { + + // Check min ConLite version + if (version_compare(CL_VERSION, self::$XmlRequirements->conlite->attributes()->minversion, '<')) { + parent::error(sprintf(i18n('You have to install ConLite %s or higher to install this plugin!', 'pluginmanager'), self::$XmlRequirements->conlite->attributes()->minversion)); + } + + // Check max ConLite version + if (self::$XmlRequirements->conlite->attributes()->maxversion) { + if (version_compare(CL_VERSION, self::$XmlRequirements->conlite->attributes()->maxversion, '>')) { + parent::error(sprintf(i18n('Your current ConLite version is to new - max ConLite version %s', 'pluginmanager'), self::$XmlRequirements->conlite->attributes()->maxversion)); + } + } + + // Check PHP version + if (version_compare(phpversion(), self::$XmlRequirements->attributes()->php, '<')) { + parent::error(sprintf(i18n('You have to install PHP %s or higher to install this plugin!', 'pluginmanager'), self::$XmlRequirements->attributes()->php)); + } + + /* @todo check and implement other requirement checks + // Check extensions + if (count(parent::$XmlRequirements->extension) != 0) { + + for ($i = 0; $i < count(parent::$XmlRequirements->extension); $i++) { + + if (!extension_loaded(parent::$XmlRequirements->extension[$i]->attributes()->name)) { + parent::error(sprintf(i18n('The plugin could not find the PHP extension %s. Because this is required by the plugin, it can not be installed.', 'pim'), parent::$XmlRequirements->extension[$i]->attributes()->name)); + } + } + } + + // Check classes + if (count(parent::$XmlRequirements->class) != 0) { + + for ($i = 0; $i < count(parent::$XmlRequirements->class); $i++) { + + if (!class_exists(parent::$XmlRequirements->class[$i]->attributes()->name)) { + parent::error(sprintf(i18n('The plugin could not find the class %s. Because this is required by the plugin, it can not be installed.', 'pim'), parent::$XmlRequirements->class[$i]->attributes()->name)); + } + } + } + + // Check functions + if (count(parent::$XmlRequirements->function) != 0) { + + for ($i = 0; $i < count(parent::$XmlRequirements->function); $i++) { + + if (!function_exists(parent::$XmlRequirements->function[$i]->attributes()->name)) { + parent::error(sprintf(i18n('The plugin could not find the function %s. Because this is required by the plugin, it can not be installed.', 'pim'), parent::$XmlRequirements->function[$i]->attributes()->name)); + } + } + } + * + */ + } + + private function _initInstalledAreasArray() { + $this->_aInstalledAreas = array(); + $oAreaColl = new cApiAreaCollection(); + $oAreaColl->select(); + //$oAreaColl->query(); + /* @var $oArea cApiArea */ + while ($oArea = $oAreaColl->next()) { + $this->_aInstalledAreas[] = $oArea->get('name'); + } + //print_r($this->_aInstalledAreas); + } + + private function _initInstalledNavMainArray() { + $this->_aInstalledNavMain = array(); + $oNavMainColl = new cApiNavMainCollection(); + $oNavMainColl->select(); + //$oNavMainColl->query(); + /* @var $oArea cApiArea */ + while ($oNavMain = $oNavMainColl->next()) { + $this->_aInstalledNavMain[$oNavMain->get('name')] = $oNavMain->get('idnavm'); + } + } + + private function _initInstalledNavSubArray() { + $this->_aInstalledNavSub = array(); + $oNavSubColl = new cApiNavSubCollection(); + $oNavMainColl->select(); + //$oNavSubColl->query(); + /* @var $oArea cApiArea */ + while ($oNavSub = $oNavSubColl->next()) { + $this->_aInstalledNavMain[$oNavSub->get('idnavsub')] = $oNavSub->get('name'); + } + } + + private function _getIdForArea($sArea) { + if (array_key_exists($sArea, $this->_aAreas)) { + return $this->_aAreas[$sArea]; + } + + if (in_array($sArea, $this->_aInstalledAreas)) { + $oArea = new cApiArea(); + $oArea->loadBy("name", $sArea); + if ($oArea->isLoaded()) { + return $oArea->get($oArea->primaryKey); + } + } + parent::error(sprintf(i18n('Defined area %s not found on your ConLite installation. Please contact your plugin author.', "pluginmanager"), $sArea), $this->_iPiId); + } + + private function _getIdForNavMain($sNavMain) { + if($sNavMain == "0") { + return $sNavMain; + } + if (array_key_exists($sNavMain, $this->_aInstalledNavMain)) { + return $this->_aInstalledNavMain[$sNavMain]; + } + parent::error(sprintf(i18n('Defined nav main %s not found on your ConLite installation. Please contact your plugin author.', "pluginmanager"), $sNavMain), $this->_iPiId); + } + + public function __destruct() { + //echo "
";
+        //print_r($this->_aAreas);
+    }
+
+}
diff --git a/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.uninstall.php b/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.uninstall.php
new file mode 100644
index 0000000..b52ea86
--- /dev/null
+++ b/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.uninstall.php
@@ -0,0 +1,38 @@
+isLoaded()) { // plugin exists in db
+            $this->_iPiId = (int) $iIdPlugin;
+            $this->_getRelations();
+            if(is_array($this->_aRelations) && count($this->_aRelations) > 0) {
+                if($this->_deleteRelationEntries()) {
+                    $this->_deleteRelations();
+                } else {
+                    return FALSE;
+                }
+            }
+            
+            if($sDeleteSql == "delete") {
+                $this->_getPluginSql();
+            }
+            
+            if($this->doQueries()) {
+                return $this->_PimPluginCollection->delete($iIdPlugin);
+            }
+        }
+        return FALSE;
+    }
+}
\ No newline at end of file
diff --git a/conlite/plugins/pluginmanager/css/images/error.png b/conlite/plugins/pluginmanager/css/images/error.png
new file mode 100644
index 0000000..296415e
Binary files /dev/null and b/conlite/plugins/pluginmanager/css/images/error.png differ
diff --git a/conlite/plugins/pluginmanager/css/images/info.png b/conlite/plugins/pluginmanager/css/images/info.png
new file mode 100644
index 0000000..83de654
Binary files /dev/null and b/conlite/plugins/pluginmanager/css/images/info.png differ
diff --git a/conlite/plugins/pluginmanager/css/images/success.png b/conlite/plugins/pluginmanager/css/images/success.png
new file mode 100644
index 0000000..743ef89
Binary files /dev/null and b/conlite/plugins/pluginmanager/css/images/success.png differ
diff --git a/conlite/plugins/pluginmanager/css/images/warning.png b/conlite/plugins/pluginmanager/css/images/warning.png
new file mode 100644
index 0000000..1c6b8eb
Binary files /dev/null and b/conlite/plugins/pluginmanager/css/images/warning.png differ
diff --git a/conlite/plugins/pluginmanager/css/pluginmanager.css b/conlite/plugins/pluginmanager/css/pluginmanager.css
new file mode 100644
index 0000000..2239862
--- /dev/null
+++ b/conlite/plugins/pluginmanager/css/pluginmanager.css
@@ -0,0 +1,101 @@
+/**
+ *
+ * @package pluginmanager
+ * @version $Rev:$
+ * @author Ortwin Pinke
+ *
+ * $Id:$
+ */
+
+#addplugin {
+    border: 1px solid #B5B5B5;
+    border-top: 0px;
+    height: 40px;
+    padding: 8px;
+    margin-left: 10px;
+    width: 650px;
+    text-align: center;
+}
+
+.plugininfo {
+    width: 550px;
+    margin-top: 10px;
+}
+
+hr {
+    border-color: #B5B5B5;
+    line-leight: 1em;
+}
+
+ul#pimPluginsInstalled, ul#pimPluginsExtracted {
+    max-width: 550px;
+    list-style-type: none;
+    margin: 0;
+    padding: 5px;
+    margin-top: 10px;
+    background: #eee;
+}
+
+ul#pimPluginsInstalled li, ul#pimPluginsExtracted li {
+    margin: 0 5px 5px 5px;
+    padding: 5px;
+    font-size: 1.2em;
+}
+
+ul#pimPluginsInstalled li>div .pimHeadline, ul#pimPluginsExtracted li>div .pimHeadline {
+    cursor: move;
+}
+
+.ui-state-highlight {
+    height: 1.5em;
+    line-height: 1.2em;
+    background-color: #eee;
+}
+
+ul#pimPluginsInstalled li:nth-of-type(even) {
+    background-color: #dddddd;
+}
+
+.loadie {
+    position: absolute;
+    top: 0;
+    left: 0;
+    background-color: #000;
+    width: 0;
+    height: 4px;
+    -webkit-transition: width 0.5s ease-out;
+    box-shadow: 0px 1px 5px rgba(0,0,0,0.25);
+}
+
+#pimmsg {    
+    font-family:Arial, Helvetica, sans-serif; 
+    font-size:13px;
+    margin: 10px 0px;
+    padding:15px 10px 15px 50px;
+    background-repeat: no-repeat;
+    background-position: 10px center;
+    box-shadow: 10px 10px 10px grey;
+    border: 1px solid grey;
+}
+
+.info, .success, .warning, .error, .validation {}
+.info {
+    color: #00529B;
+    background-color: #BDE5F8;
+    background-image: url('images/info.png');
+}
+.success {
+    color: #4F8A10;
+    background-color: #DFF2BF;
+    background-image:url('images/success.png');
+}
+.warning {
+    color: #9F6000;
+    background-color: #FEEFB3;
+    background-image: url('images/warning.png');
+}
+.error {
+    color: #D8000C;
+    background-color: #FFBABA;
+    background-image: url('images/error.png');
+}
\ No newline at end of file
diff --git a/conlite/plugins/pluginmanager/docs/Dokumentation Contenido Plugin Manager.pdf b/conlite/plugins/pluginmanager/docs/Dokumentation Contenido Plugin Manager.pdf
new file mode 100644
index 0000000..07a29ae
Binary files /dev/null and b/conlite/plugins/pluginmanager/docs/Dokumentation Contenido Plugin Manager.pdf differ
diff --git a/conlite/plugins/pluginmanager/docs/install.sql b/conlite/plugins/pluginmanager/docs/install.sql
new file mode 100644
index 0000000..f951845
--- /dev/null
+++ b/conlite/plugins/pluginmanager/docs/install.sql
@@ -0,0 +1,42 @@
+INSERT INTO `cl_area` (`idarea`, `parent_id`, `name`, `relevant`, `online`, `menuless`) VALUES ('10000', '0', 'pluginmanager', '1', '1', '1');
+INSERT INTO `cl_files` (`idfile`, `idarea`, `filename`, `filetype`) VALUES ('10000', '10000', 'pluginmanager/includes/include.right_bottom.php', 'main');
+INSERT INTO `cl_frame_files` (`idframefile`, `idarea`, `idframe`, `idfile`) VALUES ('10000', '10000', '4', '10000');
+INSERT INTO `cl_actions` (`idaction`, `idarea`, `alt_name`, `name`, `code`, `location`, `relevant`) VALUES ('10000', '10000', '', 'pluginmanager', '', '', '1');
+INSERT INTO `cl_nav_sub` (`idnavs`, `idnavm`, `idarea`, `level`, `location`, `online`) VALUES ('10000', '5', '10000', '0', 'pluginmanager/xml/plugin.xml;navigation/administration/pluginmanager/main', '1');
+
+
+--
+-- Table structure for table `cl_plugins`
+--
+
+CREATE TABLE IF NOT EXISTS `cl_plugins` (
+  `idplugin` int(11) NOT NULL AUTO_INCREMENT,
+  `idclient` int(11) DEFAULT NULL,
+  `name` varchar(255) NOT NULL,
+  `description` text NOT NULL,
+  `author` varchar(255) NOT NULL,
+  `copyright` varchar(255) NOT NULL,
+  `mail` varchar(255) NOT NULL,
+  `website` varchar(255) NOT NULL,
+  `version` varchar(10) NOT NULL,
+  `folder` varchar(255) NOT NULL,
+  `uuid` varchar(255) NOT NULL,
+  `executionorder` int(11) NOT NULL DEFAULT '0',
+  `installed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `active` tinyint(1) DEFAULT NULL,
+  PRIMARY KEY (`idplugin`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cl_plugins_rel`
+--
+
+CREATE TABLE IF NOT EXISTS `cl_plugins_rel` (
+  `idpluginrelation` int(11) NOT NULL AUTO_INCREMENT,
+  `iditem` int(11) NOT NULL,
+  `idplugin` int(11) NOT NULL,
+  `type` varchar(8) NOT NULL DEFAULT 'area',
+  PRIMARY KEY (`idpluginrelation`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
\ No newline at end of file
diff --git a/conlite/plugins/pluginmanager/docs/linkchecker.zip b/conlite/plugins/pluginmanager/docs/linkchecker.zip
new file mode 100644
index 0000000..d84bc16
Binary files /dev/null and b/conlite/plugins/pluginmanager/docs/linkchecker.zip differ
diff --git a/conlite/plugins/pluginmanager/docs/localize.txt b/conlite/plugins/pluginmanager/docs/localize.txt
new file mode 100644
index 0000000..b426da4
--- /dev/null
+++ b/conlite/plugins/pluginmanager/docs/localize.txt
@@ -0,0 +1,2 @@
+find . \( -path "./_module" -o -path "./_src" -o -path "./docs" \) -prune ! -type d -o -iname "*.php" -o -iname "*.html" > ./locale/potfiles.txt
+xgettext --from-code=utf-8 --keyword=i18n -f ./locale/potfiles.txt -o ./locale/pluginmanager.pot
\ No newline at end of file
diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive.php
new file mode 100644
index 0000000..091d8ad
--- /dev/null
+++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive.php
@@ -0,0 +1,1434 @@
+
+ * @copyright  1997-2005 The PHP Group
+ * @license    http://www.gnu.org/copyleft/lesser.html  LGPL
+ * @version    CVS: $Id: Archive.php 2 2010-11-23 14:32:26Z oldperl $
+ * @link       http://pear.php.net/package/File_Archive
+ */
+
+/**
+ * To have access to PEAR::isError and PEAR::raiseError
+ * We should probably use lazy include and remove this inclusion...
+ */
+require_once "PEAR.php";
+
+function File_Archive_cleanCache($file, $group)
+{
+    $file = split('_', $file);
+    if (count($file) != 3) {
+        return false; //not a File_Archive file, keep it
+    }
+
+    $name = $file[2];
+    $name = urldecode($name);
+
+    $group = $file[1];
+
+    //clean the cache only for files in File_Archive groups
+    return substr($group, 0, 11) == 'FileArchive' &&
+           !file_exists($name); //and only if the related file no longer exists
+}
+
+/**
+ * Factory to access the most common File_Archive features
+ * It uses lazy include, so you dont have to include the files from
+ * File/Archive/* directories
+ */
+class File_Archive
+{
+    function& _option($name)
+    {
+        static $container = array(
+            'zipCompressionLevel' => 9,
+             'gzCompressionLevel' => 9,
+            'tmpDirectory' => '.',
+            'cache' => null,
+            'appendRemoveDuplicates' => false,
+            'blockSize' => 65536,
+            'cacheCondition' => false
+        );
+        return $container[$name];
+    }
+    /**
+     * Sets an option that will be used by default by all readers or writers
+     * Option names are case sensitive
+     * Currently, the following options are used:
+     *
+     * "cache"
+     *      Instance of a Cache_Lite object used to cache some compressed
+     *      data to speed up future compressions of files
+     *      Default: null (no cache used)
+     *
+     * "zipCompressionLevel"
+     *      Value between 0 and 9 specifying the default compression level used
+     *      by Zip writers (0 no compression, 9 highest compression)
+     *      Default: 9
+     *
+     * "gzCompressionLevel"
+     *      Value between 0 and 9 specifying the default compression level used
+     *      by Gz writers (0 no compression, 9 highest compression)
+     *      Default: 9
+     *
+     * "tmpDirectory"
+     *      Directory where the temporary files generated by File_Archive will
+     *      be created
+     *      Default: '.'
+     *
+     * "appendRemoveDuplicates"
+     *      If set to true, the appender created will by default remove the
+     *      file present in the archive when adding a new one. This will slow the
+     *      appending of files to archives
+     *      Default: false
+     *
+     * "blockSize"
+     *      To transfer data from a reader to a writer, some chunks a read from the
+     *      source and written to the writer. This parameter controls the size of the
+     *      chunks
+     *      Default: 64kB
+     *
+     * "cacheCondition"
+     *      This parameter specifies when a cache should be used. When the cache is
+     *      used, the data of the reader is saved in a temporary file for future access.
+     *      The cached reader will be read only once, even if you read it several times.
+     *      This can be usefull to read compressed files or downloaded files (from http or ftp)
+     *      The possible values for this option are
+     *       - false: never use cache
+     *       - a regexp: A cache will be used if the specified URL matches the regexp
+     *         preg_match is used
+     *      Default: false
+     *      Example: '/^(http|ftp):\/\//' will cache all files downloaded via http or ftp
+     *
+     */
+    function setOption($name, $value)
+    {
+        $option =& File_Archive::_option($name);
+        $option = $value;
+        if ($name == 'cache' && $value !== null) {
+            //TODO: ask to Cache_Lite to allow that
+            $value->_fileNameProtection = false;
+        }
+    }
+
+    /**
+     * Retrieve the value of an option
+     */
+    function getOption($name)
+    {
+        return File_Archive::_option($name);
+    }
+
+    /**
+     * Create a reader to read the URL $URL.
+     * If the URL is a directory, it will recursively read that directory.
+     * If $uncompressionLevel is not null, the archives (files with extension
+     * tar, zip, gz or tgz) will be considered as directories (up to a depth of
+     * $uncompressionLevel if $uncompressionLevel > 0). The reader will only
+     * read files with a directory depth of $directoryDepth. It reader will
+     * replace the given URL ($URL) with $symbolic in the public filenames
+     * The default symbolic name is the last filename in the URL (or '' for
+     * directories)
+     *
+     * Examples:
+     * Considere the following file system
+     * 
+     * a.txt
+     * b.tar (archive that contains the following files)
+     *     c.txt
+     *     d.tgz (archive that contains the following files)
+     *         e.txt
+     *         dir1/
+     *             f.txt
+     * dir2/
+     *     g.txt
+     *     dir3/
+     *         h.tar (archive that contains the following files)
+     *             i.txt
+     * 
+ * + * read('.') will return a reader that gives access to following + * files (recursively read current dir): + *
+     * a.txt
+     * b.tar
+     * dir2/g.txt
+     * dir2/dir3/h.tar
+     * 
+ * + * read('.', 'myBaseDir') will return the following reader: + *
+     * myBaseDir/a.txt
+     * myBaseDir/b.tar
+     * myBaseDir/dir2/g.txt
+     * myBaseDir/dir2/dir3/h.tar
+     * 
+ * + * read('.', '', -1) will return the following reader (uncompress + * everything) + *
+     * a.txt
+     * b.tar/c.txt
+     * b.tar/d.tgz/e.txt
+     * b.tar/d.tgz/dir1/f.txt
+     * dir2/g.txt
+     * dir2/dir3/h.tar/i.txt
+     * 
+ * + * read('.', '', 1) will uncompress only one level (so d.tgz will + * not be uncompressed): + *
+     * a.txt
+     * b.tar/c.txt
+     * b.tar/d.tgz
+     * dir2/g.txt
+     * dir2/dir3/h.tar/i.txt
+     * 
+ * + * read('.', '', 0, 0) will not recurse into subdirectories + *
+     * a.txt
+     * b.tar
+     * 
+ * + * read('.', '', 0, 1) will recurse only one level in + * subdirectories + *
+     * a.txt
+     * b.tar
+     * dir2/g.txt
+     * 
+ * + * read('.', '', -1, 2) will uncompress everything and recurse in + * only 2 levels in subdirectories or archives + *
+     * a.txt
+     * b.tar/c.txt
+     * b.tar/d.tgz/e.txt
+     * dir2/g.txt
+     * 
+ * + * The recursion level is determined by the real path, not the symbolic one. + * So read('.', 'myBaseDir', -1, 2) will result to the same files: + *
+     * myBaseDir/a.txt
+     * myBaseDir/b.tar/c.txt
+     * myBaseDir/b.tar/d.tgz/e.txt (accepted because the real depth is 2)
+     * myBaseDir/dir2/g.txt
+     * 
+ * + * Use readSource to do the same thing, reading from a specified reader instead of + * reading from the system files + * + * To read a single file, you can do read('a.txt', 'public_name.txt') + * If no public name is provided, the default one is the name of the file + * read('dir2/g.txt') contains the single file named 'g.txt' + * read('b.tar/c.txt') contains the single file named 'c.txt' + * + * Note: This function uncompress files reading their extension + * The compressed files must have a tar, zip, gz or tgz extension + * Since it is impossible for some URLs to use is_dir or is_file, this + * function may not work with + * URLs containing folders which name ends with such an extension + */ + function readSource(&$source, $URL, $symbolic = null, + $uncompression = 0, $directoryDepth = -1) + { + return File_Archive::_readSource($source, $URL, $reachable, $baseDir, + $symbolic, $uncompression, $directoryDepth); + } + + /** + * This function performs exactly as readSource, but with two additional parameters + * ($reachable and $baseDir) that will be set so that $reachable."/".$baseDir == $URL + * and $reachable can be reached (in case of error) + * + * @access private + */ + function _readSource(&$toConvert, $URL, &$reachable, &$baseDir, $symbolic = null, + $uncompression = 0, $directoryDepth = -1) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + if (is_array($URL)) { + $converted = array(); + foreach($URL as $key => $foo) { + $converted[] =& File_Archive::_convertToReader($URL[$key]); + } + return File_Archive::readMulti($converted); + } + + //No need to uncompress more than $directoryDepth + //That's not perfect, and some archives will still be uncompressed just + //to be filtered out :( + if ($directoryDepth >= 0) { + $uncompressionLevel = min($uncompression, $directoryDepth); + } else { + $uncompressionLevel = $uncompression; + } + + require_once 'File/Archive/Reader.php'; + $std = File_Archive_Reader::getStandardURL($URL); + + //Modify the symbolic name if necessary + $slashPos = strrpos($std, '/'); + if ($symbolic === null) { + if ($slashPos === false) { + $realSymbolic = $std; + } else { + $realSymbolic = substr($std, $slashPos+1); + } + } else { + $realSymbolic = $symbolic; + } + if ($slashPos !== false) { + $baseFile = substr($std, 0, $slashPos+1); + $lastFile = substr($std, $slashPos+1); + } else { + $baseFile = ''; + $lastFile = $std; + } + + if (strpos($lastFile, '*')!==false || + strpos($lastFile, '?')!==false) { + //We have to build a regexp here + $regexp = str_replace( + array('\*', '\?'), + array('[^/]*', '[^/]'), + preg_quote($lastFile) + ); + $result = File_Archive::_readSource($source, $baseFile, + $reachable, $baseDir, null, 0, -1); + return File_Archive::filter( + File_Archive::predEreg('^'.$regexp.'$'), + $result + ); + } + + //If the URL can be interpreted as a directory, and we are reading from the file system + if ((empty($URL) || is_dir($URL)) && $source === null) { + require_once "File/Archive/Reader/Directory.php"; + + if ($uncompressionLevel != 0) { + require_once "File/Archive/Reader/Uncompress.php"; + $result = new File_Archive_Reader_Uncompress( + new File_Archive_Reader_Directory($std, '', $directoryDepth), + $uncompressionLevel + ); + } else { + $result = new File_Archive_Reader_Directory($std, '', $directoryDepth); + } + + if ($directoryDepth >= 0) { + require_once 'File/Archive/Reader/Filter.php'; + require_once 'File/Archive/Predicate/MaxDepth.php'; + + $tmp =& File_Archive::filter( + new File_Archive_Predicate_MaxDepth($directoryDepth), + $result + ); + unset($result); + $result =& $tmp; + } + if (!empty($realSymbolic)) { + if ($symbolic === null) { + $realSymbolic = ''; + } + require_once "File/Archive/Reader/ChangeName/AddDirectory.php"; + $tmp = new File_Archive_Reader_ChangeName_AddDirectory( + $realSymbolic, + $result + ); + unset($result); + $result =& $tmp; + } + + //If the URL can be interpreted as a file, and we are reading from the file system + } else if (is_file($URL) && substr($URL, -1)!='/' && $source === null) { + require_once "File/Archive/Reader/File.php"; + $result = new File_Archive_Reader_File($URL, $realSymbolic); + + //Else, we will have to build a complex reader + } else { + require_once "File/Archive/Reader/File.php"; + + $realPath = $std; + + // Try to find a file with a known extension in the path ( + // (to manage URLs like archive.tar/directory/file) + $pos = 0; + do { + if ($pos+1setBaseDir($std); + if (PEAR::isError($isDir)) { + return $isDir; + } + if ($isDir && $symbolic==null) { + //Default symbolic name for directories is empty + $realSymbolic = ''; + } + + if ($directoryDepth >= 0) { + //Limit the maximum depth if necessary + require_once "File/Archive/Reader/Filter.php"; + require_once "File/Archive/Predicate/MaxDepth.php"; + + $tmp = new File_Archive_Reader_Filter( + new File_Archive_Predicate( + $directoryDepth + + substr_count(substr($std, $pos+1), '/') + ), + $result + ); + unset($result); + $result =& $tmp; + } + + if ($std != $realSymbolic) { + require_once "File/Archive/Reader/ChangeName/Directory.php"; + + //Change the base name to the symbolic one if necessary + $tmp = new File_Archive_Reader_ChangeName_Directory( + $std, + $realSymbolic, + $result + ); + unset($result); + $result =& $tmp; + } + } + + $cacheCondition = File_Archive::getOption('cacheCondition'); + if ($cacheCondition !== false && + preg_match($cacheCondition, $URL)) { + $tmp =& File_Archive::cache($result); + unset($result); + $result =& $tmp; + } + + return $result; + } + function read($URL, $symbolic = null, + $uncompression = 0, $directoryDepth = -1) + { + $source = null; + return File_Archive::readSource($source, $URL, $symbolic, $uncompression, $directoryDepth); + } + + /** + * Create a file reader on an uploaded file. The reader will read + * $_FILES[$name]['tmp_name'] and will have $_FILES[$name]['name'] + * as a symbolic filename. + * + * A PEAR error is returned if one of the following happen + * - $_FILES[$name] is not set + * - $_FILES[$name]['error'] is not 0 + * - is_uploaded_file returns false + * + * @param string $name Index of the file in the $_FILES array + * @return File_Archive_Reader File reader on the uploaded file + */ + function readUploadedFile($name) + { + if (!isset($_FILES[$name])) { + return PEAR::raiseError("File $name has not been uploaded"); + } + switch ($_FILES[$name]['error']) { + case 0: + //No error + break; + case 1: + return PEAR::raiseError( + "The upload size limit didn't allow to upload file ". + $_FILES[$name]['name'] + ); + case 2: + return PEAR::raiseError( + "The form size limit didn't allow to upload file ". + $_FILES[$name]['name'] + ); + case 3: + return PEAR::raiseError( + "The file was not entirely uploaded" + ); + case 4: + return PEAR::raiseError( + "The uploaded file is empty" + ); + default: + return PEAR::raiseError( + "Unknown error ".$_FILES[$name]['error']." in file upload. ". + "Please, report a bug" + ); + } + if (!is_uploaded_file($_FILES[$name]['tmp_name'])) { + return PEAR::raiseError("The file is not an uploaded file"); + } + + require_once "File/Archive/Reader/File.php"; + return new File_Archive_Reader_File( + $_FILES[$name]['tmp_name'], + $_FILES[$name]['name'], + $_FILES[$name]['type'] + ); + } + + /** + * Adds a cache layer above the specified reader + * The data of the reader is saved in a temporary file for future access. + * The cached reader will be read only once, even if you read it several times. + * This can be usefull to read compressed files or downloaded files (from http or ftp) + * + * @param mixed $toConvert The reader to cache + * It can be a File_Archive_Reader or a string, which will be converted using the + * read function + */ + function cache(&$toConvert) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + + require_once 'File/Archive/Reader/Cache.php'; + return new File_Archive_Reader_Cache($source); + } + + /** + * Try to interpret the object as a reader + * Strings are converted to readers using File_Archive::read + * Arrays are converted to readers using File_Archive::readMulti + * + * @access private + */ + function &_convertToReader(&$source) + { + if (is_string($source)) { + $cacheCondition = File_Archive::getOption('cacheCondition'); + if ($cacheCondition !== false && + preg_match($cacheCondition, $source)) { + $obj = File_Archive::cache(File_Archive::read($source)); + return $obj; + } else { + $obj = File_Archive::read($source); + return $obj; + } + } else if (is_array($source)) { + return File_Archive::readMulti($source); + } else { + return $source; + } + } + + /** + * Try to interpret the object as a writer + * Strings are converted to writers using File_Archive::appender + * Arrays are converted to writers using a multi writer + * + * @access private + */ + function &_convertToWriter(&$dest) + { + if (is_string($dest)) { + $obj =& File_Archive::appender($dest); + return $obj; + } else if (is_array($dest)) { + require_once 'File/Archive/Writer/Multi.php'; + $writer = new File_Archive_Writer_Multi(); + foreach($dest as $key => $foo) { + $writer->addWriter($dest[$key]); + } + return $writer; + } else { + return $dest; + } + } + + /** + * Check if a file with a specific extension can be read as an archive + * with File_Archive::read* + * This function is case sensitive. + * + * @param string $extension the checked extension + * @return bool whether this file can be understood reading its extension + * Currently, supported extensions are tar, zip, jar, gz, tgz, + * tbz, bz2, bzip2, ar, deb + */ + function isKnownExtension($extension) + { + return $extension == 'tar' || + $extension == 'zip' || + $extension == 'jar' || + $extension == 'gz' || + $extension == 'tgz' || + $extension == 'tbz' || + $extension == 'bz2' || + $extension == 'bzip2' || + $extension == 'ar' || + $extension == 'deb' /* || + $extension == 'cab' || + $extension == 'rar' */; + } + + /** + * Create a reader that will read the single file source $source as + * a specific archive + * + * @param string $extension determines the kind of archive $source contains + * $extension is case sensitive + * @param File_Archive_Reader $source stores the archive + * @param bool $sourceOpened specifies if the archive is already opened + * if false, next will be called on source + * Closing the returned archive will close $source iif $sourceOpened + * is true + * @return A File_Archive_Reader that uncompresses the archive contained in + * $source interpreting it as a $extension archive + * If $extension is not handled return false + */ + function readArchive($extension, &$toConvert, $sourceOpened = false) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + + switch($extension) { + case 'tgz': + return File_Archive::readArchive('tar', + File_Archive::readArchive('gz', $source, $sourceOpened) + ); + case 'tbz': + return File_Archive::readArchive('tar', + File_Archive::readArchive('bz2', $source, $sourceOpened) + ); + case 'tar': + require_once 'File/Archive/Reader/Tar.php'; + return new File_Archive_Reader_Tar($source, $sourceOpened); + + case 'gz': + case 'gzip': + require_once 'File/Archive/Reader/Gzip.php'; + return new File_Archive_Reader_Gzip($source, $sourceOpened); + + case 'zip': + case 'jar': + require_once 'File/Archive/Reader/Zip.php'; + return new File_Archive_Reader_Zip($source, $sourceOpened); + + case 'bz2': + case 'bzip2': + require_once 'File/Archive/Reader/Bzip2.php'; + return new File_Archive_Reader_Bzip2($source, $sourceOpened); + + case 'deb': + case 'ar': + require_once 'File/Archive/Reader/Ar.php'; + return new File_Archive_Reader_Ar($source, $sourceOpened); + +/* case 'cab': + require_once 'File/Archive/Reader/Cab.php'; + return new File_Archive_Reader_Cab($source, $sourceOpened); + + + case 'rar': + require_once "File/Archive/Reader/Rar.php"; + return new File_Archive_Reader_Rar($source, $sourceOpened); */ + + default: + return false; + } + } + + /** + * Contains only one file with data read from a memory buffer + * + * @param string $memory content of the file + * @param string $filename public name of the file + * @param array $stat statistics of the file. Index 7 (size) will be + * overwritten to match the size of $memory + * @param string $mime mime type of the file. Default will determine the + * mime type thanks to the extension of $filename + * @see File_Archive_Reader_Memory + */ + function readMemory($memory, $filename, $stat=array(), $mime=null) + { + require_once "File/Archive/Reader/Memory.php"; + return new File_Archive_Reader_Memory($memory, $filename, $stat, $mime); + } + + /** + * Contains several other sources. Take care the sources don't have several + * files with the same filename. The sources are given as a parameter, or + * can be added thanks to the reader addSource method + * + * @param array $sources Array of strings or readers that will be added to + * the multi reader. If the parameter is a string, a reader will be + * built thanks to the read function + * @see File_Archive_Reader_Multi, File_Archive::read() + */ + function readMulti($sources = array()) + { + require_once "File/Archive/Reader/Multi.php"; + $result = new File_Archive_Reader_Multi(); + foreach ($sources as $index => $foo) { + $s =& File_Archive::_convertToReader($sources[$index]); + if (PEAR::isError($s)) { + return $s; + } else { + $result->addSource($s); + } + } + return $result; + } + /** + * Make the files of a source appear as one large file whose content is the + * concatenation of the content of all the files + * + * @param File_Archive_Reader $toConvert The source whose files must be + * concatened + * @param string $filename name of the only file of the created reader + * @param array $stat statistics of the file. Index 7 (size) will be + * overwritten to match the total size of the files + * @param string $mime mime type of the file. Default will determine the + * mime type thanks to the extension of $filename + * @see File_Archive_Reader_Concat + */ + function readConcat(&$toConvert, $filename, $stat=array(), $mime=null) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + + require_once "File/Archive/Reader/Concat.php"; + return new File_Archive_Reader_Concat($source, $filename, $stat, $mime); + } + + /** + * Changes the name of each file in a reader by applying a custom function + * The function must return false if the file is to be discarded, or the new + * name of the file else + * + * @param Callable $function Function called to modify the name of the file + * $function takes the name of the file as a parameter and returns the + * new name, or false if the file must be discarded + * @param File_Archive_Reader $toConvert The files of this source will be + * modified + * @return File_Archive_Reader a new reader that contains the same files + * as $toConvert but with a different name + */ + function changeName($function, &$toConvert) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + + require_once "File/Archive/Reader/ChangeName.php"; + return new File_Archive_Reader_RemoveDirectory($source); + } + + /** + * Removes from a source the files that do not follow a given predicat + * + * @param File_Archive_Predicate $predicate Only the files for which + * $predicate->isTrue() will be kept + * @param File_Archive_Reader $source Source that will be filtered + * @see File_Archive_Reader_Filter + */ + function filter($predicate, &$toConvert) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + + require_once "File/Archive/Reader/Filter.php"; + return new File_Archive_Reader_Filter($predicate, $source); + } + /** + * Predicate that always evaluate to true + * + * @see File_Archive_Predicate_True + */ + function predTrue() + { + require_once "File/Archive/Predicate/True.php"; + return new File_Archive_Predicate_True(); + } + /** + * Predicate that always evaluate to false + * + * @see File_Archive_Predicate_False + */ + function predFalse() + { + require_once "File/Archive/Predicate/False.php"; + return new File_Archive_Predicate_False(); + } + /** + * Predicate that evaluates to the logical AND of the parameters + * You can add other predicates thanks to the + * File_Archive_Predicate_And::addPredicate() function + * + * @param File_Archive_Predicate (any number of them) + * @see File_Archive_Predicate_And + */ + function predAnd() + { + require_once "File/Archive/Predicate/And.php"; + $pred = new File_Archive_Predicate_And(); + $args = func_get_args(); + foreach ($args as $p) { + $pred->addPredicate($p); + } + return $pred; + } + /** + * Predicate that evaluates to the logical OR of the parameters + * You can add other predicates thanks to the + * File_Archive_Predicate_Or::addPredicate() function + * + * @param File_Archive_Predicate (any number of them) + * @see File_Archive_Predicate_Or + */ + function predOr() + { + require_once "File/Archive/Predicate/Or.php"; + $pred = new File_Archive_Predicate_Or(); + $args = func_get_args(); + foreach ($args as $p) { + $pred->addPredicate($p); + } + return $pred; + } + /** + * Negate a predicate + * + * @param File_Archive_Predicate $pred Predicate to negate + * @see File_Archive_Predicate_Not + */ + function predNot($pred) + { + require_once "File/Archive/Predicate/Not.php"; + return new File_Archive_Predicate_Not($pred); + } + /** + * Evaluates to true iif the file is larger than a given size + * + * @param int $size the minimal size of the files (in Bytes) + * @see File_Archive_Predicate_MinSize + */ + function predMinSize($size) + { + require_once "File/Archive/Predicate/MinSize.php"; + return new File_Archive_Predicate_MinSize($size); + } + /** + * Evaluates to true iif the file has been modified after a given time + * + * @param int $time Unix timestamp of the minimal modification time of the + * files + * @see File_Archive_Predicate_MinTime + */ + function predMinTime($time) + { + require_once "File/Archive/Predicate/MinTime.php"; + return new File_Archive_Predicate_MinTime($time); + } + /** + * Evaluates to true iif the file has less that a given number of + * directories in its path + * + * @param int $depth Maximal number of directories in path of the files + * @see File_Archive_Predicate_MaxDepth + */ + function predMaxDepth($depth) + { + require_once "File/Archive/Predicate/MaxDepth.php"; + return new File_Archive_Predicate_MaxDepth($depth); + } + /** + * Evaluates to true iif the extension of the file is in a given list + * + * @param array or string $list List or comma separated string of possible + * extension of the files + * @see File_Archive_Predicate_Extension + */ + function predExtension($list) + { + require_once "File/Archive/Predicate/Extension.php"; + return new File_Archive_Predicate_Extension($list); + } + /** + * Evaluates to true iif the MIME type of the file is in a given list + * + * @param array or string $list List or comma separated string of possible + * MIME types of the files. You may enter wildcards like "image/*" to + * select all the MIME in class image + * @see File_Archive_Predicate_MIME, MIME_Type::isWildcard() + */ + function predMIME($list) + { + require_once "File/Archive/Predicate/MIME.php"; + return new File_Archive_Predicate_MIME($list); + } + /** + * Evaluates to true iif the name of the file follow a given regular + * expression + * + * @param string $ereg regular expression that the filename must follow + * @see File_Archive_Predicate_Ereg, ereg() + */ + function predEreg($ereg) + { + require_once "File/Archive/Predicate/Ereg.php"; + return new File_Archive_Predicate_Ereg($ereg); + } + /** + * Evaluates to true iif the name of the file follow a given regular + * expression (case insensitive version) + * + * @param string $ereg regular expression that the filename must follow + * @see File_Archive_Predicate_Eregi, eregi + */ + function predEregi($ereg) + { + require_once "File/Archive/Predicate/Eregi.php"; + return new File_Archive_Predicate_Eregi($ereg); + } + /** + * Evaluates to true only after a given number of evaluations + * This can be used to select files by index since the evaluation is done + * once per file + * + * @param array The indexes for which the returned predicate will return true + * are the keys of the array + * The predicate will return true if isset($indexes[$pos]) + */ + function predIndex($indexes) + { + require_once "File/Archive/Predicate/Index.php"; + return new File_Archive_Predicate_Index($indexes); + } + /** + * Custom predicate built by supplying a string expression + * + * Here are different ways to create a predicate that keeps only files + * with names shorter than 100 chars + * + * File_Archive::predCustom("return strlen($name)<100;") + * File_Archive::predCustom("strlen($name)<100;") + * File_Archive::predCustom("strlen($name)<100") + * File_Archive::predCustom("strlen($source->getFilename())<100") + * + * + * @param string $expression String containing an expression that evaluates + * to a boolean. If the expression doesn't contain a return + * statement, it will be added at the begining of the expression + * A ';' will be added at the end of the expression so that you don't + * have to write it. You may use the $name variable to refer to the + * current filename (with path...), $time for the modification time + * (unix timestamp), $size for the size of the file in bytes, $mime + * for the MIME type of the file + * @see File_Archive_Predicate_Custom + */ + function predCustom($expression) + { + require_once "File/Archive/Predicate/Custom.php"; + return new File_Archive_Predicate_Custom($expression); + } + + /** + * Send the files as a mail attachment + * + * @param Mail $mail Object used to send mail (see Mail::factory) + * @param array or String $to An array or a string with comma separated + * recipients + * @param array $headers The headers that will be passed to the Mail_mime + * object + * @param string $message Text body of the mail + * @see File_Archive_Writer_Mail + */ + function toMail($to, $headers, $message, $mail = null) + { + require_once "File/Archive/Writer/Mail.php"; + return new File_Archive_Writer_Mail($to, $headers, $message, $mail); + } + /** + * Write the files on the hard drive + * + * @param string $baseDir if specified, the files will be created in that + * directory. If they don't exist, the directories will automatically + * be created + * @see File_Archive_Writer_Files + */ + function toFiles($baseDir = "") + { + require_once "File/Archive/Writer/Files.php"; + return new File_Archive_Writer_Files($baseDir); + } + /** + * Send the content of the files to a memory buffer + * + * toMemory returns a writer where the data will be written. + * In this case, the data is accessible using the getData member + * + * toVariable returns a writer that will write into the given + * variable + * + * @param out $data if specified, the data will be written to this buffer + * Else, you can retrieve the buffer with the + * File_Archive_Writer_Memory::getData() function + * @see File_Archive_Writer_Memory + */ + function toMemory() + { + $v = ''; + return File_Archive::toVariable($v); + } + function toVariable(&$v) + { + require_once "File/Archive/Writer/Memory.php"; + return new File_Archive_Writer_Memory($v); + } + /** + * Duplicate the writing operation on two writers + * + * @param File_Archive_Writer $a, $b writers where data will be duplicated + * @see File_Archive_Writer_Multi + */ + function toMulti(&$aC, &$bC) + { + $a =& File_Archive::_convertToWriter($aC); + $b =& File_Archive::_convertToWriter($bC); + + if (PEAR::isError($a)) { + return $a; + } + if (PEAR::isError($b)) { + return $b; + } + + require_once "File/Archive/Writer/Multi.php"; + $writer = new File_Archive_Writer_Multi(); + $writer->addWriter($a); + $writer->addWriter($b); + return $writer; + } + /** + * Send the content of the files to the standard output (so to the client + * for a website) + * + * @param bool $sendHeaders If true some headers will be sent to force the + * download of the file. Default value is true + * @see File_Archive_Writer_Output + */ + function toOutput($sendHeaders = true) + { + require_once "File/Archive/Writer/Output.php"; + return new File_Archive_Writer_Output($sendHeaders); + } + /** + * Compress the data to a tar, gz, tar/gz or zip format + * + * @param string $filename name of the archive file + * @param File_Archive_Writer $innerWriter writer where the archive will be + * written + * @param string $type can be one of tgz, tbz, tar, zip, gz, gzip, bz2, + * bzip2 (default is the extension of $filename) or any composition + * of them (for example tar.gz or tar.bz2). The case of this + * parameter is not important. + * @param array $stat Statistics of the archive (see stat function) + * @param bool $autoClose If set to true, $innerWriter will be closed when + * the returned archive is close. Default value is true. + */ + function toArchive($filename, &$toConvert, $type = null, + $stat = array(), $autoClose = true) + { + $innerWriter =& File_Archive::_convertToWriter($toConvert); + if (PEAR::isError($innerWriter)) { + return $innerWriter; + } + $shortcuts = array("tgz" , "tbz" ); + $reals = array("tar.gz", "tar.bz2"); + + if ($type === null) { + $extensions = strtolower($filename); + } else { + $extensions = strtolower($type); + } + $extensions = explode('.', str_replace($shortcuts, $reals, $extensions)); + if ($innerWriter !== null) { + $writer =& $innerWriter; + } else { + $writer = File_Archive::toFiles(); + } + $nbCompressions = 0; + $currentFilename = $filename; + while (($extension = array_pop($extensions)) !== null) { + unset($next); + switch($extension) { + case "tar": + require_once "File/Archive/Writer/Tar.php"; + $next = new File_Archive_Writer_Tar( + $currentFilename, $writer, $stat, $autoClose + ); + unset($writer); $writer =& $next; + break; + case "zip": + require_once "File/Archive/Writer/Zip.php"; + $next = new File_Archive_Writer_Zip( + $currentFilename, $writer, $stat, $autoClose + ); + unset($writer); $writer =& $next; + break; + case "gz": + case "gzip": + require_once "File/Archive/Writer/Gzip.php"; + $next = new File_Archive_Writer_Gzip( + $currentFilename, $writer, $stat, $autoClose + ); + unset($writer); $writer =& $next; + break; + case "bz2": + case "bzip2": + require_once "File/Archive/Writer/Bzip2.php"; + $next = new File_Archive_Writer_Bzip2( + $currentFilename, $writer, $stat, $autoClose + ); + unset($writer); $writer =& $next; + break; + case "deb": + case "ar": + require_once "File/Archive/Writer/Ar.php"; + $next = new File_Archive_Writer_Ar( + $currentFilename, $writer, $stat, $autoClose + ); + unset($writer); $writer =& $next; + break; + default: + if ($type !== null || $nbCompressions == 0) { + return PEAR::raiseError("Archive $extension unknown"); + } + break; + } + $nbCompressions ++; + $autoClose = true; + $currentFilename = implode(".", $extensions); + } + return $writer; + } + + + /** + * File_Archive::extract($source, $dest) is equivalent to $source->extract($dest) + * If $source is a PEAR error, the error will be returned + * It is thus easier to use this function than $source->extract, since it reduces the number of + * error checking and doesn't force you to define a variable $source + * + * You may use strings as source and dest. In that case the source is automatically + * converted to a reader using File_Archive::read and the dest is converted to a + * writer using File_Archive::appender + * Since PHP doesn't allow to pass literal strings by ref, you will have to use temporary + * variables. + * File_Archive::extract($src = 'archive.zip/', $dest = 'dir') will extract the archive to 'dir' + * It is the same as + * File_Archive::extract( + * File_Archive::read('archive.zip/'), + * File_Archive::appender('dir') + * ); + * You may use any variable in the extract function ($from/$to, $a/$b...). + * + * @param File_Archive_Reader $source The source that will be read + * @param File_Archive_Writer $dest Where to copy $source files + * @param bool $autoClose if true (default), $dest will be closed after the extraction + * @param int $bufferSize Size of the buffer to use to move data from the reader to the buffer + * If $bufferSize <= 0 (default), the blockSize option is used + * You shouldn't need to change that + * @return null or a PEAR error if an error occured + */ + function extract(&$sourceToConvert, &$destToConvert, $autoClose = true, $bufferSize = 0) + { + $source =& File_Archive::_convertToReader($sourceToConvert); + if (PEAR::isError($source)) { + return $source; + } + $dest =& File_Archive::_convertToWriter($destToConvert); + return $source->extract($dest, $autoClose, $bufferSize); + } + + /** + * Create a writer that can be used to append files to an archive inside a source + * If the archive can't be found in the source, it will be created + * If source is set to null, File_Archive::toFiles will be assumed + * If type is set to null, the type of the archive will be determined looking at + * the extension in the URL + * stat is the array of stat (returned by stat() PHP function of Reader getStat()) + * to use if the archive must be created + * + * This function allows to create or append data to nested archives. Only one + * archive will be created and if your creation requires creating several nested + * archives, a PEAR error will be returned + * + * After this call, $source will be closed and should not be used until the + * returned writer is closed. + * + * @param File_Archive_Reader $source A reader where some files will be appended + * @param string $URL URL to reach the archive in the source. + * if $URL is null, a writer to append files to the $source reader will + * be returned + * @param bool $unique If true, the duplicate files will be deleted on close + * Default is false (and setting it to true may have some performance + * consequences) + * @param string $type Extension of the archive (or null to use the one in the URL) + * @param array $stat Used only if archive is created, array of stat as returned + * by PHP stat function or Reader getStat function: stats of the archive) + * Time (index 9) will be overwritten to current time + * @return File_Archive_Writer a writer that you can use to append files to the reader + */ + function appenderFromSource(&$toConvert, $URL = null, $unique = null, + $type = null, $stat = array()) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + if ($unique == null) { + $unique = File_Archive::getOption("appendRemoveDuplicates"); + } + + //Do not report the fact that the archive does not exist as an error + PEAR::pushErrorHandling(PEAR_ERROR_RETURN); + + if ($URL === null) { + $result =& $source; + } else { + if ($type === null) { + $result = File_Archive::_readSource($source, $URL.'/', $reachable, $baseDir); + } else { + $result = File_Archive::readArchive( + $type, + File_Archive::_readSource($source, $URL, $reachable, $baseDir) + ); + } + } + + PEAR::popErrorHandling(); + + if (!PEAR::isError($result)) { + if ($unique) { + require_once "File/Archive/Writer/UniqueAppender.php"; + return new File_Archive_Writer_UniqueAppender($result); + } else { + return $result->makeAppendWriter(); + } + } + + //The source can't be found and has to be created + $stat[9] = $stat['mtime'] = time(); + + if (empty($baseDir)) { + if ($source !== null) { + $writer =& $source->makeWriter(); + } else { + $writer =& File_Archive::toFiles(); + } + if (PEAR::isError($writer)) { + return $writer; + } + + PEAR::pushErrorHandling(PEAR_ERROR_RETURN); + $result = File_Archive::toArchive($reachable, $writer, $type); + PEAR::popErrorHandling(); + + if (PEAR::isError($result)) { + $result = File_Archive::toFiles($reachable); + } + } else { + $reachedSource = File_Archive::readSource($source, $reachable); + if (PEAR::isError($reachedSource)) { + return $reachedSource; + } + $writer = $reachedSource->makeWriter(); + if (PEAR::isError($writer)) { + return $writer; + } + + PEAR::pushErrorHandling(PEAR_ERROR_RETURN); + $result = File_Archive::toArchive($baseDir, $writer, $type); + PEAR::popErrorHandling(); + + if (PEAR::isError($result)) { + require_once "File/Archive/Writer/AddBaseName.php"; + $result = new File_Archive_Writer_AddBaseName( + $baseDir, $writer); + if (PEAR::isError($result)) { + return $result; + } + } + } + return $result; + } + + /** + * Create a writer that allows appending new files to an existing archive + * This function actes as appendToSource with source being the system files + * $URL can't be null here + * + * @param File_Archive_Reader $source A reader where some files will be appended + * @return File_Archive_Writer a writer that you can use to append files to the reader + */ + function appender($URL, $unique = null, $type = null, $stat = array()) + { + $source = null; + return File_Archive::appenderFromSource($source, $URL, $unique, $type, $stat); + } + + /** + * Remove the files that follow a given predicate from the source + * If URL is null, the files will be removed from the source directly + * Else, URL must link to a source from which the files will be removed + * + * @param File_Archive_Predicate $pred The files that follow the predicate + * (for which $pred->isTrue($source) is true) will be erased + * @param File_Archive_Reader $source A reader that contains the files to remove + */ + function removeFromSource(&$pred, &$toConvert, $URL = null) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + if ($URL === null) { + $result = &$source; + } else { + if (substr($URL, -1) !== '/') { + $URL .= '/'; + } + $result = File_Archive::readSource($source, $URL); + } + + $writer = $result->makeWriterRemoveFiles($pred); + if (PEAR::isError($writer)) { + return $writer; + } + $writer->close(); + } + + /** + * Remove the files that follow a given predicate from the archive specified + * in $URL + * + * @param $URL URL of the archive where some files must be removed + */ + function remove($pred, $URL) + { + $source = null; + return File_Archive::removeFromSource($pred, $source, $URL); + } + + /** + * Remove duplicates from a source, keeping the most recent one (or the one that has highest pos in + * the archive if the files have same date or no date specified) + * + * @param File_Archive_Reader a reader that may contain duplicates + */ + function removeDuplicatesFromSource(&$toConvert, $URL = null) + { + $source =& File_Archive::_convertToReader($toConvert); + if (PEAR::isError($source)) { + return $source; + } + if ($URL !== null && substr($URL, -1) != '/') { + $URL .= '/'; + } + + if ($source === null) { + $source = File_Archive::read($URL); + } + + require_once "File/Archive/Predicate/Duplicate.php"; + $pred = new File_Archive_Predicate_Duplicate($source); + $source->close(); + return File_Archive::removeFromSource( + $pred, + $source, + null + ); + } + + /** + * Remove duplicates from the archive specified in the URL + */ + function removeDuplicates($URL) + { + $source = null; + return File_Archive::removeDuplicatesFromSource($source, $URL); + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate.php new file mode 100644 index 0000000..6f171b4 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate.php @@ -0,0 +1,57 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Predicate.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader.php"; + +/** + * A predicate is an object that can evaluate to true or false depending on the + * file currently read by a File_Archive_Reader + * + * @see File_Archive_Reader_Filter + */ +class File_Archive_Predicate +{ + /** + * Indicates whether the current file from the reader should be kept + * + * @param File_Archive_Reader $source Reader which will be filtered + * @return bool False if the current file must be filtered out + */ + function isTrue(&$source) + { + return PEAR::raiseError("Predicat abstract function call"); + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/And.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/And.php new file mode 100644 index 0000000..674d80a --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/And.php @@ -0,0 +1,87 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: And.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Evaluates to true iif all predicates given as constructor parameters evaluate + * to true + * + * Example: + * new File_Archive_Predicate_And($pred1, $pred2, $pred3) + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_And extends File_Archive_Predicate +{ + /** + * @var Array List of File_Archive_Predicate objects given as an argument + * @access private + */ + var $preds; + + /** + * Build the predicate using the optional File_Archive_Predicates given as + * arguments + * + * Example: + * new File_Archive_Predicate_And($pred1, $pred2, $pred3) + */ + function File_Archive_Predicate_And() + { + $this->preds = func_get_args(); + } + + /** + * Add a new predicate to the list + * + * @param File_Archive_Predicate The predicate to add + */ + function addPredicate($pred) + { + $this->preds[] = $pred; + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + foreach ($this->preds as $p) { + if (!$p->isTrue($source)) { + return false; + } + } + return true; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Current.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Current.php new file mode 100644 index 0000000..2276a74 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Current.php @@ -0,0 +1,52 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Current.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Evaluates to true only once, and then always to false + */ +class File_Archive_Predicate_Current extends File_Archive_Predicate +{ + var $value = true; + + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + $tmp = $this->value; + $this->value = false; + return $tmp; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Custom.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Custom.php new file mode 100644 index 0000000..1b43655 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Custom.php @@ -0,0 +1,88 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Custom.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Custom predicate built by supplying a string expression + * + * Example: + * new File_Archive_Predicate_Custom("return strlen($name)<100;") + * new File_Archive_Predicate_Custom("strlen($name)<100;") + * new File_Archive_Predicate_Custom("strlen($name)<100") + * new File_Archive_Predicate_Custom("strlen($source->getFilename())<100") + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_Custom extends File_Archive_Predicate +{ + var $expression; + var $useName; + var $useStat; + var $useMIME; + + /** + * @param string $expression PHP code that evaluates too a boolean + * It can use the $source variable. If return is ommited, it will be + * added to the begining of the expression. A ; will also be added at + * the end so that you don't need to write it + */ + function File_Archive_Predicate_Custom($expression) + { + $this->expression = $expression.";"; + if (strpos($this->expression, "return") === false) { + $this->expression = "return ".$this->expression; + } + $this->useName = (strpos($this->expression, '$name') !== false); + $this->useStat = (strpos($this->expression, '$stat') !== false); + $this->useMIME = (strpos($this->expression, '$mime') !== false); + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + if ($this->useName) { + $name = $source->getFilename(); + } + if ($this->useStat) { + $stat = $source->getStat(); + $size = $stat[7]; + $time = (isset($stat[9]) ? $stat[9] : null); + } + if ($this->useMIME) { + $mime = $source->getMIME(); + } + return (bool)eval($this->expression); + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Duplicate.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Duplicate.php new file mode 100644 index 0000000..16ad94e --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Duplicate.php @@ -0,0 +1,116 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Duplicate.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Evaluates to true if a for the files for which a newer version + * can be found in a specified archive + * Comparison is by default made on dates of the files, or position + * in the archive (if two files have the same date or the date of a + * file is not specified). + */ +class File_Archive_Predicate_Duplicate extends File_Archive_Predicate +{ + /** + * @var array Key is the filename, value is an array of date (index 0) and + * position in the archive (index) 1 of the newest entry with this filename + */ + var $newest = array(); + + /** + * @var int The current position of the file in the source + */ + var $pos = 0; + + /** + * @param File_Archive_Reader $source The source will be inspected to find + * the date of old files + * The predicate should then be used on the same source to remove the + * old duplicate files + */ + function File_Archive_Predicate_Duplicate(&$source) + { + //Ensure we are at the begining of the file + $source->close(); + $pos = 0; + while ($source->next()) { + $filename = $source->getFilename(); + $stat = $source->getStat(); + $value = isset($this->newest[$filename]) ? $this->newest[$filename] : null; + + if ($value === null || + $this->compare($stat[9], $value[0]) >= 0 + ) { + $this->newest[$filename] = array($stat[9], $pos); + } + $pos++; + } + } + + /** + * Compare the dates of two files. null is considered infinitely old + * + * @return int < 0 if $a can be considered older than $b + * = 0 if $a and $b can be considered same age + * > 0 if $a can be considered newer than $b + */ + function compare($a, $b) { + return ($a === null ? -1 : $a) - ($b === null ? -1 : $b); + } + + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + $filename = $source->getFilename(); + $stat = $source->getStat(); + $value = isset($this->newest[$filename]) ? $this->newest[$filename] : null; + if ($value === null) { + $delete = false; + } else { + $comp = $this->compare($stat[9], $value[0]); + + $delete = $comp < 0 || + ($comp == 0 && $this->pos != $value[1]); + + } + $this->pos++; + return $delete; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Ereg.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Ereg.php new file mode 100644 index 0000000..e2bbd9d --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Ereg.php @@ -0,0 +1,59 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Ereg.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Keep only the files which name follow a given regular expression + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter ereg + */ +class File_Archive_Predicate_Ereg extends File_Archive_Predicate +{ + var $ereg; + + /** + * @param string $ereg is the regular expression + */ + function File_Archive_Predicate_Ereg($ereg) + { + $this->ereg = $ereg; + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + return (bool)ereg($this->ereg, $source->getFilename()); + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Eregi.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Eregi.php new file mode 100644 index 0000000..540f1c4 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Eregi.php @@ -0,0 +1,61 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Eregi.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Keep only the files which name follow a given case insensitive regular + * expression + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter eregi + */ +class File_Archive_Predicate_Eregi extends File_Archive_Predicate +{ + var $ereg; + + /** + * @param string $ereg is the regular expression + */ + function File_Archive_Predicate_Eregi($ereg) + { + $this->ereg = $ereg; + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + return (bool)eregi($this->ereg, $source->getFilename()); + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Extension.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Extension.php new file mode 100644 index 0000000..419e643 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Extension.php @@ -0,0 +1,71 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Extension.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Keep only the files that have a specific extension + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_Extension extends File_Archive_Predicate +{ + var $extensions; + + /** + * @param $extensions array or comma separated string of allowed extensions + */ + function File_Archive_Predicate_Extension($extensions) + { + if (is_string($extensions)) { + $this->extensions = explode(",",$extensions); + } else { + $this->extensions = $extensions; + } + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + $filename = $source->getFilename(); + $pos = strrpos($filename, '.'); + $extension = ""; + if ($pos !== FALSE) { + $extension = strtolower(substr($filename, $pos+1)); + } + $result = in_array($extension, $this->extensions); + + return $result; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/False.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/False.php new file mode 100644 index 0000000..cfa20b2 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/False.php @@ -0,0 +1,47 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: False.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Always evaluate to false + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_False extends File_Archive_Predicate +{ + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) { return false; } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Index.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Index.php new file mode 100644 index 0000000..9fde26c --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Index.php @@ -0,0 +1,62 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Index.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Evaluates to true if the index is in a given array of indexes + * The array has the indexes in key (so you may want to call + * array_flip if your array has indexes as value) + */ +class File_Archive_Predicate_Index extends File_Archive_Predicate +{ + var $indexes; + var $pos = 0; + + /** + * @param $extensions array or comma separated string of allowed extensions + */ + function File_Archive_Predicate_Index($indexes) + { + $this->indexes = $indexes; + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + return isset($this->indexes[$this->pos++]); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MIME.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MIME.php new file mode 100644 index 0000000..54c3d61 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MIME.php @@ -0,0 +1,75 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: MIME.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; +require_once "MIME/Type.php"; + +/** + * Keep only the files that have a specific MIME type + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_MIME extends File_Archive_Predicate +{ + var $mimes; + + /** + * @param $extensions array or comma separated string of allowed extensions + */ + function File_Archive_Predicate_MIME($mimes) + { + if (is_string($mimes)) { + $this->mimes = explode(",",$mimes); + } else { + $this->mimes = $mimes; + } + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + $sourceMIME = $source->getMIME(); + foreach ($this->mimes as $mime) { + if (MIME_Type::isWildcard($mime)) { + $result = MIME_Type::wildcardMatch($mime, $sourceMIME); + } else { + $result = ($mime == $sourceMIME); + } + if ($result !== false) { + return $result; + } + } + return false; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MaxDepth.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MaxDepth.php new file mode 100644 index 0000000..5d78f40 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MaxDepth.php @@ -0,0 +1,63 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: MaxDepth.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Remove the URLs with a too high number of nested directories + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_MaxDepth extends File_Archive_Predicate +{ + var $maxDepth; + + /** + * @param int $maxDepth Maximal number of folders before the actual file in + * $source->getFilename(). + * '1/2/3/4/foo.txt' will be accepted with $maxDepth == 4 and + * rejected with $maxDepth == 5 + */ + function File_Archive_Predicate_MaxDepth($maxDepth) + { + $this->maxDepth = $maxDepth; + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + $url = parse_url($source->getFilename()); + return substr_count($url['path'], '/') <= $this->maxDepth ; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MinSize.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MinSize.php new file mode 100644 index 0000000..9825622 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MinSize.php @@ -0,0 +1,59 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: MinSize.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Keep only the files larger than a given size + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_MinSize extends File_Archive_Predicate +{ + var $minSize = 0; + + /** + * @param int $minSize minimal size of the file (in Bytes) + */ + function File_Archive_Predicate_MinSize($minSize) + { + $this->minSize = $minSize; + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + $stat = $source->getStat(); + return !isset($stat[7]) || $stat[7]>=$this->minSize; + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MinTime.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MinTime.php new file mode 100644 index 0000000..7770b59 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/MinTime.php @@ -0,0 +1,63 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: MinTime.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Keep only the files modified after a given date (or with unknown modification + * date) + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_MinTime extends File_Archive_Predicate +{ + var $minTime = 0; + + /** + * @param int $minTime Unix timestamp of the minimal modification date of + * the files + */ + function File_Archive_Predicate_MinTime($minTime) + { + $this->minTime = $minTime; + + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + $stat = $source->getStat(); + return !isset($stat[9]) || $stat[9]>=$this->minTime; + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Not.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Not.php new file mode 100644 index 0000000..b058fe8 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Not.php @@ -0,0 +1,55 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Not.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Evaluates to true iif the predicate given in parameter evaluates to false + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_Not extends File_Archive_Predicate +{ + var $pred; + function File_Archive_Predicate_Not($pred) + { + $this->pred = $pred; + } + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + return !$this->pred->isTrue($source); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Or.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Or.php new file mode 100644 index 0000000..db82e4a --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/Or.php @@ -0,0 +1,85 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Or.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Evaluates to true iif one at least of the predicates + * given as constructor parameters evaluate to true + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +class File_Archive_Predicate_Or extends File_Archive_Predicate +{ + /** + * @var Array List of File_Archive_Predicate objects given as an argument + * @access private + */ + var $preds; + + /** + * Build the predicate using the optional File_Archive_Predicates given as + * arguments + * + * Example: + * new File_Archive_Predicate_And($pred1, $pred2, $pred3) + */ + function File_Archive_Predicate_And() + { + $this->preds = func_get_args(); + } + + /** + * Add a new predicate to the list + * + * @param File_Archive_Predicate The predicate to add + */ + function addPredicate($pred) + { + $this->preds[] = $pred; + } + + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) + { + foreach ($this->preds as $p) { + if ($p->isTrue($source)) { + return true; + } + } + return false; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/True.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/True.php new file mode 100644 index 0000000..fdfa5d0 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Predicate/True.php @@ -0,0 +1,45 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: True.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Predicate.php"; + +/** + * Always evaluate to true + */ +class File_Archive_Predicate_True extends File_Archive_Predicate +{ + /** + * @see File_Archive_Predicate::isTrue() + */ + function isTrue(&$source) { return true; } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader.php new file mode 100644 index 0000000..7c5db43 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader.php @@ -0,0 +1,427 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Reader.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "PEAR.php"; + +/** + * Abstract base class for all the readers + * + * A reader is a compilation of serveral files that can be read + */ +class File_Archive_Reader +{ + /** + * Move to the next file or folder in the reader + * + * @return bool false iif no more files are available + */ + function next() + { + return false; + } + + /** + * Move to the next file whose name is in directory $filename + * or is exactly $filename + * + * @param string $filename Name of the file to find in the archive + * @param bool $close If true, close the reader and search from the first file + * @return bool whether the file was found in the archive or not + */ + function select($filename, $close = true) + { + $std = $this->getStandardURL($filename); + if (substr($std, -1)=='/') { + $std = substr($std, 0, -1); + } + + if ($close) { + $error = $this->close(); + if (PEAR::isError($error)) { + return $error; + } + } + while (($error = $this->next()) === true) { + $sourceName = $this->getFilename(); + if ( + empty($std) || + + //$std is a file + $std == $sourceName || + + //$std is a directory + (strncmp($std.'/', $sourceName, strlen($std)+1) == 0 && + strlen($sourceName) > strlen($std)+1) + ) { + return true; + } + } + return $error; + } + + /** + * Returns the standard path + * Changes \ to / + * Removes the .. and . from the URL + * @param string $path a valid URL that may contain . or .. and \ + * @static + */ + function getStandardURL($path) + { + if ($path == '.') { + return ''; + } + $std = str_replace("\\", "/", $path); + while ($std != ($std = preg_replace("/[^\/:?]+\/\.\.\//", "", $std))) ; + $std = str_replace("/./", "", $std); + if (strncmp($std, "./", 2) == 0) { + /** + * If return value is going to be / (root on POSIX) + */ + if (substr($std, 2) === '/') { + return $std; + } + return substr($std, 2); + } else { + return $std; + } + } + + /** + * Returns the name of the file currently read by the reader + * + * Warning: undefined behaviour if no call to next have been + * done or if last call to next has returned false + * + * @return string Name of the current file + */ + function getFilename() + { + return PEAR::raiseError("Reader abstract function call (getFilename)"); + } + + /** + * Returns the list of filenames from the current pos to the end of the source + * The source will be closed after having called this function + * This function goes through the whole archive (which may be slow). + * If you intend to work on the reader, doing it in one pass would be faster + * + * @return array filenames from the current pos to the end of the source + */ + function getFileList() + { + $result = array(); + while ( ($error = $this->next()) === true) { + $result[] = $this->getFilename(); + } + $this->close(); + if (PEAR::isError($error)) { + return $error; + } else { + return $result; + } + } + + /** + * Returns an array of statistics about the file + * (see the PHP stat function for more information) + * + * The returned array may be empty, even if readers should try + * their best to return as many data as possible + */ + function getStat() { return array(); } + + /** + * Returns the MIME associated with the current file + * The default function does that by looking at the extension of the file + */ + function getMime() + { + require_once "File/Archive/Reader/MimeList.php"; + return File_Archive_Reader_GetMime($this->getFilename()); + } + + /** + * If the current file of the archive is a physical file, + * + * @return the name of the physical file containing the data + * or null if no such file exists + * + * The data filename may not be the same as the filename. + */ + function getDataFilename() { return null; } + + /** + * Reads some data from the current file + * If the end of the file is reached, returns null + * If $length is not specified, reads up to the end of the file + * If $length is specified reads up to $length + */ + function getData($length = -1) + { + return PEAR::raiseError("Reader abstract function call (getData)"); + } + + /** + * Skip some data and returns how many bytes have been skipped + * This is strictly equivalent to + * return strlen(getData($length)) + * But could be far more efficient + */ + function skip($length = -1) + { + $data = $this->getData($length); + if (PEAR::isError($data)) { + return $data; + } else { + return strlen($data); + } + } + + /** + * Move the current position back of a given amount of bytes. + * Not all readers may implement this function (a PEAR error will + * be returned if the reader can't rewind) + * + * @param int $length number of bytes to seek before the current pos + * or -1 to move back to the begining of the current file + * @return the number of bytes really rewinded (which may be less than + * $length if the current pos is less than $length + */ + function rewind($length = -1) + { + return PEAR::raiseError('Rewind function is not implemented on this reader'); + } + + /** + * Returns the current offset in the current file + */ + function tell() + { + $offset = $this->rewind(); + $this->skip($offset); + return $offset; + } + + /** + * Put back the reader in the state it was before the first call + * to next() + */ + function close() + { + } + + /** + * Sends the current file to the Writer $writer + * The data will be sent by chunks of at most $bufferSize bytes + * If $bufferSize <= 0 (default), the blockSize option is used + */ + function sendData(&$writer, $bufferSize = 0) + { + if (PEAR::isError($writer)) { + return $writer; + } + if ($bufferSize <= 0) { + $bufferSize = File_Archive::getOption('blockSize'); + } + + $filename = $this->getDataFilename(); + if ($filename !== null) { + $error = $writer->writeFile($filename); + if (PEAR::isError($error)) { + return $error; + } + } else { + while (($data = $this->getData($bufferSize)) !== null) { + if (PEAR::isError($data)) { + return $data; + } + $error = $writer->writeData($data); + if (PEAR::isError($error)) { + return $error; + } + } + } + } + + /** + * Sends the whole reader to $writer and close the reader + * + * @param File_Archive_Writer $writer Where to write the files of the reader + * @param bool $autoClose If true, close $writer at the end of the function. + * Default value is true + * @param int $bufferSize Size of the chunks that will be sent to the writer + * If $bufferSize <= 0 (default value), the blockSize option is used + */ + function extract(&$writer, $autoClose = true, $bufferSize = 0) + { + if (PEAR::isError($writer)) { + $this->close(); + return $writer; + } + + while (($error = $this->next()) === true) { + if ($writer->newFileNeedsMIME()) { + $mime = $this->getMime(); + } else { + $mime = null; + } + + $error = $writer->newFile( + $this->getFilename(), + $this->getStat(), + $mime + ); + if (PEAR::isError($error)) { + break; + } + $error = $this->sendData($writer, $bufferSize); + if (PEAR::isError($error)) { + break; + } + } + $this->close(); + if ($autoClose) { + $writer->close(); + } + if (PEAR::isError($error)) { + return $error; + } + } + + /** + * Extract only one file (given by the URL) + * + * @param string $filename URL of the file to extract from this + * @param File_Archive_Writer $writer Where to write the file + * @param bool $autoClose If true, close $writer at the end of the function + * Default value is true + * @param int $bufferSize Size of the chunks that will be sent to the writer + * If $bufferSize <= 0 (default value), the blockSize option is used + */ + function extractFile($filename, &$writer, + $autoClose = true, $bufferSize = 0) + { + if (PEAR::isError($writer)) { + return $writer; + } + + if (($error = $this->select($filename)) === true) { + $result = $this->sendData($writer, $bufferSize); + if (!PEAR::isError($result)) { + $result = true; + } + } else if ($error === false) { + $result = PEAR::raiseError("File $filename not found"); + } else { + $result = $error; + } + if ($autoClose) { + $error = $writer->close(); + if (PEAR::isError($error)) { + return $error; + } + } + return $result; + } + + /** + * Return a writer that allows appending files to the archive + * After having called makeAppendWriter, $this is closed and should not be + * used until the returned writer is closed. + * + * @return a writer that will allow to append files to an existing archive + * @see makeWriter + */ + function makeAppendWriter() + { + require_once "File/Archive/Predicate/False.php"; + return $this->makeWriterRemoveFiles(new File_Archive_Predicate_False()); + } + + /** + * Return a writer that has the same properties as the one returned by + * makeAppendWriter, but after having removed all the files that follow a + * given predicate. + * After a call to makeWriterRemoveFiles, $this is closed and should not + * be used until the returned writer is closed + * + * @param File_Archive_Predicate $pred the predicate verified by removed files + * @return File_Archive_Writer that allows to append files to the archive + */ + function makeWriterRemoveFiles($pred) + { + return PEAR::raiseError("Reader abstract function call (makeWriterRemoveFiles)"); + } + + /** + * Returns a writer that removes the current file + * This is a syntaxic sugar for makeWriterRemoveFiles(new File_Archive_Predicate_Current()); + */ + function makeWriterRemove() + { + require_once "File/Archive/Predicate/Current.php"; + return $this->makeWriterRemoveFiles(new File_Archive_Predicate_Current()); + } + + /** + * Removes the current file from the reader + */ + function remove() + { + $writer = $this->makeWriterRemove(); + if (PEAR::isError($writer)) { + return $writer; + } + $writer->close(); + } + + /** + * Return a writer that has the same properties as the one returned by makeWriter, but after + * having removed a block of data from the current file. The writer will append data to the current file + * no data (other than the block) will be removed + * + * @param array Lengths of the blocks. The first one will be discarded, the second one kept, the third + * one discarded... If the sum of the blocks is less than the size of the file, the comportment is the + * same as if a last block was set in the array to reach the size of the file + * if $length is -1, the file is truncated from the specified pos + * It is possible to specify blocks of size 0 + * @param int $seek relative pos of the block + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + return PEAR::raiseError("Reader abstract function call (makeWriterRemoveBlocks)"); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Ar.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Ar.php new file mode 100644 index 0000000..60cb557 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Ar.php @@ -0,0 +1,387 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Archive.php"; + +/** + * Read an Ar archive + */ +class File_Archive_Reader_Ar extends File_Archive_Reader_Archive +{ + /** + * @var int The number of files to read to reach the end of the + * current ar file + * + * @access private + */ + var $_nbBytesLeft = 0; + + /** + * @var int The size of the header in number of bytes + * The header is not always 60 bytes since it sometimes + * contains a long filename + * @access private + */ + var $_header = 0; + + /** + * @var boolean Flag set if their is a 1 byte footer after the data + * of the current ar file + * + * @access private + */ + var $_footer = false; + + /** + * @var boolean Flag that has tell us if we have read the header of the + * current file + * @access private + */ + var $_alreadyRead = false; + + /** + * @var string Name of the file being read + * @access private + */ + var $_currentFilename = null; + + /** + * @var string Stat properties of the file being read + * It has: name, utime, uid, gid, mode, size and data + * @access private + */ + var $_currentStat = null; + + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() + { + return $this->_currentFilename; + } + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $this->_currentFilename = null; + $this->_currentStat = null; + $this->_nbBytesLeft = 0; + $this->_header = 0; + $this->_footer = false; + $this->_alreadyRead = false; + return parent::close(); + } + + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() + { + return $this->_currentStat; + } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + $error = parent::next(); + if ($error !== true) { + return $error; + } + + $this->source->skip( + $this->_nbBytesLeft + ($this->_footer ? 1 : 0) + ); + + $filename = $this->source->getDataFilename(); + + if (!$this->_alreadyRead) { + $header = $this->source->getData(8); + if ($header != "!\n") { + return PEAR::raiseError("File {$filename} is not a valid Ar file format (starts with $header)"); + } + $this->_alreadyRead = true; + } + + + $name = $this->source->getData(16); + $mtime = $this->source->getData(12); + $uid = $this->source->getData(6); + $gid = $this->source->getData(6); + $mode = $this->source->getData(8); + $size = $this->source->getData(10); + $delim = $this->source->getData(2); + + if ($delim === null) { + return false; + } + + // All files inside should have more than 0 bytes of size + if ($size < 0) { + return PEAR::raiseError("Files must be at least one byte long"); + } + + $this->_footer = ($size % 2 == 1); + + // if the filename starts with a length, then just read the bytes of it + if (preg_match("/\#1\/(\d+)/", $name, $matches)) { + $this->_header = 60 + $matches[1]; + $name = $this->source->getData($matches[1]); + $size -= $matches[1]; + } else { + // strip trailing spaces in name, so we can distinguish spaces in a filename with padding + $this->_header = 60; + $name = preg_replace ("/\s+$/", "", $name); + } + + $this->_nbBytesLeft = $size; + if (empty($name) || empty($mtime) || empty($uid) || + empty($gid) || empty($mode) || empty($size)) { + return PEAR::raiseError("An ar field is empty"); + } + + $this->_currentFilename = $this->getStandardURL($name); + $this->_currentStat = array( + 2 => $mode, + 'mode' => $mode, + 4 => $uid, + 'uid' => $uid, + 5 => $gid, + 'gid' => $gid, + 7 => $size, + 'size' => $size, + 9 => $mtime, + 'mtime' => $mtime + ); + + return true; + } + + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($length == -1) { + $length = $this->_nbBytesLeft; + } else { + $length = min($length, $this->_nbBytesLeft); + } + if ($length == 0) { + return null; + } else { + $this->_nbBytesLeft -= $length; + $data = $this->source->getData($length); + if (PEAR::isError($data)) { + return $data; + } + if (strlen($data) != $length) { + return PEAR::raiseError('Unexpected end of Ar archive'); + } + return $data; + } + } + + /** + * @see File_Archive_Reader::skip + */ + function skip($length = -1) + { + if ($length == -1) { + $length = $this->_nbBytesLeft; + } else { + $length = min($length, $this->_nbBytesLeft); + } + if ($length == 0) { + return 0; + } else { + $this->_nbBytesLeft -= $length; + $skipped = $this->source->skip($length); + if (PEAR::isError($skipped)) { + return $skipped; + } + if ($skipped != $length) { + return PEAR::raiseError('Unexpected end of Ar archive'); + } + return $skipped; + } + } + + /** + * @see File_Archive_Reader::rewind + */ + function rewind($length = -1) + { + if ($length == -1) { + $length = $this->_currentStat[7] - $this->_nbBytesLeft; + } else { + $length = min($length, $this->_currentStat[7] - $this->_nbBytesLeft); + } + if ($length == 0) { + return 0; + } else { + $rewinded = $this->source->rewind($length); + if (!PEAR::isError($rewinded)) { + $this->_nbBytesLeft += $rewinded; + } + return $rewinded; + } + } + + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return $this->_currentStat[7] - $this->_nbBytesLeft; + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + require_once "File/Archive/Writer/Ar.php"; + + $blocks = array(); + $seek = null; + $gap = 0; + if ($this->_currentFilename !== null && $pred->isTrue($this)) { + $seek = $this->_header + $this->_currentStat[7] + ($this->_footer ? 1 : 0); + $blocks[] = $seek; //Remove this file + } + + while (($error = $this->next()) === true) { + $size = $this->_header + $this->_currentStat[7] + ($this->_footer ? 1 : 0); + if ($pred->isTrue($this)) { + if ($seek === null) { + $seek = $size; + $blocks[] = $size; + } else if ($gap > 0) { + $blocks[] = $gap; //Don't remove the files between the gap + $blocks[] = $size; + $seek += $size; + } else { + $blocks[count($blocks)-1] += $size; //Also remove this file + $seek += $size; + } + $gap = 0; + } else { + if ($seek !== null) { + $seek += $size; + $gap += $size; + } + } + } + if ($seek === null) { + $seek = 0; + } else { + if ($gap == 0) { + array_pop($blocks); + } else { + $blocks[] = $gap; + } + } + + $writer = new File_Archive_Writer_Ar(null, + $this->source->makeWriterRemoveBlocks($blocks, -$seek) + ); + $this->close(); + return $writer; + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + if ($this->_currentStat === null) { + return PEAR::raiseError('No file selected'); + } + + $blockPos = $this->_currentStat[7] - $this->_nbBytesLeft + $seek; + + $this->rewind(); + $keep = false; + + $data = $this->getData($blockPos); + foreach ($blocks as $length) { + if ($keep) { + $data .= $this->getData($length); + } else { + $this->skip($length); + } + $keep = !$keep; + } + if ($keep) { + $data .= $this->getData(); + } + + $filename = $this->_currentFilename; + $stat = $this->_currentStat; + + $writer = $this->makeWriterRemove(); + if (PEAR::isError($writer)) { + return $writer; + } + + unset($stat[7]); + $writer->newFile($filename, $stat); + $writer->writeData($data); + return $writer; + } + + /** + * @see File_Archive_Reader::makeAppendWriter + */ + function makeAppendWriter() + { + require_once "File/Archive/Writer/Ar.php"; + + while (($error = $this->next()) === true) { } + if (PEAR::isError($error)) { + $this->close(); + return $error; + } + + $innerWriter = $this->source->makeWriterRemoveBlocks(array()); + if (PEAR::isError($innerWriter)) { + return $innerWriter; + } + + unset($this->source); + $this->close(); + + return new File_Archive_Writer_Ar(null, $innerWriter); + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Archive.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Archive.php new file mode 100644 index 0000000..71050b6 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Archive.php @@ -0,0 +1,98 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Archive.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader.php"; + +/** + * Base class for all the archive readers (that read from a single file) + */ +class File_Archive_Reader_Archive extends File_Archive_Reader +{ + /** + * @var File_Archive_Reader Single file source that contains the archive + * to uncompress + * @access protected + */ + var $source = null; + + /** + * @var bool Indicate whether the $source is currently opened + * @access private + */ + var $sourceOpened = false; + + /** + * The source was let in this state at the end + * + * @var bool Indicate whether the $source was given opened + * @access private + */ + var $sourceInitiallyOpened; + +//ABSTRACT + /** + * @see File_Archive_Reader::next() + * + * Open the source if necessary + */ + function next() + { + if (!$this->sourceOpened && ($error = $this->source->next()) !== true) { + return $error; + } + + $this->sourceOpened = true; + return true; + } + +//PUBLIC + function File_Archive_Reader_Archive(&$source, $sourceOpened = false) + { + $this->source =& $source; + $this->sourceOpened = $this->sourceInitiallyOpened = $sourceOpened; + } + /** + * Close the source if it was given closed in the constructor + * + * @see File_Archive_Reader::close() + */ + function close() + { + if (!$this->sourceInitiallyOpened && $this->sourceOpened) { + $this->sourceOpened = false; + if ($this->source !== null) { + return $this->source->close(); + } + } + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Bzip2.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Bzip2.php new file mode 100644 index 0000000..80b0cfa --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Bzip2.php @@ -0,0 +1,254 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Bzip2.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Archive.php"; +require_once "File/Archive/Writer/Files.php"; + +/** + * Uncompress a file that was compressed in the Bzip2 format + */ +class File_Archive_Reader_Bzip2 extends File_Archive_Reader_Archive +{ + var $nbRead = 0; + var $bzfile = null; + var $tmpName = null; + var $filePos = 0; + + /** + * @see File_Archive_Reader::close() + */ + function close($innerClose = true) + { + if ($this->bzfile !== null) + bzclose($this->bzfile); + if ($this->tmpName !== null) + unlink($this->tmpName); + + $this->bzfile = null; + $this->tmpName = null; + $this->nbRead = 0; + $this->filePos = 0; + return parent::close($innerClose); + } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + if (!parent::next()) { + return false; + } + + $this->nbRead++; + if ($this->nbRead > 1) { + return false; + } + + $dataFilename = $this->source->getDataFilename(); + if ($dataFilename !== null) + { + $this->tmpName = null; + $this->bzfile = @bzopen($dataFilename, 'r'); + if ($this->bzfile === false) { + return PEAR::raiseError("bzopen failed to open $dataFilename"); + } + } else { + $this->tmpName = tempnam(File_Archive::getOption('tmpDirectory'), 'far'); + + //Generate the tmp data + $dest = new File_Archive_Writer_Files(); + $dest->newFile($this->tmpName); + $this->source->sendData($dest); + $dest->close(); + + $this->bzfile = bzopen($this->tmpName, 'r'); + } + + return true; + } + /** + * Return the name of the single file contained in the archive + * deduced from the name of the archive (the extension is removed) + * + * @see File_Archive_Reader::getFilename() + */ + function getFilename() + { + $name = $this->source->getFilename(); + $pos = strrpos($name, "."); + if ($pos === false || $pos === 0) { + return $name; + } else { + return substr($name, 0, $pos); + } + } + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($length == -1) { + $data = ''; + do { + $newData = bzread($this->bzfile); + $data .= $newData; + } while ($newData != ''); + $this->filePos += strlen($data); + } else if ($length == 0) { + return ''; + } else { + $data = ''; + + //The loop is here to correct what appears to be a bzread bug + while (strlen($data) < $length) { + $newData = bzread($this->bzfile, $length - strlen($data)); + if ($newData == '') { + break; + } + $data .= $newData; + } + $this->filePos += strlen($data); + } + + return $data == '' ? null : $data; + } + + /** + * @see File_Archive_Reader::rewind + */ + function rewind($length = -1) + { + $before = $this->filePos; + + bzclose($this->bzfile); + if ($this->tmpName === null) { + $this->bzfile = bzopen($this->source->getDataFilename(), 'r'); + } else { + $this->bzfile = bzopen($this->tmpName, 'r'); + } + $this->filePos = 0; + + if ($length != -1) { + $this->skip($before - $length); + } + return $before - $this->filePos; + } + + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return $this->filePos; + } + + /** + * @see File_Archive_Reader::makeAppendWriter() + */ + function makeAppendWriter() + { + return PEAR::raiseError('Unable to append files to a bzip2 archive'); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + return PEAR::raiseError('Unable to remove files from a bzip2 archive'); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + require_once "File/Archive/Writer/Bzip2.php"; + + if ($this->nbRead == 0) { + return PEAR::raiseError('No file selected'); + } + + //Uncompress data to a temporary file + $tmp = tmpfile(); + $expectedPos = $this->filePos + $seek; + + $this->rewind(); + + //Read the begining of the file + while ($this->filePos < $expectedPos && + ($data = $this->getData(min($expectedPos - $this->filePos, 8192))) !== null) { + fwrite($tmp, $data); + } + + $keep = false; + foreach ($blocks as $length) { + if ($keep) { + $expectedPos = $this->filePos + $length; + while ($this->filePos < $expectedPos && + ($data = $this->getData(min($expectedPos - $this->filePos, 8192))) !== null) { + fwrite($tmp, $data); + } + } else { + $this->skip($length); + } + $keep = !$keep; + } + if ($keep) { + //Read the end of the file + while(($data = $this->getData(8192)) !== null) { + fwrite($tmp, $data); + } + } + fseek($tmp, 0); + + //Create the writer + $this->source->rewind(); + $innerWriter = $this->source->makeWriterRemoveBlocks(array()); //Truncate the source + unset($this->source); + $writer = new File_Archive_Writer_Bzip2(null, $innerWriter); + + //And compress data from the temporary file + while (!feof($tmp)) { + $data = fread($tmp, 8192); + $writer->writeData($data); + } + fclose($tmp); + + //Do not close inner writer since makeWriter was called + $this->close(); + + return $writer; + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Cache.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Cache.php new file mode 100644 index 0000000..5d676a1 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Cache.php @@ -0,0 +1,262 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Cache.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader.php"; + +/** + * This reader caches the files of another reader + * It allow fast access to files. This is usefull if the access to the reader + * is slow (HTTP, FTP...), but will need more IO if the file is only extracted + */ +class File_Archive_Reader_Cache extends File_Archive_Reader +{ + var $tmpFile; + var $files = array(); + var $pos = 0; + var $fromSource = true; + var $endOfSource = false; + var $source; + + /** + * $source is the reader to filter + */ + function File_Archive_Reader_Cache(&$source) + { + $this->source =& $source; + $this->tmpFile = tmpfile(); + } + + function _writeEndOfFile() + { + $bufferSize = File_Archive::getOption('blockSize'); + while (($data = $this->source->getData($bufferSize))!=null) { + fwrite($this->tmpFile, $data); + } + } + /** + * @see File_Archive_Reader::next() + */ + function next() + { + //Write the end of the current file to the temp file + if ($this->fromSource && !empty($this->files)) { + $this->_writeEndOfFile(); + } + + if ($this->pos+1 < count($this->files) && !$this->fromSource) { + $this->pos++; + fseek($this->tmpFile, $this->files[$this->pos]['pos'], SEEK_SET); + return true; + } else { + $this->fromSource = true; + if ($this->endOfSource) { + return false; + } + + $ret = $this->source->next(); + if ($ret !== true) { + $this->endOfSource = true; + $this->source->close(); + return $ret; + } + + $this->endOfSource = false; + fseek($this->tmpFile, 0, SEEK_END); + $this->files[] = array( + 'name' => $this->source->getFilename(), + 'stat' => $this->source->getStat(), + 'mime' => $this->source->getMime(), + 'pos' => ftell($this->tmpFile) + ); + $this->pos = count($this->files)-1; + + return true; + } + } + + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() { return $this->files[$this->pos]['name']; } + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() { return $this->files[$this->pos]['stat']; } + /** + * @see File_Archive_Reader::getMime() + */ + function getMime() { return $this->files[$this->pos]['mime']; } + /** + * @see File_Archive_Reader::getDataFilename() + */ + function getDataFilename() { return null; } + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($this->fromSource) { + $data = $this->source->getData($length); + if (PEAR::isError($data)) { + return $data; + } + + fwrite($this->tmpFile, $data); + return $data; + } else { + if ($length == 0) { + return ''; + } + + if ($length > 0 && $this->pos+1 < count($this->files)) { + $maxSize = $this->files[$this->pos+1]['pos'] - ftell($this->tmpFile); + if ($maxSize == 0) { + return null; + } + if ($length > $maxSize) { + $length = $maxSize; + } + return fread($this->tmpFile, $length); + } else { + $contents = ''; + $blockSize = File_Archive::getOption('blockSize'); + while (!feof($this->tmpFile)) { + $contents .= fread($this->tmpFile, $blockSize); + } + return $contents == '' ? null : $contents; + } + } + } + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + if ($this->fromSource) { + return strlen($this->getData($length)); + } else { + if ($length >= 0 && $this->pos+1 < count($this->files)) { + $maxSize = $this->files[$this->pos+1]['pos'] - ftell($this->tmpFile); + if ($maxSize == 0) { + return null; + } + if ($length > $maxSize) { + $length = $maxSize; + } + fseek($this->tmpFile, $length, SEEK_CUR); + return $length; + } else { + $before = ftell($this->tmpFile); + fseek($this->tmpFile, 0, SEEK_SET); + $after = fteel($this->tmpFile); + return $after - $before; + } + } + } + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) + { + if ($this->fromSource) { + $this->_writeEndOfFile(); + $this->fromSource = false; + } + $before = ftell($this->tmpFile); + $pos = $this->files[$this->pos]['pos']; + fseek($this->tmpFile, $pos, SEEK_SET); + return $pos - $before; + } + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return ftell($this->tmpFile) - $this->files[$this->pos]['pos']; + } + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $this->fromSource = false; + $this->pos = 0; + fseek($this->tmpFile, 0, SEEK_SET); + } + function _closeAndReset() + { + $this->close(); + + fclose($this->tmpFile); + $this->tmpFile = tmpfile(); + $this->endOfSource = false; + $this->files = array(); + $this->source->close(); + } + /** + * @see File_Archive_Reader::makeAppendWriter() + */ + function makeAppendWriter() + { + $writer = $this->source->makeAppendWriter(); + if (!PEAR::isError($writer)) { + $this->_closeAndReset(); + } + + return $writer; + } + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + $writer = $this->source->makeWriterRemoveFiles($pred); + if (!PEAR::isError($writer)) { + $this->_closeAndReset(); + } + return $writer; + } + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + $writer = $this->source->makeWriterRemoveBlocks($blocks, $seek); + if (!PEAR::isError($writer)) { + $this->_closeAndReset(); + } + return $writer; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName.php new file mode 100644 index 0000000..985145e --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName.php @@ -0,0 +1,136 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: ChangeName.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Relay.php"; + +/** + * Base class for readers that need to modify the name of files + */ +class File_Archive_Reader_ChangeName extends File_Archive_Reader_Relay +{ + /** + * Modify the name + * + * @param string $name Name as in the inner reader + * @return string New name as shown by this reader or false is the + * file or directory has to be skipped + */ + function modifyName($name) + { + } + + /** + * Modify the name back to the inner reader naming style + * If implemented, unmodifyName(modifyName($name)) should be true + * + * unmodifyName can be left unimplemented, this may only impact the + * efficiency of the select function (a full look up will be done when + * something more efficient with an index for example could be used on + * the inner reader of the original name is known). + * + * unmodifyName may be provided some names that where not in the inner reader + * and that cannot possibly be the result of modifyName. In this case + * unmodifyName must return false. + * + * @param string $name Name as shown by this reader + * @return string Name as in the inner reader, or false if there is no + * input such that modifyName would return $name or a file in + * a directory called $name + */ + function unmodifyName($name) + { + return null; + } + + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() + { + return $this->getStandardURL($this->modifyName(parent::getFilename())); + } + /** + * @see File_Archive_Reader::getFileList() + */ + function getFileList() + { + $list = parent::getFileList(); + $result = array(); + foreach ($list as $name) { + $result[] = $this->modifyName($name); + } + return $result; + } + /** + * @see File_Archive_Reader::select() + */ + function select($filename, $close = true) + { + $name = $this->unmodifyName($filename); + if ($name === false) { + return false; + } else if($name === null) { + $std = $this->getStandardURL($filename); + if (substr($std, -1)=='/') { + $std = substr($std, 0, -1); + } + + if ($close) { + $error = $this->close(); + if (PEAR::isError($error)) { + return $error; + } + } + while (($error = $this->next()) === true) { + $sourceName = $this->getFilename(); + $sourceName = $this->modifyName($sourceName, $this->isDirectory()); + $sourceName = $this->getStandardURL($sourceName); + if ( + empty($std) || + + //$std is a file + $std == $sourceName || + + //$std is a directory + (strncmp($std.'/', $sourceName, strlen($std)+1) == 0 && + strlen($sourceName) > strlen($std)+1) + ) { + return true; + } + } + return $error; + } else { + return $this->source->select($name, $close); + } + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/AddDirectory.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/AddDirectory.php new file mode 100644 index 0000000..42541c7 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/AddDirectory.php @@ -0,0 +1,89 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: AddDirectory.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/ChangeName.php"; + +/** + * Add a directory to the public name of all the files of a reader + * + * Example: + * If archive.tar is a file archive containing files a.txt and foo/b.txt + * new File_Archive_Reader_ChangeName_AddDirectory('bar', + * new File_Archive_Reader_Tar( + * new File_Archive_Reader_File('archive.tar') + * ) + * ) is a reader containing files bar/a.txt and bar/foo/b.txt + */ +class File_Archive_Reader_ChangeName_AddDirectory extends File_Archive_Reader_ChangeName +{ + var $baseName; + function File_Archive_Reader_ChangeName_AddDirectory($baseName, &$source) + { + // see http://pear.php.net/bugs/bug.php?id=17046&edit=12&patch=AddDirectory.php.patch&revision=1264868437 +// parent::File_Archive_Reader_ChangeName($source); + parent::__construct($source); + $this->baseName = $this->getStandardURL($baseName); + } + + /** + * Modify the name by adding baseName to it + */ + function modifyName($name) + { + return $this->baseName. + (empty($this->baseName) || empty($name) ? '': '/'). + $name; + } + + /** + * Remove baseName from the name + * Return false if the name doesn't start with baseName + */ + function unmodifyName($name) + { + if (strncmp($name, $this->baseName.'/', strlen($this->baseName)+1) == 0) { + $res = substr($name, strlen($this->baseName)+1); + if ($res === false) { + return ''; + } else { + return $res; + } + } else if (empty($this->baseName)) { + return $name; + } else if ($name == $this->baseName) { + return ''; + } else { + return false; + } + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/Callback.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/Callback.php new file mode 100644 index 0000000..32616a7 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/Callback.php @@ -0,0 +1,52 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Callback.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/ChangeName.php"; + +/** + * Discard the directory structure in a reader + */ +class File_Archive_Reader_ChangeName_Callback extends File_Archive_Reader_ChangeName +{ + var $function; + function File_Archive_Reader_ChangeName_Callback($function, &$source) + { + parent::File_Archive_Reader_ChangeName($source); + $this->function = $function; + } + + function modifyName($name) + { + return call_user_func($function, $name); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/Directory.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/Directory.php new file mode 100644 index 0000000..70e9550 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/ChangeName/Directory.php @@ -0,0 +1,100 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Directory.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/ChangeName.php"; + +/** + * Change a directory name to another + * + * Example: + * If archive.tar is a file archive containing files a.txt and foo/b.txt + * new File_Archive_Reader_ChangeName_Directory('foo', 'bar' + * new File_Archive_Reader_Tar( + * new File_Archive_Reader_File('archive.tar') + * ) + * ) is a reader containing files a.txt and bar/b.txt + */ +class File_Archive_Reader_ChangeName_Directory extends File_Archive_Reader_ChangeName +{ + var $oldBaseName; + var $newBaseName; + + function File_Archive_Reader_ChangeName_Directory + ($oldBaseName, $newBaseName, &$source) + { +// parent::File_Archive_Reader_ChangeName($source); + parent::__construct($source); + $this->oldBaseName = $this->getStandardURL($oldBaseName); + if (substr($this->oldBaseName, -1) == '/') { + $this->oldBaseName = substr($this->oldBaseName, 0, -1); + } + + $this->newBaseName = $this->getStandardURL($newBaseName); + if (substr($this->newBaseName, -1) == '/') { + $this->newBaseName = substr($this->newBaseName, 0, -1); + } + } + + function modifyName($name) + { + if (empty($this->oldBaseName) || + !strncmp($name, $this->oldBaseName.'/', strlen($this->oldBaseName)+1) || + strcmp($name, $this->oldBaseName) == 0) { + return $this->newBaseName. + ( + empty($this->newBaseName) || + strlen($name)<=strlen($this->oldBaseName)+1 ? + '' : '/' + ). + substr($name, strlen($this->oldBaseName)+1); + } else { + return $name; + } + } + function unmodifyName($name) + { + if (empty($this->newBaseName) || + !strncmp($name, $this->newBaseName.'/', strlen($this->newBaseName)+1) || + strcmp($name, $this->newBaseName) == 0) { + return $this->oldBaseName. + ( + empty($this->oldBaseName) || + strlen($name)<=strlen($this->newBaseName)+1 ? + '' : '/' + ). + substr($name, strlen($this->newBaseName)+1); + } else { + return $name; + } + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Concat.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Concat.php new file mode 100644 index 0000000..2997126 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Concat.php @@ -0,0 +1,195 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Concat.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Relay.php"; + +/** + * This reader provides one single file that is the concatenation of the data of + * all the files of another reader + */ +class File_Archive_Reader_Concat extends File_Archive_Reader +{ + var $source; + var $filename; + var $stat; + var $mime; + var $opened = false; + var $filePos = 0; + + function File_Archive_Reader_Concat(&$source, $filename, + $stat=array(), $mime=null) + { + $this->source =& $source; + $this->filename = $filename; + $this->stat = $stat; + $this->mime = $mime; + + //Compute the total length + $this->stat[7] = 0; + while (($error = $source->next()) === true) { + $sourceStat = $source->getStat(); + if (isset($sourceStat[7])) { + $this->stat[7] += $sourceStat[7]; + } else { + unset($this->stat[7]); + break; + } + } + if (isset($this->stat[7])) { + $this->stat['size'] = $this->stat[7]; + } + if (PEAR::isError($error) || PEAR::isError($source->close())) { + die("Error in File_Archive_Reader_Concat constructor ". + '('.$error->getMessage().'), cannot continue'); + } + } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + if (!$this->opened) { + return $this->opened = $this->source->next(); + } else { + return false; + } + } + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() { return $this->filename; } + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() { return $this->stat; } + /** + * @see File_Archive_Reader::getMime() + */ + function getMime() + { + return $this->mime==null ? parent::getMime() : $this->mime; + } + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($length == 0) { + return ''; + } + + $result = ''; + while ($length == -1 || strlen($result)<$length) { + $sourceData = $this->source->getData( + $length==-1 ? -1 : $length - strlen($result) + ); + if (PEAR::isError($sourceData)) { + return $sourceData; + } + + if ($sourceData === null) { + $error = $this->source->next(); + if (PEAR::isError($error)) { + return $error; + } + if (!$error) { + break; + } + } else { + $result .= $sourceData; + } + } + $this->filePos += strlen($result); + return $result == '' ? null : $result; + } + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + $skipped = 0; + while ($skipped < $length) { + $sourceSkipped = $this->source->skip($length); + if (PEAR::isError($sourceSkipped)) { + return $skipped; + } + $skipped += $sourceSkipped; + $filePos += $sourceSkipped; + if ($sourceSkipped < $length) { + $error = $this->source->next(); + if (PEAR::isError($error)) { + return $error; + } + if (!$error) { + return $skipped; + } + } + } + return $skipped; + } + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) + { + //TODO: implement rewind + return parent::rewind($length); + } + + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return $this->filePos; + } + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $this->opened = false; + $this->filePos = 0; + return $this->source->close(); + } + + /** + * @see File_Archive_Reader::makeWriter + */ + function makeWriter($fileModif = true, $seek = 0) + { + return $this->source->makeWriter($fileModif, $seek); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Directory.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Directory.php new file mode 100644 index 0000000..e59daed --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Directory.php @@ -0,0 +1,309 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Directory.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Relay.php"; +require_once "File/Archive/Reader/File.php"; + +/** + * Recursively reads a directory + */ +class File_Archive_Reader_Directory extends File_Archive_Reader_Relay +{ + /** + * @var String URL of the directory that must be read + * @access private + */ + var $directory; + /** + * @var Int The subdirectories will be read up to a depth of maxRecurs + * If maxRecurs == 0, the subdirectories will not be read + * If maxRecurs == -1, the depth is considered infinite + * @access private + */ + var $maxRecurs; + /** + * @var Object Handle returned by the openedDirectory function + * @access private + */ + var $directoryHandle = null; + + /** + * $directory is the path of the directory that must be read + * If $maxRecurs is specified, the subdirectories will be read up to a depth + * of $maxRecurs. In particular, if $maxRecurs == 0, the subdirectories + * won't be read. + */ + function File_Archive_Reader_Directory($directory, $symbolic='', + $maxRecurs=-1) + { + parent::File_Archive_Reader_Relay($tmp = null); + $this->directory = empty($directory) ? '.' : $directory; + $this->symbolic = $this->getStandardURL($symbolic); + $this->maxRecurs = $maxRecurs; + } + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $error = parent::close(); + + if ($this->directoryHandle !== null) { + closedir($this->directoryHandle); + $this->directoryHandle = null; + } + + return $error; + } + + /** + * @see File_Archive_Reader::next() + * + * The files are returned in the same order as readdir + */ + function next() + { + if ($this->directoryHandle === null) { + $this->directoryHandle = opendir($this->directory); + if (!is_resource($this->directoryHandle)) { + return PEAR::raiseError( + "Directory {$this->directory} not found" + ); + } + $this->source = null; + + if (!empty($this->symbolic)) + return true; + } + + while ($this->source === null || + ($error = $this->source->next()) !== true) { + + if ($this->source !== null) { + $this->source->close(); + } + + $file = readdir($this->directoryHandle); + if ($file == '.' || $file == '..') { + continue; + } + if ($file === false) { + return false; + } + + $current = $this->directory.'/'.$file; + if (is_dir($current)) { + if ($this->maxRecurs != 0) { + $this->source = new File_Archive_Reader_Directory( + $current, $file.'/', $this->maxRecurs-1 + ); + } + + } else { + $this->source = new File_Archive_Reader_File($current, $file); + } + } + + return $error; + } + + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() + { + if ($this->source === null) { + return $this->symbolic; + } else { + return $this->symbolic . parent::getFilename(); + } + } + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() + { + if ($this->source === null) { + return stat($this->directory); + } else { + return parent::getStat(); + } + } + /** + * @see File_Archive_Reader::getMime() + */ + function getMime() + { + if ($this->source === null) { + return ''; + } else { + return parent::getMime(); + } + } + /** + * @see File_Archive_Reader::getDataFilename() + */ + function getDataFilename() + { + if ($this->source === null) { + return null; + } else { + return parent::getDataFilename(); + } + } + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($this->source === null) { + return null; + } else { + return parent::getData($length); + } + } + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + if ($this->source === null) { + return 0; + } else { + return parent::skip($length); + } + } + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) + { + if ($this->source === null) { + return 0; + } else { + return parent::rewind($length); + } + } + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + if ($this->source === null) { + return 0; + } else { + return parent::tell(); + } + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + if ($source !== null && $pred->isTrue($this)) { + $toUnlink = $this->getDataFilename(); + } else { + $toUnlink = null; + } + + while ($this->next()) { + if ($toUnlink !== null && + !@unlink($toUnlink)) { + return PEAR::raiseError("Unable to unlink $toUnlink"); + } + $toUnlink = ($pred->isTrue($this) ? $this->getDataFilename() : null); + } + if ($toUnlink !== null && + !@unlink("Unable to unlink $toUnlink")) { + return PEAR::raiseError($pred); + } + + require_once "File/Archive/Writer/Files.php"; + + $writer = new File_Archive_Writer_Files($this->directory); + $this->close(); + return $writer; + } + + function &getLastSource() + { + if ($this->source === null || + is_a($this->source, 'File_Archive_Reader_File')) { + return $this->source; + } else { + return $this->source->getLastSource(); + } + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + $lastSource = &$this->getLastSource(); + if ($lastSource === null) { + return PEAR::raiseError('No file selected'); + } + + require_once "File/Archive/Writer/Files.php"; + + $writer = $lastSource->makeWriterRemoveBlocks($blocks, $seek); + if (!PEAR::isError($writer)) { + $writer->basePath = $this->directory; + $this->close(); + } + + return $writer; + } + + /** + * @see File_Archive_Reader::makeAppendWriter + */ + function makeAppendWriter() + { + require_once "File/Archive/Writer/Files.php"; + + if ($this->source === null || + is_a($this->source, 'File_Archive_Reader_File') ) { + $writer = new File_Archive_Writer_Files($this->directory); + } else { + $writer = $this->source->makeAppendWriter($seek); + } + + $this->close(); + + return $writer; + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/File.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/File.php new file mode 100644 index 0000000..2b7694c --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/File.php @@ -0,0 +1,296 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: File.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader.php"; +require_once "MIME/Type.php"; + +/** + * Reader that represents a single file + */ +class File_Archive_Reader_File extends File_Archive_Reader +{ + /** + * @var object Handle to the file being read + * @access private + */ + var $handle = null; + /** + * @var string Name of the physical file being read + * @access private + */ + var $filename; + /** + * @var string Name of the file returned by the reader + * @access private + */ + var $symbolic; + /** + * @var array Stats of the file + * Will only be set after a call to $this->getStat() + * @access private + */ + var $stat = null; + /** + * @var string Mime type of the file + * Will only be set after a call to $this->getMime() + */ + var $mime = null; + /** + * @var boolean Has the file already been read + * @access private + */ + var $alreadyRead = false; + + /** + * $filename is the physical file to read + * $symbolic is the name declared by the reader + * If $symbolic is not specified, $filename is assumed + */ + function File_Archive_Reader_File($filename, $symbolic = null, $mime = null) + { + $this->filename = $filename; + $this->mime = $mime; + if ($symbolic === null) { + $this->symbolic = $this->getStandardURL($filename); + } else { + $this->symbolic = $this->getStandardURL($symbolic); + } + } + /** + * @see File_Archive_Reader::close() + * + * Close the file handle + */ + function close() + { + $this->alreadyRead = false; + if ($this->handle !== null) { + fclose($this->handle); + $this->handle = null; + } + } + /** + * @see File_Archive_Reader::next() + * + * The first time next is called, it will open the file handle and return + * true. Then it will return false + * Raise an error if the file does not exist + */ + function next() + { + if ($this->alreadyRead) { + return false; + } else { + $this->alreadyRead = true; + return true; + } + } + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() { return $this->symbolic; } + /** + * @see File_Archive_Reader::getDataFilename() + * + * Return the name of the file + */ + function getDataFilename() { return $this->filename; } + /** + * @see File_Archive_Reader::getStat() stat() + */ + function getStat() + { + if ($this->stat === null) { + $this->stat = @stat($this->filename); + + //If we can't use the stat function + if ($this->stat === false) { + $this->stat = array(); + } + } + return $this->stat; + } + + /** + * @see File_Archive_Reader::getMime + */ + function getMime() + { + if ($this->mime === null) { + PEAR::pushErrorHandling(PEAR_ERROR_RETURN); + $this->mime = MIME_Type::autoDetect($this->getDataFilename()); + PEAR::popErrorHandling(); + + if (PEAR::isError($this->mime)) { + $this->mime = parent::getMime(); + } + } + return $this->mime; + } + + /** + * Opens the file if it was not already opened + */ + function _ensureFileOpened() + { + if ($this->handle === null) { + $this->handle = @fopen($this->filename, "r"); + + if (!is_resource($this->handle)) { + $this->handle = null; + return PEAR::raiseError("Can't open {$this->filename} for reading"); + } + if ($this->handle === false) { + $this->handle = null; + return PEAR::raiseError("File {$this->filename} not found"); + } + } + } + + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + $error = $this->_ensureFileOpened(); + if (PEAR::isError($error)) { + return $error; + } + + if (feof($this->handle)) { + return null; + } + if ($length == -1) { + $contents = ''; + $blockSize = File_Archive::getOption('blockSize'); + while (!feof($this->handle)) { + $contents .= fread($this->handle, $blockSize); + } + return $contents; + } else { + if ($length == 0) { + return ""; + } else { + return fread($this->handle, $length); + } + } + } + + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + $error = $this->_ensureFileOpened(); + if (PEAR::isError($error)) { + return $error; + } + + $before = ftell($this->handle); + if (($length == -1 && @fseek($this->handle, 0, SEEK_END) === -1) || + ($length >= 0 && @fseek($this->handle, $length, SEEK_CUR) === -1)) { + return parent::skip($length); + } else { + return ftell($this->handle) - $before; + } + } + + /** + * @see File_Archive_Reader::rewind + */ + function rewind($length = -1) + { + if ($this->handle === null) { + return 0; + } + + $before = ftell($this->handle); + if (($length == -1 && @fseek($this->handle, 0, SEEK_SET) === -1) || + ($length >= 0 && @fseek($this->handle, -$length, SEEK_CUR) === -1)) { + return parent::rewind($length); + } else { + return $before - ftell($this->handle); + } + } + + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + if ($this->handle === null) { + return 0; + } else { + return ftell($this->handle); + } + } + + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + return PEAR::raiseError( + 'File_Archive_Reader_File represents a single file, you cant remove it'); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + require_once "File/Archive/Writer/Files.php"; + + $writer = new File_Archive_Writer_Files(); + + $file = $this->getDataFilename(); + $pos = $this->tell(); + $this->close(); + + $writer->openFileRemoveBlock($file, $pos + $seek, $blocks); + + return $writer; + } + + /** + * @see File_Archive_Reader::makeAppendWriter + */ + function makeAppendWriter() + { + return PEAR::raiseError( + 'File_Archive_Reader_File represents a single file.'. + ' makeAppendWriter cant be executed on it' + ); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Filter.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Filter.php new file mode 100644 index 0000000..3422414 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Filter.php @@ -0,0 +1,90 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Filter.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Relay.php"; + +/** + * Filter out the files that do not respect a given predicat + */ +class File_Archive_Reader_Filter extends File_Archive_Reader_Relay +{ + /** + * @var File_Archive_Reader_Predicat + * @access private + */ + var $predicate; + + /** + * $source is the reader to filter + */ + function File_Archive_Reader_Filter($predicate, &$source) + { + parent::File_Archive_Reader_Relay($source); + $this->predicate = $predicate; + } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + do { + $error = $this->source->next(); + if ($error !== true) { + return $error; + } + } while (!$this->predicate->isTrue($this->source)); + return true; + } + + /** + * @see File_Archive_Reader::select() + */ + function select($filename, $close = true) + { + if ($close) { + $error = $this->close(); + if (PEAR::isError($error)) { + return $error; + } + } + + do { + $error = $this->source->select($filename, false); + if ($error !== true) { + return $error; + } + } while (!$this->predicate->isTrue($this->source)); + return true; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Gzip.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Gzip.php new file mode 100644 index 0000000..82d190f --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Gzip.php @@ -0,0 +1,276 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Gzip.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Archive.php"; +require_once "File/Archive/Writer/Files.php"; + +/** + * Uncompress a file that was compressed in the Gzip format + */ +class File_Archive_Reader_Gzip extends File_Archive_Reader_Archive +{ + var $nbRead = 0; + var $filePos = 0; + var $gzfile = null; + var $tmpName = null; + + /** + * @see File_Archive_Reader::close() + */ + function close($innerClose = true) + { + if ($this->gzfile !== null) { + gzclose($this->gzfile); + } + if ($this->tmpName !== null) { + unlink($this->tmpName); + } + + $this->nbRead = 0; + $this->filePos = 0; + $this->gzfile = null; + $this->tmpName = null; + + return parent::close($innerClose); + } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + if (!parent::next()) { + return false; + } + + $this->nbRead++; + $this->filePos = 0; + if ($this->nbRead > 1) { + return false; + } + + $dataFilename = $this->source->getDataFilename(); + if ($dataFilename !== null) + { + $this->tmpName = null; + $this->gzfile = gzopen($dataFilename, 'r'); + } else { + $this->tmpName = tempnam(File_Archive::getOption('tmpDirectory'), 'far'); + + //Generate the tmp data + $dest = new File_Archive_Writer_Files(); + $dest->newFile($this->tmpName); + $this->source->sendData($dest); + $dest->close(); + + $this->gzfile = gzopen($this->tmpName, 'r'); + } + + return true; + } + + /** + * Return the name of the single file contained in the archive + * deduced from the name of the archive (the extension is removed) + * + * @see File_Archive_Reader::getFilename() + */ + function getFilename() + { + $name = $this->source->getFilename(); + $slashPos = strrpos($name, '/'); + if ($slashPos !== false) { + $name = substr($name, $slashPos+1); + } + $dotPos = strrpos($name, '.'); + if ($dotPos !== false && $dotPos > 0) { + $name = substr($name, 0, $dotPos); + } + + return $name; + } + + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($length == -1) { + $data = ''; + do + { + $newData = gzread($this->gzfile, 8192); + $data .= $newData; + } while ($newData != ''); + } else if ($length == 0) { + return ''; + } else { + $data = gzread($this->gzfile, $length); + } + + $this->filePos += strlen($data); + return $data == '' ? null : $data; + } + + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + if($length == -1) { + do + { + $tmp = gzread($this->gzfile, 8192); + $this->filePos += strlen($tmp); + } while ($tmp != ''); + } else { + if (@gzseek($this->gzfile, $this->filePos + $length) === -1) { + return parent::skip($length); + } else { + $this->filePos += $length; + return $length; + } + } + } + + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) + { + if ($length == -1) { + if (@gzseek($this->gzfile, 0) === -1) { + return parent::rewind($length); + } else { + $tmp = $this->filePos; + $this->filePos = 0; + return $tmp; + } + } else { + $length = min($length, $this->filePos); + if (@gzseek($this->gzfile, $this->filePos - $length) === -1) { + return parent::rewind($length); + } else { + $this->filePos -= $length; + return $length; + } + } + } + + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return $this->filePos; + } + + /** + * @see File_Archive_Reader::makeAppendWriter() + */ + function makeAppendWriter() + { + return PEAR::raiseError('Unable to append files to a gzip archive'); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + return PEAR::raiseError('Unable to remove files from a gzip archive'); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + require_once "File/Archive/Writer/Gzip.php"; + + if ($this->nbRead == 0) { + return PEAR::raiseError('No file selected'); + } + + //Uncompress data to a temporary file + $tmp = tmpfile(); + $expectedPos = $this->filePos + $seek; + $this->rewind(); + + //Read the begining of the file + while ($this->filePos < $expectedPos && + ($data = $this->getData(min($expectedPos - $this->filePos, 8192))) !== null) { + fwrite($tmp, $data); + } + + $keep = false; + foreach ($blocks as $length) { + if ($keep) { + $expectedPos = $this->filePos + $length; + while ($this->filePos < $expectedPos && + ($data = $this->getData(min($expectedPos - $this->filePos, 8192))) !== null) { + fwrite($tmp, $data); + } + } else { + $this->skip($length); + } + $keep = !$keep; + } + if ($keep) { + //Read the end of the file + while(($data = $this->getData(8192)) !== null) { + fwrite($tmp, $data); + } + } + fseek($tmp, 0); + + //Create the writer + $this->source->rewind(); + $innerWriter = $this->source->makeWriterRemoveBlocks(array()); //Truncate the source + unset($this->source); + $writer = new File_Archive_Writer_Gzip(null, $innerWriter); + + //And compress data from the temporary file + while (!feof($tmp)) { + $data = fread($tmp, 8192); + $writer->writeData($data); + } + fclose($tmp); + + //Do not close inner writer since makeWriter was called + $this->close(); + + return $writer; + } + +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Memory.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Memory.php new file mode 100644 index 0000000..3caa2b5 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Memory.php @@ -0,0 +1,227 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Memory.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader.php"; + +/** + * A reader that takes its input from a memory buffer + */ +class File_Archive_Reader_Memory extends File_Archive_Reader +{ + /** + * @var String Name of the file exported by this reader + * @access private + */ + var $filename; + /** + * @var Array Stat of the file exported by this reader + * @access private + */ + var $stat; + /** + * @var String MIME type of the file exported by this reader + * @access private + */ + var $mime; + /** + * @var String Memory buffer that contains the data of the file + * @access private + */ + var $memory; + /** + * @var Int Current position in the file + * @access private + */ + var $offset = 0; + /** + * @var Boolean Has the file already been read + * @access private + */ + var $alreadyRead = false; + + /** + * @param string $memory is the content of the file. + * This parameter is passed as a reference for performance + * reasons. The content should not be changer after the constructor + * @param string $filename is the name of the file + * @param array $stat are the statistics of the file. The size will be + * recomputed from $memory + * @param string $mime is the mime type of the file + */ + function File_Archive_Reader_Memory(&$memory, $filename, + $stat=array(), $mime=null) + { + $this->memory = &$memory; + $this->filename = $this->getStandardURL($filename); + $this->stat = $stat; + $this->stat[7] = $this->stat['size'] = strlen($this->memory); + $this->mime = $mime; + } + + /** + * The subclass should overwrite this function to change the filename, stat + * and memory + */ + function next() + { + if ($this->alreadyRead) { + return false; + } else { + $this->alreadyRead = true; + return true; + } + } + + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() { return $this->filename; } + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() { return $this->stat; } + /** + * @see File_Archive_Reader::getMime() + */ + function getMime() + { + return $this->mime==null ? parent::getMime() : $this->mime; + } + + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($this->offset == strlen($this->memory)) { + return null; + } + if ($length == -1) { + $actualLength = strlen($this->memory) - $this->offset; + } else { + $actualLength = min($length, strlen($this->memory) - $this->offset); + } + $result = substr($this->memory, $this->offset, $actualLength); + $this->offset += $actualLength; + return $result; + } + + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + if ($length == -1) { + $length = strlen($this->memory) - $this->offset; + } else { + $length = min($length, strlen($this->memory) - $this->offset); + } + $this->offset += $length; + return $length; + } + + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) + { + if ($length == -1) { + $tmp = $this->offset; + $this->offset = 0; + return $tmp; + } else { + $length = min($length, $this->offset); + $this->offset -= $length; + return $length; + } + } + + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return $this->offset; + } + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $this->offset = 0; + $this->alreadyRead = false; + } + + /** + * @see File_Archive_Reader::makeAppendWriter() + */ + function makeAppendWriter() + { + return PEAR::raiseError('Unable to append files to a memory archive'); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + return PEAR::raiseError('Unable to remove files from a memory archive'); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + require_once "File/Archive/Writer/Memory.php"; + $data = substr($this->memory, 0, $this->offset + $seek); + $this->memory = substr($this->memory, $this->offset + $seek); + + $keep = false; + foreach ($blocks as $length) { + if ($keep) { + $data .= substr($this->memory, 0, $length); + } + $this->memory = substr($this->memory, $length); + $keep = !$keep; + } + if ($keep) { + $this->memory = $data . $this->memory; + } else { + $this->memory = $data; + } + $this->close(); + return new File_Archive_Writer_Memory($this->memory, strlen($this->memory)); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/MimeList.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/MimeList.php new file mode 100644 index 0000000..cc203ef --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/MimeList.php @@ -0,0 +1,939 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: MimeList.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +/** + * Returns the MIME of the filename, deducted from its extension + * If the extension is unknown, returns "application/octet-stream" + */ +function File_Archive_Reader_GetMime($filename) +{ + $pos = strrpos($filename, '.'); + $extension = ""; + if ($pos !== false) { + $extension = strtolower(substr($filename, $pos+1)); + } + + switch($extension) { + case '3dmf': + return 'x-world/x-3dmf'; + case 'a': + return 'application/octet-stream'; + case 'aab': + return 'application/x-authorware-bin'; + case 'aam': + return 'application/x-authorware-map'; + case 'aas': + return 'application/x-authorware-seg'; + case 'abc': + return 'text/vnd.abc'; + case 'acgi': + return 'text/html'; + case 'afl': + return 'video/animaflex'; + case 'ai': + return 'application/postscript'; + case 'aif': + return 'audio/aiff'; + case 'aifc': + return 'audio/aiff'; + case 'aiff': + return 'audio/aiff'; + case 'aim': + return 'application/x-aim'; + case 'aip': + return 'text/x-audiosoft-intra'; + case 'ani': + return 'application/x-navi-animation'; + case 'aos': + return 'application/x-nokia-9000-communicator-add-on-software'; + case 'aps': + return 'application/mime'; + case 'arc': + return 'application/octet-stream'; + case 'arj': + return 'application/arj'; + case 'art': + return 'image/x-jg'; + case 'asf': + return 'video/x-ms-asf'; + case 'asm': + return 'text/x-asm'; + case 'asp': + return 'text/asp'; + case 'asx': + return 'application/x-mplayer2'; + case 'au': + return 'audio/basic'; + case 'avi': + return 'application/x-troff-msvideo'; + case 'avs': + return 'video/avs-video'; + case 'bcpio': + return 'application/x-bcpio'; + case 'bin': + return 'application/x-binary'; + case 'bm': + return 'image/bmp'; + case 'bmp': + return 'image/bmp'; + case 'boo': + return 'application/book'; + case 'book': + return 'application/book'; + case 'boz': + return 'application/x-bzip2'; + case 'bsh': + return 'application/x-bsh'; + case 'bz': + return 'application/x-bzip'; + case 'bz2': + return 'application/x-bzip2'; + case 'c': + return 'text/plain'; + case 'c++': + return 'text/plain'; + case 'cat': + return 'application/vnd.ms-pki.seccat'; + case 'cc': + return 'text/plain'; + case 'ccad': + return 'application/clariscad'; + case 'cco': + return 'application/x-cocoa'; + case 'cdf': + return 'application/cdf'; + case 'cer': + return 'application/pkix-cert'; + case 'cha': + return 'application/x-chat'; + case 'chat': + return 'application/x-chat'; + case 'class': + return 'application/java'; + case 'com': + return 'application/octet-stream'; + case 'conf': + return 'text/plain'; + case 'cpio': + return 'application/x-cpio'; + case 'cpp': + return 'text/x-c'; + case 'cpt': + return 'application/mac-compactpro'; + case 'crl': + return 'application/pkcs-crl'; + case 'csh': + return 'application/x-csh'; + case 'css': + return 'text/css'; + case 'cxx': + return 'text/plain'; + case 'dcr': + return 'application/x-director'; + case 'deepv': + return 'application/x-deepv'; + case 'def': + return 'text/plain'; + case 'der': + return 'application/x-x509-ca-cert'; + case 'dif': + return 'video/x-dv'; + case 'dir': + return 'application/x-director'; + case 'dl': + return 'video/dl'; + case 'doc': + return 'application/msword'; + case 'dot': + return 'application/msword'; + case 'dp': + return 'application/commonground'; + case 'drw': + return 'application/drafting'; + case 'dump': + return 'application/octet-stream'; + case 'dv': + return 'video/x-dv'; + case 'dvi': + return 'application/x-dvi'; + case 'dwf': + return 'drawing/x-dwf (old)'; + case 'dwg': + return 'application/acad'; + case 'dxf': + return 'application/dxf'; + case 'dxr': + return 'application/x-director'; + case 'el': + return 'text/x-script.elisp'; + case 'elc': + return 'application/x-bytecode.elisp (compiled elisp)'; + case 'env': + return 'application/x-envoy'; + case 'eps': + return 'application/postscript'; + case 'es': + return 'application/x-esrehber'; + case 'etx': + return 'text/x-setext'; + case 'evy': + return 'application/envoy'; + case 'exe': + return 'application/octet-stream'; + case 'f': + return 'text/plain'; + case 'f77': + return 'text/x-fortran'; + case 'f90': + return 'text/plain'; + case 'fdf': + return 'application/vnd.fdf'; + case 'fif': + return 'application/fractals'; + case 'fli': + return 'video/fli'; + case 'flo': + return 'image/florian'; + case 'flx': + return 'text/vnd.fmi.flexstor'; + case 'fmf': + return 'video/x-atomic3d-feature'; + case 'for': + return 'text/plain'; + case 'fpx': + return 'image/vnd.fpx'; + case 'frl': + return 'application/freeloader'; + case 'funk': + return 'audio/make'; + case 'g': + return 'text/plain'; + case 'g3': + return 'image/g3fax'; + case 'gif': + return 'image/gif'; + case 'gl': + return 'video/gl'; + case 'gsd': + return 'audio/x-gsm'; + case 'gsm': + return 'audio/x-gsm'; + case 'gsp': + return 'application/x-gsp'; + case 'gss': + return 'application/x-gss'; + case 'gtar': + return 'application/x-gtar'; + case 'gz': + return 'application/x-compressed'; + case 'gzip': + return 'application/x-gzip'; + case 'h': + return 'text/plain'; + case 'hdf': + return 'application/x-hdf'; + case 'help': + return 'application/x-helpfile'; + case 'hgl': + return 'application/vnd.hp-hpgl'; + case 'hh': + return 'text/plain'; + case 'hlb': + return 'text/x-script'; + case 'hlp': + return 'application/hlp'; + case 'hpg': + return 'application/vnd.hp-hpgl'; + case 'hpgl': + return 'application/vnd.hp-hpgl'; + case 'hqx': + return 'application/binhex'; + case 'hta': + return 'application/hta'; + case 'htc': + return 'text/x-component'; + case 'htm': + return 'text/html'; + case 'html': + return 'text/html'; + case 'htmls': + return 'text/html'; + case 'htt': + return 'text/webviewhtml'; + case 'htx': + return 'text/html'; + case 'ice': + return 'x-conference/x-cooltalk'; + case 'ico': + return 'image/x-icon'; + case 'idc': + return 'text/plain'; + case 'ief': + return 'image/ief'; + case 'iefs': + return 'image/ief'; + case 'iges': + return 'application/iges'; + case 'igs': + return 'application/iges'; + case 'ima': + return 'application/x-ima'; + case 'imap': + return 'application/x-httpd-imap'; + case 'inf': + return 'application/inf'; + case 'ins': + return 'application/x-internett-signup'; + case 'ip': + return 'application/x-ip2'; + case 'isu': + return 'video/x-isvideo'; + case 'it': + return 'audio/it'; + case 'iv': + return 'application/x-inventor'; + case 'ivr': + return 'i-world/i-vrml'; + case 'ivy': + return 'application/x-livescreen'; + case 'jam': + return 'audio/x-jam'; + case 'jav': + return 'text/plain'; + case 'java': + return 'text/plain'; + case 'jcm': + return 'application/x-java-commerce'; + case 'jfif': + return 'image/jpeg'; + case 'jfif-tbnl': + return 'image/jpeg'; + case 'jpe': + return 'image/jpeg'; + case 'jpeg': + return 'image/jpeg'; + case 'jpg': + return 'image/jpeg'; + case 'jps': + return 'image/x-jps'; + case 'js': + return 'application/x-javascript'; + case 'jut': + return 'image/jutvision'; + case 'kar': + return 'audio/midi'; + case 'ksh': + return 'application/x-ksh'; + case 'la': + return 'audio/nspaudio'; + case 'lam': + return 'audio/x-liveaudio'; + case 'latex': + return 'application/x-latex'; + case 'lha': + return 'application/lha'; + case 'lhx': + return 'application/octet-stream'; + case 'list': + return 'text/plain'; + case 'lma': + return 'audio/nspaudio'; + case 'log': + return 'text/plain'; + case 'lsp': + return 'application/x-lisp'; + case 'lst': + return 'text/plain'; + case 'lsx': + return 'text/x-la-asf'; + case 'ltx': + return 'application/x-latex'; + case 'lzh': + return 'application/octet-stream'; + case 'lzx': + return 'application/lzx'; + case 'm': + return 'text/plain'; + case 'm1v': + return 'video/mpeg'; + case 'm2a': + return 'audio/mpeg'; + case 'm2v': + return 'video/mpeg'; + case 'm3u': + return 'audio/x-mpequrl'; + case 'man': + return 'application/x-troff-man'; + case 'map': + return 'application/x-navimap'; + case 'mar': + return 'text/plain'; + case 'mbd': + return 'application/mbedlet'; + case 'mc$': + return 'application/x-magic-cap-package-1.0'; + case 'mcd': + return 'application/mcad'; + case 'mcf': + return 'image/vasa'; + case 'mcp': + return 'application/netmc'; + case 'me': + return 'application/x-troff-me'; + case 'mht': + return 'message/rfc822'; + case 'mhtml': + return 'message/rfc822'; + case 'mid': + return 'application/x-midi'; + case 'midi': + return 'audio/midi'; + case 'mif': + return 'application/x-frame'; + case 'mime': + return 'message/rfc822'; + case 'mjf': + return 'audio/x-vnd.audioexplosion.mjuicemediafile'; + case 'mjpg': + return 'video/x-motion-jpeg'; + case 'mm': + return 'application/base64'; + case 'mme': + return 'application/base64'; + case 'mod': + return 'audio/mod'; + case 'moov': + return 'video/quicktime'; + case 'mov': + return 'video/quicktime'; + case 'movie': + return 'video/x-sgi-movie'; + case 'mp2': + return 'video/mpeg'; + case 'mp3': + return 'video/mpeg'; + case 'mpa': + return 'audio/mpeg'; + case 'mpc': + return 'application/x-project'; + case 'mpe': + return 'video/mpeg'; + case 'mpeg': + return 'video/mpeg'; + case 'mpg': + return 'video/mpeg'; + case 'mpga': + return 'audio/mpeg'; + case 'mpp': + return 'application/vnd.ms-project'; + case 'mpt': + return 'application/x-project'; + case 'mpv': + return 'application/x-project'; + case 'mpx': + return 'application/x-project'; + case 'mrc': + return 'application/marc'; + case 'ms': + return 'application/x-troff-ms'; + case 'mv': + return 'video/x-sgi-movie'; + case 'my': + return 'audio/make'; + case 'mzz': + return 'application/x-vnd.audioexplosion.mzz'; + case 'nap': + return 'image/naplps'; + case 'naplps': + return 'image/naplps'; + case 'nc': + return 'application/x-netcdf'; + case 'ncm': + return 'application/vnd.nokia.configuration-message'; + case 'nif': + return 'image/x-niff'; + case 'niff': + return 'image/x-niff'; + case 'nix': + return 'application/x-mix-transfer'; + case 'nsc': + return 'application/x-conference'; + case 'nvd': + return 'application/x-navidoc'; + case 'o': + return 'application/octet-stream'; + case 'oda': + return 'application/oda'; + case 'omc': + return 'application/x-omc'; + case 'omcd': + return 'application/x-omcdatamaker'; + case 'omcr': + return 'application/x-omcregerator'; + case 'p': + return 'text/x-pascal'; + case 'p10': + return 'application/pkcs10'; + case 'p12': + return 'application/pkcs-12'; + case 'p7a': + return 'application/x-pkcs7-signature'; + case 'p7c': + return 'application/pkcs7-mime'; + case 'p7m': + return 'application/pkcs7-mime'; + case 'p7r': + return 'application/x-pkcs7-certreqresp'; + case 'p7s': + return 'application/pkcs7-signature'; + case 'part': + return 'application/pro_eng'; + case 'pas': + return 'text/pascal'; + case 'pbm': + return 'image/x-portable-bitmap'; + case 'pcl': + return 'application/vnd.hp-pcl'; + case 'pct': + return 'image/x-pict'; + case 'pcx': + return 'image/x-pcx'; + case 'pdb': + return 'chemical/x-pdb'; + case 'pdf': + return 'application/pdf'; + case 'pfunk': + return 'audio/make'; + case 'pgm': + return 'image/x-portable-graymap'; + case 'pic': + return 'image/pict'; + case 'pict': + return 'image/pict'; + case 'pkg': + return 'application/x-newton-compatible-pkg'; + case 'pko': + return 'application/vnd.ms-pki.pko'; + case 'pl': + return 'text/plain'; + case 'plx': + return 'application/x-pixclscript'; + case 'pm': + return 'image/x-xpixmap'; + case 'pm4': + return 'application/x-pagemaker'; + case 'pm5': + return 'application/x-pagemaker'; + case 'png': + return 'image/png'; + case 'pnm': + return 'application/x-portable-anymap'; + case 'pot': + return 'application/mspowerpoint'; + case 'pov': + return 'model/x-pov'; + case 'ppa': + return 'application/vnd.ms-powerpoint'; + case 'ppm': + return 'image/x-portable-pixmap'; + case 'pps': + return 'application/mspowerpoint'; + case 'ppt': + return 'application/mspowerpoint'; + case 'ppz': + return 'application/mspowerpoint'; + case 'pre': + return 'application/x-freelance'; + case 'prt': + return 'application/pro_eng'; + case 'ps': + return 'application/postscript'; + case 'psd': + return 'application/octet-stream'; + case 'pvu': + return 'paleovu/x-pv'; + case 'pwz': + return 'application/vnd.ms-powerpoint'; + case 'py': + return 'text/x-script.phyton'; + case 'pyc': + return 'applicaiton/x-bytecode.python'; + case 'qcp': + return 'audio/vnd.qcelp'; + case 'qd3': + return 'x-world/x-3dmf'; + case 'qd3d': + return 'x-world/x-3dmf'; + case 'qif': + return 'image/x-quicktime'; + case 'qt': + return 'video/quicktime'; + case 'qtc': + return 'video/x-qtc'; + case 'qti': + return 'image/x-quicktime'; + case 'qtif': + return 'image/x-quicktime'; + case 'ra': + return 'audio/x-pn-realaudio'; + case 'ram': + return 'audio/x-pn-realaudio'; + case 'ras': + return 'application/x-cmu-raster'; + case 'rast': + return 'image/cmu-raster'; + case 'rexx': + return 'text/x-script.rexx'; + case 'rf': + return 'image/vnd.rn-realflash'; + case 'rgb': + return 'image/x-rgb'; + case 'rm': + return 'application/vnd.rn-realmedia'; + case 'rmi': + return 'audio/mid'; + case 'rmm': + return 'audio/x-pn-realaudio'; + case 'rmp': + return 'audio/x-pn-realaudio'; + case 'rng': + return 'application/ringing-tones'; + case 'rnx': + return 'application/vnd.rn-realplayer'; + case 'roff': + return 'application/x-troff'; + case 'rp': + return 'image/vnd.rn-realpix'; + case 'rpm': + return 'audio/x-pn-realaudio-plugin'; + case 'rt': + return 'text/richtext'; + case 'rtf': + return 'application/rtf'; + case 'rtx': + return 'text/richtext'; + case 'rv': + return 'video/vnd.rn-realvideo'; + case 's': + return 'text/x-asm'; + case 's3m': + return 'audio/s3m'; + case 'saveme': + return 'application/octet-stream'; + case 'sbk': + return 'application/x-tbook'; + case 'scm': + return 'application/x-lotusscreencam'; + case 'sdml': + return 'text/plain'; + case 'sdp': + return 'application/sdp'; + case 'sdr': + return 'application/sounder'; + case 'sea': + return 'application/sea'; + case 'set': + return 'application/set'; + case 'sgm': + return 'text/sgml'; + case 'sgml': + return 'text/sgml'; + case 'sh': + return 'application/x-bsh'; + case 'shar': + return 'application/x-bsh'; + case 'shtml': + return 'text/html'; + case 'sid': + return 'audio/x-psid'; + case 'sit': + return 'application/x-sit'; + case 'skd': + return 'application/x-koan'; + case 'skm': + return 'application/x-koan'; + case 'skp': + return 'application/x-koan'; + case 'skt': + return 'application/x-koan'; + case 'sl': + return 'application/x-seelogo'; + case 'smi': + return 'application/smil'; + case 'smil': + return 'application/smil'; + case 'snd': + return 'audio/basic'; + case 'sol': + return 'application/solids'; + case 'spc': + return 'application/x-pkcs7-certificates'; + case 'spl': + return 'application/futuresplash'; + case 'spr': + return 'application/x-sprite'; + case 'sprite': + return 'application/x-sprite'; + case 'src': + return 'application/x-wais-source'; + case 'ssi': + return 'text/x-server-parsed-html'; + case 'ssm': + return 'application/streamingmedia'; + case 'sst': + return 'application/vnd.ms-pki.certstore'; + case 'step': + return 'application/step'; + case 'stl': + return 'application/sla'; + case 'stp': + return 'application/step'; + case 'sv4cpio': + return 'application/x-sv4cpio'; + case 'sv4crc': + return 'application/x-sv4crc'; + case 'svf': + return 'image/vnd.dwg'; + case 'svr': + return 'application/x-world'; + case 'swf': + return 'application/x-shockwave-flash'; + case 't': + return 'application/x-troff'; + case 'talk': + return 'text/x-speech'; + case 'tar': + return 'application/x-tar'; + case 'tbk': + return 'application/toolbook'; + case 'tcl': + return 'application/x-tcl'; + case 'tcsh': + return 'text/x-script.tcsh'; + case 'tex': + return 'application/x-tex'; + case 'texi': + return 'application/x-texinfo'; + case 'texinfo': + return 'application/x-texinfo'; + case 'text': + return 'text/plain'; + case 'tgz': + return 'application/x-compressed'; + case 'tif': + return 'image/tiff'; + case 'tiff': + return 'image/tiff'; + case 'tr': + return 'application/x-troff'; + case 'tsi': + return 'audio/tsp-audio'; + case 'tsp': + return 'application/dsptype'; + case 'tsv': + return 'text/tab-separated-values'; + case 'turbot': + return 'image/florian'; + case 'txt': + return 'text/plain'; + case 'uil': + return 'text/x-uil'; + case 'uni': + return 'text/uri-list'; + case 'unis': + return 'text/uri-list'; + case 'unv': + return 'application/i-deas'; + case 'uri': + return 'text/uri-list'; + case 'uris': + return 'text/uri-list'; + case 'ustar': + return 'multipart/x-ustar'; + case 'uu': + return 'application/octet-stream'; + case 'uue': + return 'text/x-uuencode'; + case 'vcd': + return 'application/x-cdlink'; + case 'vcs': + return 'text/x-vcalendar'; + case 'vda': + return 'application/vda'; + case 'vdo': + return 'video/vdo'; + case 'vew': + return 'application/groupwise'; + case 'viv': + return 'video/vivo'; + case 'vivo': + return 'video/vivo'; + case 'vmd': + return 'application/vocaltec-media-desc'; + case 'vmf': + return 'application/vocaltec-media-file'; + case 'voc': + return 'audio/voc'; + case 'vos': + return 'video/vosaic'; + case 'vox': + return 'audio/voxware'; + case 'vqe': + return 'audio/x-twinvq-plugin'; + case 'vqf': + return 'audio/x-twinvq'; + case 'vql': + return 'audio/x-twinvq-plugin'; + case 'vrml': + return 'application/x-vrml'; + case 'vrt': + return 'x-world/x-vrt'; + case 'vsd': + return 'application/x-visio'; + case 'vst': + return 'application/x-visio'; + case 'vsw': + return 'application/x-visio'; + case 'w60': + return 'application/wordperfect6.0'; + case 'w61': + return 'application/wordperfect6.1'; + case 'w6w': + return 'application/msword'; + case 'wav': + return 'audio/wav'; + case 'wb1': + return 'application/x-qpro'; + case 'wbmp': + return 'image/vnd.wap.wbmp'; + case 'web': + return 'application/vnd.xara'; + case 'wiz': + return 'application/msword'; + case 'wk1': + return 'application/x-123'; + case 'wmf': + return 'windows/metafile'; + case 'wml': + return 'text/vnd.wap.wml'; + case 'wmlc': + return 'application/vnd.wap.wmlc'; + case 'wmls': + return 'text/vnd.wap.wmlscript'; + case 'wmlsc': + return 'application/vnd.wap.wmlscriptc'; + case 'word': + return 'application/msword'; + case 'wp': + return 'application/wordperfect'; + case 'wp5': + return 'application/wordperfect6.0'; + case 'wp6': + return 'application/wordperfect'; + case 'wpd': + return 'application/x-wpwin'; + case 'wq1': + return 'application/x-lotus'; + case 'wri': + return 'application/mswrite'; + case 'wrl': + return 'model/vrml'; + case 'wrz': + return 'model/vrml'; + case 'wsc': + return 'text/scriplet'; + case 'wsrc': + return 'application/x-wais-source'; + case 'wtk': + return 'application/x-wintalk'; + case 'xbm': + return 'image/x-xbitmap'; + case 'xdr': + return 'video/x-amt-demorun'; + case 'xgz': + return 'xgl/drawing'; + case 'xif': + return 'image/vnd.xiff'; + case 'xl': + return 'application/excel'; + case 'xla': + return 'application/excel'; + case 'xlb': + return 'application/excel'; + case 'xlc': + return 'application/excel'; + case 'xld': + return 'application/excel'; + case 'xlk': + return 'application/excel'; + case 'xll': + return 'application/excel'; + case 'xlm': + return 'application/excel'; + case 'xls': + return 'application/excel'; + case 'xlt': + return 'application/excel'; + case 'xlv': + return 'application/excel'; + case 'xlw': + return 'application/excel'; + case 'xm': + return 'audio/xm'; + case 'xml': + return 'application/xml'; + case 'xmz': + return 'xgl/movie'; + case 'xpix': + return 'application/x-vnd.ls-xpix'; + case 'xpm': + return 'image/xpm'; + case 'x-png': + return 'image/png'; + case 'xsr': + return 'video/x-amt-showrun'; + case 'xwd': + return 'image/x-xwd'; + case 'xyz': + return 'chemical/x-pdb'; + case 'z': + return 'application/x-compress'; + case 'zip': + return 'application/x-compressed'; + case 'zoo': + return 'application/octet-stream'; + case 'zsh': + return 'text/x-script.zsh'; + default: + return 'application/octet-stream'; + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Multi.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Multi.php new file mode 100644 index 0000000..1445867 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Multi.php @@ -0,0 +1,95 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Multi.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Relay.php"; + +/** + * Regroups several readers to make them appear as a single one + */ +class File_Archive_Reader_Multi extends File_Archive_Reader_Relay +{ + /** + * @var Array All the sources regrouped in this reader + * @access private + */ + var $sources = array(); + /** + * @var Int Index of the source being read currently + * @access private + */ + var $currentIndex = 0; + + function File_Archive_Reader_Multi() + { + parent::File_Archive_Reader_Relay($tmp = null); + } + + /** + * Add a new reader to the list of readers + * @param File_Archive_Reader $source The source to add + */ + function addSource(&$source) + { + $this->sources[] =& $source; + } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + while (array_key_exists($this->currentIndex, $this->sources)) { + $this->source =& $this->sources[$this->currentIndex]; + + if (($error = $this->source->next()) === false) { + $error = $this->source->close(); + if (PEAR::isError($error)) { + return $error; + } + $this->currentIndex++; + } else { + return $error; + } + } + return false; + } + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $error = parent::close(); + $this->currentIndex = 0; + return $error; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Relay.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Relay.php new file mode 100644 index 0000000..216a1f0 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Relay.php @@ -0,0 +1,134 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Relay.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader.php"; + +/** + * This reader appear exactly as $source does + * This is usefull if you want to dynamically change $source or change + * its behaviour + */ +class File_Archive_Reader_Relay extends File_Archive_Reader +{ + /** + * @var File_Archive_Reader This reader will have the same comportment as + * $source + * @access protected + */ + var $source; + + function File_Archive_Reader_Relay(&$source) + { + $this->source =& $source; + } + + /** + * @see File_Archive_Reader::next() + */ + function next() { return $this->source->next(); } + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() { return $this->source->getFilename(); } + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() { return $this->source->getStat(); } + /** + * @see File_Archive_Reader::getMime() + */ + function getMime() { return $this->source->getMime(); } + /** + * @see File_Archive_Reader::getDataFilename() + */ + function getDataFilename() { return $this->source->getDataFilename(); } + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) { return $this->source->getData($length); } + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) { return $this->source->skip($length); } + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) { return $this->source->rewind($length); } + /** + * @see File_Archive_Reader::tell() + */ + function tell() { return $this->source->tell(); } + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + if ($this->source !== null) { + return $this->source->close(); + } + } + /** + * @see File_Archive_Reader::makeAppendWriter() + */ + function makeAppendWriter() + { + $writer = $this->source->makeAppendWriter(); + if (!PEAR::isError($writer)) { + $this->close(); + } + return $writer; + } + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + $writer = $this->source->makeWriterRemoveFiles($pred); + if (!PEAR::isError($writer)) { + $this->close(); + } + return $writer; + } + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + $writer = $this->source->makeWriterRemoveBlocks($blocks, $seek); + if (!PEAR::isError($writer)) { + $this->close(); + } + return $writer; + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Select.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Select.php new file mode 100644 index 0000000..952a589 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Select.php @@ -0,0 +1,63 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Select.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Relay.php"; + +/** + * Reader that keeps the files selected by File_Archive::select function + */ +class File_Archive_Reader_Select extends File_Archive_Reader_Relay +{ + /** + * @var File_Archive_Reader_Predicat + * @access private + */ + var $filename; + + /** + * $source is the reader to filter + */ + function File_Archive_Reader_Select($filename, &$source) + { + parent::File_Archive_Reader_Relay($source); + $this->filename = $filename; + } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + return $this->source->select($this->filename, false); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Tar.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Tar.php new file mode 100644 index 0000000..b7c7f8d --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Tar.php @@ -0,0 +1,412 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Tar.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Archive.php"; + +/** + * Read a tar archive + */ +class File_Archive_Reader_Tar extends File_Archive_Reader_Archive +{ + /** + * @var String Name of the file being read + * @access private + */ + var $currentFilename = null; + /** + * @var Array Stats of the file being read + * In TAR reader, indexes 2, 4, 5, 7, 9 are set + * @access private + */ + var $currentStat = null; + /** + * @var int Number of bytes that still have to be read before the end of + * file + * @access private + */ + var $leftLength = 0; + /** + * @var int Size of the footer + * A TAR file is made of chunks of 512 bytes. If 512 does not + * divide the file size a footer is added + * @access private + */ + var $footerLength = 0; + /** + * @var int nb bytes to seek back in order to reach the end of the archive + * or null if the end of the archive has not been reached + */ + var $seekToEnd = null; + + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + if ($length == -1) { + $length = $this->leftLength; + } else { + $length = min($this->leftLength, $length); + } + $skipped = $this->source->skip($length); + if (!PEAR::isError($skipped)) { + $this->leftLength -= $skipped; + } + return $skipped; + } + + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) + { + if ($length == -1) { + $length = $this->currentStat[7] - $this->leftLength; + } else { + $length = min($length, $this->currentStat[7] - $this->leftLength); + } + $rewinded = $this->source->rewind($length); + if (!PEAR::isError($rewinded)) { + $this->leftLength += $rewinded; + } + return $rewinded; + } + + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return $this->currentStat[7] - $this->leftLength; + } + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $this->leftLength = 0; + $this->currentFilename = null; + $this->currentStat = null; + $this->seekToEnd = null; + return parent::close(); + } + + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() { return $this->currentFilename; } + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() { return $this->currentStat; } + + /** + * @see File_Archive_Reader::next() + */ + function next() + { + $error = parent::next(); + if ($error !== true) { + return $error; + } + + if ($this->seekToEnd !== null) { + return false; + } + + while (true) { + //Advance $this + $header = $this->_nextAdvance(); + if ((!$header) || PEAR::isError($header)) { + return $header; + } + + //Are we looking at a Long Link? + if ($header['type'] == 'L') { + //This is a filepath too long for the tar format. + //So the tar specification puts the name in a special entry just before the real data + //This means the filename is the current piece of data. Grab it. + $filename = ''; + while (($str = $this->getData(256)) !== null) { + if (PEAR::isError($str)) { + return $str; + } + $filename .= $str; + } + + //The actual file data is the next item. Advance there and set the filename to what we just made. + //Everything about the "next" item is correct except the file name. + $header = $this->_nextAdvance(); + if ((!$header) || PEAR::isError($header)) { + return $header; + } + $this->currentFilename = $filename; + } + /** + * Note that actions taken above to handle LongLink may have advanced $this and reset some vars. + * But that just leaves us in a state to actually handle the thing as if it were a normal file. + * So continue as if this never happened... + */ + + //Other than the above we only care about regular files. + //NOTE: Any non-numeric type codes will == 0 + //We handle 'L' above, I don't know what others are out there. + //5 == directory + if ($header['type'] == 0 || $header['type'] == 5) { + break; + } + } + return true; + } + + /** + * Performs the actual advancement to the next item in the underlying structure + * We encapsulate it in a separate function because ot things like @LongLink, where the + * next item is part of the current one. + * + * @access private + * @author Josh Vermette (josh@calydonian.com) + */ + function _nextAdvance() + { + $error = $this->source->skip($this->leftLength + $this->footerLength); + if (PEAR::isError($error)) { + return $error; + } + + $rawHeader = $this->source->getData(512); + if (PEAR::isError($rawHeader)) { + return $rawHeader; + } + + if (strlen($rawHeader)<512 || $rawHeader == pack("a512", "")) { + $this->seekToEnd = strlen($rawHeader); + $this->currentFilename = null; + return false; + } + + $header = unpack( + "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/". + "a8checksum/a1type/a100linkname/a6magic/a2version/". + "a32uname/a32gname/a8devmajor/a8devminor/a155prefix", + $rawHeader); + + $this->currentStat = array( + 2 => octdec($header['mode']), + 4 => octdec($header['uid']), + 5 => octdec($header['gid']), + 7 => octdec($header['size']), + 9 => octdec($header['mtime']) + ); + $this->currentStat['mode'] = $this->currentStat[2]; + $this->currentStat['uid'] = $this->currentStat[4]; + $this->currentStat['gid'] = $this->currentStat[5]; + $this->currentStat['size'] = $this->currentStat[7]; + $this->currentStat['mtime'] = $this->currentStat[9]; + + if ($header['magic'] == 'ustar') { + $this->currentFilename = $this->getStandardURL( + $header['prefix'] . $header['filename'] + ); + } else { + $this->currentFilename = $this->getStandardURL( + $header['filename'] + ); + } + + $this->leftLength = $this->currentStat[7]; + if ($this->leftLength % 512 == 0) { + $this->footerLength = 0; + } else { + $this->footerLength = 512 - $this->leftLength%512; + } + + $checksum = 8*ord(" "); + for ($i = 0; $i < 148; $i++) { + $checksum += ord($rawHeader{$i}); + } + + for ($i = 156; $i < 512; $i++) { + $checksum += ord($rawHeader{$i}); + } + + if (octdec($header['checksum']) != $checksum) { + die('Checksum error on entry '.$this->currentFilename); + } + + return $header; + } + + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($length == -1) { + $actualLength = $this->leftLength; + } else { + $actualLength = min($this->leftLength, $length); + } + + if ($this->leftLength == 0) { + return null; + } else { + $data = $this->source->getData($actualLength); + if (strlen($data) != $actualLength) { + return PEAR::raiseError('Unexpected end of tar archive'); + } + $this->leftLength -= $actualLength; + return $data; + } + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + require_once "File/Archive/Writer/Tar.php"; + + $blocks = array(); + $seek = null; + $gap = 0; + if ($this->currentFilename !== null && $pred->isTrue($this)) { + $seek = 512 + $this->currentStat[7] + $this->footerLength; + $blocks[] = $seek; //Remove this file + } + + while (($error = $this->next()) === true) { + $size = 512 + $this->currentStat[7] + $this->footerLength; + if ($pred->isTrue($this)) { + if ($seek === null) { + $seek = $size; + $blocks[] = $size; + } else if ($gap > 0) { + $blocks[] = $gap; //Don't remove the files between the gap + $blocks[] = $size; + $seek += $size; + } else { + $blocks[count($blocks)-1] += $size; //Also remove this file + $seek += $size; + } + $gap = 0; + } else { + if ($seek !== null) { + $seek += $size; + $gap += $size; + } + } + } + if ($seek === null) { + $seek = $this->seekToEnd; + } else { + $seek += $this->seekToEnd; + if ($gap == 0) { + array_pop($blocks); + } else { + $blocks[] = $gap; + } + } + + $writer = new File_Archive_Writer_Tar(null, + $this->source->makeWriterRemoveBlocks($blocks, -$seek) + ); + $this->close(); + return $writer; + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + if ($this->seekToEnd !== null || $this->currentStat === null) { + return PEAR::raiseError('No file selected'); + } + + $blockPos = $this->currentStat[7] - $this->leftLength + $seek; + + $this->rewind(); + $keep = false; + + $data = $this->getData($blockPos); + foreach ($blocks as $length) { + if ($keep) { + $data .= $this->getData($length); + } else { + $this->skip($length); + } + $keep = !$keep; + } + if ($keep) { + $data .= $this->getData(); + } + + $filename = $this->currentFilename; + $stat = $this->currentStat; + + $writer = $this->makeWriterRemove(); + if (PEAR::isError($writer)) { + return $writer; + } + + unset($stat[7]); + $stat[9] = $stat['mtime'] = time(); + $writer->newFile($filename, $stat); + $writer->writeData($data); + return $writer; + } + + /** + * @see File_Archive_Reader::makeAppendWriter + */ + function makeAppendWriter() + { + require_once "File/Archive/Writer/Tar.php"; + + while (($error = $this->next()) === true) { } + if (PEAR::isError($error)) { + $this->close(); + return $error; + } + + $innerWriter = $this->source->makeWriterRemoveBlocks(array(), -$this->seekToEnd); + if (PEAR::isError($innerWriter)) { + return $innerWriter; + } + + $this->close(); + return new File_Archive_Writer_Tar(null, $innerWriter); + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Uncompress.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Uncompress.php new file mode 100644 index 0000000..096e5e9 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Uncompress.php @@ -0,0 +1,317 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Uncompress.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader.php"; +require_once "File/Archive/Reader/ChangeName/AddDirectory.php"; + +/** + * Recursively uncompress every file it finds + */ +class File_Archive_Reader_Uncompress extends File_Archive_Reader_Relay +{ + /** + * @var Array Stack of readers + * @access private + */ + var $readers = array(); + + /** + * @var array of readers to close when closing $this + * @access private + */ + var $toClose = array(); + + /** + * @var File_Archive_Reader Reader from which all started (usefull to be + * able to close) + * @access private + */ + var $startReader; + + /** + * @var Int Maximum depth of uncompression after the basicDir + * (that may contain some uncompression also) + * -1 means no limit + * @access private + */ + var $uncompressionLevel; + + /** + * @var array Only files starting with $baseDir will be reported + * This array contains explode('/', $directoryName) + * @access private + */ + var $baseDir = ''; + + /** + * @var int Compression level required to go to reach the baseDir + * or null if it is currently being computed + * @access private + */ + var $baseDirCompressionLevel = null; + + /** + * @var int We are selecting substr($baseDir, 0, $baseDirProgression) + */ + var $baseDirProgression = 0; + + /** + * @var boolean Flag set to indicate that the current file has not been + * displayed + */ + var $currentFileNotDisplayed = false; + + function File_Archive_Reader_Uncompress( + &$innerReader, $uncompressionLevel = -1) + { + parent::File_Archive_Reader_Relay($innerReader); + $this->startReader =& $innerReader; + $this->uncompressionLevel = $uncompressionLevel; + } + + /** + * Attempt to change the current source (if the current file is an archive) + * If this is the case, push the current source onto the stack and make the + * good archive reader the current source. A file is considered as an + * archive if its extension is one of tar, gz, zip, tgz + * + * @return bool whether the source has been pushed or not + * @access private + */ + function push() + { + $filename = $this->source->getFilename(); + + if (substr($filename, -1) == '/') { //it's a directory + return false; + } + + + if ($this->uncompressionLevel >= 0 && + $this->baseDirCompressionLevel !== null && + count($this->readers) >= $this->uncompressionLevel + ) { + return false; + } + + // Check the extension of the file (maybe we need to uncompress it?) + $extensions = explode('.', strtolower($filename)); + + $reader =& $this->source; + $nbUncompressions = 0; + + while (($extension = array_pop($extensions)) !== null) { + $nbUncompressions++; + unset($next); + $next = File_Archive::readArchive($extension, $reader, $nbUncompressions == 1); + if ($next === false) { + $extensions = array(); + } else { + unset($reader); + $reader =& $next; + } + } + if ($nbUncompressions == 1) { + return false; + } else { + $this->readers[count($this->readers)] =& $this->source; + unset($this->source); + $this->source = new File_Archive_Reader_ChangeName_AddDirectory( + $filename, $reader + ); + return true; + } + } + /** + * @see File_Archive_Reader::close() + */ + function next() + { + if ($this->currentFileNotDisplayed) { + $this->currentFileNotDisplayed = false; + return true; + } + + do { + do { + $selection = substr($this->baseDir, 0, $this->baseDirProgression); + if ($selection === false) { + $selection = ''; + } + + $error = $this->source->select($selection, false); + if (PEAR::isError($error)) { + return $error; + } + if (!$error) { + if (empty($this->readers)) { + return false; + } + $this->source->close(); + unset($this->source); + $this->source =& $this->readers[count($this->readers)-1]; + unset($this->readers[count($this->readers)-1]); + } + } while (!$error); + + $filename = $this->source->getFilename(); + if (strlen($filename) < strlen($this->baseDir)) { + $goodFile = (strncmp($filename, $this->baseDir, strlen($filename)) == 0 && + $this->baseDir{strlen($filename)} == '/'); + if ($goodFile) { + if (strlen($filename) + 2 < strlen($this->baseDirProgression)) { + $this->baseDirProgression = strpos($this->baseDir, '/', strlen($filename)+2); + if ($this->baseDirProgression === false) { + $this->baseDirProgression = strlen($this->baseDir); + } + } else { + $this->baseDirProgression = strlen($this->baseDir); + } + } + } else { + $goodFile = (strncmp($filename, $this->baseDir, strlen($this->baseDir)) == 0); + if ($goodFile) { + $this->baseDirProgression = strlen($this->baseDir); + } + } + } while (($goodFile && $this->push()) || !$goodFile); + + return true; + } + + /** + * Efficiently filter out the files which URL does not start with $baseDir + * Throws an error if the $baseDir can't be found + * @return bool Whether baseDir was a directory or a file + */ + function setBaseDir($baseDir) + { + $this->baseDir = $baseDir; + $this->baseDirProgression = strpos($baseDir, '/'); + if ($this->baseDirProgression === false) { + $this->baseDirProgression = strlen($baseDir); + } + + $error = $this->next(); + if ($error === false) { + return PEAR::raiseError("No directory $baseDir in inner reader"); + } else if (PEAR::isError($error)) { + return $error; + } + + $this->currentFileNotDisplayed = true; + return strlen($this->getFilename())>strlen($baseDir); + } + /** + * @see File_Archive_Reader::select() + */ + function select($filename, $close = true) + { + if ($close) { + $error = $this->close(); + if (PEAR::isError($close)) { + return $error; + } + } + + $oldBaseDir = $this->baseDir; + $oldProgression = $this->baseDirProgression; + + $this->baseDir = $filename; + $this->baseDirProgression = 0; + + $res = $this->next(); + + $this->baseDir = $oldBaseDir; + $this->baseDirProgression = $oldProgression; + + return $res; + } + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + for ($i=0; $ireaders); ++$i) { + $this->readers[$i]->close(); + } + //var_dump($this->toClose); + for ($i=0; $itoClose); ++$i) { + if ($this->toClose[$i] !== null) { + $this->toClose[$i]->close(); + } + } + + $this->readers = array(); + $this->toClose = array(); + $error = parent::close(); + $this->baseDirCompressionLevel = null; + $this->baseDirProgression = 0; + + unset($this->source); + $this->source =& $this->startReader; + $this->source->close(); + $this->currentFileNotDisplayed = false; + + return $error; + } + + /** + * @see File_Archive_Reader::makeAppendWriter() + */ + function makeAppendWriter() + { + //The reader needs to be open so that the base dir is found + $error = $this->next(); + if (PEAR::isError($error)) { + return $error; + } + + return parent::makeAppendWriter(); + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + //The reader needs to be open so that the base dir is found + $error = $this->next(); + if (PEAR::isError($error)) { + return $error; + } + + return parent::makeWriterRemoveFiles($pred); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Zip.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Zip.php new file mode 100644 index 0000000..a9df6ba --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Reader/Zip.php @@ -0,0 +1,482 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Zip.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Reader/Archive.php"; + +/** + * ZIP archive reader + * Currently only allows to browse the archive (getData is not available) + */ +class File_Archive_Reader_Zip extends File_Archive_Reader_Archive +{ + var $currentFilename = null; + var $currentStat = null; + var $header = null; + var $offset = 0; + var $data = null; + var $files = array(); + var $seekToEnd = 0; + + var $centralDirectory = null; + + /** + * @see File_Archive_Reader::close() + */ + function close() + { + $this->currentFilename = null; + $this->currentStat = null; + $this->compLength = 0; + $this->data = null; + $this->seekToEnd = 0; + $this->files = array(); + $this->centralDirectory = null; + + return parent::close(); + } + + /** + * @see File_Archive_Reader::getFilename() + */ + function getFilename() { return $this->currentFilename; } + /** + * @see File_Archive_Reader::getStat() + */ + function getStat() { return $this->currentStat; } + + /** + * Go to next entry in ZIP archive + * + * @see File_Archive_Reader::next() + */ + function next() + { + if ($this->seekToEnd > 0) { + return false; + } + + //Skip the data and the footer if they haven't been uncompressed + if ($this->header !== null && $this->data === null) { + $toSkip = $this->header['CLen']; + $error = $this->source->skip($toSkip); + if (PEAR::isError($error)) { + return $error; + } + } + + $this->offset = 0; + $this->data = null; + + //Read the header + $header = $this->source->getData(4); + // Handle PK00PK archives + if ($header == "\x50\x4b\x30\x30") { //PK00 + $header = $this->source->getData(4); + } + // Sometimes this header is used to tag the data descriptor section + if($header == "\x50\x4b\x07\x08") { + // Read out the data descriptor (always 12 bytes) + $this->source->getData(12); + + // Get a new header from the file + $header = $this->source->getData(4); + } + if (PEAR::isError($header)) { + return $header; + } + if ($header == "\x50\x4b\x03\x04") { + //New entry + $header = $this->source->getData(26); + if (PEAR::isError($header)) { + return $header; + } + $this->header = unpack( + "vVersion/vFlag/vMethod/vTime/vDate/VCRC/VCLen/VNLen/vFile/vExtra", + $header); + + //Check the compression method + if ($this->header['Method'] != 0 && + $this->header['Method'] != 8 && + $this->header['Method'] != 12) { + return PEAR::raiseError("File_Archive_Reader_Zip doesn't ". + "handle compression method {$this->header['Method']}"); + } + if ($this->header['Flag'] & 1) { + return PEAR::raiseError("File_Archive_Reader_Zip doesn't ". + "handle encrypted files"); + } + if ($this->header['Flag'] & 8) { + if ($this->centralDirectory === null) { + $this->readCentralDirectory(); + } + $centralDirEntry = $this->centralDirectory[count($this->files)]; + + $this->header['CRC'] = $centralDirEntry['CRC']; + $this->header['CLen'] = $centralDirEntry['CLen']; + $this->header['NLen'] = $centralDirEntry['NLen']; + } + if ($this->header['Flag'] & 32) { + return PEAR::raiseError("File_Archive_Reader_Zip doesn't ". + "handle compressed patched data"); + } + if ($this->header['Flag'] & 64) { + return PEAR::raiseError("File_Archive_Reader_Zip doesn't ". + "handle strong encrypted files"); + } + + $this->currentStat = array( + 7=>$this->header['NLen'], + 9=>mktime( + ($this->header['Time'] & 0xF800) >> 11, //hour + ($this->header['Time'] & 0x07E0) >> 5, //minute + ($this->header['Time'] & 0x001F) >> 1, //second + ($this->header['Date'] & 0x01E0) >> 5, //month + ($this->header['Date'] & 0x001F) , //day + (($this->header['Date'] & 0xFE00) >> 9) + 1980 //year + ) + ); + $this->currentStat['size'] = $this->currentStat[7]; + $this->currentStat['mtime'] = $this->currentStat[9]; + + $this->currentFilename = $this->source->getData($this->header['File']); + + $error = $this->source->skip($this->header['Extra']); + if (PEAR::isError($error)) { + return $error; + } + + $this->files[] = array('name' => $this->currentFilename, + 'stat' => $this->currentStat, + 'CRC' => $this->header['CRC'], + 'CLen' => $this->header['CLen'] + ); + return true; + } else { + //Begining of central area + $this->seekToEnd = 4; + $this->currentFilename = null; + return false; + } + } + + /** + * @see File_Archive_Reader::getData() + */ + function getData($length = -1) + { + if ($this->offset >= $this->currentStat[7]) { + return null; + } + + if ($length>=0) { + $actualLength = min($length, $this->currentStat[7]-$this->offset); + } else { + $actualLength = $this->currentStat[7]-$this->offset; + } + + $error = $this->uncompressData(); + if (PEAR::isError($error)) { + return $error; + } + $result = substr($this->data, $this->offset, $actualLength); + $this->offset += $actualLength; + return $result; + } + /** + * @see File_Archive_Reader::skip() + */ + function skip($length = -1) + { + $before = $this->offset; + if ($length == -1) { + $this->offset = $this->currentStat[7]; + } else { + $this->offset = min($this->offset + $length, $this->currentStat[7]); + } + return $this->offset - $before; + } + /** + * @see File_Archive_Reader::rewind() + */ + function rewind($length = -1) + { + $before = $this->offset; + if ($length == -1) { + $this->offset = 0; + } else { + $this->offset = min(0, $this->offset - $length); + } + return $before - $this->offset; + } + /** + * @see File_Archive_Reader::tell() + */ + function tell() + { + return $this->offset; + } + + function uncompressData() + { + if ($this->data !== null) + return; + + $this->data = $this->source->getData($this->header['CLen']); + if (PEAR::isError($this->data)) { + return $this->data; + } + if ($this->header['Method'] == 8) { + $this->data = gzinflate($this->data); + } + if ($this->header['Method'] == 12) { + $this->data = bzdecompress($this->data); + } + + if (crc32($this->data) != ($this->header['CRC'] & 0xFFFFFFFF)) { + return PEAR::raiseError("Zip archive: CRC fails on entry ". + $this->currentFilename); + } + } + + /** + * @see File_Archive_Reader::makeWriterRemoveFiles() + */ + function makeWriterRemoveFiles($pred) + { + require_once "File/Archive/Writer/Zip.php"; + + $blocks = array(); + $seek = null; + $gap = 0; + if ($this->currentFilename !== null && $pred->isTrue($this)) { + $seek = 30 + $this->header['File'] + $this->header['Extra'] + $this->header['CLen']; + $blocks[] = $seek; //Remove this file + array_pop($this->files); + } + + while (($error = $this->next()) === true) { + $size = 30 + $this->header['File'] + $this->header['Extra'] + $this->header['CLen']; + if (substr($this->getFilename(), -1) == '/' || $pred->isTrue($this)) { + array_pop($this->files); + if ($seek === null) { + $seek = $size; + $blocks[] = $size; + } else if ($gap > 0) { + $blocks[] = $gap; //Don't remove the files between the gap + $blocks[] = $size; + $seek += $size; + } else { + $blocks[count($blocks)-1] += $size; //Also remove this file + $seek += $size; + } + $gap = 0; + } else { + if ($seek !== null) { + $seek += $size; + $gap += $size; + } + } + } + if (PEAR::isError($error)) { + return $error; + } + + if ($seek === null) { + $seek = 4; + } else { + $seek += 4; + if ($gap == 0) { + array_pop($blocks); + } else { + $blocks[] = $gap; + } + } + + $writer = new File_Archive_Writer_Zip(null, + $this->source->makeWriterRemoveBlocks($blocks, -$seek) + ); + if (PEAR::isError($writer)) { + return $writer; + } + + foreach ($this->files as $file) { + $writer->alreadyWrittenFile($file['name'], $file['stat'], $file['CRC'], $file['CLen']); + } + + $this->close(); + return $writer; + } + + /** + * @see File_Archive_Reader::makeWriterRemoveBlocks() + */ + function makeWriterRemoveBlocks($blocks, $seek = 0) + { + if ($this->currentFilename === null) { + return PEAR::raiseError('No file selected'); + } + + $keep = false; + + $this->uncompressData(); + $newData = substr($this->data, 0, $this->offset + $seek); + $this->data = substr($this->data, $this->offset + $seek); + foreach ($blocks as $length) { + if ($keep) { + $newData .= substr($this->data, 0, $length); + } + $this->data = substr($this->data, $length); + $keep = !$keep; + } + if ($keep) { + $newData .= $this->data; + } + + $filename = $this->currentFilename; + $stat = $this->currentStat; + + $writer = $this->makeWriterRemove(); + if (PEAR::isError($writer)) { + return $writer; + } + + unset($stat[7]); + $stat[9] = $stat['mtime'] = time(); + $writer->newFile($filename, $stat); + $writer->writeData($newData); + return $writer; + } + + /** + * @see File_Archive_Reader::makeAppendWriter + */ + function makeAppendWriter() + { + require_once "File/Archive/Writer/Zip.php"; + + while (($error = $this->next()) === true) { } + if (PEAR::isError($error)) { + $this->close(); + return $error; + } + + $writer = new File_Archive_Writer_Zip(null, + $this->source->makeWriterRemoveBlocks(array(), -4) + ); + + foreach ($this->files as $file) { + $writer->alreadyWrittenFile($file['name'], $file['stat'], $file['CRC'], $file['CLen']); + } + + $this->close(); + return $writer; + } + + /** + * This function seeks to the start of the [end of central directory] field, + * just after the \x50\x4b\x05\x06 signature and returns the number of bytes + * skipped + * + * The stream must initially be positioned before the end of central directory + */ + function seekToEndOfCentralDirectory() + { + $nbSkipped = $this->source->skip(); + + $nbSkipped -= $this->source->rewind(22) - 4; + if ($this->source->getData(4) == "\x50\x4b\x05\x06") { + return $nbSkipped; + } + + while ($nbSkipped > 0) { + + $nbRewind = $this->source->rewind(min(100, $nbSkipped)); + while ($nbRewind >= -4) { + if ($nbRewind-- && $this->source->getData(1) == "\x50" && + $nbRewind-- && $this->source->getData(1) == "\x4b" && + $nbRewind-- && $this->source->getData(1) == "\x05" && + $nbRewind-- && $this->source->getData(1) == "\x06") { + //We finally found it! + return $nbSkipped - $nbRewind; + } + } + $nbSkipped -= $nbRewind; + } + + return PEAR::raiseError('End of central directory not found. The file is probably not a zip archive'); + } + + /** + * This function will fill the central directory variable + * and seek back to where it was called + */ + function readCentralDirectory() + { + $nbSkipped = $this->seekToEndOfCentralDirectory(); + if (PEAR::isError($nbSkipped)) { + return $nbSkipped; + } + + $this->source->skip(12); + $offset = $this->source->getData(4); + $nbSkipped += 16; + if (PEAR::isError($offset)) { + return $offset; + } + + $offset = unpack("Vvalue", $offset); + $offset = $offset['value']; + + $current = $this->source->tell(); + $nbSkipped -= $this->source->rewind($current - $offset); + + //Now we are the right pos to read the central directory + $this->centralDirectory = array(); + while ($this->source->getData(4) == "\x50\x4b\x01\x02") { + $this->source->skip(12); + $header = $this->source->getData(16); + $nbSkipped += 32; + + if (PEAR::isError($header)) { + return $header; + } + + $header = unpack('VCRC/VCLen/VNLen/vFileLength/vExtraLength', $header); + $this->centralDirectory[] = array('CRC' => $header['CRC'], + 'CLen' => $header['CLen'], + 'NLen' => $header['NLen']); + $nbSkipped += $this->source->skip(14 + $header['FileLength'] + $header['ExtraLength']); + } + + $this->source->rewind($nbSkipped+4); + } +} +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer.php new file mode 100644 index 0000000..c349b32 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer.php @@ -0,0 +1,119 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Writer.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "PEAR.php"; + +/** + * Base class for any writer + */ +class File_Archive_Writer +{ + /** + * Create a new file in the writer + * + * @param string $filename Name of the file, eventually including a path + * @param array $stat Its Statistics. None of the indexes are required + * @param string $mime MIME type of the file + */ + function newFile($filename, $stat = array(), $mime = "application/octet-stream") + { + } + + /** + * Create a new file in the writer with the content of the physical file $filename + * and then unlink $filename. + * newFromTempFile($tmpfile, $filename, $stat, $mime) is equivalent to + * newFile($filename, $stat, $mime); writeFile($tmpfile); unlink($tmpfile); + * but can be more efficient. + * A typical use is for File_Archive_Writer_Files: it renames the temporary + * file instead of copy/delete + * + * @param string $tmpfile Name of the physical file that contains data and will be unlinked + * @param string $filename Name of the file, eventually including a path + * @param array $stat Its Statistics. None of the indexes are required + * @param string $mime MIME type of the file + */ + function newFromTempFile($tmpfile, $filename, $stat = array(), $mime = "application/octet-stream") + { + $this->newFile($filename, $stat, $mime); + $this->writeFile($tmpfile); + unlink($tmpfile); + } + + /** + * Returns whether the writer newFile function needs the $mime parameter + * Default is false + */ + function newFileNeedsMIME() + { + return false; + } + + /** + * Append the specified data to the writer + * + * @param String $data the data to append to the writer + */ + function writeData($data) + { + } + + /** + * Append the content of the physical file $filename to the writer + * writeFile($filename) must be equivalent to + * writeData(file_get_contents($filename)) but can be more efficient + * + * @param string $filename Name of the file which content must be appended + * to the writer + */ + function writeFile($filename) + { + $handle = fopen($filename, "r"); + if (!is_resource($handle)) { + return PEAR::raiseError("Unable to write to $filename"); + } + while (!feof($handle)) { + $error = $this->writeData(fread($handle, 102400)); + if (PEAR::isError($error)) { + return $error; + } + } + fclose($handle); + } + + /** + * Close the writer, eventually flush the data, write the footer... + * This function must be called before the end of the script + */ + function close() { } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/AddBaseName.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/AddBaseName.php new file mode 100644 index 0000000..1d8d2ae --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/AddBaseName.php @@ -0,0 +1,102 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: AddBaseName.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Writer wrapper that adds a directory to the written file + */ +class File_Archive_Writer_AddBaseName +{ + var $writer; + var $baseName; + + function File_Archive_Writer_AddBaseName($baseName, &$writer) + { + if (substr($baseName, -1) == '/') { + $this->baseName = $baseName; + } else { + $this->baseName = $baseName.'/'; + } + + $this->writer =& $writer; + } + + /** + * @see File_Archive_Writer::newFile() + */ + function newFile($filename, $stat = array(), $mime = "application/octet-stream") + { + $this->writer->newFile($this->baseName.$filename, $stat, $mime); + } + + /** + * @see File_Archive_Writer::newFromTempFile() + */ + function newFromTempFile($tmpfile, $filename, $stat = array(), $mime = "application/octet-stream") + { + $this->writer->newFromTempFile($tmpfile, $this->baseName.$filename, $stat, $mime); + } + + /** + * @see File_Archive_Writer::newFileNeedsMIME() + */ + function newFileNeedsMIME() + { + return $this->writer->newFileNeedsMIME(); + } + + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + $this->writer->writeData($data); + } + + /** + * @see File_Archive_Writer::writeFile() + */ + function writeFile($filename) + { + $this->writer->writeFile($filename); + } + + /** + * @see File_Archive_Writer::close() + */ + function close() + { + $this->writer->close(); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Ar.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Ar.php new file mode 100644 index 0000000..113ea24 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Ar.php @@ -0,0 +1,209 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer/Archive.php"; + +/** + * Write the files as an AR archive + */ +class File_Archive_Writer_Ar extends File_Archive_Writer_Archive +{ + + /** + * @var string Current data of the file. + * @access private + */ + var $_buffer = ""; + + /** + * @var string Filename of the current filename + * @access private + */ + var $_currentFilename = null; + + /** + * @var boolean Flag: use buffer or not. + * @access private + */ + var $_useBuffer; + + /** + * @var array Stats of the current filename + * @access private + */ + var $_currentStat = array (); + + /** + * @var boolean Flag: beginning of the archive or not + * @access private + */ + var $_atStart = true; + + /** + * Returns the header of the current file. + * + * More Info: + * http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/files/aixfiles/ar_IA64.htm + * + * @access private + * @param string $filename Name of the current file + * @param array $stat Stat array of the current file + * @return string The built header struct + */ + function arHeader ($filename, $stat) + { + $mode = isset($stat[2]) ? $stat[2] : 0x8000; + $uid = isset($stat[4]) ? $stat[4] : 0; + $gid = isset($stat[5]) ? $stat[5] : 0; + $size = $stat[7]; + $time = isset($stat[9]) ? $stat[9] : time(); + + $struct = ""; + $currentSize = $size; + //if file length is > than 16.. + if (strlen($filename) > 16) { + $currentSize += strlen($filename); + $struct .= sprintf("#1/%-13d", strlen($filename)); + $struct .= sprintf("%-12d%-6d%-6d%-8s%-10d", + $time, $uid, $gid, $mode, $currentSize); + $struct .= "`\n".$filename; + } else { + $struct .= sprintf("%-16s", $filename); + $struct .= sprintf("%-12d%-6d%-6d%-8s%-10d`\n", + $time, $uid, $gid, $mode, $size); + } + return $struct; + } + + /** + * Returns the footer of the current file, the footer depends + * of the size of the file + * + * @access private + * @param string $filename Name of the file, the footer depends on its length + * @param int $size Size of the current file, here the size does matters! + * @return string The footer struct + */ + function arFooter($filename, $size) + { + $size = (strlen ($filename) > 16) ? $size + strlen($filename) : $size; + + return ($size % 2 == 1) ? "\n" : ""; + } + + + /** + * Flush the memory we have in the ar. + * + * Build the buffer if its called at the end or initialize + * it if we are just creating it from the start. + */ + function flush() + { + if ($this->_atStart) { + $this->innerWriter->writeData("!\n"); + $this->_atStart = false; + } + if ($this->_currentFilename !== null) { + $this->_currentStat[7] = strlen($this->_buffer); + if ($this->_useBuffer) { + $this->innerWriter->writeData( + $this->arHeader($this->_currentFilename, $this->_currentStat) + ); + $this->innerWriter->writeData($this->_buffer); + } + $this->innerWriter->writeData($this->arFooter($this->_currentFilename, $this->_currentStat[7])); + } + $this->_buffer = ""; + } + + /** + * @see File_Archive_Writer::newFile() + * + */ + function newFile($filename, $stat = array (), + $mime = "application/octet-stream") + { + // ar file format doesn't support folders + if (substr($filename, -1) == '/') { + return; + } + + $this->flush(); + /* + * If the file is empty, there's no reason to have a buffer + * or use memory + */ + $this->_useBuffer = !isset($stats[7]); + /* + * Becaue ar fileformats doesn't support files in directories, + * then we need to just save with the filename an ommit the + * directory + */ + $this->_currentFilename = basename($filename); + $this->_currentStat = $stat; + + if(!$this->_useBuffer) { + return $this->innerWriter->writeData($this->arHeader($filename, $stat)); + } + } + + /** + * @see File_Archive_Writer::close() + */ + function close() + { + $this->flush(); + parent::close(); + } + + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + if ($this->_useBuffer) { + $this->_buffer .= $data; + } else { + $this->innerWriter->writeData($data); + } + + } + /** + * @see File_Archive_Writer::writeFile() + */ + function writeFile($filename) + { + if ($this->_useBuffer) { + $this->_buffer .= file_get_contents($filename); + } else { + $this->innerWriter->writeFile($filename); + } + } +} \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Archive.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Archive.php new file mode 100644 index 0000000..12bb2c0 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Archive.php @@ -0,0 +1,129 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Archive.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Base class for all the transformation writers that will generate one single + * file + */ +class File_Archive_Writer_Archive extends File_Archive_Writer +{ + /** + * @var File_Archive_Writer The compressed data will be written to this + * writer + * @access protected + */ + var $innerWriter; + + /** + * @var bool If true, the innerWriter will be closed when closing this + * @access private + */ + var $autoClose; + + /** + * @var Array List of empty folders that will be added when closing the archive + */ + var $emptyFolders = array(); + + /** + * @param String $filename Name to give to the archive (the name will + * be used by the inner writer) + * If $filename is null, the innerWriter is considered already + * opened (and thus newFile will not be called) + * @param File_Archive_Writer $innerWriter The inner writer to which the + * compressed data will be written + * @param array $stat The stat of the archive (see the PHP stat() function). + * No element are required in this array + * @param bool $autoClose Indicate if the inner writer must be closed when + * closing this + */ + function File_Archive_Writer_Archive($filename, &$innerWriter, + $stat = array(), $autoClose = true) + { + $this->innerWriter =& $innerWriter; + $this->autoClose = $autoClose; + if ($filename !== null) { + $this->innerWriter->newFile($filename, $stat, $this->getMime()); + } + } + + function newFile($filename, $stat = array(), + $mime = 'application/octet-stream') + { + if (substr($filename, -1) == '/') { + $this->emptyFolders[$filename] = array($stat, $mime); + } else { + // Remove the folders that may no longer be empty + $current = ''; + foreach (explode('/', $filename) as $folder) { + $current .= $folder.'/'; + unset($this->emptyFolders[$current]); + } + $err = $this->_newFile($filename, $stat, $mime); + if (PEAR::isError($err)) { + return $err; + } + } + } +//MUST REWRITE FUNCTIONS + function _newFile($filename, $stat, $mime) {} + + /** + * @return the MIME extension of the files generated by this writer + */ + function getMime() { return "application/octet-stream"; } + + /** + * @see File_Archive_Writer::close() + */ + function close() + { + foreach ($this->emptyFolders as $folder => $info) { + $err = $this->_newFile($folder, $info[0], $info[1]); + if (PEAR::isError($err)) { + return $err; + } + } + + if ($this->autoClose) { + return $this->innerWriter->close(); + } + } +// function writeData($data) + +//SHOULD REWRITE FUNCTIONS +// function writeFile($filename) +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Bzip2.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Bzip2.php new file mode 100644 index 0000000..f436688 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Bzip2.php @@ -0,0 +1,147 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Bzip2.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Compress a single file to Bzip2 format + */ +class File_Archive_Writer_Bzip2 extends File_Archive_Writer +{ + + /** + * compressionLevel + * + * @var integer + * @access public + * @deprecated + */ + var $compressionLevel=9; + var $bzfile; + var $tmpName; + var $nbFiles = 0; + + var $innerWriter; + var $autoClose; + var $filename; + var $stat; + + /** + * @param string $filename Name to give to the archive + * @param File_Archive_Writer $innerWriter The inner writer to which the + * compressed data will be written + * @param array $stat The stat of the archive (see the PHP stat() function). + * No element are required in this array + * @param bool $autoClose Indicate if the inner writer must be closed when + * closing this + */ + function File_Archive_Writer_Bzip2($filename, &$innerWriter, + $stat = array(), $autoClose = true) + { + $this->innerWriter =& $innerWriter; + $this->autoClose = $autoClose; + + $this->filename = $filename; + $this->stat = $stat; + + if ($this->filename === null) { + $this->newFile(null); + } + } + + /** + * Set the compression level. Do nothing because PHP bz2 ext doesn't + * support this. + * + * @param int $compressionLevel From 0 (no compression) to 9 (best + * compression) + * @deprecated + */ + function setCompressionLevel($compressionLevel) + { + $this->compressionLevel = $compressionLevel; + } + + /** + * @see File_Archive_Writer::newFile() + * + * Check that one single file is written in the BZip2 archive + */ + function newFile($filename, $stat = array(), + $mime = "application/octet-stream") + { + if ($this->nbFiles > 1) { + return PEAR::raiseError("A Bzip2 archive can only contain one single file.". + "Use Tbz archive to be able to write several files"); + } + $this->nbFiles++; + + $this->tmpName = tempnam(File_Archive::getOption('tmpDirectory'), 'far'); + $this->bzfile = bzopen($this->tmpName, 'w'); + + return true; + } + + /** + * Actually write the tmp file to the inner writer + * Close and delete temporary file + * + * @see File_Archive_Writer::close() + */ + function close() + { + bzclose($this->bzfile); + + if ($this->filename === null) { + //Assume innerWriter is already opened on a file... + $this->innerWriter->writeFile($this->tmpName); + unlink($this->tmpName); + } else { + $this->innerWriter->newFromTempFile( + $this->tmpName, $this->filename, $this->stat, 'application/x-compressed' + ); + } + + if ($this->autoClose) { + return $this->innerWriter->close(); + } + } + + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + bzwrite($this->bzfile, $data); + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Files.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Files.php new file mode 100644 index 0000000..a58cf92 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Files.php @@ -0,0 +1,259 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Files.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Writer to files + */ +class File_Archive_Writer_Files extends File_Archive_Writer +{ + /** + * @var Object Handle to the file where the data are currently written + * @access private + */ + var $handle = null; + var $basePath; + var $stat = array(); + var $filename; + + function File_Archive_Writer_Files($base = '') + { + if ($base === null || $base == '') { + $this->basePath = ''; + } else { + if (substr($base, -1) == '/') { + $this->basePath = $base; + } else { + $this->basePath = $base.'/'; + } + } + } + + function getFilename($filename) + { + return $this->basePath.$filename; + } + + /** + * Ensure that $pathname exists, or create it if it does not + * @access private + */ + function mkdirr($pathname) + { + // Check if directory already exists + if (is_dir($pathname) || empty($pathname)) { + return; + } + + // Ensure a file does not already exist with the same name + if (is_file($pathname)) { + return PEAR::raiseError( + "File $pathname exists, unable to create directory" + ); + } + + // Crawl up the directory tree + $next_pathname = substr( + $pathname, + 0, strrpos($pathname, "/")); + $error = $this->mkdirr($next_pathname); + if (PEAR::isError($error)) { + return $error; + } + if (!@mkdir($pathname)) { + return PEAR::raiseError("Unable to create directory $pathname"); + } + } + + /** + * Open a file for writing from a given position + * + * @param string $filename The name of the file to open + * @param int $pos the initial position in the file + * @param $stat the stats of the file + */ + function openFile($filename, $pos = 0) + { + $this->close(); + + $this->handle = fopen($filename, 'r+'); + $this->stat = array(); + $this->filename = $filename; + + if (!is_resource($this->handle)) { + return PEAR::raiseError("Unable to open file $filename"); + } + + if ($pos > 0) { + if (fseek($this->handle, $pos) == -1) { + fread($this->handle, $pos); + } + } + } + + /** + * Open a file for appending after having removed a block of data from it + * See File_Archive_Reader::makeWriterRemoveBlocks + */ + function openFileRemoveBlock($filename, $pos, $blocks) + { + $error = $this->openFile($filename, $pos); + if (PEAR::isError($error)) { + return $error; + } + + if (!empty($blocks)) { + //This will be used to read the initial file + //The data, with the unusefull block removed will be written to $this->handle + $read = fopen($filename, 'r'); + if ($pos > 0) { + if (fseek($this->handle, $pos) == -1) { + fread($this->handle, $pos); + } + } + + $keep = false; + $data = ''; + foreach ($blocks as $length) { + if ($keep) { + while ($length > 0 && + ($data = fread($read, min($length, 8192))) != '') { + $length -= strlen($data); + fwrite($this->handle, $data); + } + } else { + fseek($read, $length, SEEK_CUR); + } + $keep = !$keep; + } + if ($keep) { + while(!feof($this->handle)) { + fwrite($this->handle, fread($read, 8196)); + } + } + + fclose($read); + } + + ftruncate($this->handle, ftell($this->handle)); + } + + + /** + * @see File_Archive_Writer::newFile() + */ + function newFile($filename, $stat = array(), $mime = "application/octet-stream") + { + $this->close(); + $this->stat = $stat; + $this->filename = $this->getFilename($filename); + + if (substr($this->filename, -1) == '/') { + $error = $this->mkdirr(substr($this->filename, 0, -1)); + if (PEAR::isError($error)) { + return $error; + } + } else { + $pos = strrpos($this->filename, "/"); + if ($pos !== false) { + $error = $this->mkdirr(substr($this->filename, 0, $pos)); + if (PEAR::isError($error)) { + return $error; + } + } + $this->handle = @fopen($this->filename, "w"); + if (!is_resource($this->handle)) { + return PEAR::raiseError("Unable to write to file $filename"); + } + } + } + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) { fwrite($this->handle, $data); } + /** + * @see File_Archive_Writer::newFromTempFile() + */ + function newFromTempFile($tmpfile, $filename, $stat = array(), $mime = "application/octet-stream") + { + $this->filename = $filename; + $complete = $this->getFilename($filename); + $pos = strrpos($complete, "/"); + if ($pos !== false) { + $error = $this->mkdirr(substr($complete, 0, $pos)); + if (PEAR::isError($error)) { + return $error; + } + } + + if ((file_exists($complete) && !@unlink($complete)) || + !@rename($tmpfile, $complete)) { + return parent::newFromTempFile($tmpfile, $filename, $stat, $mime); + } + } + + + /** + * @see File_Archive_Writer::close() + */ + function close() + { + if (is_resource($this->handle)) { + fclose($this->handle); + $this->handle = null; + + if (isset($this->stat[9])) { + if (isset($this->stat[8])) { + touch($this->filename, $this->stat[9], $this->stat[8]); + } else { + touch($this->filename, $this->stat[9]); + } + } else if (isset($this->stat[8])) { + touch($this->filename, time(), $this->stat[8]); + } + + if (isset($this->stat[2])) { + chmod($this->filename, $this->stat[2]); + } + if (isset($this->stat[5])) { + // I will try, but if I dont have permissions, it will fail + @chgrp($this->filename, $this->stat[5]); + } + if (isset($this->stat[4])) { + // I will try, but if I dont have permissions, it will fail + @chown($this->filename, $this->stat[4]); + } + } + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Gzip.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Gzip.php new file mode 100644 index 0000000..be7132f --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Gzip.php @@ -0,0 +1,139 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Gzip.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Compress a single file to Gzip format + */ +class File_Archive_Writer_Gzip extends File_Archive_Writer +{ + var $compressionLevel=9; + var $gzfile; + var $tmpName; + var $nbFiles = 0; + + var $innerWriter; + var $autoClose; + var $filename; + var $stat; + + /** + * @param string $filename Name to give to the archive + * @param File_Archive_Writer $innerWriter The inner writer to which the + * compressed data will be written + * @param array $stat The stat of the archive (see the PHP stat() function). + * No element are required in this array + * @param bool $autoClose Indicate if the inner writer must be closed when + * closing this + */ + function File_Archive_Writer_Gzip($filename, &$innerWriter, + $stat = array(), $autoClose = true) + { + $this->innerWriter =& $innerWriter; + $this->autoClose = $autoClose; + + $this->filename = $filename; + $this->stat = $stat; + + if ($this->filename === null) { + $this->newFile(null); + } + + $compressionLevel = File_Archive::getOption('gzCompressionLevel', 9); + } + + /** + * Set the compression level + * + * @param int $compressionLevel From 0 (no compression) to 9 (best + * compression) + */ + function setCompressionLevel($compressionLevel) + { + $this->compressionLevel = $compressionLevel; + } + + /** + * @see File_Archive_Writer::newFile() + * + * Check that one single file is written in the GZip archive + */ + function newFile($filename, $stat = array(), + $mime = "application/octet-stream") + { + if ($this->nbFiles > 1) { + return PEAR::raiseError("A Gz archive can only contain one single file.". + "Use Tgz archive to be able to write several files"); + } + $this->nbFiles++; + + $this->tmpName = tempnam(File_Archive::getOption('tmpDirectory'), 'far'); + $this->gzfile = gzopen($this->tmpName, 'w'.$this->compressionLevel); + + return true; + } + + + /** + * Actually write the tmp file to the inner writer + * Close and delete temporary file + * + * @see File_Archive_Writer::close() + */ + function close() + { + gzclose($this->gzfile); + if ($this->filename === null) { + //Assume innerWriter is already opened on a file... + $this->innerWriter->writeFile($this->tmpName); + unlink($this->tmpName); + } else { + $this->innerWriter->newFromTempFile( + $this->tmpName, $this->filename, $this->stat, 'application/x-compressed' + ); + } + + if ($this->autoClose) { + return $this->innerWriter->close(); + } + } + + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + gzwrite($this->gzfile, $data); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Mail.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Mail.php new file mode 100644 index 0000000..eda6f60 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Mail.php @@ -0,0 +1,204 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Mail.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; +require_once "Mail.php"; +require_once "Mail/mime.php"; + +/** + * Send the files attached to a mail. + */ +class File_Archive_Writer_Mail extends File_Archive_Writer +{ + /** + * @var Mail_mime object + * @access private + */ + var $mime; + + /** + * @var Mail object used to send email (built thanks to the factory) + * @access private + */ + var $mail; + + /** + * @var Array or String An array or a string with comma separated recipients + * @access private + */ + var $to; + + /** + * @var Array The headers that will be passed to the Mail_mime object + * @access private + */ + var $headers; + + /** + * @var String Data read from the current file so far + * @access private + */ + var $currentData = null; + + /** + * @var String Name of the file being attached + * @access private + */ + var $currentFilename = null; + + /** + * @var String MIME of the file being attached + * @access private + */ + var $currentMime = null; + + /** + * @param Mail $mail Object used to send mail (see Mail::factory) + * @param array or string $to An array or a string with comma separated + * recipients + * @param array $headers The headers that will be passed to the Mail_mime + * object + * @param string $message Text body of the mail + */ + function File_Archive_Writer_Mail($to, $headers, $message, &$mail) + { + $this->mime = new Mail_mime(); + $this->mime->setTXTBody($message); + if (!empty($htmlMessage)) { + $this->mime->setHTMLBody($htmlMessage); + } + + if ($mail === null) + $this->mail = Mail::factory("mail"); + else + $this->mail =& $mail; + + $this->to = $to; + $this->headers = $headers; + } + + /** + * @see Mail_Mime::setHTMLBody() + */ + function setHTMLBody($data, $isfile = false) + { + return $this->mime->setHTMLBody($data, $isfile); + } + /** + * @see Mail_Mime::addHTMLImage() + */ + function addHTMLImage($file, $c_type = 'application/octet-stream', + $name = '', $isfile = true) + { + return $this->mime->addHTMLImage($file, $c_type, $name, $isfile); + } + + /** + * @see File_Archive_Writer::writeData() + * + * This function just put the data in $currentData until the end of file + * At that time, addCurrentData is called to attach $currentData to the mail + * and to clear $currentData for a new file + */ + function writeData($data) + { + $this->currentData .= $data; + } + /** + * Called when a file is finished and must be added as attachment to the mail + */ + function addCurrentData() + { + if ($this->currentFilename === null) { + return; + } + + $error = $this->mime->addAttachment( + $this->currentData, + $this->currentMime, + $this->currentFilename, + false); + $this->currentData = ''; + return $error; + } + /** + * @see File_Archive_Writer::newFile() + */ + function newFile($filename, $stat, $mime = "application/octet-stream") + { + $error = $this->addCurrentData(); + if (PEAR::isError($error)) { + return $error; + } + + if (substr($filename, -1) == '/') { + $this->currentFilename = null; + } else { + $this->currentFilename = $filename; + $this->currentMime = $mime; + } + } + /** + * @see File_Archive_Writer::newFileNeedsMIME() + */ + function newFileNeedsMIME() + { + return true; + } + + /** + * @see File_Archive_Writer::close() + */ + function close() + { + $error = parent::close(); + if (PEAR::isError($error)) { + return $error; + } + $error = $this->addCurrentData(); + if (PEAR::isError($error)) { + return $error; + } + + $body = $this->mime->get(); + $headers = $this->mime->headers($this->headers); + + if (!$this->mail->send( + $this->to, + $headers, + $body) + ) { + return PEAR::raiseError("Error sending mail"); + } + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Memory.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Memory.php new file mode 100644 index 0000000..0b54788 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Memory.php @@ -0,0 +1,127 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Memory.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Write the concatenation of the files in a buffer + */ +class File_Archive_Writer_Memory extends File_Archive_Writer +{ + /** + * @var string $data The buffer + * @access private + */ + var $data = ""; + /** + * Information about the file being written into this writer + * @access private + */ + var $filename; + var $stat; + var $mime; + + /** + * @param reference $data If provided, the data will be output in this + * variable. Any existent data in $data will be overwritten by the + * actual data of the writer. You should not modify manually this + * variable while using this writer (you can safely use all the + * functions of the archive, like clear for example) + * @param int keptData is the offset from where to start writing in $data + * Any data located after $seek will be erased + * The default value is 0 + */ + function File_Archive_Writer_Memory(&$data, $seek = 0) + { + $this->data =& $data; + $this->data = substr($data, 0, $seek); + } + + function writeData($d) { $this->data .= $d; } + + /** + * @see File_Archive_Writer::newFile() + */ + function newFile($filename, $stat, $mime = "application/octet-stream") + { + $this->filename = $filename; + $this->stat = $stat; + $this->mime = $mime; + } + /** + * @see File_Archive_Writer::newFileNeedsMIME + */ + function newFileNeedsMIME() + { + return true; + } + + /** + * Retrieve the concatenated data + * The value is returned by reference for performance problems, but you + * should not manually modify it + * + * @return string buffer + */ + function &getData() { return $this->data; } + + /** + * Clear the buffer + */ + function clear() { $this->data = ""; } + + /** + * Returns true iif the buffer is empty + */ + function isEmpty() { return empty($this->data); } + + /** + * Create a reader from this writer + * + * @param string $filename Name of the file provided by the reader + * @param array $stat Statistics of the file provided by the reader + * @param string $mime Mime type of the file provided by the reader + * + * Any unspecified parameter will be set to the value of the last file + * written in this writer + */ + function makeReader($filename = null, $stat = null, $mime = null) + { + require_once "File/Archive/Reader/Memory.php"; + return new File_Archive_Reader_Memory( + $this->data, + $filename === null ? $this->filename : $filename, + $stat === null ? $this->stat : $stat, + $mime === null ? $this->mime : $mime); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/MemoryArchive.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/MemoryArchive.php new file mode 100644 index 0000000..b668c0a --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/MemoryArchive.php @@ -0,0 +1,213 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: MemoryArchive.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer/Archive.php"; +require_once "File/Archive/Writer/Memory.php"; + +/** + * Base class for all the archiveWriters that can only work on complete files + * (the write data function may be called with small chunks of data) + */ +class File_Archive_Writer_MemoryArchive extends File_Archive_Writer_Archive +{ + /** + * @var File_Archive_Writer_Memory A buffer where the data will be put + * waiting for the file to be complete + * @access private + */ + var $buffer = ''; + /** + * @var string Name of the file which data are coming + * @access private + */ + var $currentFilename = null; + /** + * @var array Stats of the file which data are coming + * @access private + */ + var $currentStat = null; + /** + * @var string URL of the file being treated if it is a physical file + * @access private + */ + var $currentDataFile = null; + /** + * @var int Number of times newFile function has been called + * @access protected + */ + var $nbFiles = 0; + + /** + * @see File_Archive_Writer::File_Archive_Writer() + */ + function File_Archive_Writer_MemoryArchive + ($filename, &$t, $stat = array(), $autoClose = true) + { + parent::File_Archive_Writer_Archive($filename, $t, $stat, $autoClose); + } + + /** + * @see File_Archive_Writer::newFile() + */ + function _newFile($filename, $stat = array(), + $mime = "application/octet-stream") + { + if ($this->nbFiles == 0) { + $error = $this->sendHeader(); + if (PEAR::isError($error)) { + return $error; + } + } else { + $error = $this->flush(); + if (PEAR::isError($error)) { + return $error; + } + } + + $this->nbFiles++; + + $this->currentFilename = $filename; + $this->currentStat = $stat; + + return true; + } + /** + * @see File_Archive_Writer::close() + */ + function close() + { + $error = $this->flush(); + if (PEAR::isError($error)) { + return $error; + } + $error = $this->sendFooter(); + if (PEAR::isError($error)) { + return $error; + } + + return parent::close(); + } + /** + * Indicate that all the data have been read from the current file + * and send it to appendFileData + * Send the current data to the appendFileData function + * + * @access private + */ + function flush() + { + if ($this->currentFilename !== null) { + if ($this->currentDataFile !== null) { + $error = $this->appendFile($this->currentFilename, + $this->currentDataFile); + } else { + $error = $this->appendFileData($this->currentFilename, + $this->currentStat, + $this->buffer); + } + if (PEAR::isError($error)) { + return $error; + } + + $this->currentFilename = null; + $this->currentDataFile = null; + $this->buffer = ''; + } + } + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + if ($this->currentDataFile !== null) { + $this->buffer .= file_get_contents($this->currentDataFile); + $this->currentDataFile = null; + } + $this->buffer .= $data; + } + /** + * @see File_Archive_Writer::writeFile() + */ + function writeFile($filename) + { + if ($this->currentDataFile === null && empty($this->buffer)) { + $this->currentDataFile = $filename; + } else { + if ($this->currentDataFile !== null) { + $this->buffer .= file_get_contents($this->currentDataFile); + $this->currentDataFile = null; + } + $this->buffer .= file_get_contents($filename); + } + } + +//MUST REWRITE FUNCTIONS + /** + * The subclass must treat the data $data + * $data is the entire data of the filename $filename + * $stat is the stat of the file + * + * @access protected + */ + function appendFileData($filename, $stat, &$data) { } + +//SHOULD REWRITE FUNCTIONS + /** + * The subclass may rewrite the sendHeader function if it needs to execute + * code before the first file + * + * @access protected + */ + function sendHeader() { } + /** + * The subclass may rewrite the sendFooter function if it needs to execute + * code before closing the archive + * + * @access protected + */ + function sendFooter() { } + /** + * The subclass may rewrite this class if it knows an efficient way to treat + * a physical file. + * + * @access protected + */ + function appendFile($filename, $dataFilename) + { + return $this->appendFileData( + $filename, + stat($dataFilename), + file_get_contents($dataFilename)); + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Multi.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Multi.php new file mode 100644 index 0000000..55fc25b --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Multi.php @@ -0,0 +1,130 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Multi.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Write to several writers + */ +class File_Archive_Writer_Multi extends File_Archive_Writer +{ + /** + * @var File_Archive_Writer_Writer Data will be copied to these two writers + * @access private + */ + var $writers; + + function addWriter(&$writer) + { + $this->writers[] =& $writer; + } + + /** + * @see File_Archive_Writer::newFile() + */ + function newFile($filename, $stat = array(), $mime = "application/octet-stream") + { + $globalError = null; + foreach($this->writers as $key => $foo) { + $error = $this->writers[$key]->newFile($filename, $stat, $mime); + if (PEAR::isError($error)) { + $globalError = $error; + } + } + if (PEAR::isError($globalError)) { + return $globalError; + } + } + /** + * @see File_Archive_Writer::newFileNeedsMIME() + */ + function newFileNeedsMIME() + { + foreach($this->writers as $key => $foo) { + if ($this->writers[$key]->newFileNeedsMIME()) { + return true; + } + } + return false; + } + + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + $globalError = null; + foreach($this->writers as $key => $foo) { + $error = $this->writers[$key]->writeData($data); + if (PEAR::isError($error)) { + $globalError = $error; + } + } + if (PEAR::isError($globalError)) { + return $globalError; + } + } + + /** + * @see File_Archive_Writer::writeFile() + */ + function writeFile($filename) + { + $globalError = null; + foreach($this->writers as $key => $foo) { + $error = $this->writers[$key]->writeFile($filename); + if (PEAR::isError($error)) { + $globalError = $error; + } + } + if (PEAR::isError($globalError)) { + return $globalError; + } + } + + /** + * @see File_Archive_Writer::close() + */ + function close() + { + $globalError = null; + foreach($this->writers as $key => $foo) { + $error = $this->writers[$key]->close(); + if (PEAR::isError($error)) { + $globalError = $error; + } + } + if (PEAR::isError($globalError)) { + return $globalError; + } + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Output.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Output.php new file mode 100644 index 0000000..67ede45 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Output.php @@ -0,0 +1,93 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Output.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; + +/** + * Writer to the standard output + * It will concatenate the files that it receive + * It may send some headers, but will do so only for the first file + */ +class File_Archive_Writer_Output extends File_Archive_Writer +{ + /** + * @var bool If true, the Content-type and Content-disposition headers + * will be sent. The file will be considered as an attachment and + * the MIME will be deduced from its extension + * @access private + */ + var $sendHeaders; + + /** + * @param $sendHeaders see the variable + */ + function File_Archive_Writer_Output($sendHeaders = true) + { + $this->sendHeaders = $sendHeaders; + } + /** + * @see File_Archive_Writer::newFile() + */ + function newFile($filename, $stat = array(), $mime = "application/octet-stream") + { + if ($this->sendHeaders) { + if(headers_sent()) { + return PEAR::raiseError( + 'The headers have already been sent. '. + 'Use File_Archive::toOutput(false) to write '. + 'to output without sending headers'); + } + + header("Content-type: $mime"); + header("Content-disposition: attachment; filename=\"$filename\""); + $this->sendHeaders = false; + } + } + /** + * @see File_Archive_Writer::newFileNeedsMIME + */ + function newFileNeedsMIME() + { + return $this->sendHeaders; + } + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) { echo $data; } + /** + * @see File_Archive_Writer::writeFile() + */ + function writeFile($filename) { readfile($filename); } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Tar.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Tar.php new file mode 100644 index 0000000..69c0d61 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Tar.php @@ -0,0 +1,244 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Tar.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer/Archive.php"; + +/** + * Write the files as a TAR archive + */ +class File_Archive_Writer_Tar extends File_Archive_Writer_Archive +{ + var $buffer; + var $useBuffer; + + var $filename = null; + var $stats = null; + + + /** + * Creates the TAR header for a file + * + * @param string $filename name of the file + * @param array $stat statistics of the file + * @return string A 512 byte header for the file + * @access private + */ + function tarHeader($filename, $stat) + { + $mode = isset($stat[2]) ? $stat[2] : 0x8000; + $uid = isset($stat[4]) ? $stat[4] : 0; + $gid = isset($stat[5]) ? $stat[5] : 0; + $size = $stat[7]; + $time = isset($stat[9]) ? $stat[9] : time(); + $link = ""; + + if ($mode & 0x4000) { + $type = 5; // Directory + } else if ($mode & 0x8000) { + $type = 0; // Regular + } else if ($mode & 0xA000) { + $type = 1; // Link + $link = @readlink($current); + } else { + $type = 9; // Unknown + } + + $filePrefix = ''; + if (strlen($filename) > 255) { + return PEAR::raiseError( + "$filename is too long to be put in a tar archive" + ); + } else if (strlen($filename) > 100) { + // need a path component of max 155 bytes + $pos = strrpos(substr($filename, 0, 155), '/'); + if(strlen($filename) - $pos > 100) { + // filename-component may not exceed 100 bytes + return PEAR::raiseError( + "$filename is too long to be put in a tar archive"); + } + $filePrefix = substr($filename, 0, $pos); + $filename = substr($filename, $pos+1); + } + + $blockbeg = pack("a100a8a8a8a12a12", + $filename, + decoct($mode), + sprintf("%6s ",decoct($uid)), + sprintf("%6s ",decoct($gid)), + sprintf("%11s ",decoct($size)), + sprintf("%11s ",decoct($time)) + ); + + $blockend = pack("a1a100a6a2a32a32a8a8a155a12", + $type, + $link, + "ustar", + "00", + "Unknown", + "Unknown", + "", + "", + $filePrefix, + ""); + + $checksum = 8*ord(" "); + for ($i = 0; $i < 148; $i++) { + $checksum += ord($blockbeg{$i}); + } + for ($i = 0; $i < 356; $i++) { + $checksum += ord($blockend{$i}); + } + + $checksum = pack("a8",sprintf("%6s ",decoct($checksum))); + + return $blockbeg . $checksum . $blockend; + } + /** + * Creates the TAR footer for a file + * + * @param int $size the size of the data that has been written to the TAR + * @return string A string made of less than 512 characteres to fill the + * last 512 byte long block + * @access private + */ + function tarFooter($size) + { + if ($size % 512 > 0) { + return pack("a".(512 - $size%512), ""); + } else { + return ""; + } + } + + function flush() + { + if ($this->filename !== null) { + if ($this->useBuffer) { + $this->stats[7] = strlen($this->buffer); + + $header = $this->tarHeader($this->filename, $this->stats); + if (PEAR::isError($header)) { + return $header; + } + $this->innerWriter->writeData($header); + $this->innerWriter->writeData( + $this->buffer + ); + } + $this->innerWriter->writeData( + $this->tarFooter($this->stats[7]) + ); + } + $this->buffer = ""; + } + + function _newFile($filename, $stats = array(), + $mime = "application/octet-stream") + { + $err = $this->flush(); + if (PEAR::isError($err)) { + return $err; + } + + $this->useBuffer = !isset($stats[7]); + $this->filename = $filename; + $this->stats = $stats; + + if (!$this->useBuffer) { + $header = $this->tarHeader($filename, $stats); + if (PEAR::isError($header)) { + return $header; + } + return $this->innerWriter->writeData($header); + } + } + + /** + * @see File_Archive_Writer::close() + */ + function close() + { + $err = $this->flush(); + if (PEAR::isError($err)) { + return $err; + } + $this->innerWriter->writeData(pack("a1024", "")); + parent::close(); + } + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + if ($this->useBuffer) { + $this->buffer .= $data; + } else { + $this->innerWriter->writeData($data); + } + + } + /** + * @see File_Archive_Writer::writeFile() + */ + function writeFile($filename) + { + if ($this->useBuffer) { + if (!file_exists($filename)) { + return PEAR::raiseError("File not found: $filename."); + } + $this->buffer .= file_get_contents($filename); + } else { + $this->innerWriter->writeFile($filename); + } + } + /** + * @see File_Archive_Writer::getMime() + */ + function getMime() { return "application/x-tar"; } +} + + +/** + * A tar archive cannot contain files with name of folders longer than 255 chars + * This filter removes them + * + * @see File_Archive_Predicate, File_Archive_Reader_Filter + */ +require_once "File/Archive/Predicate.php"; +class File_Archive_Predicate_TARCompatible extends File_Archive_Predicate +{ + function isTrue($source) + { + return strlen($source->getFilename()) <= 255; + } +} + +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/UniqueAppender.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/UniqueAppender.php new file mode 100644 index 0000000..6f70489 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/UniqueAppender.php @@ -0,0 +1,143 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: UniqueAppender.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer.php"; +require_once "File/Archive/Reader.php"; +require_once "File/Archive/Predicate/Index.php"; + +/** + * A writer wrapper that will remove the files the eventual duplicate + * files from the reader to keep only the new ones + * If there were already some duplications in the provided reader, not + * all duplication will be removed + * If you use newFile with the same filename several file, only the latest + * write will be kept (no time comparision is done) + */ +class File_Archive_Writer_UniqueAppender extends File_Archive_Writer +{ + var $reader; + var $writer; + var $fileList = array(); + var $toDelete = array(); + + /** + * Construct a unique writer that will write to the specified writer + * and remove duplicate files from the reader on close + */ + function File_Archive_Writer_UniqueAppender(&$reader) + { + $reader->close(); + $pos = 0; + while ($reader->next()) { + $this->fileList[$reader->getFilename()] = $pos++; + } + + $this->reader =& $reader; + $this->writer = $reader->makeAppendWriter(); + } + + /** + * @see File_Archive_Writer::newFile() + */ + function newFile($filename, $stat = array(), $mime = "application/octet-stream") + { + if (isset($this->fileList[$filename])) { + $this->toDelete[$this->fileList[$filename]] = true; + } + + return $this->writer->newFile($filename, $stat, $mime); + } + + /** + * @see File_Archive_Writer::newFromTempFile() + */ + function newFromTempFile($tmpfile, $filename, $stat = array(), $mime = "application/octet-stream") + { + if (isset($this->fileList[$filename])) { + $this->toDelete[$this->fileList[$filename]] = true; + } + + return $this->writer->newFromTempFile($tmpfile, $filename, $stat, $mime); + } + + /** + * @see File_Archive_Writer::newFileNeedsMIME() + */ + function newFileNeedsMIME() + { + return $this->writer->newFileNeedsMIME(); + } + + /** + * @see File_Archive_Writer::writeData() + */ + function writeData($data) + { + return $this->writer->writeData($data); + } + + /** + * @see File_Archive_Writer::writeFile() + */ + function writeFile($filename) + { + return $this->writer->writeFile($filename); + } + + /** + * Close the writer, eventually flush the data, write the footer... + * This function must be called before the end of the script + */ + function close() + { + $error = $this->writer->close(); + if (PEAR::isError($error)) { + return $error; + } + + if (!empty($this->toDelete)) { + $tmp = $this->reader->makeWriterRemoveFiles( + new File_Archive_Predicate_Index($this->toDelete) + ); + if (PEAR::isError($tmp)) { + return $tmp; + } + + return $tmp->close(); + } + } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Zip.php b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Zip.php new file mode 100644 index 0000000..af72d3a --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Archive/Writer/Zip.php @@ -0,0 +1,260 @@ + + * @copyright 1997-2005 The PHP Group + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version CVS: $Id: Zip.php 2 2010-11-23 14:32:26Z oldperl $ + * @link http://pear.php.net/package/File_Archive + */ + +require_once "File/Archive/Writer/MemoryArchive.php"; + +/** + * ZIP archive writer + */ +class File_Archive_Writer_Zip extends File_Archive_Writer_MemoryArchive +{ + /** + * @var int Compression level + * @access private + */ + var $compressionLevel; + + /** + * @var int Current position in the writer + * @access private + */ + var $offset = 0; + + /** + * @var string Optionnal comment to add to the zip + * @access private + */ + var $comment = ""; + + /** + * @var string Data written at the end of the ZIP file + * @access private + */ + var $central = ""; + + function File_Archive_Writer_Zip($filename, &$innerWriter, + $stat=array(), $autoClose = true) + { + global $_File_Archive_Options; + parent::File_Archive_Writer_MemoryArchive( + $filename, $innerWriter, $stat, $autoClose + ); + + $this->compressionLevel = File_Archive::getOption('zipCompressionLevel', 9); + } + + /** + * Change the level of the compression. This may be done between two files + * + * @param Int $compressionLevel New compression level from 0 to 9 + */ + function setCompressionLevel($compressionLevel) + { + $this->compressionLevel = $compressionLevel; + } + + /** + * Set a comment on the ZIP file + */ + function setComment($comment) { $this->comment = $comment; } + + /** + * @param int $time Unix timestamp of the date to convert + * @return the date formated as a ZIP date + */ + function getMTime($time) + { + $mtime = ($time !== null ? getdate($time) : getdate()); + $mtime = preg_replace( + "/(..){1}(..){1}(..){1}(..){1}/", + "\\x\\4\\x\\3\\x\\2\\x\\1", + dechex(($mtime['year']-1980<<25)| + ($mtime['mon' ]<<21)| + ($mtime['mday' ]<<16)| + ($mtime['hours' ]<<11)| + ($mtime['minutes']<<5)| + ($mtime['seconds']>>1))); + eval('$mtime = "'.$mtime.'";'); + return $mtime; + } + + /** + * Inform the archive that $filename is present. + * Consequences are the same as appendFileData, but no data is output + * to the inner writer. + * This is used by File_Archive_Reader_Zip::makeWriter() + * + * @param string $filename name of the file + * @param array $stat stats of the file, indexes 9 and 7 must be present + * @param int $crc32 checksum of the file + * @param int $compLength length of the compressed data + */ + function alreadyWrittenFile($filename, $stat, $crc32, $complength) + { + $filename = preg_replace("/^(\.{1,2}(\/|\\\))+/","",$filename); + + $mtime = $this->getMTime(isset($stat[9]) ? $stat[9] : null); + $normlength = $stat[7]; + + $this->nbFiles++; + + $this->central .= "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00". + $mtime. + pack("VVVvvvvvVV", + $crc32, $complength, $normlength, + strlen($filename), 0x00,0x00,0x00,0x00, + 0x0000,$this->offset). + $filename; + + $this->offset += 30 + strlen($filename) + $complength; + } + + /** + * @see File_Archive_Writer_MemoryArchive::appendFileData() + * @access protected + */ + function appendFileData($filename, $stat, $data) + { + $crc32 = crc32($data); + $normlength = strlen($data); + $data = gzcompress($data,$this->compressionLevel); + $data = substr($data,2,strlen($data)-6); + + return $this->appendCompressedData($filename, $stat, $data, $crc32, $normlength); + } + + function appendCompressedData($filename, $stat, $data, $crc32, $normlength) + { + $filename = preg_replace("/^(\.{1,2}(\/|\\\))+/","",$filename); + $mtime = $this->getMTime(isset($stat[9]) ? $stat[9] : null); + + $complength = strlen($data); + + $zipData = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00". + $mtime. + pack("VVVvv", + $crc32, + $complength, + $normlength, + strlen($filename), + 0x00). + $filename. + $data; + + $error = $this->innerWriter->writeData($zipData); + if (PEAR::isError($error)) { + return $error; + } + + $this->central .= "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00". + $mtime. + pack("VVVvvvvvVV", + $crc32, $complength, $normlength, + strlen($filename), 0x00,0x00,0x00,0x00, + 0x0000,$this->offset). + $filename; + + $this->offset += strlen($zipData); + } + + function appendFile($filename, $dataFilename) + { + //Try to read from the cache + $cache = File_Archive::getOption('cache', null); + if ($cache !== null && $this->compressionLevel > 0) { + $id = realpath($dataFilename); + $id = urlencode($id); + $id = str_replace('_', '%5F', $id); + + $group = 'FileArchiveZip'.$this->compressionLevel; + $mtime = filemtime($dataFilename); + + //Tries to read from cache + if (($data = $cache->get($id, $group)) !== false) { + $info = unpack('Vmtime/Vcrc/Vnlength', substr($data, 0, 12)); + $data = substr($data, 12); + } + + //If cache failed or file modified since then + if ($data === false || + $info['mtime'] != $mtime) { + + $data = file_get_contents($dataFilename); + + $info = array( + 'crc' => crc32($data), + 'nlength' => strlen($data), + 'mtime' => $mtime + ); + + $data = gzcompress($data,$this->compressionLevel); + $data = substr($data,2,strlen($data)-6); + $data = pack('VVV', $info['mtime'], $info['crc'], $info['nlength']).$data; + $cache->save($data, $id, $group); + } + + return $this->appendCompressedData( + $filename, + stat($dataFilename), + $data, + $info['crc'], + $info['nlength'] + ); + + } + + //If no cache system, use the standard way + return parent::appendFile($filename, $dataFilename); + } + + /** + * @see File_Archive_Writer_MemoryArchive::sendFooter() + * @access protected + */ + function sendFooter() + { + return $this->innerWriter->writeData( + $this->central. + "\x50\x4b\x05\x06\x00\x00\x00\x00". + pack("vvVVv", + $this->nbFiles,$this->nbFiles, + strlen($this->central),$this->offset, + strlen($this->comment)). + $this->comment + ); + } + /** + * @see File_Archive_Writer::getMime() + */ + function getMime() { return "application/zip"; } +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Iterator.php b/conlite/plugins/pluginmanager/docs/pear/File/Iterator.php new file mode 100644 index 0000000..e4db9f6 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Iterator.php @@ -0,0 +1,197 @@ +. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Sebastian Bergmann nor the names of his + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * @package File + * @author Sebastian Bergmann + * @copyright 2009-2010 Sebastian Bergmann + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * @since File available since Release 1.0.0 + */ + +/** + * FilterIterator implementation that filters files based on prefix(es) and/or + * suffix(es). Hidden files and files from hidden directories are also filtered. + * + * @author Sebastian Bergmann + * @copyright 2009-2010 Sebastian Bergmann + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * @version Release: 1.2.3 + * @link http://github.com/sebastianbergmann/php-file-iterator/tree + * @since Class available since Release 1.0.0 + */ +class File_Iterator extends FilterIterator +{ + const PREFIX = 0; + const SUFFIX = 1; + + /** + * @var array + */ + protected $suffixes = array(); + + /** + * @var array + */ + protected $prefixes = array(); + + /** + * @var array + */ + protected $exclude = array(); + + /** + * @var string + */ + protected $basepath; + + /** + * @param Iterator $iterator + * @param array $suffixes + * @param array $prefixes + * @param array $exclude + * @param string $basepath + */ + public function __construct(Iterator $iterator, array $suffixes = array(), array $prefixes = array(), array $exclude = array(), $basepath = NULL) + { + $exclude = array_map('realpath', $exclude); + + if ($basepath !== NULL) { + $basepath = realpath($basepath); + } + + if ($basepath === FALSE) { + $basepath = NULL; + } else { + foreach ($exclude as &$_exclude) { + $_exclude = str_replace($basepath, '', $_exclude); + } + } + + $this->prefixes = $prefixes; + $this->suffixes = $suffixes; + $this->exclude = $exclude; + $this->basepath = $basepath; + + parent::__construct($iterator); + } + + /** + * @return boolean + */ + public function accept() + { + $current = $this->getInnerIterator()->current(); + $filename = $current->getFilename(); + $realpath = $current->getRealPath(); + + if ($this->basepath !== NULL) { + $realpath = str_replace($this->basepath, '', $realpath); + } + + // Filter files in hidden directories. + if (preg_match('=/\.[^/]*/=', $realpath)) { + return FALSE; + } + + return $this->acceptPath($realpath) && + $this->acceptPrefix($filename) && + $this->acceptSuffix($filename); + } + + /** + * @param string $path + * @return boolean + * @since Method available since Release 1.1.0 + */ + protected function acceptPath($path) + { + foreach ($this->exclude as $exclude) { + if (strpos($path, $exclude) === 0) { + return FALSE; + } + } + + return TRUE; + } + + /** + * @param string $filename + * @return boolean + * @since Method available since Release 1.1.0 + */ + protected function acceptPrefix($filename) + { + return $this->acceptSubString($filename, $this->prefixes, self::PREFIX); + } + + /** + * @param string $filename + * @return boolean + * @since Method available since Release 1.1.0 + */ + protected function acceptSuffix($filename) + { + return $this->acceptSubString($filename, $this->suffixes, self::SUFFIX); + } + + /** + * @param string $filename + * @param array $subString + * @param integer $type + * @return boolean + * @since Method available since Release 1.1.0 + */ + protected function acceptSubString($filename, array $subStrings, $type) + { + if (empty($subStrings)) { + return TRUE; + } + + $matched = FALSE; + + foreach ($subStrings as $string) { + if (($type == self::PREFIX && strpos($filename, $string) === 0) || + ($type == self::SUFFIX && + substr($filename, -1 * strlen($string)) == $string)) { + $matched = TRUE; + break; + } + } + + return $matched; + } +} +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/File/Iterator/Factory.php b/conlite/plugins/pluginmanager/docs/pear/File/Iterator/Factory.php new file mode 100644 index 0000000..34f7bf5 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/File/Iterator/Factory.php @@ -0,0 +1,155 @@ +. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Sebastian Bergmann nor the names of his + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * @package File + * @author Sebastian Bergmann + * @copyright 2009-2010 Sebastian Bergmann + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * @since File available since Release 1.1.0 + */ + +require_once 'File/Iterator.php'; + +/** + * Factory Method implementation that creates a File_Iterator that operates on + * an AppendIterator that contains an RecursiveDirectoryIterator for each given + * path. + * + * @author Sebastian Bergmann + * @copyright 2009-2010 Sebastian Bergmann + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * @version Release: 1.2.3 + * @link http://github.com/sebastianbergmann/php-file-iterator/tree + * @since Class available since Release 1.1.0 + */ +class File_Iterator_Factory +{ + /** + * @param array|string $paths + * @param array|string $suffixes + * @param array|string $prefixes + * @param array $exclude + * @return AppendIterator + */ + public static function getFileIterator($paths, $suffixes = '', $prefixes = '', array $exclude = array()) + { + if (is_string($paths)) { + $paths = array($paths); + } + + $_paths = array(); + + foreach ($paths as $path) { + if ($locals = glob($path, GLOB_ONLYDIR)) { + $_paths = array_merge($_paths, $locals); + } else { + $_paths[] = $path; + } + } + + $paths = $_paths; + unset($_paths); + + if (is_string($prefixes)) { + if ($prefixes != '') { + $prefixes = array($prefixes); + } else { + $prefixes = array(); + } + } + + if (is_string($suffixes)) { + if ($suffixes != '') { + $suffixes = array($suffixes); + } else { + $suffixes = array(); + } + } + + $iterator = new AppendIterator; + + foreach ($paths as $path) { + if (is_dir($path)) { + $iterator->append( + new File_Iterator( + new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($path) + ), + $suffixes, + $prefixes, + $exclude, + $path + ) + ); + } + } + + return $iterator; + } + + /** + * @param array|string $paths + * @param array|string $suffixes + * @param array|string $prefixes + * @param array $exclude + * @return array + */ + public static function getFilesAsArray($paths, $suffixes = '', $prefixes = '', array $exclude = array()) + { + if (is_string($paths)) { + $paths = array($paths); + } + + $result = array(); + + $iterator = self::getFileIterator( + $paths, $suffixes, $prefixes, $exclude + ); + + foreach ($iterator as $file) { + $result[] = $file->getRealPath(); + } + + foreach ($paths as $path) { + if (is_file($path)) { + $result[] = realpath($path); + } + } + + return $result; + } +} +?> diff --git a/conlite/plugins/pluginmanager/docs/pear/MIME/Type.php b/conlite/plugins/pluginmanager/docs/pear/MIME/Type.php new file mode 100644 index 0000000..51fde09 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/MIME/Type.php @@ -0,0 +1,523 @@ + | +// +----------------------------------------------------------------------+ +// +// $Id: Type.php 6 2010-11-23 17:57:24Z oldperl $ + +require_once 'PEAR.php'; + +$_fileCmd = &PEAR::getStaticProperty('MIME_Type', 'fileCmd'); +$_fileCmd = 'file'; + +/** + * Class for working with MIME types + * + * @category MIME + * @package MIME_Type + * @license PHP License 3.0 + * @version @version@ + * @link http://pear.php.net/package/MIME_Type + * @author Ian Eure + */ +class MIME_Type +{ + /** + * The MIME media type + * + * @var string + */ + var $media = ''; + + /** + * The MIME media sub-type + * + * @var string + */ + var $subType = ''; + + /** + * Optional MIME parameters + * + * @var array + */ + var $parameters = array(); + + /** + * List of valid media types. + * A media type is the string in front of the slash. + * The media type of "text/xml" would be "text". + * + * @var array + */ + var $validMediaTypes = array( + 'text', + 'image', + 'audio', + 'video', + 'application', + 'multipart', + 'message' + ); + + + /** + * Constructor. + * + * If $type is set, if will be parsed and the appropriate class vars set. + * If not, you get an empty class. + * This is useful, but not quite as useful as parsing a type. + * + * @param string $type MIME type + * + * @return void + */ + function MIME_Type($type = false) + { + if ($type) { + $this->parse($type); + } + } + + + /** + * Parse a mime-type and set the class variables. + * + * @param string $type MIME type to parse + * + * @return void + */ + function parse($type) + { + $this->media = $this->getMedia($type); + $this->subType = $this->getSubType($type); + $this->parameters = array(); + if (MIME_Type::hasParameters($type)) { + require_once 'MIME/Type/Parameter.php'; + foreach (MIME_Type::getParameters($type) as $param) { + $param = new MIME_Type_Parameter($param); + $this->parameters[$param->name] = $param; + } + } + } + + + /** + * Does this type have any parameters? + * + * @param string $type MIME type to check + * + * @return boolean true if $type has parameters, false otherwise + * @static + */ + function hasParameters($type) + { + if (strstr($type, ';')) { + return true; + } + return false; + } + + + /** + * Get a MIME type's parameters + * + * @param string $type MIME type to get parameters of + * + * @return array $type's parameters + * @static + */ + function getParameters($type) + { + $params = array(); + $tmp = explode(';', $type); + for ($i = 1; $i < count($tmp); $i++) { + $params[] = trim($tmp[$i]); + } + return $params; + } + + + /** + * Strip parameters from a MIME type string. + * + * @param string $type MIME type string + * + * @return string MIME type with parameters removed + * @static + */ + function stripParameters($type) + { + if (strstr($type, ';')) { + return substr($type, 0, strpos($type, ';')); + } + return $type; + } + + + /** + * Removes comments from a media type, subtype or parameter. + * + * @param string $string String to strip comments from + * @param string &$comment Comment is stored in there. + * + * @return string String without comments + * @static + */ + function stripComments($string, &$comment) + { + if (strpos($string, '(') === false) { + return $string; + } + + $inquote = false; + $quoting = false; + $incomment = 0; + $newstring = ''; + + for ($n = 0; $n < strlen($string); $n++) { + if ($quoting) { + if ($incomment == 0) { + $newstring .= $string[$n]; + } else if ($comment !== null) { + $comment .= $string[$n]; + } + $quoting = false; + } else if ($string[$n] == '\\') { + $quoting = true; + } else if (!$inquote && $incomment > 0 && $string[$n] == ')') { + $incomment--; + if ($incomment == 0 && $comment !== null) { + $comment .= ' '; + } + } else if (!$inquote && $string[$n] == '(') { + $incomment++; + } else if ($string[$n] == '"') { + if ($inquote) { + $inquote = false; + } else { + $inquote = true; + } + } else if ($incomment == 0) { + $newstring .= $string[$n]; + } else if ($comment !== null) { + $comment .= $string[$n]; + } + } + + if ($comment !== null) { + $comment = trim($comment); + } + + return $newstring; + } + + + /** + * Get a MIME type's media + * + * @note 'media' refers to the portion before the first slash + * + * @param string $type MIME type to get media of + * + * @return string $type's media + * @static + */ + function getMedia($type) + { + $tmp = explode('/', $type); + return strtolower(trim(MIME_Type::stripComments($tmp[0], $null))); + } + + + /** + * Get a MIME type's subtype + * + * @param string $type MIME type to get subtype of + * + * @return string $type's subtype, null if invalid mime type + * @static + */ + function getSubType($type) + { + $tmp = explode('/', $type); + if (!isset($tmp[1])) { + return null; + } + $tmp = explode(';', $tmp[1]); + return strtolower(trim(MIME_Type::stripComments($tmp[0], $null))); + } + + + /** + * Create a textual MIME type from object values + * + * This function performs the opposite function of parse(). + * + * @return string MIME type string + */ + function get() + { + $type = strtolower($this->media . '/' . $this->subType); + if (count($this->parameters)) { + foreach ($this->parameters as $key => $null) { + $type .= '; ' . $this->parameters[$key]->get(); + } + } + return $type; + } + + + /** + * Is this type experimental? + * + * @note Experimental types are denoted by a leading 'x-' in the media or + * subtype, e.g. text/x-vcard or x-world/x-vrml. + * + * @param string $type MIME type to check + * + * @return boolean true if $type is experimental, false otherwise + * @static + */ + function isExperimental($type) + { + if (substr(MIME_Type::getMedia($type), 0, 2) == 'x-' || + substr(MIME_Type::getSubType($type), 0, 2) == 'x-') { + return true; + } + return false; + } + + + /** + * Is this a vendor MIME type? + * + * @note Vendor types are denoted with a leading 'vnd. in the subtype. + * + * @param string $type MIME type to check + * + * @return boolean true if $type is a vendor type, false otherwise + * @static + */ + function isVendor($type) + { + if (substr(MIME_Type::getSubType($type), 0, 4) == 'vnd.') { + return true; + } + return false; + } + + + /** + * Is this a wildcard type? + * + * @param string $type MIME type to check + * + * @return boolean true if $type is a wildcard, false otherwise + * @static + */ + function isWildcard($type) + { + if ($type == '*/*' || MIME_Type::getSubtype($type) == '*') { + return true; + } + return false; + } + + + /** + * Perform a wildcard match on a MIME type + * + * Example: + * MIME_Type::wildcardMatch('image/*', 'image/png') + * + * @param string $card Wildcard to check against + * @param string $type MIME type to check + * + * @return boolean true if there was a match, false otherwise + * @static + */ + function wildcardMatch($card, $type) + { + if (!MIME_Type::isWildcard($card)) { + return false; + } + + if ($card == '*/*') { + return true; + } + + if (MIME_Type::getMedia($card) == MIME_Type::getMedia($type)) { + return true; + } + + return false; + } + + + /** + * Add a parameter to this type + * + * @param string $name Attribute name + * @param string $value Attribute value + * @param string $comment Comment for this parameter + * + * @return void + */ + function addParameter($name, $value, $comment = false) + { + $tmp = new MIME_Type_Parameter(); + + $tmp->name = $name; + $tmp->value = $value; + $tmp->comment = $comment; + $this->parameters[$name] = $tmp; + } + + + /** + * Remove a parameter from this type + * + * @param string $name Parameter name + * + * @return void + */ + function removeParameter($name) + { + unset($this->parameters[$name]); + } + + + /** + * Autodetect a file's MIME-type + * + * This function may be called staticly. + * + * @internal Tries to use fileinfo extension at first. If that + * does not work, mime_magic is used. If this is also not available + * or does not succeed, "file" command is tried to be executed with + * System_Command. When that fails, too, then we use our in-built + * extension-to-mimetype-mapping list. + * + * @param string $file Path to the file to get the type of + * @param bool $params Append MIME parameters if true + * + * @return string $file's MIME-type on success, PEAR_Error otherwise + * + * @since 1.0.0beta1 + * @static + */ + function autoDetect($file, $params = false) + { + // Sanity checks + if (!file_exists($file)) { + return PEAR::raiseError("File \"$file\" doesn't exist"); + } + + if (!is_readable($file)) { + return PEAR::raiseError("File \"$file\" is not readable"); + } + + if (function_exists('finfo_file')) { + $finfo = finfo_open(FILEINFO_MIME); + $type = finfo_file($finfo, $file); + finfo_close($finfo); + if ($type !== false && $type !== '') { + return MIME_Type::_handleDetection($type, $params); + } + } + + if (function_exists('mime_content_type')) { + $type = mime_content_type($file); + if ($type !== false && $type !== '') { + return MIME_Type::_handleDetection($type, $params); + } + } + + @include_once 'System/Command.php'; + if (class_exists('System_Command')) { + return MIME_Type::_handleDetection( + MIME_Type::_fileAutoDetect($file), + $params + ); + } + + require_once 'MIME/Type/Extension.php'; + $mte = new MIME_Type_Extension(); + return $mte->getMIMEType($file); + } + + + /** + * Handles a detected MIME type and modifies it if necessary. + * + * @param string $type MIME Type of a file + * @param bool $params Append MIME parameters if true + * + * @return string $file's MIME-type on success, PEAR_Error otherwise + */ + function _handleDetection($type, $params) + { + // _fileAutoDetect() may have returned an error. + if (PEAR::isError($type)) { + return $type; + } + + // Don't return an empty string + if (!$type || !strlen($type)) { + return PEAR::raiseError("Sorry, couldn't determine file type."); + } + + // Strip parameters if present & requested + if (MIME_Type::hasParameters($type) && !$params) { + $type = MIME_Type::stripParameters($type); + } + + return $type; + } + + + /** + * Autodetect a file's MIME-type with 'file' and System_Command + * + * This function may be called staticly. + * + * @param string $file Path to the file to get the type of + * + * @return string $file's MIME-type + * + * @since 1.0.0beta1 + * @static + */ + function _fileAutoDetect($file) + { + $cmd = new System_Command(); + + // Make sure we have the 'file' command. + $fileCmd = PEAR::getStaticProperty('MIME_Type', 'fileCmd'); + if (!$cmd->which($fileCmd)) { + unset($cmd); + return PEAR::raiseError("Can't find file command \"{$fileCmd}\""); + } + + $cmd->pushCommand($fileCmd, "-bi " . escapeshellarg($file)); + $res = $cmd->execute(); + unset($cmd); + + return $res; + } + +} \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/MIME/Type/Extension.php b/conlite/plugins/pluginmanager/docs/pear/MIME/Type/Extension.php new file mode 100644 index 0000000..1fc4f80 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/MIME/Type/Extension.php @@ -0,0 +1,298 @@ + | +// +----------------------------------------------------------------------+ +// +// $Id: Extension.php 6 2010-11-23 17:57:24Z oldperl $ + +require_once 'PEAR.php'; + +/** + * Class for mapping file extensions to MIME types. + * + * @category MIME + * @package MIME_Type + * @author Christian Schmidt + * @license PHP License 3.0 + * @version @version@ + * @link http://pear.php.net/package/MIME_Type + */ +class MIME_Type_Extension +{ + /** + * Mapping between file extension and MIME type. + * + * @internal The array is sorted alphabetically by value and with primary + * extension first. Be careful about not adding duplicate keys - PHP + * silently ignores duplicates. The following command can be used for + * checking for duplicates: + * grep "=> '" Extension.php | cut -d\' -f2 | sort | uniq -d + * application/octet-stream is generally used as fallback when no other + * MIME-type can be found, but the array does not contain a lot of such + * unknown extension. One entry exists, though, to allow detection of + * file extension for this MIME-type. + * + * @var array + */ + var $extensionToType = array ( + 'ez' => 'application/andrew-inset', + 'atom' => 'application/atom+xml', + 'jar' => 'application/java-archive', + 'hqx' => 'application/mac-binhex40', + 'cpt' => 'application/mac-compactpro', + 'mathml' => 'application/mathml+xml', + 'doc' => 'application/msword', + 'dat' => 'application/octet-stream', + 'oda' => 'application/oda', + 'ogg' => 'application/ogg', + 'pdf' => 'application/pdf', + 'ai' => 'application/postscript', + 'eps' => 'application/postscript', + 'ps' => 'application/postscript', + 'rdf' => 'application/rdf+xml', + 'rss' => 'application/rss+xml', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'gram' => 'application/srgs', + 'grxml' => 'application/srgs+xml', + 'kml' => 'application/vnd.google-earth.kml+xml', + 'kmz' => 'application/vnd.google-earth.kmz', + 'mif' => 'application/vnd.mif', + 'xul' => 'application/vnd.mozilla.xul+xml', + 'xls' => 'application/vnd.ms-excel', + 'xlb' => 'application/vnd.ms-excel', + 'xlt' => 'application/vnd.ms-excel', + 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', + 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', + 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12', + 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12', + 'docm' => 'application/vnd.ms-word.document.macroEnabled.12', + 'dotm' => 'application/vnd.ms-word.template.macroEnabled.12', + 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12', + 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', + 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', + 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12', + 'ppt' => 'application/vnd.ms-powerpoint', + 'pps' => 'application/vnd.ms-powerpoint', + 'odc' => 'application/vnd.oasis.opendocument.chart', + 'odb' => 'application/vnd.oasis.opendocument.database', + 'odf' => 'application/vnd.oasis.opendocument.formula', + 'odg' => 'application/vnd.oasis.opendocument.graphics', + 'otg' => 'application/vnd.oasis.opendocument.graphics-template', + 'odi' => 'application/vnd.oasis.opendocument.image', + 'odp' => 'application/vnd.oasis.opendocument.presentation', + 'otp' => 'application/vnd.oasis.opendocument.presentation-template', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', + 'odt' => 'application/vnd.oasis.opendocument.text', + 'odm' => 'application/vnd.oasis.opendocument.text-master', + 'ott' => 'application/vnd.oasis.opendocument.text-template', + 'oth' => 'application/vnd.oasis.opendocument.text-web', + 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', + 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', + 'vsd' => 'application/vnd.visio', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'wmlsc' => 'application/vnd.wap.wmlscriptc', + 'vxml' => 'application/voicexml+xml', + 'bcpio' => 'application/x-bcpio', + 'vcd' => 'application/x-cdlink', + 'pgn' => 'application/x-chess-pgn', + 'cpio' => 'application/x-cpio', + 'csh' => 'application/x-csh', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'dxr' => 'application/x-director', + 'dvi' => 'application/x-dvi', + 'spl' => 'application/x-futuresplash', + 'tgz' => 'application/x-gtar', + 'gtar' => 'application/x-gtar', + 'hdf' => 'application/x-hdf', + 'js' => 'application/x-javascript', + 'skp' => 'application/x-koan', + 'skd' => 'application/x-koan', + 'skt' => 'application/x-koan', + 'skm' => 'application/x-koan', + 'latex' => 'application/x-latex', + 'nc' => 'application/x-netcdf', + 'cdf' => 'application/x-netcdf', + 'sh' => 'application/x-sh', + 'shar' => 'application/x-shar', + 'swf' => 'application/x-shockwave-flash', + 'sit' => 'application/x-stuffit', + 'sv4cpio' => 'application/x-sv4cpio', + 'sv4crc' => 'application/x-sv4crc', + 'tar' => 'application/x-tar', + 'tcl' => 'application/x-tcl', + 'tex' => 'application/x-tex', + 'texinfo' => 'application/x-texinfo', + 'texi' => 'application/x-texinfo', + 't' => 'application/x-troff', + 'tr' => 'application/x-troff', + 'roff' => 'application/x-troff', + 'man' => 'application/x-troff-man', + 'me' => 'application/x-troff-me', + 'ms' => 'application/x-troff-ms', + 'ustar' => 'application/x-ustar', + 'src' => 'application/x-wais-source', + 'xhtml' => 'application/xhtml+xml', + 'xht' => 'application/xhtml+xml', + 'xslt' => 'application/xslt+xml', + 'xml' => 'application/xml', + 'xsl' => 'application/xml', + 'dtd' => 'application/xml-dtd', + 'zip' => 'application/zip', + 'au' => 'audio/basic', + 'snd' => 'audio/basic', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'kar' => 'audio/midi', + 'mpga' => 'audio/mpeg', + 'mp2' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'aif' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'm3u' => 'audio/x-mpegurl', + 'wma' => 'audio/x-ms-wma', + 'wax' => 'audio/x-ms-wax', + 'ram' => 'audio/x-pn-realaudio', + 'ra' => 'audio/x-pn-realaudio', + 'rm' => 'application/vnd.rn-realmedia', + 'wav' => 'audio/x-wav', + 'pdb' => 'chemical/x-pdb', + 'xyz' => 'chemical/x-xyz', + 'bmp' => 'image/bmp', + 'cgm' => 'image/cgm', + 'gif' => 'image/gif', + 'ief' => 'image/ief', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'jpe' => 'image/jpeg', + 'png' => 'image/png', + 'svg' => 'image/svg+xml', + 'tiff' => 'image/tiff', + 'tif' => 'image/tiff', + 'djvu' => 'image/vnd.djvu', + 'djv' => 'image/vnd.djvu', + 'wbmp' => 'image/vnd.wap.wbmp', + 'ras' => 'image/x-cmu-raster', + 'ico' => 'image/x-icon', + 'pnm' => 'image/x-portable-anymap', + 'pbm' => 'image/x-portable-bitmap', + 'pgm' => 'image/x-portable-graymap', + 'ppm' => 'image/x-portable-pixmap', + 'rgb' => 'image/x-rgb', + 'xbm' => 'image/x-xbitmap', + 'psd' => 'image/x-photoshop', + 'xpm' => 'image/x-xpixmap', + 'xwd' => 'image/x-xwindowdump', + 'eml' => 'message/rfc822', + 'igs' => 'model/iges', + 'iges' => 'model/iges', + 'msh' => 'model/mesh', + 'mesh' => 'model/mesh', + 'silo' => 'model/mesh', + 'wrl' => 'model/vrml', + 'vrml' => 'model/vrml', + 'ics' => 'text/calendar', + 'ifb' => 'text/calendar', + 'css' => 'text/css', + 'csv' => 'text/csv', + 'html' => 'text/html', + 'htm' => 'text/html', + 'txt' => 'text/plain', + 'asc' => 'text/plain', + 'rtx' => 'text/richtext', + 'rtf' => 'text/rtf', + 'sgml' => 'text/sgml', + 'sgm' => 'text/sgml', + 'tsv' => 'text/tab-separated-values', + 'wml' => 'text/vnd.wap.wml', + 'wmls' => 'text/vnd.wap.wmlscript', + 'etx' => 'text/x-setext', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpe' => 'video/mpeg', + 'qt' => 'video/quicktime', + 'mov' => 'video/quicktime', + 'mxu' => 'video/vnd.mpegurl', + 'm4u' => 'video/vnd.mpegurl', + 'flv' => 'video/x-flv', + 'asf' => 'video/x-ms-asf', + 'asx' => 'video/x-ms-asf', + 'wmv' => 'video/x-ms-wmv', + 'wm' => 'video/x-ms-wm', + 'wmx' => 'video/x-ms-wmx', + 'avi' => 'video/x-msvideo', + 'ogv' => 'video/ogg', + 'movie' => 'video/x-sgi-movie', + 'ice' => 'x-conference/x-cooltalk', + ); + + + + /** + * Autodetect a file's MIME-type. + * + * @param string $file Path to the file to get the type of + * + * @return string $file's MIME-type on success, PEAR_Error otherwise + */ + function getMIMEType($file) + { + $extension = substr(strrchr($file, '.'), 1); + if ($extension === false) { + return PEAR::raiseError("File has no extension."); + } + + if (!isset($this->extensionToType[$extension])) { + return PEAR::raiseError("Sorry, couldn't determine file type."); + } + + return $this->extensionToType[$extension]; + } + + + + /** + * Return default MIME-type for the specified extension. + * + * @param string $type MIME-type + * + * @return string A file extension without leading period. + */ + function getExtension($type) + { + require_once 'MIME/Type.php'; + // Strip parameters and comments. + $type = MIME_Type::getMedia($type) . '/' . MIME_Type::getSubType($type); + + $extension = array_search($type, $this->extensionToType); + if ($extension === false) { + return PEAR::raiseError("Sorry, couldn't determine extension."); + } + return $extension; + } + +} + +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/pear/MIME/Type/Parameter.php b/conlite/plugins/pluginmanager/docs/pear/MIME/Type/Parameter.php new file mode 100644 index 0000000..8058371 --- /dev/null +++ b/conlite/plugins/pluginmanager/docs/pear/MIME/Type/Parameter.php @@ -0,0 +1,163 @@ + | +// +----------------------------------------------------------------------+ +// +// $Id: Parameter.php 6 2010-11-23 17:57:24Z oldperl $ + +/** + * Class for working with MIME type parameters + * + * @version @version@ + * @package MIME_Type + * @author Ian Eure + */ +class MIME_Type_Parameter { + /** + * Parameter name + * + * @var string + */ + var $name; + + /** + * Parameter value + * + * @var string + */ + var $value; + + /** + * Parameter comment + * + * @var string + */ + var $comment; + + + /** + * Constructor. + * + * @param string $param MIME parameter to parse, if set. + * @return void + */ + function MIME_Type_Parameter($param = false) + { + if ($param) { + $this->parse($param); + } + } + + + /** + * Parse a MIME type parameter and set object fields + * + * @param string $param MIME type parameter to parse + * @return void + */ + function parse($param) + { + $comment = ''; + $param = MIME_Type::stripComments($param, $comment); + $this->name = $this->getAttribute($param); + $this->value = $this->getValue($param); + $this->comment = $comment; + } + + + /** + * Get a parameter attribute (e.g. name) + * + * @param string MIME type parameter + * @return string Attribute name + * @static + */ + function getAttribute($param) + { + $tmp = explode('=', $param); + return trim($tmp[0]); + } + + + /** + * Get a parameter value + * + * @param string $param MIME type parameter + * @return string Value + * @static + */ + function getValue($param) + { + $tmp = explode('=', $param, 2); + $value = $tmp[1]; + $value = trim($value); + if ($value[0] == '"' && $value[strlen($value)-1] == '"') { + $value = substr($value, 1, -1); + } + $value = str_replace('\\"', '"', $value); + return $value; + } + + + /** + * Get a parameter comment + * + * @param string $param MIME type parameter + * @return string Parameter comment + * @see getComment() + * @static + */ + function getComment($param) + { + $cs = strpos($param, '('); + $comment = substr($param, $cs); + return trim($comment, '() '); + } + + + /** + * Does this parameter have a comment? + * + * @param string $param MIME type parameter + * @return boolean true if $param has a comment, false otherwise + * @static + */ + function hasComment($param) + { + if (strstr($param, '(')) { + return true; + } + return false; + } + + + /** + * Get a string representation of this parameter + * + * This function performs the oppsite of parse() + * + * @return string String representation of parameter + */ + function get() + { + $val = $this->name . '="' . str_replace('"', '\\"', $this->value) . '"'; + if ($this->comment) { + $val .= ' (' . $this->comment . ')'; + } + return $val; + } +} +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/includes/config.autoloader.php b/conlite/plugins/pluginmanager/includes/config.autoloader.php new file mode 100644 index 0000000..d3dbf7d --- /dev/null +++ b/conlite/plugins/pluginmanager/includes/config.autoloader.php @@ -0,0 +1,30 @@ + $sAutoloadClassPath.'class.pim.plugin.php', + 'pimPlugin' => $sAutoloadClassPath.'class.pim.plugin.php', + 'pimPluginDummy' => $sAutoloadClassPath.'class.pim.plugin.dummy.php', + 'pimPluginRelationCollection' => $sAutoloadClassPath.'class.pim.plugin.relation.php', + 'pimPluginRelation' => $sAutoloadClassPath.'class.pim.plugin.relation.php', + 'pimView' => $sAutoloadClassPath.'class.pim.view.php', + 'pimAjax' => $sAutoloadClassPath.'class.pim.ajax.php', + 'pimSetupBase' => $sAutoloadClassPath.'setup/class.pim.setup.base.php', + 'pimSetupPluginInstall' => $sAutoloadClassPath.'setup/class.pim.setup.plugin.install.php', + 'pimSetupPluginUninstall' => $sAutoloadClassPath.'setup/class.pim.setup.plugin.uninstall.php', + 'PluginmanagerAjax' => $sAutoloadClassPath.'class.pluginmanager.ajax.php', + 'pimPluginHandler' => $sAutoloadClassPath.'class.pim.plugin.handler.php', + 'Plugins' => $sAutoloadClassPath.'plugin/interface.plugins.php', + 'pluginHandlerAbstract' => $sAutoloadClassPath.'plugin/class.plugin.handler.abstract.php', + 'pimExeption' => $sAutoloadClassPath.'exeptions/class.pim.exeption.php', + 'pimXmlStructureException' => $sAutoloadClassPath.'exeptions/class.pim.exeption.php', + 'pimSqlParser' => $sAutoloadClassPath.'Util/class.pim.sql.parser.php' + // the following entries may be deleted after recode of pim + //'Contenido_Plugin_Base' => $sAutoloadClassPath.'Contenido_Plugin_Base.class.php', + //'Contenido_PluginConfig_Settings' => $sAutoloadClassPath.'Config/Contenido_PluginConfig_Settings.class.php', + //'Contenido_PluginSetup' => $sAutoloadClassPath.'Setup/Contenido_PluginSetup.class.php', + //'Contenido_VersionCompare_Exception' => $sAutoloadClassPath.'Exceptions/Contenido_VersionCompare_Exception.php', + //'Contenido_PluginSqlBuilder_Deinstall' => $sAutoloadClassPath.'Sql/Contenido_PluginSqlBuilder_Deinstall.php', + //'Contenido_PluginSqlBuilder_Install' => $sAutoloadClassPath.'Sql/Contenido_PluginSqlBuilder_Install.php', + //'Contenido_ArchiveExtractor' => $sAutoloadClassPath.'Util/Zip/Contenido_ArchiveExtractor.class.php' +); +?> \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/includes/config.plugin.php b/conlite/plugins/pluginmanager/includes/config.plugin.php new file mode 100644 index 0000000..7e48e2f --- /dev/null +++ b/conlite/plugins/pluginmanager/includes/config.plugin.php @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/includes/functions/simplexml_dump.php b/conlite/plugins/pluginmanager/includes/functions/simplexml_dump.php new file mode 100644 index 0000000..28e51b7 --- /dev/null +++ b/conlite/plugins/pluginmanager/includes/functions/simplexml_dump.php @@ -0,0 +1,200 @@ +getDocNamespaces(false); + + $dump = ''; + // Note that the header is added at the end, so we can add stats + $dump .= '[' . PHP_EOL; + + // SimpleXML objects can be either a single node, or (more commonly) a list of 0 or more nodes + // I haven't found a reliable way of distinguishing between the two cases + // Note that for a single node, foreach($node) acts like foreach($node->children()) + // Numeric array indexes, however, operate consistently: $node[0] just returns the node + $item_index = 0; + while ( isset($sxml[$item_index]) ) + { + $item = $sxml[$item_index]; + $item_index++; + + // It's surprisingly hard to find something which behaves consistently differently for an attribute and an element within SimpleXML + // The below relies on the fact that the DOM makes a much clearer distinction + // Note that this is not an expensive conversion, as we are only swapping PHP wrappers around an existing LibXML resource + if ( dom_import_simplexml($item) instanceOf DOMAttr ) + { + $dump .= $indent . 'Attribute {' . PHP_EOL; + + // To what namespace does this attribute belong? Returns array( alias => URI ) + $ns = $item->getNamespaces(false); + if ( $ns ) + { + $dump .= $indent . $indent . 'Namespace: \'' . reset($ns) . '\'' . PHP_EOL; + if ( key($ns) == '' ) + { + $dump .= $indent . $indent . '(Default Namespace)' . PHP_EOL; + } + else + { + $dump .= $indent . $indent . 'Namespace Alias: \'' . key($ns) . '\'' . PHP_EOL; + } + } + + $dump .= $indent . $indent . 'Name: \'' . $item->getName() . '\'' . PHP_EOL; + $dump .= $indent . $indent . 'Value: \'' . (string)$item . '\'' . PHP_EOL; + + $dump .= $indent . '}' . PHP_EOL; + } + else + { + $dump .= $indent . 'Element {' . PHP_EOL; + + // To what namespace does this element belong? Returns array( alias => URI ) + $ns = $item->getNamespaces(false); + if ( $ns ) + { + $dump .= $indent . $indent . 'Namespace: \'' . reset($ns) . '\'' . PHP_EOL; + if ( key($ns) == '' ) + { + $dump .= $indent . $indent . '(Default Namespace)' . PHP_EOL; + } + else + { + $dump .= $indent . $indent . 'Namespace Alias: \'' . key($ns) . '\'' . PHP_EOL; + } + } + + $dump .= $indent . $indent . 'Name: \'' . $item->getName() . '\'' . PHP_EOL; + // REMEMBER: ALWAYS CAST TO STRING! :) + $dump .= $indent . $indent . 'String Content: \'' . (string)$item . '\'' . PHP_EOL; + + // Now some statistics about attributes and children, by namespace + + // This returns all namespaces used by this node and all its descendants, + // whether declared in this node, in its ancestors, or in its descendants + $all_ns = $item->getNamespaces(true); + // If the default namespace is never declared, it will never show up using the below code + if ( ! array_key_exists('', $all_ns) ) + { + $all_ns[''] = NULL; + } + + foreach ( $all_ns as $ns_alias => $ns_uri ) + { + $children = $item->children($ns_uri); + $attributes = $item->attributes($ns_uri); + + // Somewhat confusingly, in the case where a parent element is missing the xmlns declaration, + // but a descendant adds it, SimpleXML will look ahead and fill $all_ns[''] incorrectly + if ( + $ns_alias == '' + && + ! is_null($ns_uri) + && + count($children) == 0 + && + count($attributes) == 0 + ) + { + // Try looking for a default namespace without a known URI + $ns_uri = NULL; + $children = $item->children($ns_uri); + $attributes = $item->attributes($ns_uri); + } + + // Don't show zero-counts, as they're not that useful + if ( count($children) == 0 && count($attributes) == 0 ) + { + continue; + } + + $ns_label = (($ns_alias == '') ? 'Default Namespace' : "Namespace $ns_alias"); + $dump .= $indent . $indent . 'Content in ' . $ns_label . PHP_EOL; + + if ( ! is_null($ns_uri) ) + { + $dump .= $indent . $indent . $indent . 'Namespace URI: \'' . $ns_uri . '\'' . PHP_EOL; + } + + // Count occurrence of child element names, rather than listing them all out + $child_names = array(); + foreach ( $children as $sx_child ) + { + // Below is a rather clunky way of saying $child_names[ $sx_child->getName() ]++; + // which avoids Notices about unset array keys + $child_node_name = $sx_child->getName(); + if ( array_key_exists($child_node_name, $child_names) ) + { + $child_names[$child_node_name]++; + } + else + { + $child_names[$child_node_name] = 1; + } + } + ksort($child_names); + $child_name_output = array(); + foreach ( $child_names as $name => $count ) + { + $child_name_output[] = "$count '$name'"; + } + + $dump .= $indent . $indent . $indent . 'Children: ' . count($children); + // Don't output a trailing " - " if there are no children + if ( count($children) > 0 ) + { + $dump .= ' - ' . implode(', ', $child_name_output); + } + $dump .= PHP_EOL; + + // Attributes can't be duplicated, but I'm going to put them in alphabetical order + $attribute_names = array(); + foreach ( $attributes as $sx_attribute ) + { + $attribute_names[] = "'" . $sx_attribute->getName() . "'"; + } + ksort($attribute_names); + $dump .= $indent . $indent . $indent . 'Attributes: ' . count($attributes); + // Don't output a trailing " - " if there are no attributes + if ( count($attributes) > 0 ) + { + $dump .= ' - ' . implode(', ', $attribute_names); + } + $dump .= PHP_EOL; + } + + $dump .= $indent . '}' . PHP_EOL; + } + } + $dump .= ']' . PHP_EOL; + + // Add on the header line, with the total number of items output + $dump = 'SimpleXML object (' . $item_index . ' item' . ($item_index > 1 ? 's' : '') . ')' . PHP_EOL . $dump; + + if ( $return ) + { + return $dump; + } + else + { + echo $dump; + } +} diff --git a/conlite/plugins/pluginmanager/includes/functions/simplexml_tree.php b/conlite/plugins/pluginmanager/includes/functions/simplexml_tree.php new file mode 100644 index 0000000..4348d2f --- /dev/null +++ b/conlite/plugins/pluginmanager/includes/functions/simplexml_tree.php @@ -0,0 +1,249 @@ +getDocNamespaces(false); + + $dump = ''; + // Note that the header is added at the end, so we can add stats + + // The initial object passed in may be a single node or a list of nodes, so we need an outer loop first + // Note that for a single node, foreach($node) acts like foreach($node->children()) + // Numeric array indexes, however, operate consistently: $node[0] just returns the node + $root_item_index = 0; + while ( isset($sxml[$root_item_index]) ) + { + $root_item = $sxml[$root_item_index]; + + // Special case if the root is actually an attribute + // It's surprisingly hard to find something which behaves consistently differently for an attribute and an element within SimpleXML + // The below relies on the fact that the DOM makes a much clearer distinction + // Note that this is not an expensive conversion, as we are only swapping PHP wrappers around an existing LibXML resource + if ( dom_import_simplexml($root_item) instanceOf DOMAttr ) + { + // To what namespace does this attribute belong? Returns array( alias => URI ) + $ns = $root_item->getNamespaces(false); + if ( key($ns) ) + { + $dump .= key($ns) . ':'; + } + $dump .= $root_item->getName() . '="' . (string)$root_item . '"' . PHP_EOL; + } + else + { + // Display the root node as a numeric key reference, plus a hint as to its tag name + // e.g. '[42] // ' + + // To what namespace does this attribute belong? Returns array( alias => URI ) + $ns = $root_item->getNamespaces(false); + if ( key($ns) ) + { + $root_node_name = key($ns) . ':' . $root_item->getName(); + } + else + { + $root_node_name = $root_item->getName(); + } + $dump .= "[$root_item_index] // <$root_node_name>" . PHP_EOL; + + // This function is effectively recursing depth-first through the tree, + // but this is managed manually using a stack rather than actual recursion + // Each item on the stack is of the form array(int $depth, SimpleXMLElement $element, string $header_row) + $dump .= _simplexml_tree_recursively_process_node( + $root_item, 1, + $include_string_content, $indent, $content_extract_size + ); + } + + $root_item_index++; + } + + // Add on the header line, with the total number of items output + $dump = 'SimpleXML object (' . $root_item_index . ' item' . ($root_item_index > 1 ? 's' : '') . ')' . PHP_EOL . $dump; + + if ( $return ) + { + return $dump; + } + else + { + echo $dump; + } +} + +/** + * "Private" function to perform the recursive part of simplexml_tree() + * Do not call this function directly or rely on its function signature remaining stable + */ +function _simplexml_tree_recursively_process_node($item, $depth, $include_string_content, $indent, $content_extract_size) +{ + $dump = ''; + + if ( $include_string_content ) + { + // Show a chunk of the beginning of the content string, collapsing whitespace HTML-style + $string_content = (string)$item; + + $string_extract = preg_replace('/\s+/', ' ', trim($string_content)); + if ( strlen($string_extract) > $content_extract_size ) + { + $string_extract = substr($string_extract, 0, $content_extract_size) + . '...'; + } + + if ( strlen($string_content) > 0 ) + { + $dump .= str_repeat($indent, $depth) + . '(string) ' + . "'$string_extract'" + . ' (' . strlen($string_content) . ' chars)' + . PHP_EOL; + } + } + + // To what namespace does this element belong? Returns array( alias => URI ) + $item_ns = $item->getNamespaces(false); + if ( ! $item_ns ) + { + $item_ns = array('' => NULL); + } + + // This returns all namespaces used by this node and all its descendants, + // whether declared in this node, in its ancestors, or in its descendants + $all_ns = $item->getNamespaces(true); + // If the default namespace is never declared, it will never show up using the below code + if ( ! array_key_exists('', $all_ns) ) + { + $all_ns[''] = NULL; + } + + // Prioritise "current" namespace by merging into onto the beginning of the list + // (it will be added to the beginning and the duplicate entry dropped) + $all_ns = array_merge($item_ns, $all_ns); + + foreach ( $all_ns as $ns_alias => $ns_uri ) + { + $children = $item->children($ns_alias, true); + $attributes = $item->attributes($ns_alias, true); + + // If things are in the current namespace, display them a bit differently + $is_current_namespace = ( $ns_uri == reset($item_ns) ); + + if ( count($attributes) > 0 ) + { + if ( ! $is_current_namespace ) + { + $dump .= str_repeat($indent, $depth) + . "->attributes('$ns_alias', true)" . PHP_EOL; + } + + foreach ( $attributes as $sx_attribute ) + { + // Output the attribute + if ( $is_current_namespace ) + { + // In current namespace + // e.g. ['attribName'] + $dump .= str_repeat($indent, $depth) + . "['" . $sx_attribute->getName() . "']" + . PHP_EOL; + $string_display_depth = $depth+1; + } + else + { + // After a call to ->attributes() + // e.g. ->attribName + $dump .= str_repeat($indent, $depth+1) + . '->' . $sx_attribute->getName() + . PHP_EOL; + $string_display_depth = $depth+2; + } + + if ( $include_string_content ) + { + // Show a chunk of the beginning of the content string, collapsing whitespace HTML-style + $string_content = (string)$sx_attribute; + + $string_extract = preg_replace('/\s+/', ' ', trim($string_content)); + if ( strlen($string_extract) > $content_extract_size ) + { + $string_extract = substr($string_extract, 0, $content_extract_size) + . '...'; + } + + $dump .= str_repeat($indent, $string_display_depth) + . '(string) ' + . "'$string_extract'" + . ' (' . strlen($string_content) . ' chars)' + . PHP_EOL; + } + } + } + + if ( count($children) > 0 ) + { + if ( $is_current_namespace ) + { + $display_depth = $depth; + } + else + { + $dump .= str_repeat($indent, $depth) + . "->children('$ns_alias', true)" . PHP_EOL; + $display_depth = $depth + 1; + } + + // Recurse through the children with headers showing how to access them + $child_names = array(); + foreach ( $children as $sx_child ) + { + // Below is a rather clunky way of saying $child_names[ $sx_child->getName() ]++; + // which avoids Notices about unset array keys + $child_node_name = $sx_child->getName(); + if ( array_key_exists($child_node_name, $child_names) ) + { + $child_names[$child_node_name]++; + } + else + { + $child_names[$child_node_name] = 1; + } + + // e.g. ->Foo[0] + $dump .= str_repeat($indent, $display_depth) + . '->' . $sx_child->getName() + . '[' . ($child_names[$child_node_name]-1) . ']' + . PHP_EOL; + + $dump .= _simplexml_tree_recursively_process_node( + $sx_child, $display_depth+1, + $include_string_content, $indent, $content_extract_size + ); + } + } + } + + return $dump; +} diff --git a/conlite/plugins/pluginmanager/includes/include.right_bottom.php b/conlite/plugins/pluginmanager/includes/include.right_bottom.php new file mode 100644 index 0000000..1ea9834 --- /dev/null +++ b/conlite/plugins/pluginmanager/includes/include.right_bottom.php @@ -0,0 +1,221 @@ + + * @author Frederic Schneider + * @copyright (c) 2008-2015, ConLite.org + * + * $Id: include.right_bottom.php 41 2018-05-20 21:55:49Z oldperl $ + */ +if (!defined('CON_FRAMEWORK')) { + die('Illegal call'); +} +/* @var $sess Contenido_Session */ +/* @var $perm Contenido_Perm */ +/* @var $auth Contenido_Challenge_Crypt_Auth */ + +$oNoti = new Contenido_Notification(); +$aMessages = array(); +$oPage = new cPage(); +$oPage->sendNoCacheHeaders(); +$oPage->setHtml5(); +$oPage->addCssFile("plugins/pluginmanager/css/pluginmanager.css"); +$oPage->addJsFile("plugins/pluginmanager/scripts/jquery.plainoverlay.js"); +$oPage->addJsFile("plugins/pluginmanager/scripts/jquery.plainmodal.js"); +$oPage->addJsFile("plugins/pluginmanager/scripts/pluginmanager.js"); + +// give permission only to sysadmin +/* @var $perm Contenido_Perm */ +if (!$perm->isSysadmin()) { + $oPage->setContent($oNoti->returnNotification(Contenido_Notification::LEVEL_ERROR, i18n("Permission denied!"))); + $oPage->render(); + die(); +} + +// check disable plugin var +if ($cfg['debug']['disable_plugins'] === true) { + $oPage->setContent($oNoti->returnNotification(Contenido_Notification::LEVEL_WARNING, i18n('Currently the plugin system is disabled via configuration', "pluginmanager"))); + $oPage->render(); +} + +$oPimPluginCollection = new pimPluginCollection(); +$oView = new pimView(); + +$sViewAction = isset($_REQUEST['plugin_action']) ? $_REQUEST['plugin_action'] : 'overview'; + +switch ($sViewAction) { + case 'uninstall_plugin': + $iPluginId = (int) $_POST['plugin_id']; + $oPluginHandler = new pimPluginHandler(); + if($oPluginHandler->loadPluginFromDb($iPluginId)) { + if($oPluginHandler->uninstallPlugin($_POST['delete_sql'])) { + $aMessages[] = "info:".i18n("Plugin uninstalled!", "pluginmanager"); + } else { + $aMessages[] = "error:".i18n("Cannot uninstall Plugin!", "pluginmanager"); + } + } else { + $aMessages[] = "error:".i18n("Cannot uninstall Plugin! Plugin not found in Db.", "pluginmanager"); + } + break; + case 'upload': + $aMessages[] = "info:".i18n("Feature not implemented right now!", "pluginmanager"); + /* + // name of uploaded file + $sTempFile = Contenido_Security::escapeDB($_FILES['package']['name'], null); + + // path to pluginmanager temp-dir + $sTempFilePath = $cfg['path']['contenido'] . $cfg['path']['plugins'] . 'pluginmanager' . DIRECTORY_SEPARATOR . 'temp' . DIRECTORY_SEPARATOR; + + move_uploaded_file($_FILES['package']['tmp_name'], $sTempFilePath . $sTempFile); + + $oExtractor = new Contenido_ArchiveExtractor($sTempFilePath . $sTempFile); + + // xml file validation + $oSetup->sTempXml = $oExtractor->extractArchiveFileToVariable('plugin.xml'); + $oSetup->checkXml(); + + // load plugin.xml to an xml-string + $oTempXml = simplexml_load_string($oSetup->sTempXml); + + // check min contenido version + if (!empty($oTempXml->general->min_contenido_version) && version_compare($cfg['version'], $oTempXml->general->min_contenido_version, '<')) { + throw new Contenido_VersionCompare_Exception(i18n("You have to installed Contenido ") . $oTempXml->general->min_contenido_version . i18n(" or higher to install this plugin!")); + } + + // build the new plugin dir + $sTempPluginDir = $cfg['path']['contenido'] . $cfg['path']['plugins'] . $oTempXml->general->plugin_foldername . DIRECTORY_SEPARATOR; + + // add sql inserts + $oSql = new Contenido_PluginSqlBuilder_Install($cfg, (int) $client, $oTempXml); + + if ($oSetup->bValid === true) { + $oExtractor->setDestinationPath($sTempPluginDir); + $oExtractor->extractArchive(); + } + + unlink($sTempPluginDir . 'plugin.xml'); + unlink($sTempFilePath . $sTempFile); + */ + break; + default: + break; +} + +// get installed plugins and build view +$aPluginsInstalled = array(); +$sPlugins = ''; +$oPimPluginCollection->select(NULL, NULL, 'executionorder'); +$iNumInstalledPlugins = $oPimPluginCollection->count(); +/* @var $oPimPlugin pimPlugin */ +while ($oPimPlugin = $oPimPluginCollection->next()) { + // initalization new class + $iIdPlugin = $oPimPlugin->get("idplugin"); + $oView2 = new pimView(); + $oPluginHandler = new pimPluginHandler(); + $sPlugins .= $oPluginHandler->getInfoInstalled($iIdPlugin); + $aPluginsInstalled[] = $oPimPlugin->get("folder"); +} + +// get plugins extracted but not installed +if (is_dir($cfg['path']['plugins'])) { + if ($handle = opendir($cfg['path']['plugins'])) { + $iPiExCount = (int) count($aPluginsInstalled) + 1; + $pluginsExtracted = ''; + $aNeededTplVar = array( + "description"=> i18n("This plugin has no description.", "pluginmanager"), + "dependencies" => i18n("This plugin has no dependencies.", "pluginmanager"), + "license" => i18n("License not set.", "pluginmanager") + ); + + $aDefaultLang = array( + 'lang_foldername' => i18n('Foldername', 'pluginmanager'), + 'lang_author' => i18n("Author", "pluginmanager"), + 'lang_contact' => i18n("Contact", "pluginmanager"), + 'lang_license' => i18n("License", "pluginmanager"), + 'lang_dependencies' => i18n("Dependencies", "pluginmanager"), + 'lang_writeable' => i18n("Writable", "pluginmanager") + ); + + while ($pluginFoldername = readdir($handle)) { + $pluginPath = $cfg['path']['contenido'] . $cfg['path']['plugins'] . $pluginFoldername; + $bPiPathWritable = (is_writable($pluginPath))?TRUE:FALSE; + $sPiCfg = $pluginPath . '/cl_plugin.xml'; + + if (is_dir($pluginPath) && file_exists($sPiCfg) && !in_array($pluginFoldername, $aPluginsInstalled)) { + + // get infos from plugin.xml + $oPluginHandler = new pimPluginHandler(); + if(FALSE === $oPluginHandler->loadXmlFile($sPiCfg)) { + $aMessages[] = "error:".sprintf(i18n('Invalid Xml document for %s. Please contact the plugin author.', 'pluginmanager'),$sPiCfg); + continue; + } + //echo "
";
+                //print_r($oPluginHandler->getCfgXmlObject());
+                $aNeededTplVar['writeable'] = ($bPiPathWritable)?i18n("Everything looks fine.", "pluginmanager"):''
+                    .i18n("Pluginfolder not writable!", "pluginmanager").'';
+                $aInfoGeneral = array_merge($aNeededTplVar, $oPluginHandler->getPiGeneralArray());
+                //echo "
";
+                //print_r($aInfoGeneral);
+                
+                // initalization new template class
+                $oView2 = new pimView();
+                $oView2->setVariable($iPiExCount, "PLUGIN_NUMBER");
+                $oView2->setMultiVariables($aInfoGeneral);
+                $aLang = array(
+                    'FOLDERNAME' => $pluginFoldername,
+                    'INSTALL_LINK' => $sess->url('main.php?area='.$area.'&frame=4&pim_view=install-extracted&pluginFoldername=' . $pluginFoldername)
+                );
+                $oView2->setMultiVariables(array_merge($aLang, $aDefaultLang));                
+                
+                $oView2->setTemplate('pi_manager_extracted_plugins.html');
+                $pluginsExtracted .= $oView2->getRendered(1);
+                $iPiExCount++;
+            }
+        }
+        closedir($handle);
+    }
+}
+
+// if pluginsExtracted var is empty
+if (empty($pluginsExtracted)) {
+    $pluginsExtracted = i18n('No entries', 'pim');
+}
+
+
+// added language vars
+$oView->setVariable(i18n("Add new plugin", 'pluginmanager'), 'LANG_ADD');
+$oView->setVariable(i18n("Please choose a plugin package", 'pluginmanager'), 'LANG_ADD_CHOOSE');
+$oView->setVariable(i18n("Upload plugin package", 'pluginmanager'), 'LANG_ADD_UPLOAD');
+$oView->setVariable(i18n("Remove marked Plugins", 'pluginmanager'), 'LANG_DELETE');
+$oView->setVariable(i18n("Installed Plugins", 'pluginmanager'), 'LANG_INSTALLED');
+$oView->setVariable(i18n("Update marked plugins", 'pluginmanager'), 'LANG_UPDATE');
+$oView->setVariable(i18n('Plugins to install', 'pluginmanager'), 'LANG_EXTRACTED');
+$oView->setVariable(i18n('Drag & Drop plugin to list of installed plugins to install it.', 'pluginmanager'), 'LANG_HINT_EXTRACTED');
+
+// added installed plugins to pi_manager_overview
+$oView->setVariable($iNumInstalledPlugins, 'INSTALLED_PLUGINS');
+$oView->setVariable($sPlugins, 'PLUGINS');
+$oView->setVariable($pluginsExtracted, 'PLUGINS_EXTRACTED');
+
+//print_r($aMessages);
+// show overview page
+$oView->setTemplate('pi_manager_overview.html');
+$sMessages = "";
+if(count($aMessages) > 0 ) {
+    $sMessages .= '";
+}
+//$oView->getRendered();
+$oPage->setContent(array($oView->getRendered(1), $sMessages));
+$oPage->render();
+?>
\ No newline at end of file
diff --git a/conlite/plugins/pluginmanager/locale/de_DE/LC_MESSAGES/pluginmanager.mo b/conlite/plugins/pluginmanager/locale/de_DE/LC_MESSAGES/pluginmanager.mo
new file mode 100644
index 0000000..eccc439
Binary files /dev/null and b/conlite/plugins/pluginmanager/locale/de_DE/LC_MESSAGES/pluginmanager.mo differ
diff --git a/conlite/plugins/pluginmanager/locale/de_DE/LC_MESSAGES/pluginmanager.po b/conlite/plugins/pluginmanager/locale/de_DE/LC_MESSAGES/pluginmanager.po
new file mode 100644
index 0000000..d4f6420
--- /dev/null
+++ b/conlite/plugins/pluginmanager/locale/de_DE/LC_MESSAGES/pluginmanager.po
@@ -0,0 +1,236 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Contenido PluginManager\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-11 14:07+0200\n"
+"PO-Revision-Date: 2017-12-19 10:21+0100\n"
+"Last-Translator: Ortwin Pinke \n"
+"Language-Team: Frederic Schneider \n"
+"Language: de_DE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: i18n\n"
+"X-Generator: Poedit 1.5.4\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: C:\\Dateien\\Contenido PluginManager\\includes\n"
+
+#: includes/include.right_bottom.php:37
+msgid "Permission denied!"
+msgstr "Zugriff verweigert!"
+
+#: includes/include.right_bottom.php:44
+msgid "Currently the plugin system is disabled via configuration"
+msgstr "Momentan ist das Pluginsystem via Konfiguration abgeschaltet"
+
+#: includes/include.right_bottom.php:59
+msgid "Plugin uninstalled!"
+msgstr "Plugin deinstalliert!"
+
+# C:\Dateien\Contenido
+#: includes/include.right_bottom.php:61
+msgid "Cannot uninstall Plugin!"
+msgstr "Kann Plugin nicht entfernen!"
+
+#: includes/include.right_bottom.php:64
+msgid "Cannot uninstall Plugin! Plugin not found in Db."
+msgstr "Plugin kann nicht deinstalliert werden! Plugin nicht in der DB."
+
+#: includes/include.right_bottom.php:68
+msgid "Feature not implemented right now!"
+msgstr "Feature noch nicht implementiert!"
+
+#: includes/include.right_bottom.php:131
+msgid "This plugin has no description."
+msgstr "Das Plugin hat keine Beschreibung."
+
+#: includes/include.right_bottom.php:132
+msgid "This plugin has no dependencies."
+msgstr "Das Plugin hat keine Abhängigkeiten."
+
+#: includes/include.right_bottom.php:133
+msgid "License not set."
+msgstr "Keine Lizenzangabe vorhanden."
+
+#: includes/include.right_bottom.php:137
+#: classes/class.pim.plugin.handler.php:162
+msgid "Foldername"
+msgstr "Verzeichnisname"
+
+#: includes/include.right_bottom.php:138
+#: classes/class.pim.plugin.handler.php:163
+msgid "Author"
+msgstr "Autor"
+
+#: includes/include.right_bottom.php:139
+#: classes/class.pim.plugin.handler.php:164
+msgid "Contact"
+msgstr "Kontakt"
+
+#: includes/include.right_bottom.php:140
+#: classes/class.pim.plugin.handler.php:165
+msgid "License"
+msgstr "Lizenz"
+
+#: includes/include.right_bottom.php:141
+#: classes/class.pim.plugin.handler.php:167
+msgid "Dependencies"
+msgstr "Abhängigkeiten"
+
+#: includes/include.right_bottom.php:142
+#: classes/class.pim.plugin.handler.php:168
+msgid "Writable"
+msgstr "Beschreibbar"
+
+#: includes/include.right_bottom.php:156
+#, php-format
+msgid "Invalid Xml document for %s. Please contact the plugin author."
+msgstr ""
+"Ungültiges xml-Dokument für %s. Bitte kontaktieren Sie den Plugin-Entwickler."
+
+#: includes/include.right_bottom.php:161
+msgid "Everything looks fine."
+msgstr "Alles sieht gut aus."
+
+#: includes/include.right_bottom.php:162
+msgid "Pluginfolder not writable!"
+msgstr "Pluginverzeichnis nicht schreibbar!"
+
+#: includes/include.right_bottom.php:188
+msgid "No entries"
+msgstr "Keine Einträge"
+
+# C:\Dateien\Contenido
+#: includes/include.right_bottom.php:193
+msgid "Add new plugin"
+msgstr "Neues Plugin installieren"
+
+# C:\Dateien\Contenido
+#: includes/include.right_bottom.php:194
+msgid "Please choose a plugin package"
+msgstr "Plugin Paket auswählen"
+
+# C:\Dateien\Contenido
+#: includes/include.right_bottom.php:195
+msgid "Upload plugin package"
+msgstr "Plugin Paket hochladen"
+
+# C:\Dateien\Contenido
+#: includes/include.right_bottom.php:196
+msgid "Remove marked Plugins"
+msgstr "Markierte Plugins löschen"
+
+# C:\Dateien\Contenido
+#: includes/include.right_bottom.php:197
+msgid "Installed Plugins"
+msgstr "Installierte Plugins"
+
+# C:\Dateien\Contenido
+#: includes/include.right_bottom.php:198
+msgid "Update marked plugins"
+msgstr "Markierte Plugins aktualisieren"
+
+#: includes/include.right_bottom.php:199
+msgid "Plugins to install"
+msgstr "Plugins zum Installieren"
+
+#: includes/include.right_bottom.php:200
+msgid "Drag & Drop plugin to list of installed plugins to install it."
+msgstr ""
+"Um ein Plugin zu installieren ziehen Sie es mit der Maus auf die Liste "
+"installierter Plugins."
+
+#: classes/class.pluginmanager.ajax.php:37
+#: classes/class.pim.plugin.handler.php:190
+msgid "Plugin is active"
+msgstr "Plugin ist aktiv"
+
+#: classes/class.pluginmanager.ajax.php:39
+#: classes/class.pim.plugin.handler.php:193
+msgid "Plugin not active"
+msgstr "Plugin ist nicht aktiv"
+
+# C:\Dateien\Contenido
+#: classes/class.pim.plugin.handler.php:166
+msgid "Installed since"
+msgstr "Installiert seit"
+
+#: classes/class.pim.plugin.handler.php:169
+msgid "Install"
+msgstr "Installieren"
+
+#: classes/class.pim.plugin.handler.php:170
+msgid "Remove"
+msgstr "Entfernen"
+
+#: classes/class.pim.plugin.handler.php:171
+#: classes/class.pim.plugin.handler.php:173
+msgid "Update"
+msgstr "Updaten"
+
+# C:\Dateien\Contenido
+#: classes/class.pim.plugin.handler.php:172
+msgid "Please choose your new file"
+msgstr "Bitte wählen Sie Ihre neue Datei"
+
+#: classes/class.pim.plugin.handler.php:174
+msgid "Execute uninstall.sql"
+msgstr "uninstall.sql ausführen"
+
+#: classes/class.pim.plugin.handler.php:208
+#, php-format
+msgid "(%s remove database tables)"
+msgstr "(%s DB-Tabellen entfernen)"
+
+# C:\Dateien\Contenido
+#: classes/class.pim.plugin.handler.php:211
+msgid "Uninstall Plugin"
+msgstr "Plugin entfernen"
+
+#: classes/setup/class.pim.setup.plugin.install.php:133
+#: classes/setup/class.pim.setup.plugin.install.php:173
+#, php-format
+msgid ""
+"Defined area %s are not found on your ConLite installation. "
+"Please contact your plugin author."
+msgstr ""
+"Die gewünschte Area %s gibt es nicht in Ihrer ConLite "
+"Installation. Bitte kontaktieren Sie den Plugin-Autor."
+
+#: classes/setup/class.pim.setup.plugin.install.php:219
+msgid ""
+"There seem to be an empty main navigation entry in plugin.xml. Please "
+"contact your plugin author."
+msgstr ""
+"Es gibt anscheinend einen leeren Eintrag zur Main Navigation in der plugin."
+"xml. Bitte kontaktieren Sie den Plugin-Autor."
+
+#: classes/setup/class.pim.setup.plugin.install.php:255
+msgid ""
+"There seem to be an empty sub navigation entry in plugin.xml. Please contact "
+"your plugin author."
+msgstr ""
+"Es gibt anscheinend einen leeren Eintrag zur Sub Navigation in der plugin."
+"xml. Bitte kontaktieren Sie den Plugin-Autor."
+
+#: classes/setup/class.pim.setup.plugin.install.php:300
+msgid "You can install this plugin only for one time."
+msgstr "Sie können dieses Plugin nur ein Mal installieren."
+
+#: classes/setup/class.pim.setup.plugin.install.php:349
+#, php-format
+msgid ""
+"Defined area %s not found on your ConLite installation. "
+"Please contact your plugin author."
+msgstr ""
+"Die gewünschte Area %s gibt es nicht in Ihrer ConLite "
+"Installation. Bitte kontaktieren Sie den Plugin-Autor."
+
+#: classes/setup/class.pim.setup.plugin.install.php:359
+#, php-format
+msgid ""
+"Defined nav main %s not found on your ConLite installation. "
+"Please contact your plugin author."
+msgstr ""
+"Die gewünschte Nav Main %s gibt es nicht in Ihrer ConLite "
+"Installation. Bitte kontaktieren Sie den Plugin-Autor."
diff --git a/conlite/plugins/pluginmanager/locale/pluginmanager.pot b/conlite/plugins/pluginmanager/locale/pluginmanager.pot
new file mode 100644
index 0000000..57f6780
--- /dev/null
+++ b/conlite/plugins/pluginmanager/locale/pluginmanager.pot
@@ -0,0 +1,215 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-11 14:07+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: includes/include.right_bottom.php:37
+msgid "Permission denied!"
+msgstr ""
+
+#: includes/include.right_bottom.php:44
+msgid "Currently the plugin system is disabled via configuration"
+msgstr ""
+
+#: includes/include.right_bottom.php:59
+msgid "Plugin uninstalled!"
+msgstr ""
+
+#: includes/include.right_bottom.php:61
+msgid "Cannot uninstall Plugin!"
+msgstr ""
+
+#: includes/include.right_bottom.php:64
+msgid "Cannot uninstall Plugin! Plugin not found in Db."
+msgstr ""
+
+#: includes/include.right_bottom.php:68
+msgid "Feature not implemented right now!"
+msgstr ""
+
+#: includes/include.right_bottom.php:131
+msgid "This plugin has no description."
+msgstr ""
+
+#: includes/include.right_bottom.php:132
+msgid "This plugin has no dependencies."
+msgstr ""
+
+#: includes/include.right_bottom.php:133
+msgid "License not set."
+msgstr ""
+
+#: includes/include.right_bottom.php:137
+#: classes/class.pim.plugin.handler.php:162
+msgid "Foldername"
+msgstr ""
+
+#: includes/include.right_bottom.php:138
+#: classes/class.pim.plugin.handler.php:163
+msgid "Author"
+msgstr ""
+
+#: includes/include.right_bottom.php:139
+#: classes/class.pim.plugin.handler.php:164
+msgid "Contact"
+msgstr ""
+
+#: includes/include.right_bottom.php:140
+#: classes/class.pim.plugin.handler.php:165
+msgid "License"
+msgstr ""
+
+#: includes/include.right_bottom.php:141
+#: classes/class.pim.plugin.handler.php:167
+msgid "Dependencies"
+msgstr ""
+
+#: includes/include.right_bottom.php:142
+#: classes/class.pim.plugin.handler.php:168
+msgid "Writable"
+msgstr ""
+
+#: includes/include.right_bottom.php:156
+#, php-format
+msgid "Invalid Xml document for %s. Please contact the plugin author."
+msgstr ""
+
+#: includes/include.right_bottom.php:161
+msgid "Everything looks fine."
+msgstr ""
+
+#: includes/include.right_bottom.php:162
+msgid "Pluginfolder not writable!"
+msgstr ""
+
+#: includes/include.right_bottom.php:188
+msgid "No entries"
+msgstr ""
+
+#: includes/include.right_bottom.php:193
+msgid "Add new plugin"
+msgstr ""
+
+#: includes/include.right_bottom.php:194
+msgid "Please choose a plugin package"
+msgstr ""
+
+#: includes/include.right_bottom.php:195
+msgid "Upload plugin package"
+msgstr ""
+
+#: includes/include.right_bottom.php:196
+msgid "Remove marked Plugins"
+msgstr ""
+
+#: includes/include.right_bottom.php:197
+msgid "Installed Plugins"
+msgstr ""
+
+#: includes/include.right_bottom.php:198
+msgid "Update marked plugins"
+msgstr ""
+
+#: includes/include.right_bottom.php:199
+msgid "Plugins to install"
+msgstr ""
+
+#: includes/include.right_bottom.php:200
+msgid "Drag & Drop plugin to list of installed plugins to install it."
+msgstr ""
+
+#: classes/class.pluginmanager.ajax.php:37
+#: classes/class.pim.plugin.handler.php:190
+msgid "Plugin is active"
+msgstr ""
+
+#: classes/class.pluginmanager.ajax.php:39
+#: classes/class.pim.plugin.handler.php:193
+msgid "Plugin not active"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:166
+msgid "Installed since"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:169
+msgid "Install"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:170
+msgid "Remove"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:171
+#: classes/class.pim.plugin.handler.php:173
+msgid "Update"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:172
+msgid "Please choose your new file"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:174
+msgid "Execute uninstall.sql"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:208
+#, php-format
+msgid "(%s remove database tables)"
+msgstr ""
+
+#: classes/class.pim.plugin.handler.php:211
+msgid "Uninstall Plugin"
+msgstr ""
+
+#: classes/setup/class.pim.setup.plugin.install.php:133
+#: classes/setup/class.pim.setup.plugin.install.php:173
+#, php-format
+msgid ""
+"Defined area %s are not found on your ConLite installation. "
+"Please contact your plugin author."
+msgstr ""
+
+#: classes/setup/class.pim.setup.plugin.install.php:219
+msgid ""
+"There seem to be an empty main navigation entry in plugin.xml. Please "
+"contact your plugin author."
+msgstr ""
+
+#: classes/setup/class.pim.setup.plugin.install.php:255
+msgid ""
+"There seem to be an empty sub navigation entry in plugin.xml. Please contact "
+"your plugin author."
+msgstr ""
+
+#: classes/setup/class.pim.setup.plugin.install.php:300
+msgid "You can install this plugin only for one time."
+msgstr ""
+
+#: classes/setup/class.pim.setup.plugin.install.php:349
+#, php-format
+msgid ""
+"Defined area %s not found on your ConLite installation. "
+"Please contact your plugin author."
+msgstr ""
+
+#: classes/setup/class.pim.setup.plugin.install.php:359
+#, php-format
+msgid ""
+"Defined nav main %s not found on your ConLite installation. "
+"Please contact your plugin author."
+msgstr ""
diff --git a/conlite/plugins/pluginmanager/locale/potfiles.txt b/conlite/plugins/pluginmanager/locale/potfiles.txt
new file mode 100644
index 0000000..0333d6a
--- /dev/null
+++ b/conlite/plugins/pluginmanager/locale/potfiles.txt
@@ -0,0 +1,26 @@
+./includes/functions/simplexml_dump.php
+./includes/functions/simplexml_tree.php
+./includes/include.right_bottom.php
+./includes/config.autoloader.php
+./includes/config.plugin.php
+./templates/pi_manager_plugins.html
+./templates/pi_manager_install.html
+./templates/pi_manager_extracted_plugins.html
+./templates/pi_manager_overview.html
+./templates/pi_manager_installed_plugins.html
+./classes/exeptions/class.pim.exeption.php
+./classes/class.pluginmanager.ajax.php
+./classes/class.pim.plugin.handler.php
+./classes/class.pim.view.php
+./classes/class.pim.plugin.relation.php
+./classes/class.pim.ajax.php
+./classes/class.pim.plugin.dummy.php
+./classes/plugin/interface.plugins.php
+./classes/plugin/class.plugin.handler.abstract.php
+./classes/Util/Zip/Contenido_ArchiveExtractor.class.php
+./classes/Util/Zip/class.pim.plugin.archive.extractor.php
+./classes/Util/class.pim.sql.parser.php
+./classes/class.pim.plugin.php
+./classes/setup/class.pim.setup.plugin.uninstall.php
+./classes/setup/class.pim.setup.plugin.install.php
+./classes/setup/class.pim.setup.base.php
diff --git a/conlite/plugins/pluginmanager/scripts/jquery.plainmodal.js b/conlite/plugins/pluginmanager/scripts/jquery.plainmodal.js
new file mode 100644
index 0000000..8a3f715
--- /dev/null
+++ b/conlite/plugins/pluginmanager/scripts/jquery.plainmodal.js
@@ -0,0 +1,176 @@
+/*
+ * jQuery.plainModal
+ * https://github.com/anseki/jquery-plainmodal
+ *
+ * Copyright (c) 2014 anseki
+ * Licensed under the MIT license.
+ */
+
+;(function($, undefined) {
+'use strict';
+
+var APP_NAME = 'plainModal',
+    APP_PREFIX = APP_NAME.toLowerCase(),
+    EVENT_TYPE_OPEN = APP_PREFIX + 'open',
+    EVENT_TYPE_CLOSE = APP_PREFIX + 'close',
+
+    jqOpened = null, // jqOpened === null : Not opened / jqOpened === 0 : Fading now
+    jqWin, jqBody, jqOverlay, jqActive, jq1st,
+    orgOverflow, orgMarginR, orgMarginB,
+    winLeft, winTop;
+
+function init(jq, options) {
+  // The options object is shared by all elements in jq.
+  // Therefore, don't change properties later. (Replace options object for new object.)
+  var opt = $.extend(true, {
+        duration:       200,
+        effect:         {open: $.fn.fadeIn, close: $.fn.fadeOut},
+        overlay:        {opacity: 0.6, zIndex: 9000},
+        closeClass:     APP_PREFIX + '-close'
+        // Optional: offset, open, close
+      }, options);
+  opt.overlay.fillColor = opt.overlay.fillColor || opt.overlay.color /* alias */ || '#888';
+  opt.zIndex = opt.zIndex || opt.overlay.zIndex + 1;
+
+  if (!jqWin) { // page init
+    jqWin = $(window);
+    jqOverlay = $('
').css({ + position: 'fixed', + left: 0, + top: 0, + width: '100%', + height: '150%', // for Address Bar of Firefox for Android + display: 'none' + }).appendTo(jqBody = $('body')).click(modalClose) + .on('touchmove', function() { return false; }); // avoid scroll on touch devices + $(document).focusin(function(e) { + if (jqOpened && !jqOpened.has(e.target).length) { + if (jq1st) { jq1st.focus(); } + else { $(document.activeElement).blur(); } + } + }) + .keydown(function(e) { + if (jqOpened && e.keyCode === 27) { // Escape key + return modalClose(e); + } + }); + } + + return jq.each(function() { + var that = $(this), + cssProp = { + position: 'fixed', + display: 'none', + zIndex: opt.zIndex + }; + if (opt.offset) { + if (typeof opt.offset !== 'function') { + cssProp.left = opt.offset.left; + cssProp.top = opt.offset.top; + } + cssProp.marginLeft = cssProp.marginTop = ''; // for change + } else { + cssProp.left = cssProp.top = '50%'; + cssProp.marginLeft = '-' + (that.outerWidth() / 2) + 'px'; + cssProp.marginTop = '-' + (that.outerHeight() / 2) + 'px'; + } + if (opt.closeClass) { + that.find('.' + opt.closeClass).off('click', modalClose).click(modalClose); + } + if (typeof opt.open === 'function') + { that.off(EVENT_TYPE_OPEN, opt.open).on(EVENT_TYPE_OPEN, opt.open); } + if (typeof opt.close === 'function') + { that.off(EVENT_TYPE_CLOSE, opt.close).on(EVENT_TYPE_CLOSE, opt.close); } + that.css(cssProp).data(APP_NAME, opt).appendTo(jqBody) + .on('touchmove', function() { return false; }); // avoid scroll on touch devices + }); +} + +function modalOpen(jq, options) { + var jqTarget, opt, inlineStyles, calMarginR, calMarginB, offset; + if (jqOpened === null && jq.length) { + jqTarget = jq.eq(0); // only 1st + if (options || !(opt = jqTarget.data(APP_NAME))) { + opt = init(jqTarget, options).data(APP_NAME); + } + inlineStyles = jqBody.get(0).style; + + orgOverflow = inlineStyles.overflow; + calMarginR = jqBody.prop('clientWidth'); + calMarginB = jqBody.prop('clientHeight'); + jqBody.css('overflow', 'hidden'); + calMarginR -= jqBody.prop('clientWidth'); + calMarginB -= jqBody.prop('clientHeight'); + orgMarginR = inlineStyles.marginRight; + orgMarginB = inlineStyles.marginBottom; + if (calMarginR < 0) { jqBody.css('marginRight', '+=' + (-calMarginR)); } + if (calMarginB < 0) { jqBody.css('marginBottom', '+=' + (-calMarginB)); } + + jqActive = $(document.activeElement).blur(); // Save activeElement + jq1st = null; + winLeft = jqWin.scrollLeft(); + winTop = jqWin.scrollTop(); + jqWin.scroll(avoidScroll); + + if (typeof opt.offset === 'function') { + offset = opt.offset.call(jqTarget); + jqTarget.css({left: offset.left, top: offset.top}); + } + // If duration is 0, callback is called now. + opt.effect.open.call(jqTarget, opt.duration || 1, function() { + jqTarget.find('a,input,select,textarea,button,object,area,img,map').each(function() { + var that = $(this); + if (that.focus().get(0) === document.activeElement) { // Can focus + jq1st = that; + return false; + } + }); + jqOpened = jqTarget.trigger(EVENT_TYPE_OPEN); + }); + // Re-Style the overlay that is shared by all 'opt'. + jqOverlay.css({backgroundColor: opt.overlay.fillColor, zIndex: opt.overlay.zIndex}) + .fadeTo(opt.duration, opt.overlay.opacity); + jqOpened = 0; + } + return jq; +} + +function modalClose(jq) { // jq: target/event + var isEvent = jq instanceof $.Event, jqTarget, opt; + if (jqOpened) { + jqTarget = isEvent ? jqOpened : (function() { // jqOpened in jq + var index = jq.index(jqOpened); + return index > -1 ? jq.eq(index) : undefined; + })(); + if (jqTarget) { + opt = jqTarget.data(APP_NAME); + // If duration is 0, callback is called now. + opt.effect.close.call(jqTarget, opt.duration || 1, function() { + jqBody.css({overflow: orgOverflow, marginRight: orgMarginR, marginBottom: orgMarginB}); + if (jqActive && jqActive.length) { jqActive.focus(); } // Restore activeElement + jqWin.off('scroll', avoidScroll).scrollLeft(winLeft).scrollTop(winTop); + jqTarget.trigger(EVENT_TYPE_CLOSE); + jqOpened = null; + }); + jqOverlay.fadeOut(opt.duration); + jqOpened = 0; + } + } + if (isEvent) { jq.preventDefault(); return false; } + return jq; +} + +function avoidScroll(e) { + jqWin.scrollLeft(winLeft).scrollTop(winTop); + e.preventDefault(); + return false; +} + +$.fn[APP_NAME] = function(action, options) { + return ( + action === 'open' ? modalOpen(this, options) : + action === 'close' ? modalClose(this) : + init(this, action)); // options. +}; + +})(jQuery); diff --git a/conlite/plugins/pluginmanager/scripts/jquery.plainmodal.min.js b/conlite/plugins/pluginmanager/scripts/jquery.plainmodal.min.js new file mode 100644 index 0000000..0245127 --- /dev/null +++ b/conlite/plugins/pluginmanager/scripts/jquery.plainmodal.min.js @@ -0,0 +1 @@ +!function(o,e){"use strict";function t(e,t){var n=o.extend(!0,{duration:200,effect:{open:o.fn.fadeIn,close:o.fn.fadeOut},overlay:{opacity:.6,zIndex:9e3},closeClass:m+"-close"},t);return n.overlay.fillColor=n.overlay.fillColor||n.overlay.color||"#888",n.zIndex=n.zIndex||n.overlay.zIndex+1,r||(r=o(window),f=o('
').css({position:"fixed",left:0,top:0,width:"100%",height:"150%",display:"none"}).appendTo(c=o("body")).click(l).on("touchmove",function(){return!1}),o(document).focusin(function(e){C&&!C.has(e.target).length&&(s?s.focus():o(document.activeElement).blur())}).keydown(function(o){return C&&27===o.keyCode?l(o):void 0})),e.each(function(){var e=o(this),t={position:"fixed",display:"none",zIndex:n.zIndex};n.offset?("function"!=typeof n.offset&&(t.left=n.offset.left,t.top=n.offset.top),t.marginLeft=t.marginTop=""):(t.left=t.top="50%",t.marginLeft="-"+e.outerWidth()/2+"px",t.marginTop="-"+e.outerHeight()/2+"px"),n.closeClass&&e.find("."+n.closeClass).off("click",l).click(l),"function"==typeof n.open&&e.off(y,n.open).on(y,n.open),"function"==typeof n.close&&e.off(x,n.close).on(x,n.close),e.css(t).data(h,n).appendTo(c).on("touchmove",function(){return!1})})}function n(e,n){var l,m,x,I,w,z;return null===C&&e.length&&(l=e.eq(0),(n||!(m=l.data(h)))&&(m=t(l,n).data(h)),x=c.get(0).style,u=x.overflow,I=c.prop("clientWidth"),w=c.prop("clientHeight"),c.css("overflow","hidden"),I-=c.prop("clientWidth"),w-=c.prop("clientHeight"),d=x.marginRight,p=x.marginBottom,0>I&&c.css("marginRight","+="+-I),0>w&&c.css("marginBottom","+="+-w),a=o(document.activeElement).blur(),s=null,v=r.scrollLeft(),g=r.scrollTop(),r.scroll(i),"function"==typeof m.offset&&(z=m.offset.call(l),l.css({left:z.left,top:z.top})),m.effect.open.call(l,m.duration||1,function(){l.find("a,input,select,textarea,button,object,area,img,map").each(function(){var e=o(this);return e.focus().get(0)===document.activeElement?(s=e,!1):void 0}),C=l.trigger(y)}),f.css({backgroundColor:m.overlay.fillColor,zIndex:m.overlay.zIndex}).fadeTo(m.duration,m.overlay.opacity),C=0),e}function l(t){var n,l,s=t instanceof o.Event;return C&&(n=s?C:function(){var o=t.index(C);return o>-1?t.eq(o):e}(),n&&(l=n.data(h),l.effect.close.call(n,l.duration||1,function(){c.css({overflow:u,marginRight:d,marginBottom:p}),a&&a.length&&a.focus(),r.off("scroll",i).scrollLeft(v).scrollTop(g),n.trigger(x),C=null}),f.fadeOut(l.duration),C=0)),s?(t.preventDefault(),!1):t}function i(o){return r.scrollLeft(v).scrollTop(g),o.preventDefault(),!1}var r,c,f,a,s,u,d,p,v,g,h="plainModal",m=h.toLowerCase(),y=m+"open",x=m+"close",C=null;o.fn[h]=function(o,e){return"open"===o?n(this,e):"close"===o?l(this):t(this,o)}}(jQuery); \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/scripts/jquery.plainoverlay.js b/conlite/plugins/pluginmanager/scripts/jquery.plainoverlay.js new file mode 100644 index 0000000..48714bc --- /dev/null +++ b/conlite/plugins/pluginmanager/scripts/jquery.plainoverlay.js @@ -0,0 +1,426 @@ +/* + * jQuery.plainOverlay + * https://github.com/anseki/jquery-plainoverlay + * + * Copyright (c) 2015 anseki + * Licensed under the MIT license. + */ + +;(function($, undefined) { +'use strict'; + +var APP_NAME = 'plainOverlay', + APP_PREFIX = APP_NAME.toLowerCase(), + EVENT_TYPE_SHOW = APP_PREFIX + 'show', + EVENT_TYPE_HIDE = APP_PREFIX + 'hide', + + // builtin progress element + newProgress = (function() { + function experimental(props, supports, prefix, sep) { // similar to Compass + sep = sep === undefined ? ';' : sep; + return $.map(props, function(prop) { + return $.map(supports, function(support) { + return (prefix || '') + support + prop; + }).join(sep); + }).join(sep); + } + + var isLegacy, domId = 'jQuery-' + APP_NAME, + supports = ['-webkit-','-moz-','-ms-','-o-',''], prefix = domId + '-progress', + cssText = '.'+prefix+'{'+experimental(['box-sizing:border-box'],['-webkit-','-moz-',''])+';width:100%;height:100%;border-top:3px solid #17f29b;'+experimental(['border-radius:50%'],supports)+';-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);'+experimental(['animation-name:'+domId+'-spin','animation-duration:1s','animation-timing-function:linear','animation-iteration-count:infinite'],supports)+'}'+experimental(['keyframes '+domId+'-spin{from{'+experimental(['transform:rotate(0deg)'],supports)+'}to{'+experimental(['transform:rotate(360deg)'],supports)+'}}'],supports,'@','')+'.'+prefix+'-legacy{width:100%;height:50%;padding-top:25%;text-align:center;white-space:nowrap;*zoom:1}.'+prefix+'-legacy:after,.'+prefix+'-legacy:before{content:" ";display:table}.'+prefix+'-legacy:after{clear:both}.'+prefix+'-legacy div{width:18%;height:100%;margin:0 1%;background-color:#17f29b;float:left;visibility:hidden}.'+prefix+'-1 div.'+prefix+'-1,.'+prefix+'-2 div.'+prefix+'-1,.'+prefix+'-2 div.'+prefix+'-2,.'+prefix+'-3 div.'+prefix+'-1,.'+prefix+'-3 div.'+prefix+'-2,.'+prefix+'-3 div.'+prefix+'-3{visibility:visible}', + + adjustProgress = function() { + var progressWH = Math.min(300, // max w/h + (this.isBody ? + Math.min(this.jqWin.width(), this.jqWin.height()) : + Math.min(this.jqTarget.innerWidth(), this.jqTarget.innerHeight())) * 0.9); + this.jqProgress.width(progressWH).height(progressWH); + if (!this.showProgress) { // CSS Animations + this.jqProgress.children('.' + prefix).css('borderTopWidth', + Math.max(3, progressWH / 30)); // min width + } + }, + showProgressLegacy = function(start) { + var that = this; + if (that.timer) { clearTimeout(that.timer); } + if (that.progressCnt) { + that.jqProgress.removeClass(prefix + '-' + that.progressCnt); + } + if (that.isShown) { + that.progressCnt = !start && that.progressCnt < 3 ? that.progressCnt + 1 : 0; + if (that.progressCnt) { + that.jqProgress.addClass(prefix + '-' + that.progressCnt); + } + that.timer = setTimeout(function() { that.showProgress(); }, 500); + } + }; + + return function(overlay) { + var jqProgress, sheet; + + // Graceful Degradation + if (typeof isLegacy !== 'boolean') { + isLegacy = (function() { // similar to Modernizr + function contains(str, substr) { return !!~('' + str).indexOf(substr); } + var res, feature, + modElem = document.createElement('modernizr'), + mStyle = modElem.style, + omPrefixes = 'Webkit Moz O ms', + cssomPrefixes = omPrefixes.split(' '), + tests = {}, + _hasOwnProperty = ({}).hasOwnProperty, + hasOwnProp = _hasOwnProperty !== undefined && + _hasOwnProperty.call !== undefined ? + function (object, property) { + return _hasOwnProperty.call(object, property); + } : + function (object, property) { + return (property in object) && + object.constructor.prototype[property] === undefined; + }; + + function testProps(props) { + var i; + for (i in props) { + if (!contains(props[i], '-') && mStyle[props[i]] !== undefined) { return true; } + } + return false; + } + function testPropsAll(prop) { + var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), + props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); + return testProps(props); + } + + tests.borderradius = function() { + return testPropsAll('borderRadius'); + }; + tests.cssanimations = function() { + return testPropsAll('animationName'); + }; + tests.csstransforms = function() { + return !!testPropsAll('transform'); + }; + + res = false; + for (feature in tests) { + if (hasOwnProp(tests, feature) && !tests[feature]()) { + res = true; + break; + } + } + mStyle.cssText = ''; + modElem = null; + return res; + })(); + } + + if (!overlay.elmDoc.getElementById(domId)) { // Add style rules + if (overlay.elmDoc.createStyleSheet) { // IE + sheet = overlay.elmDoc.createStyleSheet(); + sheet.owningElement.id = domId; + sheet.cssText = cssText; + } else { + sheet = (overlay.elmDoc.getElementsByTagName('head')[0] || overlay.elmDoc.documentElement) + .appendChild(overlay.elmDoc.createElement('style')); + sheet.type = 'text/css'; + sheet.id = domId; + sheet.textContent = cssText; + } + } + + if (isLegacy) { + jqProgress = $('
' + + '
'); + overlay.showProgress = showProgressLegacy; + } else { + jqProgress = $('
'); + } + overlay.adjustProgress = adjustProgress; + return jqProgress; + }; + })(); + +function Overlay(jqTarget, options, curObject) { + var that = this, elmTarget = jqTarget.get(0); + that.duration = options.duration; + that.opacity = options.opacity; + that.isShown = false; + + that.jqTargetOrg = jqTarget; + // that.jqWin = that.jqTarget.ownerDocument.defaultView; // Not supported by IE + if ($.isWindow(elmTarget) || elmTarget.nodeType === 9) { // window or document -> body + that.jqTarget = $('body'); + } else if (elmTarget.nodeName.toLowerCase() === 'iframe' || + elmTarget.nodeName.toLowerCase() === 'frame') { // iframe or frame -> body of it + // contentDocument not supported by IE + that.jqWin = $(elmTarget.contentWindow); + that.elmDoc = elmTarget.contentWindow.document; + that.jqTarget = $('body', that.elmDoc); + that.isFrame = true; + } else { + that.jqTarget = jqTarget; + } + that.jqWin = that.jqWin || $(window); + that.elmDoc = that.elmDoc || document; + that.isBody = that.jqTarget.get(0).nodeName.toLowerCase() === 'body'; + + if (curObject) { + // Remove jqProgress that exists always, because it may be replaced. + if (curObject.jqProgress) { + if (curObject.timer) { clearTimeout(curObject.timer); } + curObject.jqProgress.remove(); delete curObject.jqProgress; + } + curObject.reset(true); // Restore styles + curObject.jqOverlay.stop(); + } + + that.jqOverlay = (curObject && curObject.jqOverlay || + $('
').css({ + position: that.isBody ? 'fixed' : 'absolute', + left: 0, + top: 0, + display: 'none', + cursor: 'wait' + }).appendTo(that.jqTarget) + .on('touchmove', function() { return false; }) // avoid scroll on touch devices + ).css({backgroundColor: options.fillColor, zIndex: options.zIndex}); + + if (that.jqProgress = options.progress === false ? undefined : + (typeof options.progress === 'function' ? + options.progress.call(that.jqTarget, options) : newProgress(that))) { + that.jqProgress.css({ + position: that.isBody ? 'fixed' : 'absolute', + display: 'none', + zIndex: options.zIndex + 1, + cursor: 'wait' + }).appendTo(that.jqTarget) + .on('touchmove', function() { return false; }); // avoid scroll on touch devices; + } + + // Not shared methods for calling per object in event of one element. + that.callAdjust = (function(that) { + return that.adjustProgress ? function() { + that.adjustProgress(); + that.adjust(); + } : function() { that.adjust(); }; + })(that); + that.avoidFocus = (function(that) { + return function(e) { + $(that.elmDoc.activeElement).blur(); + e.preventDefault(); + return false; + }; + })(that); + that.avoidScroll = (function(that) { + return function(e) { + (function(jqView) { + jqView.scrollLeft(that.scrLeft).scrollTop(that.scrTop); + })(that.isBody ? that.jqWin : that.jqTarget); + e.preventDefault(); + return false; + }; + })(that); + + if (curObject) { + if (curObject.timer) { clearTimeout(curObject.timer); } + curObject = undefined; // Erase + } +} + +Overlay.prototype.show = function() { + var that = this, inlineStyles, position, calMarginR, calMarginB, jqActive; + that.reset(true); // Restore styles + inlineStyles = that.jqTarget.get(0).style; + + that.orgPosition = inlineStyles.position; + position = that.jqTarget.css('position'); + if (position !== 'relative' && position !== 'absolute' && position !== 'fixed') { + that.jqTarget.css('position', 'relative'); + } + + that.orgOverflow = inlineStyles.overflow; + calMarginR = that.jqTarget.prop('clientWidth'); + calMarginB = that.jqTarget.prop('clientHeight'); + that.jqTarget.css('overflow', 'hidden'); + calMarginR -= that.jqTarget.prop('clientWidth'); + calMarginB -= that.jqTarget.prop('clientHeight'); + that.addMarginR = that.addMarginB = 0; + if (calMarginR < 0) { that.addMarginR = -calMarginR; } + if (calMarginB < 0) { that.addMarginB = -calMarginB; } + if (that.isBody) { + if (that.addMarginR) { + that.orgMarginR = inlineStyles.marginRight; + that.jqTarget.css('marginRight', '+=' + that.addMarginR); + } + if (that.addMarginB) { + that.orgMarginB = inlineStyles.marginBottom; + that.jqTarget.css('marginBottom', '+=' + that.addMarginB); + } + } else { // change these in adjust() + if (that.addMarginR) { + that.orgMarginR = inlineStyles.paddingRight; + that.orgWidth = inlineStyles.width; + } + if (that.addMarginB) { + that.orgMarginB = inlineStyles.paddingBottom; + that.orgHeight = inlineStyles.height; + } + } + + that.jqActive = undefined; + jqActive = $(that.elmDoc.activeElement); + if (that.isBody && !that.isFrame) { that.jqActive = jqActive.blur(); } // Save activeElement + else if (that.jqTarget.has(jqActive.get(0)).length) { jqActive.blur(); } + that.jqTarget.focusin(that.avoidFocus); + (function(jqView) { + that.scrLeft = jqView.scrollLeft(); + that.scrTop = jqView.scrollTop(); + jqView.scroll(that.avoidScroll); + })(that.isBody ? that.jqWin : that.jqTarget); + that.jqWin.resize(that.callAdjust); + that.callAdjust(); + that.isShown = true; + + that.jqOverlay.stop().fadeTo(that.duration, that.opacity, + function() { that.jqTargetOrg.trigger(EVENT_TYPE_SHOW); }); + if (that.jqProgress) { + if (that.showProgress) { that.showProgress(true); } + that.jqProgress.fadeIn(that.duration); + } +}; + +Overlay.prototype.hide = function() { + var that = this; + if (!that.isShown) { return; } + that.jqOverlay.stop().fadeOut(that.duration, + function() { that.reset(); that.jqTargetOrg.trigger(EVENT_TYPE_HIDE); }); + if (that.jqProgress) { that.jqProgress.fadeOut(that.duration); } +}; + +Overlay.prototype.adjust = function() { + var calW, calH; + if (this.isBody) { + // base of overlay size and progress position is window. + calW = this.jqWin.width(); + calH = this.jqWin.height(); + this.jqOverlay.width(calW).height(calH); + if (this.jqProgress) { + this.jqProgress.css({ + left: (calW - this.jqProgress.outerWidth()) / 2, + top: (calH - this.jqProgress.outerHeight()) / 2 + }); + } + } else { + if (this.addMarginR) { + calW = this.jqTarget.css({paddingRight: this.orgMarginR, width: this.orgWidth}) + .width(); // original size + this.jqTarget.css('paddingRight', '+=' + this.addMarginR).width(calW - this.addMarginR); + } + if (this.addMarginB) { + calH = this.jqTarget.css({paddingBottom: this.orgMarginB, height: this.orgHeight}) + .height(); // original size + this.jqTarget.css('paddingBottom', '+=' + this.addMarginB).height(calH - this.addMarginB); + } + + // base of overlay size is element size that includes hidden area. + calW = Math.max(this.jqTarget.prop('scrollWidth'), this.jqTarget.innerWidth()); // for IE bug + calH = Math.max(this.jqTarget.prop('scrollHeight'), this.jqTarget.innerHeight()); + this.jqOverlay.width(calW).height(calH); + if (this.jqProgress) { + // base of progress position is element size that doesn't include hidden area. + calW = this.jqTarget.innerWidth(); + calH = this.jqTarget.innerHeight(); + this.jqProgress.css({ + left: (calW - this.jqProgress.outerWidth()) / 2 + this.scrLeft, + top: (calH - this.jqProgress.outerHeight()) / 2 + this.scrTop + }); + } + } +}; + +Overlay.prototype.reset = function(forceHide) { + // default: display of jqOverlay and jqProgress is kept + var that = this; + if (forceHide) { + that.jqOverlay.css('display', 'none'); + if (that.jqProgress) { that.jqProgress.css('display', 'none'); } + } + if (!that.isShown) { return; } + that.jqTarget.css({position: that.orgPosition, overflow: that.orgOverflow}); + if (that.isBody) { + if (that.addMarginR) { that.jqTarget.css('marginRight', that.orgMarginR); } + if (that.addMarginB) { that.jqTarget.css('marginBottom', that.orgMarginB); } + } else { + if (that.addMarginR) { + that.jqTarget.css({paddingRight: that.orgMarginR, width: that.orgWidth}); + } + if (that.addMarginB) { + that.jqTarget.css({paddingBottom: that.orgMarginB, height: that.orgHeight}); + } + } + that.jqTarget.off('focusin', that.avoidFocus); + if (that.jqActive && that.jqActive.length) { that.jqActive.focus(); } // Restore activeElement + (function(jqView) { + jqView.off('scroll', that.avoidScroll).scrollLeft(that.scrLeft).scrollTop(that.scrTop); + })(that.isBody ? that.jqWin : that.jqTarget); + that.jqWin.off('resize', that.callAdjust); + that.isShown = false; +}; + +function init(jq, options) { + var opt = $.extend({ + duration: 200, + opacity: 0.6, + zIndex: 9000 + // Optional: progress, show, hide + }, options); + opt.fillColor = opt.fillColor || opt.color /* alias */ || '#888'; + return jq.each(function() { + var that = $(this); + that.data(APP_NAME, new Overlay(that, opt, that.data(APP_NAME))); + if (typeof opt.show === 'function') + { that.off(EVENT_TYPE_SHOW, opt.show).on(EVENT_TYPE_SHOW, opt.show); } + if (typeof opt.hide === 'function') + { that.off(EVENT_TYPE_HIDE, opt.hide).on(EVENT_TYPE_HIDE, opt.hide); } + }); +} + +function overlayShow(jq, options) { + return jq.each(function() { + var that = $(this), overlay; + if (options || !(overlay = that.data(APP_NAME))) { + overlay = init(that, options).data(APP_NAME); + } + overlay.show(); + }); +} + +function overlayHide(jq) { + return jq.each(function() { + var overlay = $(this).data(APP_NAME); + if (overlay) { overlay.hide(); } + }); +} + +function overlaySetOption(jq, name, newValue) { + var jqTarget = jq.length ? jq.eq(0) : undefined, // only 1st + overlay; + if (!jqTarget) { return; } + overlay = jqTarget.data(APP_NAME) || init(jqTarget).data(APP_NAME); + if (!overlay.hasOwnProperty(name)) { return; } +/* jshint eqnull:true */ + if (newValue != null) { overlay[name] = newValue; } +/* jshint eqnull:false */ + return overlay[name]; +} + +$.fn[APP_NAME] = function(action, arg1, arg2) { + return ( + action === 'show' ? overlayShow(this, arg1) : + action === 'hide' ? overlayHide(this) : + action === 'option' ? overlaySetOption(this, arg1, arg2) : + init(this, action)); // action = options. +}; + +})(jQuery); diff --git a/conlite/plugins/pluginmanager/scripts/jquery.plainoverlay.min.js b/conlite/plugins/pluginmanager/scripts/jquery.plainoverlay.min.js new file mode 100644 index 0000000..8b54482 --- /dev/null +++ b/conlite/plugins/pluginmanager/scripts/jquery.plainoverlay.min.js @@ -0,0 +1 @@ +!function(t,r){"use strict";function i(i,e,o){var s=this,n=i.get(0);s.duration=e.duration,s.opacity=e.opacity,s.isShown=!1,s.jqTargetOrg=i,t.isWindow(n)||9===n.nodeType?s.jqTarget=t("body"):"iframe"===n.nodeName.toLowerCase()||"frame"===n.nodeName.toLowerCase()?(s.jqWin=t(n.contentWindow),s.elmDoc=n.contentWindow.document,s.jqTarget=t("body",s.elmDoc),s.isFrame=!0):s.jqTarget=i,s.jqWin=s.jqWin||t(window),s.elmDoc=s.elmDoc||document,s.isBody="body"===s.jqTarget.get(0).nodeName.toLowerCase(),o&&(o.jqProgress&&(o.timer&&clearTimeout(o.timer),o.jqProgress.remove(),delete o.jqProgress),o.reset(!0),o.jqOverlay.stop()),s.jqOverlay=(o&&o.jqOverlay||t('
').css({position:s.isBody?"fixed":"absolute",left:0,top:0,display:"none",cursor:"wait"}).appendTo(s.jqTarget).on("touchmove",function(){return!1})).css({backgroundColor:e.fillColor,zIndex:e.zIndex}),(s.jqProgress=e.progress===!1?r:"function"==typeof e.progress?e.progress.call(s.jqTarget,e):c(s))&&s.jqProgress.css({position:s.isBody?"fixed":"absolute",display:"none",zIndex:e.zIndex+1,cursor:"wait"}).appendTo(s.jqTarget).on("touchmove",function(){return!1}),s.callAdjust=function(t){return t.adjustProgress?function(){t.adjustProgress(),t.adjust()}:function(){t.adjust()}}(s),s.avoidFocus=function(r){return function(i){return t(r.elmDoc.activeElement).blur(),i.preventDefault(),!1}}(s),s.avoidScroll=function(t){return function(r){return function(r){r.scrollLeft(t.scrLeft).scrollTop(t.scrTop)}(t.isBody?t.jqWin:t.jqTarget),r.preventDefault(),!1}}(s),o&&(o.timer&&clearTimeout(o.timer),o=r)}function e(r,e){var o=t.extend({duration:200,opacity:.6,zIndex:9e3},e);return o.fillColor=o.fillColor||o.color||"#888",r.each(function(){var r=t(this);r.data(n,new i(r,o,r.data(n))),"function"==typeof o.show&&r.off(d,o.show).on(d,o.show),"function"==typeof o.hide&&r.off(g,o.hide).on(g,o.hide)})}function o(r,i){return r.each(function(){var r,o=t(this);(i||!(r=o.data(n)))&&(r=e(o,i).data(n)),r.show()})}function s(r){return r.each(function(){var r=t(this).data(n);r&&r.hide()})}var n="plainOverlay",a=n.toLowerCase(),d=a+"show",g=a+"hide",c=function(){function i(i,e,o,s){return s=s===r?";":s,t.map(i,function(r){return t.map(e,function(t){return(o||"")+t+r}).join(s)}).join(s)}var e,o="jQuery-"+n,s=["-webkit-","-moz-","-ms-","-o-",""],a=o+"-progress",d="."+a+"{"+i(["box-sizing:border-box"],["-webkit-","-moz-",""])+";width:100%;height:100%;border-top:3px solid #17f29b;"+i(["border-radius:50%"],s)+";-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);"+i(["animation-name:"+o+"-spin","animation-duration:1s","animation-timing-function:linear","animation-iteration-count:infinite"],s)+"}"+i(["keyframes "+o+"-spin{from{"+i(["transform:rotate(0deg)"],s)+"}to{"+i(["transform:rotate(360deg)"],s)+"}}"],s,"@","")+"."+a+"-legacy{width:100%;height:50%;padding-top:25%;text-align:center;white-space:nowrap;*zoom:1}."+a+"-legacy:after,."+a+'-legacy:before{content:" ";display:table}.'+a+"-legacy:after{clear:both}."+a+"-legacy div{width:18%;height:100%;margin:0 1%;background-color:#17f29b;float:left;visibility:hidden}."+a+"-1 div."+a+"-1,."+a+"-2 div."+a+"-1,."+a+"-2 div."+a+"-2,."+a+"-3 div."+a+"-1,."+a+"-3 div."+a+"-2,."+a+"-3 div."+a+"-3{visibility:visible}",g=function(){var t=Math.min(300,.9*(this.isBody?Math.min(this.jqWin.width(),this.jqWin.height()):Math.min(this.jqTarget.innerWidth(),this.jqTarget.innerHeight())));this.jqProgress.width(t).height(t),this.showProgress||this.jqProgress.children("."+a).css("borderTopWidth",Math.max(3,t/30))},c=function(t){var r=this;r.timer&&clearTimeout(r.timer),r.progressCnt&&r.jqProgress.removeClass(a+"-"+r.progressCnt),r.isShown&&(r.progressCnt=!t&&r.progressCnt<3?r.progressCnt+1:0,r.progressCnt&&r.jqProgress.addClass(a+"-"+r.progressCnt),r.timer=setTimeout(function(){r.showProgress()},500))};return function(i){var s,n;return"boolean"!=typeof e&&(e=function(){function t(t,r){return!!~(""+t).indexOf(r)}function i(i){var e;for(e in i)if(!t(i[e],"-")&&a[i[e]]!==r)return!0;return!1}function e(t){var r=t.charAt(0).toUpperCase()+t.slice(1),e=(t+" "+g.join(r+" ")+r).split(" ");return i(e)}var o,s,n=document.createElement("modernizr"),a=n.style,d="Webkit Moz O ms",g=d.split(" "),c={},h={}.hasOwnProperty,l=h!==r&&h.call!==r?function(t,r){return h.call(t,r)}:function(t,i){return i in t&&t.constructor.prototype[i]===r};c.borderradius=function(){return e("borderRadius")},c.cssanimations=function(){return e("animationName")},c.csstransforms=function(){return!!e("transform")},o=!1;for(s in c)if(l(c,s)&&!c[s]()){o=!0;break}return a.cssText="",n=null,o}()),i.elmDoc.getElementById(o)||(i.elmDoc.createStyleSheet?(n=i.elmDoc.createStyleSheet(),n.owningElement.id=o,n.cssText=d):(n=(i.elmDoc.getElementsByTagName("head")[0]||i.elmDoc.documentElement).appendChild(i.elmDoc.createElement("style")),n.type="text/css",n.id=o,n.textContent=d)),e?(s=t('
'),i.showProgress=c):s=t('
'),i.adjustProgress=g,s}}();i.prototype.show=function(){var i,e,o,s,n,a=this;a.reset(!0),i=a.jqTarget.get(0).style,a.orgPosition=i.position,e=a.jqTarget.css("position"),"relative"!==e&&"absolute"!==e&&"fixed"!==e&&a.jqTarget.css("position","relative"),a.orgOverflow=i.overflow,o=a.jqTarget.prop("clientWidth"),s=a.jqTarget.prop("clientHeight"),a.jqTarget.css("overflow","hidden"),o-=a.jqTarget.prop("clientWidth"),s-=a.jqTarget.prop("clientHeight"),a.addMarginR=a.addMarginB=0,0>o&&(a.addMarginR=-o),0>s&&(a.addMarginB=-s),a.isBody?(a.addMarginR&&(a.orgMarginR=i.marginRight,a.jqTarget.css("marginRight","+="+a.addMarginR)),a.addMarginB&&(a.orgMarginB=i.marginBottom,a.jqTarget.css("marginBottom","+="+a.addMarginB))):(a.addMarginR&&(a.orgMarginR=i.paddingRight,a.orgWidth=i.width),a.addMarginB&&(a.orgMarginB=i.paddingBottom,a.orgHeight=i.height)),a.jqActive=r,n=t(a.elmDoc.activeElement),a.isBody&&!a.isFrame?a.jqActive=n.blur():a.jqTarget.has(n.get(0)).length&&n.blur(),a.jqTarget.focusin(a.avoidFocus),function(t){a.scrLeft=t.scrollLeft(),a.scrTop=t.scrollTop(),t.scroll(a.avoidScroll)}(a.isBody?a.jqWin:a.jqTarget),a.jqWin.resize(a.callAdjust),a.callAdjust(),a.isShown=!0,a.jqOverlay.stop().fadeTo(a.duration,a.opacity,function(){a.jqTargetOrg.trigger(d)}),a.jqProgress&&(a.showProgress&&a.showProgress(!0),a.jqProgress.fadeIn(a.duration))},i.prototype.hide=function(){var t=this;t.isShown&&(t.jqOverlay.stop().fadeOut(t.duration,function(){t.reset(),t.jqTargetOrg.trigger(g)}),t.jqProgress&&t.jqProgress.fadeOut(t.duration))},i.prototype.adjust=function(){var t,r;this.isBody?(t=this.jqWin.width(),r=this.jqWin.height(),this.jqOverlay.width(t).height(r),this.jqProgress&&this.jqProgress.css({left:(t-this.jqProgress.outerWidth())/2,top:(r-this.jqProgress.outerHeight())/2})):(this.addMarginR&&(t=this.jqTarget.css({paddingRight:this.orgMarginR,width:this.orgWidth}).width(),this.jqTarget.css("paddingRight","+="+this.addMarginR).width(t-this.addMarginR)),this.addMarginB&&(r=this.jqTarget.css({paddingBottom:this.orgMarginB,height:this.orgHeight}).height(),this.jqTarget.css("paddingBottom","+="+this.addMarginB).height(r-this.addMarginB)),t=Math.max(this.jqTarget.prop("scrollWidth"),this.jqTarget.innerWidth()),r=Math.max(this.jqTarget.prop("scrollHeight"),this.jqTarget.innerHeight()),this.jqOverlay.width(t).height(r),this.jqProgress&&(t=this.jqTarget.innerWidth(),r=this.jqTarget.innerHeight(),this.jqProgress.css({left:(t-this.jqProgress.outerWidth())/2+this.scrLeft,top:(r-this.jqProgress.outerHeight())/2+this.scrTop})))},i.prototype.reset=function(t){var r=this;t&&(r.jqOverlay.css("display","none"),r.jqProgress&&r.jqProgress.css("display","none")),r.isShown&&(r.jqTarget.css({position:r.orgPosition,overflow:r.orgOverflow}),r.isBody?(r.addMarginR&&r.jqTarget.css("marginRight",r.orgMarginR),r.addMarginB&&r.jqTarget.css("marginBottom",r.orgMarginB)):(r.addMarginR&&r.jqTarget.css({paddingRight:r.orgMarginR,width:r.orgWidth}),r.addMarginB&&r.jqTarget.css({paddingBottom:r.orgMarginB,height:r.orgHeight})),r.jqTarget.off("focusin",r.avoidFocus),r.jqActive&&r.jqActive.length&&r.jqActive.focus(),function(t){t.off("scroll",r.avoidScroll).scrollLeft(r.scrLeft).scrollTop(r.scrTop)}(r.isBody?r.jqWin:r.jqTarget),r.jqWin.off("resize",r.callAdjust),r.isShown=!1)},t.fn[n]=function(t,r){return"show"===t?o(this,r):"hide"===t?s(this):e(this,t)}}(jQuery); \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/scripts/pluginmanager.js b/conlite/plugins/pluginmanager/scripts/pluginmanager.js new file mode 100644 index 0000000..40a4b0c --- /dev/null +++ b/conlite/plugins/pluginmanager/scripts/pluginmanager.js @@ -0,0 +1,275 @@ + +// Ignore console on platforms where it is not available +if (typeof (window.console) == "undefined") { + console = {}; + console.log = console.warn = console.error = function (a) { + }; +} + +function showMessage(Msg, Level) { + var msgClass = ""; + switch (Level) { + case 'info': + msgClass = "info"; + break; + case 'warning': + msgClass = "warning"; + break; + case 'error': + msgClass = "error"; + break; + case 'success': + msgClass = "success"; + break; + default: + msgClass = "info"; + } + if ($("#pimmsg").length == 0) { + $("body").append('
' + Msg + '
'); + } else { + $("#pimmsg").attr('class', msgClass).html(Msg); + } + + $("#pimmsg").plainModal( + 'open', + { + duration: 500, + offset: { + left: 20, + top: 10 + }, + overlay: { + fillColor: '#fff', + opacity: 0.5 + } + }); + + setTimeout(function () { + $("#pimmsg").plainModal('close'); + }, 3000); +} + +function togglePluginInfo(tableId) { + var collapseButton = 'images/close_all.gif'; + var expandButton = 'images/open_all.gif'; + var curDiv = document.getElementById(tableId); + var curButton = document.getElementById(tableId + '_img'); + + if (curDiv.style.display == "table-row" || curDiv.style.display == "" || curDiv.style.display == "block") { + curDiv.style.display = "none"; + curButton.src = expandButton; + } else if (curDiv.style.display == "none") { + if (ie == 7) { + $('#' + tableId).css('display', 'block'); + } else { + curDiv.style.display = "table-row"; + } + curButton.src = collapseButton; + } +} + +// Read a page's GET URL variables and return them as an associative array. +function getUrlVars() { + var vars = [], hash; + var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); + for (var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + if (hash[0] == "contenido" || hash[0] == "plugin_action" || hash[0] == "plugin_id" || hash[0] == "delete_sql") { + continue; + } + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + console.log(vars); + return vars; +} + + +$(function () { + + if ($("ul#pim_messages").length) { + var tmp = $("ul#pim_messages li").html(); + var message = tmp.split(':'); + showMessage(message[1], message[0]); + $("ul#pim_messages").remove(); + } + + $(document) + .ajaxStart(function () { + $('body').plainOverlay('show'); + }) + .ajaxStop(function () { + $('body').plainOverlay('hide'); + }); + + // add custom event before start to ui sortable + var oldMouseStart = $.ui.sortable.prototype._mouseStart; + $.ui.sortable.prototype._mouseStart = function (event, overrideHandle, noActivation) { + this._trigger("CustomBeforeStart", event, this._uiHash()); + oldMouseStart.apply(this, [event, overrideHandle, noActivation]); + }; + + $("#pimPluginsExtracted").sortable({ + connectWith: "#pimPluginsInstalled", + cursor: "move", + opacity: 0.5, + placeholder: "ui-state-highlight", + forceHelperSize: true, + forcePlaceholderSize: true, + CustomBeforeStart: function (event, ui) { + console.log(ui.item); + if (ui.item.find("div.pimInfo").is(":visible")) { + togglePluginInfo(ui.item.attr('id').replace("_", "-")); + } + } + }); + $("#pimPluginsInstalled").sortable({ + placeholder: "ui-state-highlight", + axis: "y", + containment: "parent", + forcePlaceholderSize: true, + CustomBeforeStart: function (event, ui) { + console.log(ui.item); + if (ui.item.find("div.pimInfo").is(":visible")) { + togglePluginInfo(ui.item.attr('id').replace("_", "-")); + } + }, + update: function (event, ui) { + console.log({plugins: $("#pimPluginsInstalled").sortable("serialize")}); + $.post("ajaxmain.php", { + plugins: $("#pimPluginsInstalled").sortable("serialize"), + ajax: 'plugin_request', + plugin: 'pluginmanager', + plugin_ajax_action: 'pim_save_sort', + contenido: cSessionId + }); + }, + receive: function (event, ui) { + console.log(ui.item); + $.ajax({ + type: "POST", + url: "ajaxmain.php", + data: { + plugin_folder: ui.item.data('plugin-foldername'), + new_position: ui.item.index(), + ajax: 'plugin_request', + plugin: 'pluginmanager', + plugin_ajax_action: 'pim_install', + contenido: cSessionId + }, + beforeSend: function (xhr, obj) { + //alert("Before"); + }, + success: function (data, textStatus, xhr) { + console.log(data); + var answer = data.split(":"); + console.log(answer); + if (answer[0] == "Ok") { + $.ajax({ + type: "POST", + url: "ajaxmain.php", + data: { + ajax: 'plugin_request', + plugin: 'pluginmanager', + plugin_ajax_action: 'pim_get_info_installed', + plugin_id: answer[1], + contenido: cSessionId + } + }).done(function (data) { + console.log(data); + $(ui.item).replaceWith(data); + }); + showMessage(answer[2], 'info'); + } else if (answer[0] == "Error") { + console.log("Remove New List Item."); + ui.sender.sortable("cancel"); // send back entry to sender :) + showMessage(answer[2], 'error'); + } else { + //window.location.replace("index.php"); // redirect to index if answer not correct or not set + } + $("span#plugin_count").html($("#pimPluginsInstalled").children().length); + }, + error: function (xhr, textStatus, errorThrown) { + showMessage(textStatus, 'error'); + console.log('a' + textStatus); + } + }); + return true; + } + }); + $("#pimPluginsInstalled li, #pimPluginsExtracted li").disableSelection(); + // actions for buttons in plugin info + var labelID; + $('label.pimButLabel').click(function (e) { + if ($(e.target).is('input')) { + return; + } + labelID = $(this).attr('for'); + $('#' + labelID).trigger('click'); + }); + $("ul#pimPluginsInstalled").on("click", "input.pimImgBut", function () { + var pluginID = $(this).attr('id'); + var thisInput = $(this); + switch ($(this).attr('name')) { + case "toggle_active": + $('body').plainOverlay('show'); + $.ajax({ + type: "POST", + url: "ajaxmain.php", + data: { + ajax: 'plugin_request', + plugin: 'pluginmanager', + plugin_ajax_action: 'toggle_active', + plugin_id: pluginID.split('-')[3], + contenido: cSessionId + }, + success: function (data, textStatus, xhr) { + console.log(data); + var aData = data.split(":"); + console.log(aData); + if (aData[0] == "Ok") { + if (aData[1] == '1') { + thisInput.attr('src', 'images/online.gif'); + } else { + thisInput.attr('src', 'images/offline.gif'); + } + $("label[for=" + pluginID + "]").html(aData[2]); + } + } + }); + break; + case "uninstall_plugin": + $('body').plainOverlay('show'); + var hiddenFields = []; + hiddenFields.push("plugin_id"); + hiddenFields["plugin_id"] = pluginID.split('-')[3]; + hiddenFields.push("plugin_action"); + hiddenFields["plugin_action"] = "uninstall_plugin"; + /* + hiddenFields.push("contenido"); + hiddenFields["contenido"] = cSessionId; */ + hiddenFields.push("delete_sql"); + console.log($(this).parent().children("label:eq(1)").children("input")); + if ($(this).parent().children("label:eq(1)").children("input").prop('checked') == true) { + hiddenFields["delete_sql"] = "delete"; + } else { + hiddenFields["delete_sql"] = "hold"; + } + $("#pim_uninstall").remove(); + var form = document.createElement('form'); + form.id = "pim_uninstall"; + form.method = 'post'; + $.each(hiddenFields, function (index, name) { + var input = document.createElement('input'); + input.type = 'hidden'; + input.name = name; + input.value = hiddenFields[name]; + form.appendChild(input); + }); + form.action = window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.search; + document.body.appendChild(form); + form.submit(); + break; + } + }); +}); \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/temp/conlite_sample_plugin.zip b/conlite/plugins/pluginmanager/temp/conlite_sample_plugin.zip new file mode 100644 index 0000000..e1c9d41 Binary files /dev/null and b/conlite/plugins/pluginmanager/temp/conlite_sample_plugin.zip differ diff --git a/conlite/plugins/pluginmanager/temp/linkchecker.zip b/conlite/plugins/pluginmanager/temp/linkchecker.zip new file mode 100644 index 0000000..d84bc16 Binary files /dev/null and b/conlite/plugins/pluginmanager/temp/linkchecker.zip differ diff --git a/conlite/plugins/pluginmanager/templates/pi_manager_extracted_plugins.html b/conlite/plugins/pluginmanager/templates/pi_manager_extracted_plugins.html new file mode 100644 index 0000000..424e17d --- /dev/null +++ b/conlite/plugins/pluginmanager/templates/pi_manager_extracted_plugins.html @@ -0,0 +1,53 @@ +
  • +
    +
    + + + + {PLUGIN_NAME} {VERSION} +
    + +
    +
  • \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/templates/pi_manager_install.html b/conlite/plugins/pluginmanager/templates/pi_manager_install.html new file mode 100644 index 0000000..f122870 --- /dev/null +++ b/conlite/plugins/pluginmanager/templates/pi_manager_install.html @@ -0,0 +1,11 @@ + + + + + Untitled Document + + + + + diff --git a/conlite/plugins/pluginmanager/templates/pi_manager_installed_plugins.html b/conlite/plugins/pluginmanager/templates/pi_manager_installed_plugins.html new file mode 100644 index 0000000..55a0ac9 --- /dev/null +++ b/conlite/plugins/pluginmanager/templates/pi_manager_installed_plugins.html @@ -0,0 +1,94 @@ +
  • +
    +
    + + + + {NAME} {VERSION} + +
    + + +
    +
  • \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/templates/pi_manager_overview.html b/conlite/plugins/pluginmanager/templates/pi_manager_overview.html new file mode 100644 index 0000000..50043d9 --- /dev/null +++ b/conlite/plugins/pluginmanager/templates/pi_manager_overview.html @@ -0,0 +1,31 @@ + + +

    ConLite Plugin Manager

    +

    {LANG_EXTRACTED}

    +

    {LANG_HINT_EXTRACTED}

    +
      {PLUGINS_EXTRACTED}
    +
     
    +
    +

    {LANG_INSTALLED} ({INSTALLED_PLUGINS})

    + +
      {PLUGINS}
    +
    \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/templates/pi_manager_plugins.html b/conlite/plugins/pluginmanager/templates/pi_manager_plugins.html new file mode 100644 index 0000000..ca5a1f7 --- /dev/null +++ b/conlite/plugins/pluginmanager/templates/pi_manager_plugins.html @@ -0,0 +1,12 @@ + + {NAME} {VERSION} + + + + + +
    + \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/xml/lang_de_DE.xml b/conlite/plugins/pluginmanager/xml/lang_de_DE.xml new file mode 100644 index 0000000..31b2252 --- /dev/null +++ b/conlite/plugins/pluginmanager/xml/lang_de_DE.xml @@ -0,0 +1,10 @@ + + + + + +
    PluginManager
    +
    +
    +
    +
    \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/xml/lang_en_EN.xml b/conlite/plugins/pluginmanager/xml/lang_en_EN.xml new file mode 100644 index 0000000..31b2252 --- /dev/null +++ b/conlite/plugins/pluginmanager/xml/lang_en_EN.xml @@ -0,0 +1,10 @@ + + + + + +
    PluginManager
    +
    +
    +
    +
    \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/xml/lang_en_US.xml b/conlite/plugins/pluginmanager/xml/lang_en_US.xml new file mode 100644 index 0000000..31b2252 --- /dev/null +++ b/conlite/plugins/pluginmanager/xml/lang_en_US.xml @@ -0,0 +1,10 @@ + + + + + +
    PluginManager
    +
    +
    +
    +
    \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/xml/plugin_default.xml b/conlite/plugins/pluginmanager/xml/plugin_default.xml new file mode 100644 index 0000000..67ecf46 --- /dev/null +++ b/conlite/plugins/pluginmanager/xml/plugin_default.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/conlite/plugins/pluginmanager/xml/plugin_info.xml b/conlite/plugins/pluginmanager/xml/plugin_info.xml new file mode 100644 index 0000000..be67288 --- /dev/null +++ b/conlite/plugins/pluginmanager/xml/plugin_info.xml @@ -0,0 +1,44 @@ + + + + + Linkchecker + linkchecker + a9613eabde004e1ad4daad30a25def6555f4ac28 + Checks intern and extern links to valid + Frederic Schneider (4fb) + four for business AG + 2.0.0 + 4.6.0 + + + + b9653ztdbde004e1ad4dbbd90a25def6555f4gh40 + + + + + + linkchecker + lc_whitelist + + + + linkchecker + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/xml/plugin_info.xsd b/conlite/plugins/pluginmanager/xml/plugin_info.xsd new file mode 100644 index 0000000..356b5ac --- /dev/null +++ b/conlite/plugins/pluginmanager/xml/plugin_info.xsd @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/backup/.gitignore b/data/backup/.gitignore new file mode 100644 index 0000000..2323280 --- /dev/null +++ b/data/backup/.gitignore @@ -0,0 +1,5 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore +!index.php \ No newline at end of file diff --git a/data/cache/.gitignore b/data/cache/.gitignore new file mode 100644 index 0000000..2323280 --- /dev/null +++ b/data/cache/.gitignore @@ -0,0 +1,5 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore +!index.php \ No newline at end of file diff --git a/data/config/.gitignore b/data/config/.gitignore new file mode 100644 index 0000000..22b4e10 --- /dev/null +++ b/data/config/.gitignore @@ -0,0 +1,6 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore +!index.php +!/production diff --git a/data/config/production/config.autoloader.php b/data/config/production/config.autoloader.php index 43419dd..1354ec4 100644 --- a/data/config/production/config.autoloader.php +++ b/data/config/production/config.autoloader.php @@ -342,5 +342,7 @@ return array( 'POP3' => 'conlite/external/PHPMailer/class.pop3.php', 'Google' => 'conlite/external/PHPMailer/get_oauth_token.php', 'PHPMailerOAuth' => 'conlite/external/PHPMailer/class.phpmaileroauth.php', - 'PHPMailerOAuthGoogle' => 'conlite/external/PHPMailer/class.phpmaileroauthgoogle.php' + 'PHPMailerOAuthGoogle' => 'conlite/external/PHPMailer/class.phpmaileroauthgoogle.php', + 'cStringMultiByteWrapper' => 'conlite/classes/class.string.multi.byte.wrapper.php', + 'cString' => 'conlite/classes/class.string.php' ); diff --git a/data/cronlog/.gitignore b/data/cronlog/.gitignore new file mode 100644 index 0000000..04cb30d --- /dev/null +++ b/data/cronlog/.gitignore @@ -0,0 +1,6 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore +!index.php +!crontab.txt \ No newline at end of file diff --git a/data/logs/.gitignore b/data/logs/.gitignore new file mode 100644 index 0000000..2323280 --- /dev/null +++ b/data/logs/.gitignore @@ -0,0 +1,5 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore +!index.php \ No newline at end of file diff --git a/data/temp/.gitignore b/data/temp/.gitignore new file mode 100644 index 0000000..2323280 --- /dev/null +++ b/data/temp/.gitignore @@ -0,0 +1,5 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore +!index.php \ No newline at end of file diff --git a/nbproject/project.properties b/nbproject/project.properties new file mode 100644 index 0000000..18fa718 --- /dev/null +++ b/nbproject/project.properties @@ -0,0 +1,8 @@ +auxiliary.org-netbeans-modules-php-smarty.smarty-framework=true +include.path=${php.global.include.path} +php.version=PHP_73 +source.encoding=UTF-8 +src.dir=. +tags.asp=false +tags.short=false +web.root=. diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 0000000..b4dee34 --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,9 @@ + + + org.netbeans.modules.php.project + + + ConLite21 + + + diff --git a/phpdoc.dist.xml b/phpdoc.dist.xml new file mode 100644 index 0000000..6069d11 --- /dev/null +++ b/phpdoc.dist.xml @@ -0,0 +1,31 @@ + + + CMS ConLite +