init files
Dieser Commit ist enthalten in:
Ursprung
b35691013e
Commit
96d6aa23c6
19 geänderte Dateien mit 1572 neuen und 0 gelöschten Zeilen
47
includes/config.plugin.php
Normale Datei
47
includes/config.plugin.php
Normale Datei
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/**
|
||||
* Project:
|
||||
* Contenido Content Management System
|
||||
*
|
||||
* Description:
|
||||
* Config file for the plugin linkchecker
|
||||
*
|
||||
* Requirements:
|
||||
* @con_php_req 5.0
|
||||
*
|
||||
*
|
||||
* @package Contenido Backend plugins
|
||||
* @version 2.0.1
|
||||
* @author Frederic Schneider
|
||||
* @copyright four for business AG <www.4fb.de>
|
||||
* @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 2007-08-08
|
||||
* modified 2007-12-13, 2008-05-15
|
||||
*
|
||||
* $Id: config.plugin.php 128 2019-07-03 11:58:28Z oldperl $:
|
||||
* }}
|
||||
*
|
||||
*/
|
||||
|
||||
if(!defined('CON_FRAMEWORK')) {
|
||||
die('Illegal call');
|
||||
}
|
||||
|
||||
$plugin_name = "linkchecker";
|
||||
$cfg['plugins']['linkchecker'] = $cfg['path']['contenido'] . "plugins/" . $plugin_name . "/";
|
||||
$cfg['tab']['whitelist'] = $cfg['sql']['sqlprefix'] . '_pi_linkwhitelist';
|
||||
|
||||
// Templates
|
||||
$cfg['templates']['linkchecker_test'] = $cfg['plugins']['linkchecker'] . "templates/standard/template.linkchecker_test.html";
|
||||
$cfg['templates']['linkchecker_test_errors'] = $cfg['plugins']['linkchecker'] . "templates/standard/template.linkchecker_test_errors.html";
|
||||
$cfg['templates']['linkchecker_test_errors_cat'] = $cfg['plugins']['linkchecker'] . "templates/standard/template.linkchecker_test_errors_cat.html";
|
||||
$cfg['templates']['linkchecker_test_nothing'] = $cfg['plugins']['linkchecker'] . "templates/standard/template.linkchecker_test_nothing.html";
|
||||
$cfg['templates']['linkchecker_noerrors'] = $cfg['plugins']['linkchecker'] . "templates/standard/template.linkchecker_noerrors.html";
|
||||
$cfg['templates']['linkchecker_whitelist'] = $cfg['plugins']['linkchecker'] . "templates/standard/template.linkchecker_whitelist.html";
|
||||
$cfg['templates']['linkchecker_whitelist_urls'] = $cfg['plugins']['linkchecker'] . "templates/standard/template.linkchecker_whitelist_urls.html";
|
||||
?>
|
89
includes/include.checkperms.php
Normale Datei
89
includes/include.checkperms.php
Normale Datei
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
/**
|
||||
* Project:
|
||||
* Contenido Content Management System
|
||||
*
|
||||
* Description:
|
||||
* Checks userrights for cats
|
||||
*
|
||||
* Requirements:
|
||||
* @con_php_req 5.0
|
||||
*
|
||||
*
|
||||
* @package Contenido Backend plugins
|
||||
* @version 1.0.1
|
||||
* @author Mario Diaz
|
||||
* @copyright four for business AG <www.4fb.de>
|
||||
* @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 2006-06-08
|
||||
* modified 2007-11-07, Frederic Schneider, Linkchecker-Edition
|
||||
* modified 2008-02-08, Andreas Lindner, Performance enhancements
|
||||
* modified 2008-07-02, Frederic Schneider, add security fix
|
||||
*
|
||||
* $Id: include.checkperms.php 128 2019-07-03 11:58:28Z oldperl $:
|
||||
* }}
|
||||
*
|
||||
*/
|
||||
|
||||
if(!defined('CON_FRAMEWORK')) {
|
||||
die('Illegal call');
|
||||
}
|
||||
|
||||
function cCatPerm($widcat, $db = null)
|
||||
{
|
||||
global $cfg, $sess, $auth, $group_id, $_arrCatIDs_cCP;
|
||||
|
||||
if (strpos($auth->auth['perm'], 'admin') !== FALSE) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (is_null($db) || !is_object($db)) {
|
||||
$db = new DB_ConLite;
|
||||
}
|
||||
|
||||
$group_ids = getGroupIDs($db);
|
||||
$group_ids[] = Contenido_Security::escapeDB($auth->auth['uid'], $db);
|
||||
|
||||
if (!is_array($_arrCatIDs_cCP)) {
|
||||
$_arrCatIDs_cCP = array();
|
||||
|
||||
$sql_inc = " user_id='";
|
||||
$sql_inc .= implode("' OR user_id='", $group_ids) . "' ";
|
||||
$sql = "SELECT idcat FROM ".$cfg['tab']['rights']."
|
||||
WHERE idarea=6 AND idaction=359 AND ($sql_inc)";
|
||||
|
||||
$db->query($sql);
|
||||
|
||||
while ($db->next_record()) {
|
||||
$_arrCatIDs_cCP[$db->f('idcat')] = '';
|
||||
}
|
||||
}
|
||||
|
||||
return array_key_exists($widcat, $_arrCatIDs_cCP);
|
||||
}
|
||||
|
||||
function getGroupIDs(&$db)
|
||||
{
|
||||
global $cfg, $sess, $auth, $group_id, $_arrGroupIDs_gGI;
|
||||
|
||||
if (is_array($_arrGroupIDs_gGI)) {
|
||||
return $_arrGroupIDs_gGI;
|
||||
}
|
||||
|
||||
$sql = "SELECT group_id FROM ".$cfg["tab"]["groupmembers"]." WHERE user_id='".Contenido_Security::escapeDB($auth->auth["uid"], $db)."'";
|
||||
$db->query($sql);
|
||||
|
||||
$_arrGroupIDs_gGI = array();
|
||||
|
||||
while ($db->next_record())
|
||||
$_arrGroupIDs_gGI[] = $db->f('group_id');
|
||||
|
||||
return $_arrGroupIDs_gGI;
|
||||
}
|
||||
|
||||
?>
|
413
includes/include.linkchecker.php
Normale Datei
413
includes/include.linkchecker.php
Normale Datei
|
@ -0,0 +1,413 @@
|
|||
<?php
|
||||
/**
|
||||
* Project:
|
||||
* Contenido Content Management System
|
||||
*
|
||||
* Description:
|
||||
* Main file for the plugin linkchecker
|
||||
*
|
||||
* Requirements:
|
||||
* @con_php_req 5.0
|
||||
*
|
||||
*
|
||||
* @package Contenido Backend plugins
|
||||
* @version 2.0.1
|
||||
* @author Frederic Schneider
|
||||
* @copyright four for business AG <www.4fb.de>
|
||||
* @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 2007-08-08
|
||||
* modified 2008-02-08, Andread Lindner, performance enhancements
|
||||
* modified 2008-04-05, Holger Librenz, fixed wrong include-path for
|
||||
* PEAR cache module
|
||||
* modified 2008-05-14, Frederic Schneider, new version
|
||||
* modified 2008-06-21, Frederic Schneider, array initalization
|
||||
* modified 2008-07-02, Frederic Schneider, add security fix
|
||||
* modified 2008-07-07, Frederic Schneider, fixed wrong language var
|
||||
*
|
||||
* $Id: include.linkchecker.php 128 2019-07-03 11:58:28Z oldperl $:
|
||||
* }}
|
||||
*
|
||||
*/
|
||||
|
||||
if(!defined('CON_FRAMEWORK')) {
|
||||
die('Illegal call');
|
||||
}
|
||||
|
||||
$plugin_name = "linkchecker";
|
||||
global $cfg;
|
||||
|
||||
if(!$perm->have_perm_area_action($plugin_name, $plugin_name) && $cronjob != true) {
|
||||
exit;
|
||||
}
|
||||
|
||||
if((int) $client == 0 && $cronjob != true) {
|
||||
$notification->displayNotification("error", i18n("No Client selected"));
|
||||
exit;
|
||||
}
|
||||
|
||||
// If no mode defined, use mode three
|
||||
if(empty($_GET['mode'])) {
|
||||
$_GET['mode'] = 3;
|
||||
}
|
||||
|
||||
// If no action definied
|
||||
if(empty($_GET['action'])) {
|
||||
$_GET['action'] = 'linkchecker';
|
||||
$action = "linkchecker";
|
||||
}
|
||||
|
||||
plugin_include('linkchecker', 'includes/config.plugin.php');
|
||||
plugin_include('linkchecker', 'includes/include.checkperms.php');
|
||||
plugin_include('linkchecker', 'includes/include.linkchecker_tests.php');
|
||||
cInclude('pear', 'PEAR.php');
|
||||
cInclude('pear', 'Cache/Lite.php');
|
||||
|
||||
|
||||
// Initialization
|
||||
$actionID = 500;
|
||||
$aCats = array();
|
||||
$aSearchIDInfosArt = array();
|
||||
$aSearchIDInfosCatArt = array();
|
||||
$aSearchIDInfosNonID = array();
|
||||
$iWhitelist_timeout = 2592000; // 30 days
|
||||
|
||||
// Var initialization
|
||||
$aUrl = array('cms' => $cfgClient[$client]['path']['htmlpath'], 'contenido' => $cfg['path']['contenido_fullhtml']);
|
||||
|
||||
// Template- and languagevars
|
||||
if($cronjob != true) {
|
||||
$tpl->set('s', 'FULLHTML', $aUrl['contenido']);
|
||||
$tpl->set('s', 'MODE', intval($_GET['mode']));
|
||||
$tpl->set('s', 'URL', $aUrl['contenido']);
|
||||
$tpl->set('s', 'SID', $sess->id);
|
||||
}
|
||||
|
||||
// Fill Subnav I
|
||||
$sLink = $sess->url("main.php?area=linkchecker&frame=4&action=linkchecker") . '&mode=';
|
||||
|
||||
// Fill Subnav II
|
||||
$tpl->set('s', 'INTERNS_HREF', $sLink . '1');
|
||||
$tpl->set('s', 'INTERNS_LABEL', i18n("Interns"));
|
||||
$tpl->set('s', 'EXTERNS_HREF', $sLink . '2');
|
||||
$tpl->set('s', 'EXTERNS_LABEL', i18n("Externs"));
|
||||
$tpl->set('s', 'INTERNS_EXTERNS_HREF', $sLink . '3');
|
||||
$tpl->set('s', 'INTERNS_EXTERNS_LABEL', i18n("Intern/extern Links"));
|
||||
|
||||
// Fill Subnav III
|
||||
$tpl->set('s', 'UPDATE_HREF', $sLink . intval($_GET['mode']) . '&live=1');
|
||||
|
||||
// Cache options
|
||||
$aCacheName = array('errors' => $sess->id, 'errorscount' => $aCacheName['errors'] . "ErrorsCountChecked");
|
||||
$oCache = new Cache_Lite(array('cacheDir' => $cfgClient[$client]['path']['frontend'] . "cache/", 'caching' => true, 'lifeTime' => 1209600, 'automaticCleaningFactor' => 1));
|
||||
|
||||
/* *********
|
||||
Program code
|
||||
********* */
|
||||
|
||||
/* function linksort */
|
||||
function linksort($sErrors) {
|
||||
|
||||
if($_GET['sort'] == "nameart") {
|
||||
|
||||
foreach($sErrors as $key => $aRow) {
|
||||
$aNameart[$key] = $aRow['nameart'];
|
||||
}
|
||||
|
||||
array_multisort($sErrors, SORT_ASC, SORT_STRING, $aNameart);
|
||||
|
||||
} elseif($_GET['sort'] == "namecat") {
|
||||
|
||||
foreach($sErrors as $key => $aRow) {
|
||||
$aNamecat[$key] = $aRow['namecat'];
|
||||
}
|
||||
|
||||
array_multisort($sErrors, SORT_ASC, SORT_STRING, $aNamecat);
|
||||
|
||||
} elseif($_GET['sort'] == "wronglink") {
|
||||
|
||||
foreach($sErrors as $key => $aRow) {
|
||||
$aWronglink[$key] = $aRow['url'];
|
||||
}
|
||||
|
||||
array_multisort($sErrors, SORT_ASC, SORT_STRING, $aWronglink);
|
||||
|
||||
} elseif($_GET['sort'] == "error_type") {
|
||||
|
||||
foreach($sErrors as $key => $aRow) {
|
||||
$aError_type[$key] = $aRow['error_type'];
|
||||
}
|
||||
|
||||
array_multisort($sErrors, SORT_ASC, SORT_STRING, $aError_type);
|
||||
|
||||
}
|
||||
|
||||
return $sErrors;
|
||||
|
||||
}
|
||||
|
||||
// function url_is_image
|
||||
function url_is_image($sUrl) {
|
||||
|
||||
if(substr($sUrl, -3, 3) == "gif"
|
||||
|| substr($sUrl, -3, 3) == "jpg"
|
||||
|| substr($sUrl, -4, 4) == "jpeg"
|
||||
|| substr($sUrl, -3, 3) == "png"
|
||||
|| substr($sUrl, -3, 3) == "tif"
|
||||
|| substr($sUrl, -3, 3) == "psd"
|
||||
|| substr($sUrl, -3, 3) == "bmp") {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// function url_is_uri
|
||||
function url_is_uri($sUrl) {
|
||||
|
||||
if(substr($sUrl, 0, 4) == "file"
|
||||
|| substr($sUrl, 0, 3) == "ftp"
|
||||
|| substr($sUrl, 0, 4) == "http"
|
||||
|| substr($sUrl, 0, 2) == "ww") {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Check: Changes after last check? */
|
||||
$sql = "SELECT lastmodified FROM " . $cfg['tab']['content'] . " content
|
||||
LEFT JOIN " . $cfg['tab']['art_lang'] . " art ON (art.idartlang = content.idartlang)
|
||||
WHERE art.online = '1'";
|
||||
|
||||
/* Whitelist: Add */
|
||||
if(!empty($_GET['whitelist'])) {
|
||||
$sql = "INSERT INTO " . $cfg['tab']['whitelist'] . " VALUES ('" . Contenido_Security::escapeDB(base64_decode($_GET['whitelist']), $db) . "', '" . time() . "')";
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
/* Whitelist: Get */
|
||||
$sql = "SELECT url FROM " . $cfg['tab']['whitelist'] . " WHERE lastview < " . (time() + $iWhitelist_timeout) . "
|
||||
AND lastview > " . (time() - $iWhitelist_timeout);
|
||||
$db->query($sql);
|
||||
|
||||
$aWhitelist = array();
|
||||
while($db->next_record()) {
|
||||
$aWhitelist[] = $db->f("url");
|
||||
}
|
||||
|
||||
/* Get all links */
|
||||
// Cache errors
|
||||
$sCache_errors = $oCache->get($aCacheName['errors'], intval($_GET['mode']));
|
||||
|
||||
// Search if cache doesn't exist or we're in live mode
|
||||
if($sCache_errors && $_GET['live'] != 1) {
|
||||
$aErrors = unserialize($sCache_errors);
|
||||
} else { // If no cache exists
|
||||
|
||||
// Select all categorys
|
||||
$sql = "SELECT idcat FROM " . $cfg['tab']['cat'] . " GROUP BY idcat";
|
||||
$db->query($sql);
|
||||
|
||||
while($db->next_record()) {
|
||||
|
||||
if($cronjob != true) { // Check userrights, if no cronjob
|
||||
|
||||
$iCheck = cCatPerm($db->f("idcat"), $db2);
|
||||
|
||||
if($iCheck == true) {
|
||||
$aCats[] = Contenido_Security::toInteger($db->f("idcat"));
|
||||
}
|
||||
|
||||
} else {
|
||||
$aCats[] = Contenido_Security::toInteger($db->f("idcat"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Use SQL-WHERE if lang is not zero
|
||||
if($langart != 0) {
|
||||
$sLang_where = "AND art.idlang = '" . Contenido_Security::toInteger($langart) . "' AND catName.idlang = '" . Contenido_Security::toInteger($langart) . "'";
|
||||
} elseif(!isset($langart)) {
|
||||
$sLang_where = "AND art.idlang = '" . Contenido_Security::toInteger($lang) . "' AND catName.idlang = '" . Contenido_Security::toInteger($lang) . "'";
|
||||
}
|
||||
if(!empty($aCats)) {
|
||||
// How many articles exists? [Text]
|
||||
$sql = "SELECT art.title, art.idlang, cat.idart, cat.idcat, catName.name AS namecat, con.value FROM " . $cfg['tab']['cat_art'] . " cat
|
||||
LEFT JOIN " . $cfg['tab']['art_lang'] . " art ON (art.idart = cat.idart)
|
||||
LEFT JOIN " . $cfg['tab']['cat_lang'] . " catName ON (catName.idcat = cat.idcat)
|
||||
LEFT JOIN " . $cfg['tab']['content'] . " con ON (con.idartlang = art.idartlang)
|
||||
WHERE (con.value LIKE '%action%' OR con.value LIKE '%data%' OR con.value LIKE '%href%' OR con.value LIKE '%src%')
|
||||
AND cat.idcat IN (0, " . join(", ", $aCats) . ") AND cat.idcat != '0' " . $sLang_where . "
|
||||
AND art.online = '1' AND art.redirect = '0'";
|
||||
$db->query($sql);
|
||||
|
||||
while($db->next_record()) {
|
||||
|
||||
// Text decode
|
||||
$value = urldecode($db->f("value"));
|
||||
|
||||
// Search the text
|
||||
searchLinks($value, $db->f("idart"), $db->f("title"), $db->f("idcat"), $db->f("namecat"), $db->f("idlang"));
|
||||
|
||||
// Search front_content.php-links
|
||||
if($_GET['mode'] != 2) {
|
||||
searchFrontContentLinks($value, $db->f("idart"), $db->f("title"), $db->f("idcat"), $db->f("namecat"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// How many articles exists? [Redirects]
|
||||
$sql = "SELECT art.title, art.redirect_url, art.idlang, cat.idart, cat.idcat, catName.name AS namecat FROM " . $cfg['tab']['cat_art'] . " cat
|
||||
LEFT JOIN " . $cfg['tab']['art_lang'] . " art ON (art.idart = cat.idart)
|
||||
LEFT JOIN " . $cfg['tab']['cat_lang'] . " catName ON (catName.idcat = cat.idcat)
|
||||
WHERE cat.idcat IN (0, " . join(", ", $aCats) . ") AND cat.idcat != '0' " . $sLang_where . "
|
||||
AND art.online = '1' AND art.redirect = '1'";
|
||||
$db->query($sql);
|
||||
|
||||
while($db->next_record()) {
|
||||
|
||||
// Search links
|
||||
searchLinks($db->f("redirect_url"), $db->f("idart"), $db->f("title"), $db->f("idcat"), $db->f("namecat"), $db->f("idlang"), "Redirect");
|
||||
|
||||
// Search front_content.php-links
|
||||
if($_GET['mode'] != 2) {
|
||||
searchFrontContentLinks($db->f("redirect_url"), $db->f("idart"), $db->f("title"), $db->f("idcat"), $db->f("namecat"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Check the links
|
||||
checkLinks();
|
||||
}
|
||||
}
|
||||
|
||||
/* Analysis of the errors */
|
||||
// Templateset
|
||||
if($cronjob != true) {
|
||||
$tpl->set('s', 'TITLE', i18n('Link analysis from ', $plugin_name) . strftime(i18n('%Y-%m-%d', $plugin_name), time()));
|
||||
}
|
||||
|
||||
// If no errors found, say that
|
||||
if(empty($aErrors) && $cronjob != true) {
|
||||
$tpl->set('s', 'NO_ERRORS', i18n("<strong>No errors</strong> were found.", $plugin_name));
|
||||
$tpl->generate($cfg['templates']['linkchecker_noerrors']);
|
||||
} elseif(!empty($aErrors) && $cronjob != true) {
|
||||
|
||||
$tpl->set('s', 'ERRORS_HEADLINE', i18n("Total checked links", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_ARTID', i18n("idart", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_ARTICLE', i18n("Article", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_CATID', i18n("idcat", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_CATNAME', i18n("Category", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_DESCRIPTION', i18n("Description", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_LINK', i18n("Linkerror", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_LINKS_ARTICLES', i18n("Links to articles", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_LINKS_CATEGORYS', i18n("Links to categories", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_LINKS_DOCIMAGES', i18n("Links to documents and images", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_OTHERS', i18n("Links to extern sites and not defined links", $plugin_name));
|
||||
$tpl->set('s', 'ERRORS_HEADLINE_WHITELIST', "Whitelist");
|
||||
$tpl->set('s', 'ERRORS_HELP_ERRORS', i18n("Wrong links", $plugin_name));
|
||||
|
||||
// error_output initialization
|
||||
$aError_output = array('art' => '', 'cat' => '', 'docimages' => '', 'others' => '');
|
||||
|
||||
foreach($aErrors as $sKey => $aRow) {
|
||||
|
||||
$aRow = linksort($aRow);
|
||||
|
||||
for($i = 0; $i < count($aRow); $i++) {
|
||||
|
||||
$tpl2 = new Template;
|
||||
$tpl2->reset();
|
||||
|
||||
$tpl2->set('s', 'ERRORS_ERROR_TYPE', $aRow[$i]['error_type']);
|
||||
$tpl2->set('s', 'ERRORS_ARTID', $aRow[$i]['idart']);
|
||||
$tpl2->set('s', 'ERRORS_ARTICLE', $aRow[$i]['nameart']);
|
||||
$tpl2->set('s', 'ERRORS_ARTICLE_SHORT', substr($aRow[$i]['nameart'], 0, 20) . ((strlen($aRow[$i]['nameart']) > 20) ? ' ...' : ''));
|
||||
$tpl2->set('s', 'ERRORS_CATID', $aRow[$i]['idcat']);
|
||||
$tpl2->set('s', 'ERRORS_LINK', $aRow[$i]['url']);
|
||||
$tpl2->set('s', 'ERRORS_LINK_ENCODE', base64_encode($aRow[$i]['url']));
|
||||
$tpl2->set('s', 'ERRORS_LINK_SHORT', substr($aRow[$i]['url'], 0, 55) . ((strlen($aRow[$i]['url']) > 55) ? ' ...' : ''));
|
||||
$tpl2->set('s', 'ERRORS_CATNAME', $aRow[$i]['namecat']);
|
||||
$tpl2->set('s', 'ERRORS_CATNAME_SHORT', substr($aRow[$i]['namecat'], 0, 20) . ((strlen($aRow[$i]['namecat']) > 20) ? ' ...' : ''));
|
||||
$tpl2->set('s', 'MODE', $_GET['mode']);
|
||||
$tpl2->set('s', 'URL', $aUrl['contenido']);
|
||||
$tpl2->set('s', 'SID', $sess->id);
|
||||
|
||||
if($aRow[$i]['error_type'] == "unknown") {
|
||||
$tpl2->set('s', 'ERRORS_ERROR_TYPE_HELP', i18n("Unknown: articles, documents etc. do not exist.", $plugin_name));
|
||||
} elseif($aRow[$i]['error_type'] == "offline") {
|
||||
$tpl2->set('s', 'ERRORS_ERROR_TYPE_HELP', i18n("Offline: article or category is offline.", $plugin_name));
|
||||
} elseif($aRow[$i]['error_type'] == "startart") {
|
||||
$tpl2->set('s', 'ERRORS_ERROR_TYPE_HELP', i18n("Offline: article or category is offline.", $plugin_name));
|
||||
} elseif($aRow[$i]['error_type'] == "dbfs") {
|
||||
$tpl2->set('s', 'ERRORS_ERROR_TYPE_HELP', i18n("dbfs: no matches found in the dbfs database.", $plugin_name));
|
||||
}
|
||||
|
||||
if($sKey != "cat") {
|
||||
$aError_output[$sKey] .= $tpl2->generate($cfg['templates']['linkchecker_test_errors'], 1);
|
||||
} else {
|
||||
$aError_output[$sKey] .= $tpl2->generate($cfg['templates']['linkchecker_test_errors_cat'], 1); // special template for idcats
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Counter */
|
||||
if($iCounter = $oCache->get($aCacheName['errorscount'], intval($_GET['mode']))) { // Cache exists?
|
||||
$iErrors_count_checked = $iCounter;
|
||||
} else { // Count searched links: idarts + idcats + idcatarts + others
|
||||
$iErrors_count_checked = count($aSearchIDInfosArt) + count($aSearchIDInfosCat) + count($aSearchIDInfosCatArt) + count($aSearchIDInfosNonID);
|
||||
}
|
||||
|
||||
// Count errors
|
||||
foreach($aErrors as $sKey => $aRow) {
|
||||
$iErrors_counted += count($aErrors[$sKey]);
|
||||
}
|
||||
|
||||
$tpl->set('s', 'ERRORS_COUNT_CHECKED', $iErrors_count_checked);
|
||||
$tpl->set('s', 'ERRORS_COUNT_ERRORS', $iErrors_counted);
|
||||
$tpl->set('s', 'ERRORS_COUNT_ERRORS_PERCENT', round(($iErrors_counted * 100) / $iErrors_count_checked, 2));
|
||||
|
||||
/* Template output */
|
||||
foreach($aError_output as $sKey => $sValue) {
|
||||
|
||||
if(empty($aError_output[$sKey])) { // Errors for this type?
|
||||
$tpl2->set('s', 'ERRORS_NOTHING', i18n("No errors for this type.", $plugin_name));
|
||||
$aError_output[$sKey] = $tpl2->generate($cfg['templates']['linkchecker_test_nothing'], 1);
|
||||
}
|
||||
|
||||
$tpl->set('s', 'ERRORS_SHOW_' . strtoupper($sKey), $aError_output[$sKey]);
|
||||
|
||||
if(count($aErrors[$sKey]) > 0) {
|
||||
$tpl->set('s', 'ERRORS_COUNT_ERRORS_' . strtoupper($sKey), '<span style="color: #FF0000;">' . count($aErrors[$sKey]) . '</span>');
|
||||
} else {
|
||||
$tpl->set('s', 'ERRORS_COUNT_ERRORS_' . strtoupper($sKey), count($aErrors[$key]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$tpl->generate($cfg['templates']['linkchecker_test']);
|
||||
|
||||
/* Cache */
|
||||
// Remove older cache
|
||||
$oCache->remove($aCacheName['errors'], intval($_GET['mode']));
|
||||
|
||||
// Build new cache
|
||||
$oCache->save(serialize($aErrors), $aCacheName['errors'], intval($_GET['mode']));
|
||||
$oCache->save($iErrors_count_checked, $aCacheName['errorscount'], intval($_GET['mode']));
|
||||
|
||||
}
|
||||
|
||||
// Log
|
||||
if($cronjob != true) {
|
||||
$backend->log(0, 0, $client, $lang, $action);
|
||||
}
|
||||
?>
|
316
includes/include.linkchecker_tests.php
Normale Datei
316
includes/include.linkchecker_tests.php
Normale Datei
|
@ -0,0 +1,316 @@
|
|||
<?php
|
||||
/**
|
||||
* Project:
|
||||
* Contenido Content Management System
|
||||
*
|
||||
* Description:
|
||||
* Some linktests for the Linkchecker
|
||||
*
|
||||
* Requirements:
|
||||
* @con_php_req 5.0
|
||||
*
|
||||
*
|
||||
* @package Contenido Backend plugins
|
||||
* @version 2.0.2
|
||||
* @author Frederic Schneider
|
||||
* @copyright four for business AG <www.4fb.de>
|
||||
* @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-02-28
|
||||
* modified 2008-06-05, Frederic Schneider
|
||||
* modified 2008-06-26, Frederic Schneider, add security fix
|
||||
* modified 2009-11-06, Murat Purc, replaced deprecated functions (PHP 5.3 ready)
|
||||
* modified 2010-01-07, Murat Purc, fixed usage of wrong variable, see [#CON-292]
|
||||
* modified 2010-11-26, Dominik Ziegler, resetten array with redefinition of empty array instead of unsetting the variable [#CON-369]
|
||||
*
|
||||
* $Id: include.linkchecker_tests.php 131 2019-07-07 18:14:22Z oldperl $:
|
||||
* }}
|
||||
*
|
||||
*/
|
||||
|
||||
if(!defined('CON_FRAMEWORK')) {
|
||||
die('Illegal call');
|
||||
}
|
||||
|
||||
// Checks all links without front_content.php
|
||||
function checkLinks() {
|
||||
global $auth, $cfgClient, $client, $cfg, $cronjob, $db, $aErrors, $lang, $langart, $whitelist;
|
||||
global $aSearchIDInfosArt, $aSearchIDInfosCat, $aSearchIDInfosCatArt, $aSearchIDInfosNonID;
|
||||
|
||||
if(count($aSearchIDInfosArt) > 0) { // Checks idarts
|
||||
|
||||
for($i = 0; $i < count($aSearchIDInfosArt); $i++) {
|
||||
|
||||
if($i == 0) {
|
||||
$sSearch = Contenido_Security::toInteger($aSearchIDInfosArt[$i]['id']);
|
||||
} else {
|
||||
$sSearch .= ", " . Contenido_Security::toInteger($aSearchIDInfosArt[$i]['id']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Check articles
|
||||
$aFind = array();
|
||||
$sql = "SELECT idart, online FROM " . $cfg['tab']['art_lang'] . " WHERE idart IN (" . $sSearch . ")";
|
||||
$db->query($sql);
|
||||
|
||||
while($db->next_record()) {
|
||||
$aFind[$db->f("idart")] = array("online" => $db->f("online"));
|
||||
}
|
||||
|
||||
for($i = 0; $i < count($aSearchIDInfosArt); $i++) {
|
||||
|
||||
if(isset($aFind[$aSearchIDInfosArt[$i]['id']]) && $aFind[$aSearchIDInfosArt[$i]['id']]['online'] == 0) {
|
||||
$aErrors['art'][] = array_merge($aSearchIDInfosArt[$i], array("error_type" => "offline"));
|
||||
} elseif(!isset($aFind[$aSearchIDInfosArt[$i]['id']])) {
|
||||
$aErrors['art'][] = array_merge($aSearchIDInfosArt[$i], array("error_type" => "unknown"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$int_cnt_aSearchIDInfosCat = 0;
|
||||
|
||||
if(is_countable($aSearchIDInfosCat)) {
|
||||
$int_cnt_aSearchIDInfosCat = count($aSearchIDInfosCat);
|
||||
}
|
||||
|
||||
if($int_cnt_aSearchIDInfosCat > 0) { // Checks idcats
|
||||
|
||||
for($i = 0; $i < $int_cnt_aSearchIDInfosCat; $i++) {
|
||||
|
||||
if($i == 0) {
|
||||
$sSearch = $aSearchIDInfosCat[$i]['id'];
|
||||
} else {
|
||||
$sSearch .= ", " . $aSearchIDInfosCat[$i]['id'];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Check categorys
|
||||
$aFind = array();
|
||||
$sql = "SELECT idcat, startidartlang, visible FROM " . $cfg['tab']['cat_lang'] . " WHERE idcat IN (" . $sSearch . ") AND idlang = '" . Contenido_Security::toInteger($lang) . "'";
|
||||
$db->query($sql);
|
||||
|
||||
while($db->next_record()) {
|
||||
$aFind[$db->f("idcat")] = array("online" => $db->f("visible"), "startidart" => $db->f("startidartlang"));
|
||||
}
|
||||
|
||||
for($i = 0; $i < count($aSearchIDInfosCat); $i++) {
|
||||
|
||||
if(is_array($aFind[$aSearchIDInfosCat[$i]['id']]) && $aFind[$aSearchIDInfosCat[$i]['id']]['startidart'] == 0) {
|
||||
$aErrors['cat'][] = array_merge($aSearchIDInfosCat[$i], array("error_type" => "startart"));
|
||||
} elseif(is_array($aFind[$aSearchIDInfosCat[$i]['id']]) && $aFind[$aSearchIDInfosCat[$i]['id']]['online'] == 0) {
|
||||
$aErrors['cat'][] = array_merge($aSearchIDInfosCat[$i], array("error_type" => "offline"));
|
||||
} elseif(!is_array($aFind[$aSearchIDInfosCat[$i]['id']])) {
|
||||
$aErrors['cat'][] = array_merge($aSearchIDInfosCat[$i], array("error_type" => "unknown"));
|
||||
}
|
||||
|
||||
if(is_array($aFind[$aSearchIDInfosCat[$i]['id']]) && $aFind[$aSearchIDInfosCat[$i]['id']]['startidart'] != 0) {
|
||||
|
||||
$sql = "SELECT idart FROM " . $cfg['tab']['art_lang'] . " WHERE idartlang = '" . $aFind[$aSearchIDInfosCat[$i]['id']]['startidart'] . "' AND online = '1'";
|
||||
$db->query($sql);
|
||||
|
||||
if($db->num_rows() == 0) {
|
||||
$aErrors['cat'][] = array_merge($aSearchIDInfosCat[$i], array("error_type" => "startart"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(count($aSearchIDInfosCatArt) > 0) { // Checks idcatarts
|
||||
|
||||
for($i = 0; $i < count($aSearchIDInfosCatArt); $i++) {
|
||||
|
||||
if($i == 0) {
|
||||
$sSearch = Contenido_Security::toInteger($aSearchIDInfosCatArt[$i]['id']);
|
||||
} else {
|
||||
$sSearch .= ", " . Contenido_Security::toInteger($aSearchIDInfosCatArt[$i]['id']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Check articles
|
||||
$aFind = array();
|
||||
$sql = "SELECT idcatart FROM " . $cfg['tab']['cat_art'] . " WHERE idcatart IN (" . $sSearch . ")";
|
||||
$db->query($sql);
|
||||
|
||||
while($db->next_record()) {
|
||||
$aFind[] = $db->f("idcatart");
|
||||
}
|
||||
|
||||
for($i = 0; $i < count($aSearchIDInfosCatArt); $i++) {
|
||||
|
||||
if(!in_array($aSearchIDInfosCatArt[$i]['id'], $aFind)) {
|
||||
$aErrors['art'][] = array_merge($aSearchIDInfosCatArt[$i], array("error_type" => "unknown"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(count($aSearchIDInfosNonID) != 0) { // Checks other links (e. g. http, www, dfbs)
|
||||
|
||||
// Select userrights (is the user admin or sysadmin?)
|
||||
$sql = "SELECT username FROM " . $cfg['tab']['phplib_auth_user_md5'] . " WHERE user_id='" . Contenido_Security::escapeDB($auth->auth['uid'], $db) . "' AND perms LIKE '%admin%'";
|
||||
$db->query($sql);
|
||||
|
||||
if($db->num_rows() > 0 || $cronjob == true) { // User is admin when he is or when he run the cronjob
|
||||
$iAdmin = true;
|
||||
}
|
||||
|
||||
for($i = 0; $i < count($aSearchIDInfosNonID); $i++) {
|
||||
|
||||
if(url_is_uri($aSearchIDInfosNonID[$i]['url'])) {
|
||||
|
||||
if(substr($aSearchIDInfosNonID[$i]['url'], 0, strlen($aSearchIDInfosNonID[$i]['url'])) == $cfgClient[$client]['path']['htmlpath']) {
|
||||
$iPing = @file_exists(str_replace($cfgClient[$client]['path']['htmlpath'], $cfgClient[$client]['path']['frontend'], $aSearchIDInfosNonID[$i]['url']));
|
||||
} else {
|
||||
$iPing = @fopen($aSearchIDInfosNonID[$i]['url'], 'r');
|
||||
}
|
||||
|
||||
if(!$iPing) {
|
||||
|
||||
if(url_is_image($aSearchIDInfosNonID[$i]['url'])) {
|
||||
$aErrors['docimages'][] = array_merge($aSearchIDInfosNonID[$i], array("error_type" => "unknown"));
|
||||
} else {
|
||||
$aErrors['others'][] = array_merge($aSearchIDInfosNonID[$i], array("error_type" => "unknown"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} elseif(substr($aSearchIDInfosNonID[$i]['url'], strlen($aSearchIDInfosNonID[$i]['url'])-5, 5) == ".html") {
|
||||
|
||||
$iPing = @file_exists($cfgClient[$client]['path']['htmlpath'] . $aSearchIDInfosNonID[$i]['url']);
|
||||
|
||||
if(!$iPing) {
|
||||
$aErrors['art'][] = array_merge($aSearchIDInfosNonID[$i], array("error_type" => "unknown"));
|
||||
}
|
||||
|
||||
} elseif(substr($aSearchIDInfosNonID[$i]['url'], 0, 20) == "dbfs.php?file=dbfs:/") {
|
||||
|
||||
$sDBurl = substr($aSearchIDInfosNonID[$i]['url'], 20, strlen($aSearchIDInfosNonID[$i]['url']));
|
||||
|
||||
$iPos = strrpos($sDBurl, '/');
|
||||
$sDirname = substr($sDBurl, 0, $iPos);
|
||||
$sFilename = substr($sDBurl, $iPos + 1);
|
||||
|
||||
// Check categorys
|
||||
$sql = "SELECT iddbfs FROM " . $cfg['tab']['dbfs'] . " WHERE dirname IN('" . $sDirname . "', '" . clHtmlEntityDecode($sDirname) . "', '" . urldecode($sDirname) . "') AND filename = '" . $sFilename . "'";
|
||||
$db->query($sql);
|
||||
|
||||
if($db->num_rows() == 0) {
|
||||
$aErrors['docimages'][] = array_merge($aSearchIDInfosNonID[$i], array("error_type" => "dbfs"));
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if(!file_exists($cfgClient[$client]['path']['frontend'] . $aSearchIDInfosNonID[$i]['url'])) {
|
||||
|
||||
if(url_is_image($aSearchIDInfosNonID[$i]['url'])) {
|
||||
$aErrors['docimages'][] = array_merge($aSearchIDInfosNonID[$i], array("error_type" => "unknown"));
|
||||
} else {
|
||||
$aErrors['others'][] = array_merge($aSearchIDInfosNonID[$i], array("error_type" => "unknown"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $aErrors;
|
||||
|
||||
}
|
||||
|
||||
// Searchs front_content.php-links
|
||||
function searchFrontContentLinks($sValue, $iArt, $sArt, $iCat, $sCat) {
|
||||
global $aSearchIDInfosArt, $aSearchIDInfosCat, $aSearchIDInfosCatArt, $aWhitelist;
|
||||
|
||||
// detect urls with parameter idart
|
||||
$matches = array();
|
||||
if (preg_match_all('/(?!file|ftp|http|ww)front_content.php\?idart=([0-9]*)/i', $sValue, $matches)) {
|
||||
for ($i = 0; $i < count($matches[0]); $i++) {
|
||||
if (!in_array($matches[0][$i], $aWhitelist)) {
|
||||
$aSearchIDInfosArt[] = array(
|
||||
"id" => $matches[1][$i], "url" => $matches[0][$i], "idart" => $iArt, "nameart" => $sArt, "idcat" => $iCat, "namecat" => $sCat, "urltype" => "intern"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// detect urls with parameter idcat
|
||||
$matches = array();
|
||||
if (preg_match_all('/(?!file|ftp|http|ww)front_content.php\?idcat=([0-9]*)/i', $sValue, $matches)) {
|
||||
for ($i = 0; $i < count($matches[0]); $i++) {
|
||||
if (!in_array($matches[0][$i], $aWhitelist)) {
|
||||
$aSearchIDInfosCat[] = array(
|
||||
"id" => $matches[1][$i], "url" => $matches[0][$i], "idart" => $iArt, "nameart" => $sArt, "idcat" => $iCat, "namecat" => $sCat, "urltype" => "intern"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// detect urls with parameter idcatart
|
||||
$matches = array();
|
||||
if (preg_match_all('/(?!file|ftp|http|ww)front_content.php\?idcatart=([0-9]*)/i', $sValue, $matches)) { // idcatart
|
||||
for ($i = 0; $i < count($matches[0]); $i++) {
|
||||
if (!in_array($matches[0][$i], $aWhitelist)) {
|
||||
$aSearchIDInfosCatArt[] = array(
|
||||
"id" => $matches[1][$i], "url" => $matches[0][$i], "idart" => $iArt, "nameart" => $sArt, "idcat" => $iCat, "namecat" => $sCat, "urltype" => "intern"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Searchs extern and intern links
|
||||
function searchLinks($sValue, $iArt, $sArt, $iCat, $sCat, $iLang, $sFromtype = "") {
|
||||
global $aUrl, $aSearchIDInfosNonID, $aWhitelist;
|
||||
|
||||
// Extern URL
|
||||
if(preg_match_all('~(?:(?:action|data|href|src)=["\']((?:file|ftp|http|ww)[^\s]*)["\'])~i', $sValue, $aMatches) && $_GET['mode'] != 1) {
|
||||
|
||||
for($i = 0; $i < count($aMatches[1]); $i++) {
|
||||
|
||||
if(!in_array($aMatches[1][$i], $aWhitelist)) {
|
||||
$aSearchIDInfosNonID[] = array("url" => $aMatches[1][$i], "idart" => $iArt, "nameart" => $sArt, "idcat" => $iCat, "namecat" => $sCat, "lang" => $iLang, "urltype" => "extern");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Redirect
|
||||
if($sFromtype == "Redirect" && (preg_match('!(' . preg_quote($aUrl['cms']) . '[^\s]*)!i', $sValue, $aMatches)
|
||||
|| (preg_match('~(?:file|ftp|http|ww)[^\s]*~i', $sValue, $aMatches) && $_GET['mode'] != 1))
|
||||
&& (stripos($sValue, 'front_content.php') === false)
|
||||
&& !in_array($aMatches[0], $aWhitelist)) {
|
||||
$aSearchIDInfosNonID[] = array("url" => $aMatches[0], "idart" => $iArt, "nameart" => $sArt, "idcat" => $iCat, "namecat" => $sCat, "lang" => $iLang, "urltype" => "unknown");
|
||||
}
|
||||
|
||||
// Intern URL
|
||||
if(preg_match_all('~(?:(?:action|data|href|src)=["\'])(?!file://)(?!ftp://)(?!http://)(?!https://)(?!ww)(?!mailto)(?!\#)(?!/\#)([^"\']+)(?:["\'])~i', $sValue, $aMatches) && $_GET['mode'] != 2) {
|
||||
|
||||
for($i = 0; $i < count($aMatches[1]); $i++) {
|
||||
|
||||
if(strpos($aMatches[1][$i], "front_content.php") === false && !in_array($aMatches[1][$i], $aWhitelist)) {
|
||||
$aSearchIDInfosNonID[] = array("url" => $aMatches[1][$i], "idart" => $iArt, "nameart" => $sArt, "idcat" => $iCat, "namecat" => $sCat, "lang" => $iLang, "urltype" => "intern");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
85
includes/include.linkchecker_whitelist.php
Normale Datei
85
includes/include.linkchecker_whitelist.php
Normale Datei
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
/**
|
||||
* Project:
|
||||
* Contenido Content Management System
|
||||
*
|
||||
* Description:
|
||||
* Whitelist for the Linkchecker
|
||||
*
|
||||
* Requirements:
|
||||
* @con_php_req 5.0
|
||||
*
|
||||
*
|
||||
* @package Contenido Backend plugins
|
||||
* @version 2.0.1
|
||||
* @author Frederic Schneider
|
||||
* @copyright four for business AG <www.4fb.de>
|
||||
* @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 2007-11-02
|
||||
* modified 2007-12-13, 2008-05-09, 2008-05-15, Frederic Schneider
|
||||
* modified 2008-06-02, Frederic Schneider, add security fix
|
||||
*
|
||||
* $Id: include.linkchecker_whitelist.php 128 2019-07-03 11:58:28Z oldperl $:
|
||||
* }}
|
||||
*
|
||||
*/
|
||||
|
||||
if(!defined('CON_FRAMEWORK')) {
|
||||
die('Illegal call');
|
||||
}
|
||||
|
||||
$plugin_name = "linkchecker";
|
||||
$iWhitelist_timeout = 2592000; // 30 days
|
||||
global $perm;
|
||||
|
||||
if(!$perm->have_perm_area_action($plugin_name, $plugin_name)) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// Template-definition
|
||||
$tpl->set('s', 'CONTENIDO_URL', $cfg['path']['contenido_fullhtml']);
|
||||
$tpl->set('s', 'SID', $sess->id);
|
||||
|
||||
/* Whitelist: Delete */
|
||||
if(!empty($_GET['url_to_delete'])) {
|
||||
$sql = "DELETE FROM " . $cfg['tab']['whitelist'] . " WHERE url = '" . Contenido_Security::escapeDB(base64_decode($_GET['url_to_delete']), $db) . "'";
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
// Get whitelist
|
||||
$sql = "SELECT url, lastview FROM " . $cfg['tab']['whitelist'] . " WHERE lastview < " . (time() + $iWhitelist_timeout) . "
|
||||
AND lastview > " . (time() - $iWhitelist_timeout) . " ORDER BY lastview DESC";
|
||||
$db->query($sql);
|
||||
|
||||
while($db->next_record()) {
|
||||
|
||||
$tpl2 = new Template;
|
||||
$tpl2->reset();
|
||||
|
||||
$tpl2->set('s', 'CONTENIDO_URL', $cfg['path']['contenido_fullhtml']);
|
||||
$tpl2->set('s', 'SID', $sess->id);
|
||||
$tpl2->set('s', 'URL', $db->f("url"));
|
||||
$tpl2->set('s', 'URL_ENCODE', base64_encode($db->f("url")));
|
||||
$tpl2->set('s', 'ENTRY', strftime(i18n('%Y-%m-%d, %I:%M%S %p', $plugin_name), $db->f("lastview")));
|
||||
|
||||
$aWhitelist .= $tpl2->generate($cfg['templates']['linkchecker_whitelist_urls'], 1);
|
||||
|
||||
}
|
||||
|
||||
// Template- and languagevars
|
||||
$tpl->set('s', 'HEADLINE', i18n("Links at whitelist", $plugin_name));
|
||||
$tpl->set('s', 'HEADLINE_DELETE', i18n("Delete", $plugin_name));
|
||||
$tpl->set('s', 'HEADLINE_ENTRY', i18n("Entry", $plugin_name));
|
||||
$tpl->set('s', 'HEADLINE_URLS', i18n("URLs", $plugin_name));
|
||||
$tpl->set('s', 'HELP', i18n("This links are on the whitelist. Whitelist-links won't be check at linkchecker.", $plugin_name));
|
||||
$tpl->set('s', 'TITLE', "Whitelist");
|
||||
$tpl->set('s', 'WHITELIST', $aWhitelist);
|
||||
$tpl->set('s', 'WHITELIST_COUNT', $db->num_rows());
|
||||
|
||||
$tpl->generate($cfg['templates']['linkchecker_whitelist']);
|
||||
?>
|
BIN
locale/de_DE/LC_MESSAGES/linkchecker.mo
Normale Datei
BIN
locale/de_DE/LC_MESSAGES/linkchecker.mo
Normale Datei
Binäre Datei nicht angezeigt.
122
locale/de_DE/LC_MESSAGES/linkchecker.po
Normale Datei
122
locale/de_DE/LC_MESSAGES/linkchecker.po
Normale Datei
|
@ -0,0 +1,122 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Contenido Linkchecker\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2008-02-27 10:16+0100\n"
|
||||
"Last-Translator: Frederic Schneider <frederic.schneider@4fb.de>\n"
|
||||
"Language-Team: Frederic Schneider <frederic.schneider@4fb.de>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: German\n"
|
||||
"X-Poedit-Country: GERMANY\n"
|
||||
"X-Poedit-Basepath: H:\\frederic.schneider\\\n"
|
||||
"X-Poedit-KeywordsList: i18n\n"
|
||||
"X-Poedit-SearchPath-0: H:\\frederic.schneider\\contenido\\plugins\\linkchecker\\includes\n"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:196
|
||||
#, fuzzy
|
||||
msgid "Link analysis from "
|
||||
msgstr "Link-Analyse vom "
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:196
|
||||
msgid "%Y-%m-%d"
|
||||
msgstr "%d.%m.%Y"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:42
|
||||
msgid "<strong>No errors</strong> were found."
|
||||
msgstr "Es wurden <strong>keine Fehler</strong> gefunden."
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:227
|
||||
#, fuzzy
|
||||
msgid "Total checked links"
|
||||
msgstr "Insgesamt geprüfte Links"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:24
|
||||
msgid "idart"
|
||||
msgstr "idart"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:30
|
||||
msgid "Article"
|
||||
msgstr "Artikel"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:26
|
||||
msgid "idcat"
|
||||
msgstr "idcat"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:31
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:47
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:31
|
||||
msgid "Linkerror"
|
||||
msgstr "Linkfehler"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_whitelist.php:40
|
||||
msgid "Links to articles"
|
||||
msgstr "Links auf Artikel"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_whitelist.php:40
|
||||
msgid "Links to categories"
|
||||
msgstr "Links auf Kategorien"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:51
|
||||
msgid "Links to documents and images"
|
||||
msgstr "Links auf Bilder und Dokumente"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:237
|
||||
#, fuzzy
|
||||
msgid "Links to extern sites and not defined links"
|
||||
msgstr "Links auf externe Quellen und nicht zugewiesene Links"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:46
|
||||
msgid "Wrong links"
|
||||
msgstr "Fehlerhafte Links"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:271
|
||||
msgid "Unknown: articles, documents etc. do not exist."
|
||||
msgstr "Unknown: Artikel, Dokumente et cetera existieren nicht."
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:273
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:275
|
||||
msgid "Offline: article or category is offline."
|
||||
msgstr "Offline: Artikel oder Kategorie ist offline."
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:277
|
||||
msgid "dbfs: no matches found in the dbfs database."
|
||||
msgstr "dbfs: In der dbfs-Datenbank ist die gesuchte Datei nicht vorhanden."
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_tests.php:67
|
||||
msgid "No errors for this type."
|
||||
msgstr "Es wurden für diesen Linktyp keine Fehler gefunden."
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker.php:196
|
||||
msgid "%Y-%m-%d, %I:%M%S %p"
|
||||
msgstr "%d.%m.%Y, %H:%M:%S"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_whitelist.php:40
|
||||
msgid "Links at whitelist"
|
||||
msgstr "Links auf der weißen Liste"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_whitelist.php:41
|
||||
msgid "Delete"
|
||||
msgstr "Entfernen"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_whitelist.php:42
|
||||
msgid "Entry"
|
||||
msgstr "Eintragung"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_whitelist.php:43
|
||||
msgid "URLs"
|
||||
msgstr "Links"
|
||||
|
||||
# H:\frederic.schneider\contenido\plugins\linkchecker\includes/include.linkchecker_whitelist.php:45
|
||||
msgid "This links are on the whitelist. Whitelist-links won't be check at linkchecker."
|
||||
msgstr "Diese Links befinden sich auf der weißen Liste und werden nicht vom Linkchecker überprüft."
|
||||
|
||||
msgid "View whitelist"
|
||||
msgstr "Whitelist anzeigen"
|
135
locale/linkchecker.pot
Normale Datei
135
locale/linkchecker.pot
Normale Datei
|
@ -0,0 +1,135 @@
|
|||
# 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 <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-05-18 10:59+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: includes/include.linkchecker.php:49
|
||||
msgid "No Client selected"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:95
|
||||
msgid "Interns"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:97
|
||||
msgid "Externs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:99
|
||||
msgid "Intern/extern Links"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:294
|
||||
msgid "Link analysis from "
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:294
|
||||
msgid "%Y-%m-%d"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:299
|
||||
msgid "<strong>No errors</strong> were found."
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:303
|
||||
msgid "Total checked links"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:304
|
||||
msgid "idart"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:305
|
||||
msgid "Article"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:306
|
||||
msgid "idcat"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:307
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:308
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:309
|
||||
msgid "Linkerror"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:310
|
||||
msgid "Links to articles"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:311
|
||||
msgid "Links to categories"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:312
|
||||
msgid "Links to documents and images"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:313
|
||||
msgid "Links to extern sites and not defined links"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:315
|
||||
msgid "Wrong links"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:344
|
||||
msgid "Unknown: articles, documents etc. do not exist."
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:346 includes/include.linkchecker.php:348
|
||||
msgid "Offline: article or category is offline."
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:350
|
||||
msgid "dbfs: no matches found in the dbfs database."
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker.php:383
|
||||
msgid "No errors for this type."
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker_whitelist.php:68
|
||||
msgid "%Y-%m-%d, %I:%M%S %p"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker_whitelist.php:75
|
||||
msgid "Links at whitelist"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker_whitelist.php:76
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker_whitelist.php:77
|
||||
msgid "Entry"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker_whitelist.php:78
|
||||
msgid "URLs"
|
||||
msgstr ""
|
||||
|
||||
#: includes/include.linkchecker_whitelist.php:79
|
||||
msgid ""
|
||||
"This links are on the whitelist. Whitelist-links won't be check at "
|
||||
"linkchecker."
|
||||
msgstr ""
|
12
locale/potfiles.txt
Normale Datei
12
locale/potfiles.txt
Normale Datei
|
@ -0,0 +1,12 @@
|
|||
./includes/include.checkperms.php
|
||||
./includes/include.linkchecker.php
|
||||
./includes/config.plugin.php
|
||||
./includes/include.linkchecker_tests.php
|
||||
./includes/include.linkchecker_whitelist.php
|
||||
./templates/standard/template.linkchecker_test_errors_cat.html
|
||||
./templates/standard/template.linkchecker_whitelist.html
|
||||
./templates/standard/template.linkchecker_noerrors.html
|
||||
./templates/standard/template.linkchecker_test_errors.html
|
||||
./templates/standard/template.linkchecker_test.html
|
||||
./templates/standard/template.linkchecker_test_nothing.html
|
||||
./templates/standard/template.linkchecker_whitelist_urls.html
|
36
templates/standard/template.linkchecker_noerrors.html
Normale Datei
36
templates/standard/template.linkchecker_noerrors.html
Normale Datei
|
@ -0,0 +1,36 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<title>Linkchecker</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles/contenido.css" />
|
||||
</head>
|
||||
|
||||
<body style="margin:10px">
|
||||
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;" cellspacing="0" cellpadding="3" border="0">
|
||||
<tr class="text_medium" style="height:25px;">
|
||||
<td style="background-color: #E2E2E2; colspan="3">
|
||||
<a href="{INTERNS_HREF}" alt="{INTERNS_LABEL}" title="{INTERNS_LABEL}" style="margin-left:10px;">{INTERNS_LABEL}<img style="vertical-align:middle; margin-left:5px;" src="images/submit.gif" border="0"></a>
|
||||
<a href="{EXTERNS_HREF}" alt="{EXTERNS_LABEL}" title="{EXTERNS_LABEL}" style="margin-left:15px;">{EXTERNS_LABEL}<img style="vertical-align:middle; margin-left:5px;" src="images/submit.gif" border="0"></a>
|
||||
<a href="{INTERNS_EXTERNS_HREF}" alt="{INTERNS_EXTERNS_LABEL}" title="{INTERNS_EXTERNS_LABEL}" style="margin-left:15px;">{INTERNS_EXTERNS_LABEL}<img style="vertical-align:middle; margin-left:5px;" src="images/submit.gif" border="0"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div style="padding-top:10px;"></div>
|
||||
|
||||
<table cellspacing="0" cellpadding="2" border="0">
|
||||
<tr valign="middle">
|
||||
<td><h2>{TITLE}</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-top:5px; padding-bottom:15px; vertical-align:middle;">
|
||||
<a href="{UPDATE_HREF}"><img src="images/but_refresh.gif" style="margin-right:3px; vertical-align:middle;" title="i18n('Refresh')" alt="i18n('Refresh')"></a>
|
||||
<a href="{UPDATE_HREF}">i18n('Refresh')</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="middle">
|
||||
<td class="text_medium">{NO_ERRORS}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body></html>
|
202
templates/standard/template.linkchecker_test.html
Normale Datei
202
templates/standard/template.linkchecker_test.html
Normale Datei
|
@ -0,0 +1,202 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<title>Linkchecker</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles/contenido.css" />
|
||||
<link rel="stylesheet" type="text/css" href="styles/tip_balloon.css" />
|
||||
<script type="text/javascript" src="scripts/rowMark.js"></script>
|
||||
<script type="text/javascript" src="scripts/general.js"></script>
|
||||
<script type="text/javascript" src="scripts/browserCheck.js"></script>
|
||||
<script type="text/javascript" src="scripts/cfoldingrow.js"></script>
|
||||
<script type="text/javascript" src="scripts/jquery/jquery.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function toggleTableBody(tableId)
|
||||
{
|
||||
|
||||
var collapseButton = 'images/close_all.gif';
|
||||
var expandButton = 'images/open_all.gif';
|
||||
var curTable = document.getElementById(tableId);
|
||||
var curButton = document.getElementById(tableId+'_img');
|
||||
|
||||
if(curTable.style.display == "inline" || curTable.style.display == "")
|
||||
{
|
||||
curTable.style.display = "none";
|
||||
curButton.src = expandButton;
|
||||
}
|
||||
else if(curTable.style.display == "none")
|
||||
{
|
||||
curTable.style.display = "inline";
|
||||
curButton.src = collapseButton;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body style="margin: 10px">
|
||||
|
||||
<script type="text/javascript" src="scripts/wz_tooltip.js"></script>
|
||||
<script type="text/javascript" src="scripts/tip_balloon.js"></script>
|
||||
|
||||
<a href="javascript:location.reload()" accesskey="s"></a>
|
||||
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;" cellspacing="0" cellpadding="3" border="0">
|
||||
<tr class="text_medium" style="height:25px;line-height:25px;">
|
||||
<td style="background-color: #E2E2E2; colspan="3">
|
||||
<a href="{INTERNS_HREF}" alt="{INTERNS_LABEL}" title="{INTERNS_LABEL}" style="margin-left:10px;">{INTERNS_LABEL}<img style="vertical-align:middle; margin-left:5px;" src="images/submit.gif" border="0"></a>
|
||||
<a href="{EXTERNS_HREF}" alt="{EXTERNS_LABEL}" title="{EXTERNS_LABEL}" style="margin-left:15px;">{EXTERNS_LABEL}<img style="vertical-align:middle; margin-left:5px;" src="images/submit.gif" border="0"></a>
|
||||
<a href="{INTERNS_EXTERNS_HREF}" alt="{INTERNS_EXTERNS_LABEL}" title="{INTERNS_EXTERNS_LABEL}" style="margin-left:15px;">{INTERNS_EXTERNS_LABEL}<img style="vertical-align:middle; margin-left:5px;" src="images/submit.gif" border="0"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div style="padding-top:10px;"></div>
|
||||
|
||||
<table cellspacing="0" cellpadding="2" border="0">
|
||||
<tr valign="middle">
|
||||
<td><h2>{TITLE}</h2></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-top:5px; padding-bottom:15px; vertical-align:middle;">
|
||||
<a href="{UPDATE_HREF}"><img src="images/but_refresh.gif" style="margin-right:3px; vertical-align:middle;" title="i18n('Refresh')" alt="i18n('Refresh')"></a>
|
||||
<a href="{UPDATE_HREF}">i18n('Refresh')</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table width="100%" style="border-left: 1px solid #B5B5B5;" cellspacing="0" cellpadding="3" border="0">
|
||||
<tr class="text_medium">
|
||||
<td style="background-color: #CCCCCC; border: 1px solid #B5B5B5; border-left: 0px; width: 20%;">{ERRORS_HEADLINE}:</td>
|
||||
<td style="background-color: #E2E2E2; border: 1px solid #B5B5B5; border-left: 0px; border-right: 0px; width: 10%;">{ERRORS_COUNT_CHECKED}
|
||||
<td style="background-color: #E2E2E2; border: 1px solid #B5B5B5; border-left: 0px; width: 70%;">{ERRORS_HELP_ERRORS}: <span style="color: #FF0000;">{ERRORS_COUNT_ERRORS} ({ERRORS_COUNT_ERRORS_PERCENT} %)</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<div style="margin-top: 20px"></div>
|
||||
|
||||
|
||||
<table width="100%" style="border-left: 1px solid #B5B5B5;" cellspacing="0" cellpadding="3" border="0">
|
||||
<tr class="text_medium" style="background-color: #E2E2E2;">
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 20%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=nameart">{ERRORS_HEADLINE_ARTICLE}</a> (ID)</td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 20%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=namecat">{ERRORS_HEADLINE_CATNAME}</a> (ID)</td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 40%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=wronglink">{ERRORS_HEADLINE_LINK}</a></td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 10%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=error_type">{ERRORS_HEADLINE_DESCRIPTION}</a></td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; text-align: center; width: 10%;">{ERRORS_HEADLINE_WHITELIST}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<div style="margin-top: 10px"></div>
|
||||
|
||||
|
||||
<!-- ######################### -->
|
||||
<!-- ### Links to Articles ### -->
|
||||
<!-- ######################### -->
|
||||
<div style="margin-bottom: 10px">
|
||||
<!-- Table Head -->
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;background-color: #F1F1F1;">
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{ERRORS_HEADLINE_LINKS_ARTICLES}</strong> ({ERRORS_COUNT_ERRORS_ART})
|
||||
</td>
|
||||
<td align="center" style="padding:0;width:22px;">
|
||||
<a href="#" onclick="javascript:toggleTableBody('{ID_LINKS_ARTICLES}')" style="height:1em;line-height:1em;width:100%;height:100%;display:block;"><img style="padding-top:5px" src="images/close_all.gif" id = "{ID_LINKS_ARTICLES}_img"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- Table Body -->
|
||||
<div id="{ID_LINKS_ARTICLES}">
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;border-top:none;" cellspacing="0" cellpadding="3" border="0">
|
||||
{ERRORS_SHOW_ART}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ##################################### -->
|
||||
<!-- ### Links to Documents and Images ### -->
|
||||
<!-- ##################################### -->
|
||||
<div style="margin-bottom: 10px">
|
||||
<!-- Table Head -->
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;background-color: #F1F1F1;">
|
||||
<tr >
|
||||
<td>
|
||||
<strong>{ERRORS_HEADLINE_LINKS_DOCIMAGES}</strong> ({ERRORS_COUNT_ERRORS_DOCIMAGES})
|
||||
</td>
|
||||
<td align="center" style="padding:0;width:22px;">
|
||||
<a href="#" onclick="javascript:toggleTableBody('{ID_LINKS_DOCSIMGS}')" style="height:1em;line-height:1em;width:100%;height:100%;display:block;"><img style="padding-top:5px" src="images/close_all.gif" id = "{ID_LINKS_DOCSIMGS}_img"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- Table Body -->
|
||||
<div id="{ID_LINKS_DOCSIMGS}">
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;border-top:none;" cellspacing="0" cellpadding="3" border="0">
|
||||
{ERRORS_SHOW_DOCIMAGES}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ############################### -->
|
||||
<!-- ### Links to external sites ### -->
|
||||
<!-- ############################### -->
|
||||
<div style="margin-bottom: 20px">
|
||||
<!-- Table Head -->
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;background-color: #F1F1F1;">
|
||||
<tr >
|
||||
<td>
|
||||
<strong>{ERRORS_HEADLINE_OTHERS}</strong> ({ERRORS_COUNT_ERRORS_OTHERS})
|
||||
</td>
|
||||
<td align="center" style="padding:0;width:22px;">
|
||||
<a href="#" onclick="javascript:toggleTableBody('{ID_LINKS_EXTERNAL}')" style="height:1em;line-height:1em;width:100%;height:100%;display:block;"><img style="padding-top:5px" src="images/close_all.gif" id = "{ID_LINKS_EXTERNAL}_img"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- Table Body -->
|
||||
<div id="{ID_LINKS_EXTERNAL}">
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;border-top:none;" cellspacing="0" cellpadding="3" border="0">
|
||||
{ERRORS_SHOW_OTHERS}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<table width="100%" style="border-left: 1px solid #B5B5B5;" cellspacing="0" cellpadding="3" border="0">
|
||||
<tr class="text_medium" style="background-color: #E2E2E2;">
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 20%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=namecat">{ERRORS_HEADLINE_CATNAME}</a> (ID)</td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 20%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=nameart">{ERRORS_HEADLINE_ARTICLE}</a> (ID)</td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 40%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=wronglink">{ERRORS_HEADLINE_LINK}</a></td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 10%;"><a style="color: #666666;" href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&sort=error_type">{ERRORS_HEADLINE_DESCRIPTION}</a></td>
|
||||
<td nowrap="nowrap" valign="top" style="color: #666666; border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; text-align: center; width: 10%;">{ERRORS_HEADLINE_WHITELIST}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<!-- ########################### -->
|
||||
<!-- ### Links to Categories ### -->
|
||||
<!-- ########################### -->
|
||||
<div style="margin-top: 10px; margin-bottom: 10px;">
|
||||
<!-- Table Head -->
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;background-color: #F1F1F1;">
|
||||
<tr >
|
||||
<td>
|
||||
<strong>{ERRORS_HEADLINE_LINKS_CATEGORYS}</strong> ({ERRORS_COUNT_ERRORS_CAT})
|
||||
</td>
|
||||
<td align="center" style="padding:0;width:22px;">
|
||||
<a href="#" onclick="javascript:toggleTableBody('{ID_LINKS_CATEGORIES}')" style="height:1em;line-height:1em;width:100%;height:100%;display:block;"><img style="padding-top:5px" src="images/close_all.gif" id = "{ID_LINKS_CATEGORIES}_img"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- Table Body -->
|
||||
<div id="{ID_LINKS_CATEGORIES}">
|
||||
<table width="100%" style="border: 1px solid #B5B5B5;border-top:none;" cellspacing="0" cellpadding="3" border="0">
|
||||
{ERRORS_SHOW_CAT}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Print Button -->
|
||||
<a style="margin-left:3px;" href="javascript:print()"><img src="{URL}images/print.gif" alt="" border="0"></a>
|
||||
|
||||
</body></html>
|
7
templates/standard/template.linkchecker_test_errors.html
Normale Datei
7
templates/standard/template.linkchecker_test_errors.html
Normale Datei
|
@ -0,0 +1,7 @@
|
|||
<tr class="text_medium" style="background-color: #FFFFFF;" onmouseover="row.over(this)" onmouseout="row.out(this)" onclick="row.click(this)">
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 20%;" onmouseover="Tip('{ERRORS_ARTICLE}', BALLOON, true, ABOVE, true);"><a href="javascript://" onclick="javascript:conMultiLink('right_top', 'main.php?area=con&frame=3&idcat={ERRORS_CATID}&idtpl=1&contenido={SID}', 'right_bottom', 'main.php?area=con_editcontent&action=con_editart&frame=4&idart={ERRORS_ARTID}&idcat={ERRORS_CATID}&idtpl=1&contenido={SID}', 'simpleFrame')">{ERRORS_ARTICLE_SHORT}</a> ({ERRORS_ARTID})</td>
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 20%;" onmouseover="Tip('{ERRORS_CATNAME}', BALLOON, true, ABOVE, true);">{ERRORS_CATNAME_SHORT} ({ERRORS_CATID})</td>
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 40%;" onmouseover="Tip('{ERRORS_LINK}', BALLOON, true, ABOVE, true);">{ERRORS_LINK_SHORT}</td>
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 10%;" onmouseover="Tip('{ERRORS_ERROR_TYPE_HELP}', BALLOON, true, ABOVE, true);">{ERRORS_ERROR_TYPE}</td>
|
||||
<td valign="top" style="border: 0px; border-right: 0px; border-color: #B5B5B5; border-style: solid; padding-right:5px; text-align: right; width: 10%;"><a href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&action=linkchecker&mode={MODE}&whitelist={ERRORS_LINK_ENCODE}"><img src="{URL}images/folder_new.gif" alt="" border="0" /></a></td>
|
||||
</tr>
|
7
templates/standard/template.linkchecker_test_errors_cat.html
Normale Datei
7
templates/standard/template.linkchecker_test_errors_cat.html
Normale Datei
|
@ -0,0 +1,7 @@
|
|||
<tr class="text_medium" style="background-color: #FFFFFF;" onmouseover="row.over(this)" onmouseout="row.out(this)" onclick="row.click(this)">
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 20%;" onmouseover="Tip('{ERRORS_CATNAME}', BALLOON, true, ABOVE, true);"><a href="javascript://" onclick="javascript:conMultiLink('right_top', 'main.php?area=con&frame=3&idcat={ERRORS_CATID}&idtpl=1&contenido={SID}', 'right_bottom', 'main.php?area=con&frame=4&idcat={ERRORS_CATID}&idtpl=1&contenido={SID}', 'simpleFrame')">{ERRORS_CATNAME_SHORT}</a> ({ERRORS_CATID})</td>
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 20%;" onmouseover="Tip('{ERRORS_ARTICLE}', BALLOON, true, ABOVE, true);">{ERRORS_ARTICLE_SHORT} ({ERRORS_ARTID})</td>
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 40%;" onmouseover="Tip('{ERRORS_LINK}', BALLOON, true, ABOVE, true);">{ERRORS_LINK_SHORT}</td>
|
||||
<td valign="top" style="border: 0px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 10%;" onmouseover="Tip('{ERRORS_ERROR_TYPE_HELP}', BALLOON, true, ABOVE, true);">{ERRORS_ERROR_TYPE}</td>
|
||||
<td valign="top" style="border: 0px; border-right: 0px; border-color: #B5B5B5; border-style: solid; padding-right: 5px; text-align: right; width: 10%;"><a href="{URL}main.php?area=linkchecker&frame=4&contenido={SID}&mode={MODE}&whitelist={ERRORS_LINK_ENCODE}"><img src="{URL}images/folder_new.gif" alt="" border="0" /></a></td>
|
||||
</tr>
|
3
templates/standard/template.linkchecker_test_nothing.html
Normale Datei
3
templates/standard/template.linkchecker_test_nothing.html
Normale Datei
|
@ -0,0 +1,3 @@
|
|||
<tr class="text_medium" style="background-color: #FFFFFF;">
|
||||
<td colspan="6" valign="top" style="border: 0px; border-right: 0px; border-color: #B3B3B3; border-style: solid;">{ERRORS_NOTHING}</td>
|
||||
</tr>
|
51
templates/standard/template.linkchecker_whitelist.html
Normale Datei
51
templates/standard/template.linkchecker_whitelist.html
Normale Datei
|
@ -0,0 +1,51 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<title>Linkchecker</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles/contenido.css" />
|
||||
<script type="text/javascript" src="scripts/rowMark.js"></script>
|
||||
<script type="text/javascript" src="scripts/general.js"></script>
|
||||
</head>
|
||||
|
||||
<body style="margin: 10px">
|
||||
|
||||
<a href="javascript:location.reload()" accesskey="s"></a>
|
||||
|
||||
<table cellspacing="0" cellpadding="2" border="0">
|
||||
<tr valign="middle">
|
||||
<td><h2>{TITLE}</h2></td>
|
||||
</tr>
|
||||
<tr valign="middle">
|
||||
<td class="text_medium">{HELP}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div style="margin-top: 5px"></div>
|
||||
|
||||
<table width="100%" style="border-left: 1px solid #B5B5B5;" cellspacing="0" cellpadding="3" border="0">
|
||||
|
||||
<tr class="text_medium" style="background-color: #E2E2E2;">
|
||||
<td nowrap="nowrap" valign="top" style="border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 75%;"><strong>{HEADLINE_URLS}</strong> ({WHITELIST_COUNT})</td>
|
||||
<td nowrap="nowrap" valign="top" style="border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 15%; text-align: center;"><strong>{HEADLINE_ENTRY}</strong></td>
|
||||
<td nowrap="nowrap" valign="top" style="border: 1px solid #B5B5B5; border-left: 0px; white-space:nowrap; width: 10%;"><strong>{HEADLINE_DELETE}</strong></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<div style="margin-top: 10px"></div>
|
||||
|
||||
<table width="100%" style="border: 1px solid #B5B5B5; border-top: 0px;" cellspacing="0" cellpadding="3" border="0">
|
||||
|
||||
{WHITELIST}
|
||||
|
||||
</table>
|
||||
|
||||
<div style="margin-top: 10px"></div>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="3" border="0">
|
||||
<tr>
|
||||
<td style="text-align: left;"><a href="javascript:print()"><img src="{CONTENIDO_URL}images/print.gif" alt="" border="0"></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body></html>
|
5
templates/standard/template.linkchecker_whitelist_urls.html
Normale Datei
5
templates/standard/template.linkchecker_whitelist_urls.html
Normale Datei
|
@ -0,0 +1,5 @@
|
|||
<tr class="text_medium" style="background-color: #FFFFFF;" onmouseover="row.over(this)" onmouseout="row.out(this)" onclick="row.click(this)">
|
||||
<td valign="top" style="border: 0px; border-top: 1px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 75%;">{URL}</td>
|
||||
<td valign="top" style="border: 0px; border-top: 1px; border-right: 1px; border-color: #B5B5B5; border-style: solid; width: 15%; text-align: center;">{ENTRY}</td>
|
||||
<td valign="top" style="border: 0px; border-top: 1px; border-right: 0px; border-color: #B5B5B5; border-style: solid; width: 10%; text-align: right;"><a href="{CONTENIDO_URL}main.php?area=lc_whitelist&frame=4&contenido={SID}&action=linkchecker&url_to_delete={URL_ENCODE}"><img src="{CONTENIDO_URL}images/delete_over.gif" alt="" border="0"></a></td>
|
||||
</tr>
|
14
xml/lang_de_DE.xml
Normale Datei
14
xml/lang_de_DE.xml
Normale Datei
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- Contenido XML language file -->
|
||||
<language>
|
||||
<navigation>
|
||||
<content>
|
||||
<linkchecker>
|
||||
<main>Linkchecker</main>
|
||||
<test>Linkanalyse</test>
|
||||
<whitelist>Whitelist</whitelist>
|
||||
<overview>Übersicht</overview>
|
||||
</linkchecker>
|
||||
</content>
|
||||
</navigation>
|
||||
</language>
|
14
xml/lang_en_EN.xml
Normale Datei
14
xml/lang_en_EN.xml
Normale Datei
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- Contenido XML language file -->
|
||||
<language>
|
||||
<navigation>
|
||||
<content>
|
||||
<linkchecker>
|
||||
<main>Linkchecker</main>
|
||||
<test>Link Analysis</test>
|
||||
<whitelist>Whitelist</whitelist>
|
||||
<overview>Overview</overview>
|
||||
</linkchecker>
|
||||
</content>
|
||||
</navigation>
|
||||
</language>
|
14
xml/lang_en_US.xml
Normale Datei
14
xml/lang_en_US.xml
Normale Datei
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- Contenido XML language file -->
|
||||
<language>
|
||||
<navigation>
|
||||
<content>
|
||||
<linkchecker>
|
||||
<main>Linkchecker</main>
|
||||
<test>Link Analysis</test>
|
||||
<whitelist>Whitelist</whitelist>
|
||||
<overview>Overview</overview>
|
||||
</linkchecker>
|
||||
</content>
|
||||
</navigation>
|
||||
</language>
|
Laden …
In neuem Issue referenzieren