320 Zeilen
Kein EOL
11 KiB
PHP
320 Zeilen
Kein EOL
11 KiB
PHP
<?php
|
||
/**
|
||
* Project:
|
||
* Contenido Content Management System
|
||
*
|
||
* Description:
|
||
* Displays all last edited articles of a category
|
||
*
|
||
* Requirements:
|
||
* @con_php_req 5.0
|
||
*
|
||
*
|
||
* @package Contenido Backend includes
|
||
* @version 1.3.1
|
||
* @author Timo A. Hummel
|
||
* @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.6
|
||
*
|
||
* {@internal
|
||
* created 2003-08-05
|
||
* modified 2008-06-27, Frederic Schneider, add security fix
|
||
*
|
||
* $Id: include.mycontenido_lastarticles.php 306 2014-03-13 23:03:26Z oldperl $:
|
||
* }}
|
||
*
|
||
*/
|
||
|
||
if(!defined('CON_FRAMEWORK')) {
|
||
die('Illegal call');
|
||
}
|
||
|
||
cInclude("includes", "functions.con.php");
|
||
|
||
$debug = false;
|
||
|
||
$sql = "SELECT
|
||
logtimestamp
|
||
FROM
|
||
".$cfg["tab"]["actionlog"]."
|
||
WHERE
|
||
user_id = '".Contenido_Security::escapeDB($auth->auth["uid"], $db). "'
|
||
ORDER BY
|
||
logtimestamp DESC
|
||
LIMIT 2";
|
||
|
||
$db->query($sql);
|
||
$db->next_record();
|
||
|
||
$lastlogin = $db->f("logtimestamp");
|
||
|
||
$idaction = $perm->getIDForAction("con_editart");
|
||
|
||
if ($cfg["is_start_compatible"] == true)
|
||
{
|
||
$sql = "SELECT
|
||
a.idart AS idart,
|
||
a.idartlang AS idartlang,
|
||
a.title AS title,
|
||
c.idcat AS idcat,
|
||
a.idlang AS idlang,
|
||
c.is_start AS is_start,
|
||
c.idcatart AS idcatart,
|
||
a.idtplcfg AS idtplcfg,
|
||
a.online AS online,
|
||
a.created AS created,
|
||
a.lastmodified AS lastmodified
|
||
FROM
|
||
".$cfg["tab"]["art_lang"]." AS a,
|
||
".$cfg["tab"]["art"]." AS b,
|
||
".$cfg["tab"]["cat_art"]." AS c,
|
||
".$cfg["tab"]["actionlog"]." AS d
|
||
WHERE
|
||
a.idlang = '".Contenido_Security::toInteger($lang)."' AND
|
||
a.idart = b.idart AND
|
||
b.idclient = '".Contenido_Security::toInteger($client)."' AND
|
||
b.idart = c.idart AND
|
||
d.idaction = '".Contenido_Security::toInteger($idaction)."' AND
|
||
d.user_id = '".Contenido_Security::escapeDB($auth->auth["uid"], $db)."' AND
|
||
d.idcatart = c.idcatart
|
||
GROUP BY
|
||
c.idcatart
|
||
ORDER BY
|
||
logtimestamp DESC
|
||
LIMIT 5";
|
||
} else {
|
||
$sql = "SELECT
|
||
a.idart AS idart,
|
||
a.idartlang AS idartlang,
|
||
a.title AS title,
|
||
c.idcat AS idcat,
|
||
a.idlang AS idlang,
|
||
c.idcatart AS idcatart,
|
||
a.idtplcfg AS idtplcfg,
|
||
a.online AS online,
|
||
a.created AS created,
|
||
a.lastmodified AS lastmodified
|
||
FROM
|
||
".$cfg["tab"]["art_lang"]." AS a,
|
||
".$cfg["tab"]["art"]." AS b,
|
||
".$cfg["tab"]["cat_art"]." AS c,
|
||
".$cfg["tab"]["actionlog"]." AS d
|
||
WHERE
|
||
a.idlang = '".Contenido_Security::toInteger($lang)."' AND
|
||
a.idart = b.idart AND
|
||
b.idclient = '".Contenido_Security::toInteger($client)."' AND
|
||
b.idart = c.idart AND
|
||
d.idaction = '".Contenido_Security::toInteger($idaction)."' AND
|
||
d.user_id = '".Contenido_Security::escapeDB($auth->auth["uid"], $db)."' AND
|
||
d.idcatart = c.idcatart
|
||
GROUP BY
|
||
c.idcatart
|
||
ORDER BY
|
||
logtimestamp DESC
|
||
LIMIT 5";
|
||
}
|
||
|
||
# Debug info
|
||
if ( $debug ) {
|
||
|
||
echo "<pre>";
|
||
echo $sql;
|
||
echo "</pre>";
|
||
|
||
}
|
||
|
||
$db->query($sql);
|
||
|
||
# Reset Template
|
||
$tpl->reset();
|
||
|
||
# No article
|
||
$no_article = true;
|
||
|
||
$tpl->set('s', 'LASTARTICLES', i18n("Recently edited articles").":".markSubMenuItem(1));
|
||
|
||
while ( $db->next_record() ) {
|
||
$idtplcfg = $db->f("idtplcfg");
|
||
$idartlang = $db->f("idartlang");
|
||
$idlang = $db->f("idlang");
|
||
$idcat = $db->f("idcat");
|
||
$idart = $db->f("idart");
|
||
$online = $db->f("online");
|
||
|
||
if ($cfg["is_start_compatible"] == true)
|
||
{
|
||
$is_start = $db->f("is_start");
|
||
} else {
|
||
$is_start = isStartArticle($idartlang, $idcat, $idlang);
|
||
}
|
||
|
||
$idcatart = $db->f("idcatart");
|
||
$created = $db->f("created");
|
||
$modified = $db->f("lastmodified");
|
||
$category = "";
|
||
conCreateLocationString($idcat, " / ", $category);
|
||
if ($category == "")
|
||
{
|
||
$category = " ";
|
||
}
|
||
|
||
$bgcolor = ( is_int($tpl->dyn_cnt / 2) ) ? $cfg["color"]["table_light"] : $cfg["color"]["table_dark"];
|
||
|
||
# Backgroundcolor of the table row
|
||
$tpl->set('d', 'BGCOLOR', $bgcolor);
|
||
|
||
# Article Title
|
||
$tmp_alink = $sess->url("frameset.php?area=con&override_area4=con_editcontent&override_area3=con&action=con_editart&idartlang=$idartlang&idart=$idart&idcat=$idcat&idartlang=$idartlang");
|
||
$tpl->set('d', 'ARTICLE', $db->f('title'));
|
||
|
||
# Created
|
||
$tpl->set('d', 'CREATED', $created);
|
||
|
||
# Lastmodified
|
||
$tpl->set('d', 'LASTMODIFIED', $modified);
|
||
|
||
# Category
|
||
$tpl->set('d', 'CATEGORY', $category);
|
||
# Article Template
|
||
if ( 0 == $idtplcfg ) { # Uses Category Template
|
||
$a_tplname = "--- ".i18n("None")." ---";
|
||
$a_idtpl = 0;
|
||
|
||
} else { # Has own Template
|
||
|
||
if ( !isset($db2) || !is_object($db2) ) {
|
||
$db2 = new DB_ConLite;
|
||
}
|
||
|
||
$sql2 = "SELECT
|
||
b.name AS tplname,
|
||
b.idtpl AS idtpl
|
||
FROM
|
||
".$cfg["tab"]["tpl_conf"]." AS a,
|
||
".$cfg["tab"]["tpl"]." AS b
|
||
WHERE
|
||
a.idtplcfg = '".Contenido_Security::toInteger($idtplcfg)."' AND
|
||
a.idtpl = b.idtpl";
|
||
|
||
$db2->query($sql2);
|
||
$db2->next_record();
|
||
|
||
$a_tplname = $db2->f("tplname");
|
||
$a_idtpl = $db2->f("idtpl");
|
||
}
|
||
|
||
if ($a_tplname == "")
|
||
{
|
||
$a_tplname = " ";
|
||
}
|
||
|
||
$tpl->set('d', 'TPLNAME', $a_tplname);
|
||
|
||
# Make Startarticle button
|
||
$tmp_img = (1 == $is_start) ? '<img src="images/isstart1.gif" border="0">' : '<img src="images/isstart0.gif" border="0">';
|
||
$tpl->set('d', 'START', $tmp_img);
|
||
|
||
if ( $online ) {
|
||
$tmp_online = '<img src="images/online.gif" title="'.i18n("Article is online").'" alt="'.i18n("Article is online").'" border="0">';
|
||
|
||
} else {
|
||
$tmp_online = '<img src="images/offline.gif" title="'.i18n("Article is offline").'" alt="'.i18n("Article is offline").'" border="0"></a>';
|
||
}
|
||
|
||
$tpl->set('d', 'ONLINE', $tmp_online);
|
||
|
||
|
||
# Next iteration
|
||
$tpl->next();
|
||
|
||
# Articles found
|
||
$no_article = false;
|
||
|
||
}
|
||
|
||
# Sortierungs select
|
||
$s_types = array(1 => "Alphabetisch",
|
||
2 => "Letze <20>nderung",
|
||
3 => "Erstellungsdatum");
|
||
|
||
$tpl2 = new Template;
|
||
$tpl2->set('s', 'NAME', 'sort');
|
||
$tpl2->set('s', 'CLASS', 'text_medium');
|
||
$tpl2->set('s', 'OPTIONS', 'onchange="artSort(this)"');
|
||
|
||
foreach ($s_types as $key => $value) {
|
||
|
||
$selected = ( isset($_GET['sort']) && $_GET['sort'] == $key ) ? 'selected="selected"' : '';
|
||
|
||
$tpl2->set('d', 'VALUE', $key);
|
||
$tpl2->set('d', 'CAPTION', $value);
|
||
$tpl2->set('d', 'SELECTED', $selected);
|
||
$tpl2->next();
|
||
|
||
}
|
||
|
||
$select = ( !$no_article ) ? $tpl2->generate($cfg["path"]["templates"] . $cfg['templates']['generic_select'], true) : '';
|
||
$caption = ( !$no_article ) ? 'Artikel sortieren' : '';
|
||
|
||
$tpl->set('s', 'ARTSORTCAPTION', $caption);
|
||
$tpl->set('s', 'ARTSORT', $select);
|
||
|
||
# Extract Category and Catcfg
|
||
$sql = "SELECT
|
||
b.name AS name,
|
||
d.idtpl AS idtpl
|
||
FROM
|
||
(".$cfg["tab"]["cat"]." AS a,
|
||
".$cfg["tab"]["cat_lang"]." AS b,
|
||
".$cfg["tab"]["tpl_conf"]." AS c)
|
||
LEFT JOIN
|
||
".$cfg["tab"]["tpl"]." AS d
|
||
ON
|
||
d.idtpl = c.idtpl
|
||
WHERE
|
||
a.idclient = '".Contenido_Security::toInteger($client)."' AND
|
||
a.idcat = '".Contenido_Security::toInteger($idcat)."' AND
|
||
b.idlang = '".Contenido_Security::toInteger($lang)."' AND
|
||
b.idcat = a.idcat AND
|
||
c.idtplcfg = b.idtplcfg";
|
||
|
||
$db->query($sql);
|
||
$db->next_record();
|
||
|
||
$cat_idtpl = $db->f("idtpl");
|
||
|
||
# Hinweis wenn kein Artikel gefunden wurde
|
||
if ( $no_article ) {
|
||
|
||
$tpl->set("d", "START", " ");
|
||
$tpl->set("d", "ARTICLE", i18n("No article found"));
|
||
$tpl->set("d", "CREATED", " ");
|
||
$tpl->set("d", "LASTMODIFIED", " ");
|
||
$tpl->set("d", "ARTCONF", " ");
|
||
$tpl->set("d", "TPLNAME", " ");
|
||
$tpl->set("d", "TPLCONF", " ");
|
||
$tpl->set("d", "ONLINE", " ");
|
||
$tpl->set('d', 'CATEGORY', ' ');
|
||
$tpl->set("d", "DELETE", " ");
|
||
|
||
$tpl->next();
|
||
|
||
}
|
||
|
||
$cat_name = "";
|
||
|
||
# SELF_URL (Variable f<>r das javascript);
|
||
$tpl->set('s', 'SELF_URL', $sess->url("main.php?area=con&frame=4&idcat=$idcat"));
|
||
|
||
# Neuer Artikel link
|
||
$tpl->set('s', 'NEWARTICLE', '<a href="'.$sess->url("main.php?area=con_editart&frame=$frame&action=con_newart&idcat=$idcat").'">Neuen Artikel erstellen</a>');
|
||
|
||
$tpl->set('s', 'HELP', "");
|
||
|
||
# Generate template
|
||
$tpl->generate($cfg['path']['templates'] . $cfg['templates']['mycontenido_lastarticles']);
|
||
|
||
?>
|