Seite 1 von 2
Datum bei Artikelliste 4.6.2
Verfasst: Do 10. Nov 2005, 14:31
von fancypants.ch
hi
ich benutze contenido 4.6.2! ist es irgendwie möglich, dass bei der standartartikelliste das erstellungsdatum des angezeigten artikels ausgegeben wird?
Oder habe ich das etwa übersehen?
Verfasst: Do 10. Nov 2005, 23:52
von HerrB
Must Du programmieren.
Gruß
HerrB
Verfasst: Fr 11. Nov 2005, 11:01
von fancypants.ch
ja ich weiss. doch meine php kenntnisse sind ein wenig begrenzt!!
kA, wie ich da vorgehen muss

Verfasst: Fr 11. Nov 2005, 11:50
von HerrB
Nun, wirf einen Blick in den Ausgabebereich, wie das SQL-Statement zusammengesetzt wird. Dann wirf einen Blick in die verschiedenen Datentabellen und ermittele, welches Feld Du ebenfalls via SQL abfragen musst und erweitere entsprechend den Code der Artikelliste.
Es ist wirklich nicht schwer... ich habe nur gerade keine Zeit.
Ich gucke auch nochmal nach einem Tipp:
So, das ist zwar zur Überarbeitung für V4.4.x und der Code des Moduls unetrscheidet sich stark (nein, das Modul sollst/kannst Du nicht einsetzen), aber die Vorgehensweise ist beschrieben:
http://www.contenido.org/forum/viewtopi ... 9896#49896
Gruß
HerrB
Verfasst: Fr 11. Nov 2005, 13:22
von fancypants.ch
herzlichen dank.
konnte den code so erweitern, dass nun auch das Erstelldatum ausgegeben wird.
vielen dank für die hilfe
gruss
fancy
Verfasst: Fr 11. Nov 2005, 16:39
von HerrB
Poste ruhig Deine Änderungen (wenns geht, nur die...).
Gruß
HerrB
Verfasst: Mo 14. Nov 2005, 07:35
von fancypants.ch
ach zu früh gefreut. es zeigt mir nur das aktuelle datum an
aber ich werde den code sofort posten, wenn ich die lösung habe.
Verfasst: Di 15. Nov 2005, 11:42
von fancypants.ch
habs doch noch geschafft:
falls es jemand brauchen kann, hier die artikelliste aus contenido 4.6.2, welche das Erstelldatum des Artikels ausgibt.
Hier der erweiterte OUTPUT-CODE
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : News
* Author(s) : Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
************************************************/
cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');
if (!is_object($tpl)) {
$tpl = new Template;
}
$tpl->reset();
$sql = "SELECT
htmlpath, frontendpath
FROM
".$cfg["tab"]["clients"]."
WHERE
idclient = ".$client." ";
$db->query($sql);
if ($db->next_record()) {
$htmlpath = $db->f('htmlpath');
$frontendpath = $db->f('frontendpath');
}
// selected category
$selcat = "CMS_VALUE[1]";
//echo "sel $selcat<br>";
$template = "teaser-standard.html";
//echo "tpl $template<br>";
// anzahl der zeichen text
$mxtext = 200;
$limit = "CMS_VALUE[15]";
$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
$cms_sort_direction = 'desc';
}
if ("CMS_VALUE[3]" == "sortdate") {
$order = 'lastmodified';
} else {
$order = 'artsort';
}
$newsheadline = "CMS_VALUE[4]";
$tpl->set('s', 'TITLE', $newsheadline);
if (strlen($selcat) > 0 AND $selcat != '0') {
$options = array ('idcat' => $selcat, "start" => false, "order" => $order, "direction" => $cms_sort_direction);
$list = new ArticleCollection($options);
$count = $list->count;
if ($count > 0) {
if (is_numeric($limit) AND strlen($limit) > 0) {
if ($limit < $list->count) {
$limit_art = $limit;
} else {
$limit_art = $list->count;
}
} else {
$limit_art = $list->count;
}
for ($i = 0; $i < $limit_art; $i ++) {
$article = $list->nextArticle();
$article_id = $article->getField('idart');
$teaser_img = '';
if ($noimg != 'true') {
$text_html = $article->getContent('CMS_HTML', 1);
$regEx = "/<img[^>]*?>.*?/i";
$match = array ();
preg_match($regEx, $text_html, $match);
$regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
$img = array ();
preg_match($regEx, $match[0], $img);
$img_src = preg_split("/\//", $img[0]);
$img_name = $img_src[count($img_src) - 1];
$img_name = preg_replace("/\"/", "", $img_name);
$img_split = preg_split("/\./", $img_name);
$img_type = $img_split[count($img_split) - 1];
$img_split2 = preg_split("/_/", $img_split[0]);
$name = $img_name;
if (count($img_split2) > 1) {
$img_x = $img_split2[count($img_split2) - 1];
$img_y = $img_split2[count($img_split2) - 2];
if (is_numeric($img_x) AND is_numeric($img_y)) {
$suffix = "_".$img_x."_".$img_y.".".$img_type;
$name = preg_replace("/$suffix/", "", $img_name);
$name = $name.".[a-zA-Z]{3}";
}
}
$img_teaser = '';
if (strlen($name) > 0) {
$sql = "SELECT
*
FROM
".$cfg["tab"]["upl"]."
WHERE
filename REGEXP '$name' ";
//echo "<pre>"; print_r($sql); echo "</pre>";
$db->query($sql);
if ($db->next_record()) {
$filename = $db->f('filename');
$dirname = $db->f('dirname');
}
$img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;
$img_size = "CMS_VALUE[14]";
$img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
} // end if strlen
if (strlen($img_teaser) > 0) {
$teaser_img = '<img src="'.$img_teaser.'" class="teaser_img">';
} else {
$teaser_img = '';
}
} // end if noimg
$headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
$headline = str_replace($replace, " ", $headline);
/* $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
$subheadline = str_replace($replace, " ", $subheadline);*/
$teaserheadline = /*$subheadline." - ".*/
$headline;
$href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
$teasertext = $article->getField('summary');
if (strlen(trim($teasertext)) == 0) {
$teasertext = strip_tags($article->getContent('CMS_HTML', 1));
$teasertext2 = $teasertext;
$teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
if ($teasertext!=$teasertext2) {
$teasertext.= '...';
}
} // end if
$sql = "SELECT DATE_FORMAT(created, '%d.%m.%Y') AS Changedatum FROM concms_art_lang WHERE idart = " .$article_id;
$db->query($sql);
if ($db->next_record())
{
$time = $db->f('Changedatum');
}
$teasertext = $teasertext." ".$next;
$tpl->set('d', 'HEADLINE', $teaserheadline);
$tpl->set('d', 'TEXT', $teasertext);
$tpl->set('d', 'HREF', $href);
$tpl->set('d', 'TIME', $time);
$tpl->set('d', 'IMG', $teaser_img);
$tpl->set('d', 'MORE', mi18n("mehr"));
$tpl->next();
} // end for
$tpl->generate('templates/'.$template);
}
}
?>
zum schluss noch im HTML-TEMPLATE die variable
an beliebiger Stelle einsetzen.
grüsse
Verfasst: So 20. Nov 2005, 08:13
von Simone
fancypants.ch hat geschrieben:
zum schluss noch im HTML-TEMPLATE die variable
an beliebiger Stelle einsetzen.
grüsse
Sorry, wo ist das HTML-Template? Ich habe ein Modul HTML, aber da wirds wohl nicht sein. Im Ordner template gibts kein HTML-template, in der CSS-Datei wirds wohl auch nichts bringen, wenn ich es schnöde ans Ende setze.
Danke Dir für die Denkhilfe ...
Simone
Verfasst: So 20. Nov 2005, 09:23
von jost
Guck mal unter Style/ HTML-Editor/ ->teaser_standard oder teaser_rechts...
Verfasst: So 20. Nov 2005, 10:53
von Simone
@jost
Danke für die Aufklärung - rätzelte schon in anderemThread, was wohl damit gemeint sei.
Die Änderung zeigt bei mir keine Zeit an, greift wohl nicht mit der Datenbank. nur das Time kommt.
Aber immerhin weiß ich, was das HTML-Template ist
Simone
Verfasst: So 20. Nov 2005, 11:48
von jost
Hast Du denn den Code des Moduls entsprechend geändert und den Time-Platzhalter korrekt eingefügt?
Verfasst: So 20. Nov 2005, 13:17
von visionary
@ simone
ändere "concms_art_lang"
in "con_art_lang"
Verfasst: So 20. Nov 2005, 16:58
von Simone
@visionary
Ich danke !!!!!!!!
Habe übrigens die News-Artikelliste zwei Mal eingesetzt, weil die rechte Spalte mit dem im Forum beschriebenen Problem Cannot redeclare catischildof() (previously zu kämpfen hat. Nun wollte ich aber nicht rechts ein Datum haben. Also habe ich die Artikelliste kopiert, die alte Einstellung natürlich genommen und einfach ein teaser-standard2.html ohne Time gemacht und funktioniert.
Ich hoffe, meine unorthodoxe Vorgehensweise ist okay.
Simone
Verfasst: Mo 21. Nov 2005, 15:15
von visionary
hallo,
habe den code abgeändert so das auch der namen des autors mit
dabei ist
http://www.mk-anras.net/ta/cms/front_co ... ?idcat=178