modul für 4.5.2 alpha :: w3concepts.alist.thumbs.v1

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

modul für 4.5.2 alpha :: w3concepts.alist.thumbs.v1

Beitrag von kummer » Do 11. Nov 2004, 15:45

noch ne artikelliste. diesmal für die 4.5.2 alpha... es hat da ja ein paar änderungen gegeben, weshalb nicht alle artikellistenmodule der 4.4.4 funktionieren.

dieses modul hat nur die rumpffunktionen der übrigen artikellisten und dürfte primär als ausgangspunkt dienen.

es hat folgende features:

* automatische thumbnailgenerierung, wenn ein bild im bildmodul 1 vorliegt
* teaser wird aus der seitenzusammenfassung ungekürzt übernommen
* titel wird dem seitentitel entnommen
* startartikel sind ausgeblendet
* geht bis zu 2 kategorieebenen in die tiefe

input-bereich:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :	    w3concepts.alist.thumb.v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     07-11-2004
* Modified    :     07-11-2004
************************************************/

class pfadAlistThumb {

	function pfadAlistThumb($pfad) {
		$this->pfad = $pfad;
		$this->pathlen = strlen($this->pfad);
	}

	function getPath($root,$level = 0) {
		$content = $this->readDir($root);

		foreach ($content as $file) {
			if (is_dir($root.$file)) {
				$verzeichnis = substr($root,$this->pathlen);
				$returnvalue["{$verzeichnis}{$file}/"] = str_repeat(" ",$level * 5).$file;
				$returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1));
			}
		}

		return $returnvalue;
	}

	function readDir($path) {
		$handle = opendir($path);

		while ($file = readdir ($handle)) {
			if ($file != "." && $file != "..") $returnvalue[] = $file;
		}
		closedir($handle);

		return $returnvalue;
	}

	function makeSelect($preselection) {
		$pfad = $this->getPath($this->pfad);

		foreach ($pfad as $key => $value) {
			echo "$key :: $value<br/>\n";
			if ($preselection == $key) {
				echo "<option value=\"$key\" selected=\"selected\">$value</option>";
			} else {
				echo "<option value=\"$key\">$value</option>";
			}
		}
	}
}

$pfad = new pfadAlistThumb($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']);

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";

echo "<tr><td>Thumbnailpfad:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[0]\" />";
$pfad->makeSelect("CMS_VALUE[0]");
echo "</td>";

echo "<tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[1]\">";
$selected = "CMS_VALUE[1]";

if($selected!="0" && $selected!=""){
    echo"<option value=\"0\">--- kein ---</option>";
} else {
    echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
}

$sql = "
    SELECT a.idcat, a.level, c.name
    FROM {$cfg['tab']['cat_tree']} AS a,
         {$cfg['tab']['cat']} AS b,
         {$cfg['tab']['cat_lang']} AS c
    WHERE
        a.idcat = b.idcat
        AND b.idcat = c.idcat
        AND c.idlang='$lang'
        AND b.idclient='$client'
        AND c.visible = 1
    ORDER BY a.idtree
    ";

$db->query($sql);

while ($db->next_record()) {
    $spaces = "|";
    $levels = $db->f("level");
    for ($i = 0; $i < $levels; $i ++) {
        $spaces = $spaces . "--";
    }
    $spaces .= ">";

    if ($selected == $db->f("idcat")) {
        echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
    } else {
        echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
    }
}

echo "</select></td></tr>";

echo "<tr><td>Anzahl Artikel je Seite:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"3\" /></td>";

echo "<tr><td>Text für Previous-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"15\" /></td>";

echo "<tr><td>Text für Next-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"15\" /></td>";

echo "<tr><td>Thumbnail-Breite:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"5\" /></td>";

echo "<tr><td>Artikel anzeigen bis:</td>";
echo "<td><select name=\"CMS_VAR[6]\">";
$ebene = "CMS_VALUE[6]";
for ($i=0;$i>-3;$i--) {
    if ($i == $ebene) {
        echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>";
    } else {
        echo"<option value=\"$i\">Ebene $i</option>";
    }
}

echo "</table>";

Code: Alles auswählen

output-bereich:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     w3concepts.alist.mod4.v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     06-21-2004
* Modified    :     06-21-2004
************************************************/

class alistThumbs {

	function alistThumbs() {

		// Initialwerte festlegen
		$this->setIniValues();

		// Datenbankverbindung herstellen
		$this->db  = new DB_Contenido;
		$this->db2  = new DB_Contenido;

		// Anzahl Artikel ermitteln
		$this->anzahl_artikel = $this->getNumberOfArticles();

		// Artikel auslesen
		$this->getArticles();

		// Artikel ausgeben
		$this->showArticles();

		// Navigation ausgeben
		$this->showNavigation();
	}

	function setIniValues() {
		
		$bildzielpfad = "CMS_VALUE[0]";
		$this->bildzielpfad['frontend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad;
		$this->bildzielpfad['backend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad;

		$this->categorie = "CMS_VALUE[1]";

		$this->angezeigte_anzahl = "CMS_VALUE[2]";
		if ($this->angezeigte_anzahl == '') $this->angezeigte_anzahl = 10;

		$this->navigationslink['previous'] = "CMS_VALUE[3]";
		if ($this->navigationslink['previous'] == '') $this->navigationslink['previous'] = '[:: rückwärts ]';

		$this->navigationslink['next'] = "CMS_VALUE[4]";
		if ($this->navigationslink['next'] == '') $this->navigationslink['next'] = '[ vorwärts ::]';

		$this->ebene = "CMS_VALUE[6]";

		$this->bildbreite = "CMS_VALUE[5]";

		$this->limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);
	}

	function createImage($dirname, $filename) {

		global $cfg, $cfgClient, $client;

		$bilddateiname = "{$this->bildbreite}_$filename.jpg";

                if (!file_exists("{$this->bildzielpfad['backend']}$bilddateiname")) {

			$src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);

			$bildhoehe = round($src_image_size[1] * $this->bildbreite / $src_image_size[0]);
			if ($bildhoehe > $this->bildbreite) {
				$bildhoehe = $this->bildbreite;
				$bildbreite = round($src_image_size[0] * $bildhoehe / $src_image_size[1]);
			} else {
				$bildbreite = $this->bildbreite;
			}		

                    $dst_im = imagecreatetruecolor($bildbreite,$bildhoehe);

                    if ($src_image_size[2] == 1) {
                        $src_im = imagecreatefromGIF($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
                    } elseif ($src_image_size[2] == 2) {
                        $src_im = ImageCreateFromJPEG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
                    } else {
                        $src_im = imagecreatefromgd($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
                    }
                    
                    imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
                    imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100);
                }

		return $this->bildzielpfad['frontend'].$bilddateiname;
	}

	function showNavigation() {

		global $sess, $client, $lang, $idcat, $idart, $cfgClient;

		if ($this->limit > 0 || $this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) {
			echo '<table cellpadding="0" cellspacing="0" style="width:100%"><tr>';
			
			if ($this->limit > 0) {
				$displaylimit = ($this->limit - $this->angezeigte_anzahl >= 0)?($this->limit - $this->angezeigte_anzahl):(0);
				echo "<td style=\"text-align:left\"><a href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->navigationslink['previous']}</a></td>";
			} else {
				echo '<td>&nbsp;</td>';
			}

			if ($this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) {
				$displaylimit = $this->limit + $this->angezeigte_anzahl;
				echo "<td style=\"text-align:right\"><a href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->navigationslink['next']}</a></td>";
			} else {
				echo '<td>&nbsp;</td>';
			}
			echo '</tr></table></p>';
		}
	}

	function getNumberOfArticles() {

		global $cfg, $lang;

		switch ($this->ebene) {
			case -2:
				$this->db->query("
					SELECT count(*) AS anzahl
					FROM
						{$cfg['tab']['cat']} AS a,
						{$cfg['tab']['cat']} AS b,
						{$cfg['tab']['cat']} AS c
					LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
					LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
					LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang)
					WHERE
					(
						(
							c.parentid = b.idcat
							AND b.parentid = a.idcat
						)
						OR
						(
							c.idcat = b.idcat
							AND b.parentid = a.idcat
						)
						OR
						(
							c.idcat = b.idcat
							AND b.idcat = a.idcat
						)
					)
					AND a.idcat = {$this->categorie}
					AND e.online = 1
					AND e.redirect = 0
					AND e.external_redirect = 0
					AND e.idlang = $lang
					AND f.startidartlang != e.idartlang
					");
				break;
			case -1:
				$this->db->query("
					SELECT count(*) AS anzahl
						FROM
						{$cfg['tab']['cat']} AS a,
						{$cfg['tab']['cat']} AS b,
						{$cfg['tab']['cat']} AS c
					LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
					LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
					LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang)
					WHERE
					(
						(
							c.idcat = b.idcat
							AND b.parentid = a.idcat
						)
						OR
						(
							c.idcat = b.idcat
							AND b.idcat = a.idcat
						)
					)
					AND a.idcat = {$this->categorie}
					AND e.online = 1
					AND e.redirect = 0
					AND e.external_redirect = 0
					AND e.idlang = $lang
					AND f.startidartlang != e.idartlang
					");
				break;
			case 0:
				$this->db->query("
					SELECT count(*) AS anzahl
					FROM
						{$cfg['tab']['cat']} AS a,
						{$cfg['tab']['cat']} AS b,
						{$cfg['tab']['cat']} AS c
					LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
					LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
					LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang)
					WHERE
					(
						(
							c.idcat = b.idcat
							AND b.idcat = a.idcat
						)
					)
					AND a.idcat = {$this->categorie}
					AND e.online = 1
					AND e.redirect = 0
					AND e.external_redirect = 0
					AND e.idlang = $lang
					AND f.startidartlang != e.idartlang
					");
				break;
		}

		$this->db->next_record();
		return $this->db->f('anzahl');
	}

	function getArticles() {

		global $cfg, $lang;

		switch ($this->ebene) {
			case -2:
				$this->db->query("
					SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
					FROM
						{$cfg['tab']['cat']} AS a,
						{$cfg['tab']['cat']} AS b,
						{$cfg['tab']['cat']} AS c
					LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
					LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
					LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang)
					WHERE
					(
						(
							c.parentid = b.idcat
							AND b.parentid = a.idcat
						)
						OR
						(
							c.idcat = b.idcat
							AND b.parentid = a.idcat
						)
						OR
						(
							c.idcat = b.idcat
							AND b.idcat = a.idcat
						)
					)
					AND a.idcat = {$this->categorie}
					AND e.online = 1
					AND e.redirect = 0
					AND e.external_redirect = 0
					AND e.idlang = $lang
					AND f.startidartlang != e.idartlang
					ORDER BY e.created DESC
					LIMIT {$this->limit}, {$this->angezeigte_anzahl}
					");
				break;
			case -1:
				$this->db->query("
					SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
					FROM
						{$cfg['tab']['cat']} AS a,
						{$cfg['tab']['cat']} AS b,
						{$cfg['tab']['cat']} AS c
					LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
					LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
					LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang)
					WHERE
					(
						(
							c.idcat = b.idcat
							AND b.parentid = a.idcat
						)
						OR
						(
							c.idcat = b.idcat
							AND b.idcat = a.idcat
						)
					)
					AND a.idcat = {$this->categorie}
					AND e.online = 1
					AND e.redirect = 0
					AND e.external_redirect = 0
					AND e.idlang = $lang
					AND f.startidartlang != e.idartlang
					ORDER BY e.created DESC
					LIMIT {$this->limit}, {$this->angezeigte_anzahl}
					");
				break;
			case 0:
				$this->db->query("
					SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
					FROM
						{$cfg['tab']['cat']} AS a,
						{$cfg['tab']['cat']} AS b,
						{$cfg['tab']['cat']} AS c
					LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
					LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
					LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang)
					WHERE
					(
						(
							c.idcat = b.idcat
							AND b.idcat = a.idcat
						)
					)
					AND a.idcat = {$this->categorie}
					AND e.online = 1
					AND e.redirect = 0
					AND e.external_redirect = 0
					AND e.idlang = $lang
					AND f.startidartlang != e.idartlang
					ORDER BY e.created DESC
					LIMIT {$this->limit}, {$this->angezeigte_anzahl}
					");
				break;
		}

		$counter = 0;
		while ($this->db->next_record()) {
			$this->articles[$counter]['name'] = $this->db->f('name');
			$this->articles[$counter]['pagetitle'] = $this->db->f('pagetitle');
			$this->articles[$counter]['idcat'] = $this->db->f('idcat');
			$this->articles[$counter]['idart'] = $this->db->f('idart');
			$this->articles[$counter]['idartlang'] = $this->db->f('idartlang');
			$this->articles[$counter]['created'] = $this->db->f('erstellungsdatum');
			$this->articles[$counter]['summary'] = $this->db->f('summary');

			$counter++;
		}

		for ($i=0;$i<count($this->articles);$i++) {
			$this->db->query("
				SELECT a.value, a.typeid, b.type, c.filename, c.dirname
				FROM {$cfg['tab']['content']} AS a
				LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
				LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
				WHERE
				a.idartlang = {$this->articles[$i]['idartlang']}
				AND b.type = 'CMS_IMG'
				");
			if ($this->db->next_record()) {
				$this->articles[$i]['picture'] = $this->createImage($this->db->f('dirname'),$this->db->f('filename'));
			}
		}
	}

	function showArticles() {

		global $sess, $cfgClient, $client, $lang, $edit;

		if (count($this->articles) == 0 || $edit) {
			
			echo "<div class=\"text\">CMS_HTML[10]</div>";
		} else {

			echo '<table class="alist" width="100%" cellspacing="0" cellpadding="0">';
	
			for ($i=0;$i<count($this->articles);$i++) {
				list($key,$artikel) = each($this->articles);

				$link = $sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat={$artikel['idcat']}&idart={$artikel['idart']}");
	
				// Titelzeile ausgeben
				echo "<tr><td class=\"alistHeader\"><a href=\"$link\" class=\"alistHeader\">{$artikel['pagetitle']}</a></td><td class=\"alistCreated\">{$artikel['created']}</td></tr>";
	
				if (!empty($artikel['picture'])) {
	
					// Zusammenfassung und Bild ausgeben
					echo "<tr><td class=\"alistSummary\">{$artikel['summary']}</td><td class=\"alistPicture\"><a href=\"$link\"><img src=\"{$artikel['picture']}\" border=\"0\"/></a></td></tr>";
				} else {
	
					// Zusammenfassung ausgeben
					echo "<tr><td colspan=\"2\" class=\"alistSummary\">{$artikel['summary']}</td></tr>";
				}

				if ($i < count($this->articles) -1) {
					echo '<tr><td colspan="2" class="alistSeparator"><img src="/cms/images/green_pixel.gif" width="522" height="1" border="0"></td></tr>';
				}
			
			}

			echo '</table>';
		}
	}
}

$alistThumbs = new alistThumbs();
?>
gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

emergence
Beiträge: 10600
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 19. Nov 2004, 14:47

hast du auch nen link dazu das man es online sehen könnte ?
*** make your own tools (wishlist :: thx)

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Fr 19. Nov 2004, 14:55

aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Wie bekomme ich ihn denn dazu, dass 2.Bild zu verwenden

Beitrag von DEDE » Mo 14. Feb 2005, 15:14

Hallo Kummer,

ich suchte nach CMS_img ... aber da ist nix.
Wie kann ich denn bei 4.5.2 in diesem Modul
das 2. Bild auslesen?

Frohen Gruss
Daniela

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mo 14. Feb 2005, 15:23

du musst diesen query...

Code: Alles auswählen

is->db->query("
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname
            FROM {$cfg['tab']['content']} AS a
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
            WHERE
            a.idartlang = {$this->articles[$i]['idartlang']}
            AND b.type = 'CMS_IMG' 
wie folgt ergänzen...

Code: Alles auswählen

is->db->query("
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname
            FROM {$cfg['tab']['content']} AS a
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
            WHERE
            a.idartlang = {$this->articles[$i]['idartlang']}
            AND b.type = 'CMS_IMG'
            AND a.typeid = 2 
habs nicht getestet. aber sollte funktionieren.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Beitrag von DEDE » Mo 14. Feb 2005, 15:31

Du bist nicht nur verflixt gut, sondern auch noch verdammt schnell.
Danke es funktioniert!

Dicken Gruss

Daniela

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mo 14. Feb 2005, 15:36

thx! :oops:
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Flachi
Beiträge: 3
Registriert: Di 9. Aug 2005, 19:50
Kontaktdaten:

Frage zur Artikelliste !

Beitrag von Flachi » Di 9. Aug 2005, 20:00

Hätte da eine Frage zur Artikelliste:

Ich benötige nicht den Seitentitel sondern nur die Überschrift (CMS_HTMLHEAD[1]) und ein bisserl Text (CMS_HTML[1]) der Artikel!

Wie kann ich das lösen?
Welchen Code muss ich wo einfügen....?

Bitte um Hilfe!

mfg
Matthias

Doljaka
Beiträge: 32
Registriert: Mi 11. Mai 2005, 14:08
Wohnort: Kiel
Kontaktdaten:

Re: Frage zur Artikelliste !

Beitrag von Doljaka » Mo 15. Aug 2005, 22:51

Flachi hat geschrieben: Ich benötige nicht den Seitentitel sondern nur die Überschrift (CMS_HTMLHEAD[1]) und ein bisserl Text (CMS_HTML[1]) der Artikel!
Genau das würd ich auch gerne wissen. Ich denke aber, dass genau das
sehr schwierig wird, da Überschrift und Text als gesamter HTML-Code samt Layout Code in der Datenbank abgespeichert wird und somit ein
dirketes Zugreifen kaum möglich ist. Ich bin gespannt wie das und ob das zu lösen ist.
Contenido 4.6.2
Calender RC2
Mod-Rewrite
phpMySQL
tomcat-Server

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 16. Aug 2005, 07:35

das auslesen der headline ist kein problem. diese enthält typischerweise auch keine html-auszeichnungen. und wenn doch, kann man diese ohne probleme entfernen.

etwas anders sieht es beim html-text-bereich. dieser kann auch tabellen enthalten oder andere komplexe darstellungsoptionen. wenn man dort einfach alles entfernt, kommt es nicht gut heraus.

es gibt zahlreiche artikellisten im forum, die die headline und die subheadline ausgeben. dieses modul macht das nicht. der grund ist einfach: es schränkt nämlich die möglichkeiten des redakteuren ein. es gibt nämlich gründe, den text, den der besucher auf der seite findet, nicht bereits bei der artikelliste vorweg zu nehmen. in der tat ist es aus redaktioneller sicht unbedingt besser, wenn wir keine wiederholung haben. sondern wenn der text der artikelliste einen anderen text bietet, als dann im eigentlichen artikel erscheint. wenn man die beiden texte identisch haben möchte, gibt es auch eine einfache lösung: den selben text verwenden!

aber wie gesagt: besser nicht!

wenn du heute die tageszeitung gelesen hast, wirst du folgende feststellung gemacht haben können: auf der ersten seite steht nicht derselbe text, wie dann im artikel, der den sachverhalt ausführt. würde sich der text im ganzen artikel wiederholen, wäre das eher langweilig. der text auf der ersten seiten ist zwar durchaus ähnlich, um den leser für einen artikel zu interessieren; allerdings ist er niemals gleich.

was nun für zeitungen gilt, gilt genau so auch für das web!

was du machen möchtest, ist zwar möglich, allerdings nicht empfehlenswert. wenn du es dennoch möchtest, dann such mal im forum. es gibt zahlreiche artikellisten, welche genau das machen.

ich hoffe, das hilft dir weiter.

mfg,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

sun-door
Beiträge: 5
Registriert: Fr 12. Nov 2004, 18:33
Kontaktdaten:

Hmm erstmal Danke...

Beitrag von sun-door » Di 16. Aug 2005, 11:14

Hallo Andreas,
erstmal Danke für den Support und den netten Code.
Ich bin zwar kein Anfänger mehr und kenne mich mit PHP und Contenido ganz gut aus, habe jedoch so meine Probleme deine Tipp andere A.Listen heranzuziehen in die Tat um zusetzen!
Auch ich möchte deiner Artikelliste beibringen die Head und Subheadline sowie einige Zeichen Text auszulesen.

Ich habe diese Artikelliste hier:

* Author : Evert Smit / Dirk Uptmoor / Peter Beauvain
* Copyright : None
* Created : 13-07-03
* Modified : 16-08-02 /20-09-03 upt /02-02-04 Beau

soweit editiert, dass sie unter meiner Contenido Version Release: 4.5.3 Beta mit einer einmaligen Fehlermeldung:
--> 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.
problemlos läuft. (Ich habe bisher nicht herausfinden können um welche Variablen und oder Funktionen es sich hierbei handelt)

Möchte ich das Modul jedoch ein 2tes Mal verwenden funktioniert es nicht mehr. (eval code error...)

Als ich nun deine A.Liste fand war ich erleichtert eine stabil und gut geschriebene Version gefunden zu haben ... verzweifle jedoch daran sie zu ergänzen. Wenn es dir zeitlich möglich wäre fände ich es Klasse, wenn du hinsichtlich der Einbindung der Headline, Sub & Text weitere Hilfestellungen geben könntest.

Ach ja Thema Einschränkung der Redakteure --> für mich ist genau dies das Ziel: Ein DAU füllt ein einfaches Template nach ihm vorgegebenen Richtlinien aus und seine Inhalte werden auto. ordnungsgemäß aufgelistet.

mfg
Sebastian

JSommer
Beiträge: 324
Registriert: Fr 5. Sep 2003, 12:32
Wohnort: 192.168.0.11
Kontaktdaten:

Beitrag von JSommer » Do 1. Sep 2005, 10:48

Servus zusammen, bin am Start mit einer 4.5.3er Version und möchte diese Artikelliste einbinden. Jetzt kämpf ich mich eben durch die Zeilen und steh´ irgendwie auf dem Schlauch - wo find ich denn die Parameter aus welchen Containern er was nimmt?

Machen wirs der Einfachheit andersrum:

Wo muss im Moment
1. Die Überschrift
2. Das Bild
3. Der Teasertext
4. Der Copytext und weitere Bilder

stehen (in welchen Containern) damit er sie auch richtig ausliest - im Moment hab ich in Container[1] das Modul Bild(1) was auch angezeigt wird ... aber das wars dann auch schon ... Können wir ja am Beispiel:
http://452.w3concepts.net/cms/front_con ... p?idcat=24 machen ... wo steht da was :-) damit es die Artikelliste findet? :-O

Danke,
Jürgen

JSommer
Beiträge: 324
Registriert: Fr 5. Sep 2003, 12:32
Wohnort: 192.168.0.11
Kontaktdaten:

Beitrag von JSommer » Do 1. Sep 2005, 14:02

Ich kriegs nicht gebacken... obwohl ich nun 10 Container mit Inhalt angelegt habe, wirft der mir nix raus - liegt es an der 4.5.3? oder woran kann das liegen ... nur das Bild wird dargestellt und das Datum :-(

siehe http://kotschenreuther-neufang.de/cms/f ... =34&lang=1

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Do 1. Sep 2005, 14:44

es steht ganz oben im thread:

titel aus dem seitentitel

und

teaser aus der seitenzusammenfassung.

hast du diese werte ausgefüllt? achtung: es hat zwei titel in den seitendetails.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

JSommer
Beiträge: 324
Registriert: Fr 5. Sep 2003, 12:32
Wohnort: 192.168.0.11
Kontaktdaten:

Beitrag von JSommer » Do 1. Sep 2005, 15:14

Achso ... na da kann ich lang bei meinen Containern suchen :-) Danke fürn Tipp .. jetzt muss ich das ganze nur noch mit schön Formatieren. Danke Danke.

Tja, aber wie und wo bekomm ich da meine CSS rein ... hm ... mal schauen :)

Gesperrt