Seite 1 von 3

modul gesucht: headline mit link auf artikelseite

Verfasst: Di 21. Jan 2003, 20:33
von willchisum
ich brauche ein modul (auf der eingangsseite), bei dem der redakteur aus allen artikeln (die es gibt) auswaehlen kann und die headline (des gelinkten artikels) gekuerzt mit einem link auf die eigentliche artikelseite verzweigt. ausserdem soll das bild des artikels vor dem link angezeigt werden. ... hat wahrscheinlich keiner verstanden...

Verfasst: Mo 27. Jan 2003, 21:09
von JUG
Die Funktion ist im Modul "Artikelliste" enthalten, musste dir nur rausziehen.

Danke

Verfasst: Di 28. Jan 2003, 09:49
von willchisum
oh super - danke! eine antwort :D
werde ich mir mal ansehen.

Verfasst: Di 28. Jan 2003, 15:49
von pulk
nur das mit dem bild is da nicht drinnen, oder ?!

Verfasst: Di 28. Jan 2003, 16:06
von JUG
Also einen Teaser mit Bild gibt es IMHO noch nicht, das ist auch sehr speziell. Dazu müssten die Artikel im Standardformat Text/Bild vorhanden sein. Sicher willst du das Bild als Thumbnail haben, und schon wird das Thema komplex. Von "Resize" halte ich nicht viel, denn die Dateigröße bleibt dieselbe und die browserseitige Bildgrößenänderung sieht auch nicht sehr schick aus. Es gibt aber eine Serversoft (glaube ImageMagick), die Images verkleinern kann. Die Zusammenarbeit mit einem Modul hat glaube Idea-Tec aufgezeigt. Da gibt es ein Modul, das in einem vorher bestimmten Verzeichnis abgelegte Bilder anzeigen kann.

Wenn du jetzt aus diesen guten Ansätzen ein Modul zauberst, würdest du sicher einige Contenido-User überglücklich machen. Bild

Verfasst: Di 28. Jan 2003, 16:22
von pulk
Wenn du jetzt aus diesen guten Ansätzen ein Modul zauberst, würdest du sicher einige Contenido-User überglücklich machen.
und vor allem mich ;)


ich würd auf das thumbnail erzeugen verzichten, mir würd schon reichen wenn sich das modul einfach das bild holt das im artikel is, da ich auch im artikel ein thumbnail habe, habe ich kein problem mit der dateigröße.

aber ich kann das nicht :cry:

Verfasst: Di 28. Jan 2003, 18:01
von idea-tec
ich verspreche mal nichts, werde aber versuchen ob einer von meinen jungs das mal eben in unser artikel-modul integrieren kann.

wird aber am anfang ein schnellschuß und vordefinierte anzeigegröße welche man im modul jedoch selbst anpassen oder auch aussternen kann.

Verfasst: Di 28. Jan 2003, 18:01
von pulk
juhuuuuuu :D

Verfasst: Di 28. Jan 2003, 23:03
von willchisum
JUG hat geschrieben:Die Funktion ist im Modul "Artikelliste" enthalten, musste dir nur rausziehen.
Habe jetzt mal nachgesehen:
im modul "artikelliste" kann man im template konfigurations bereich den "News-Verzeichnis" (struktur eintrag) auswaehlen und es werden alle unterliegenden Seiten angezeigt.
=> d. h. der redakteur muesste auch template konfigurations rechte haben. richtig?

Verfasst: Mi 29. Jan 2003, 06:18
von idea-tec
wird vor dem Wochenende nix... sorry
ich hoffe ihr könnt so lange warten

Verfasst: Mi 29. Jan 2003, 15:58
von pulk
idea-tec hat geschrieben:ich hoffe ihr könnt so lange warten
ich warte seit ich contenido kenne :D (kein vorwurf!!! an niemanden!!!)

Verfasst: So 2. Feb 2003, 22:15
von idea-tec
so, das ding ist fertig...
getestet und funktioniert, aber nur mit der erweiterung "workflow_upload"

features:
wenn kein bild zugeordnet, kein bild, kein platzhalter notwendig
platzierung rechts oder links konfigurierbar (textfluß)
grafik wird in der artikel-konfiguration ausgewählt

upload demnächst mitsamt dokumentation auf der entwicklerseite möglich

Verfasst: Mo 3. Feb 2003, 15:10
von pulk
super, freu mich schon es zu testen ;)

wann?

Verfasst: Mo 24. Feb 2003, 14:27
von subsolutions
:wink: ich wäre echt dankbar wenn ihr das modul bald uploadet!!!
danke

ARTIKELLISTE PLATINUM mit Bild, Titel, Vorschautext

Verfasst: Do 27. Feb 2003, 11:04
von JSIT
Hallo!
Wir haben das umgesetzt ud verfeinern es noch.
Mit meinem Kunden zusammen haben wir das realisiert und haben das Modul "Der Artikel" und die Artikelliste angepasst.
Wir nutzen die Var
{head1} = Titel
{text1} = Vorschautext
{pic1} = Vorschaubild

von "Der Artikel" um eine Vorschau zu generieren die entweder die Artikel einer Kat liest, DER sogar die Startseiten der Kat. liest !!
Das kann man einstellen im Template.

Schaut Euch auch den MULTILINK an !!
Eine CMS_LINK Erweiterung mit Internen LINK, Bild Link, externen Link, Datei Link.

Hier der Code

Code: Alles auswählen

ModulName:
Start-Artikelliste Gold 

Bescheibung:
Listet {head1},{text1},{pic1} aus dem Modul "DER ARTIKEL" als Vorschau auf. Es können Startartikel oder Artikel gewählt werden, bei Startartikel werden die Startartikel der KAT gelesen, welche sich unter der gewählten KAT befinden!

IMPUT:

// selected category
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"5\" border=\"0\">
        <tr valign=\"top\">
          <td>Kategorie wählen:</td>
          <td>
            <select name=\"CMS_VAR[0]\">";

            // fetch all categorys
            $query = "SELECT A.idcat, A.level, C.name FROM $cfgTab_cat_tree AS A, ".
                     "$cfgTab_cat AS B, $cfgTab_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";

            // execute query
            $db->query($query);

            // loop result and build the options
            while ($db->next_record()) {

              // indent spacer
              $spaces = "";

              // how many levels
              $levels = $db->f("level");

              for ($i = 0; $i > $levels; $i ++) {
                // add 2 spaces for every level
                $spaces = $spaces . "'  '";

              } // end for

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

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

              } // end if

            } // end while

echo "      </select>
          </td>
        </tr>
        <tr>
          <td colspan=\"2\">Startseiten, oder Artikel anzeigen</td>
        </tr>
        <tr>
          <td>STARTSEITEN</td>
          <td><input type=\"radio\" name=\"CMS_VAR[10]\" value=\"1\"></td>
        </tr>
        <tr>
          <td>ARTIKEL</td>
          <td><input type=\"radio\" name=\"CMS_VAR[10]\" value=\"0\" CHECKED></td>
        </tr>
        <tr>
          <td>Bildbreite:</td>
          <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
        </tr>
        <tr>
          <td>Bildhöhe:</td>
          <td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\"></td>
        </tr>
        <tr>
          <td>Max Zeichen Head1</td>
          <td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>
        </tr>
        <tr>
          <td>Max Zeichen Head2</td>
          <td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"></td>
        </tr>
        <tr>
          <td>Text für Weiterleitung</td>
          <td><input type=\"text\" name=\"CMS_VAR[11]\" value=\"CMS_VALUE[11]\"></td>
        </tr>
        <tr>
          <td>Bild für Weiterleitung</td>
<td>";
echo "<select name=\"CMS_VAR[12]\" size=\"1\">";
$sql = "SELECT * FROM $cfgTab_upl WHERE idclient='$client' AND filetype='img' ORDER BY filename";
$db->query($sql);
while ($db->next_record()) {
         	echo "<option value=\"".$db->f("filename")."\" selected>".$db->f("description")."</option>";
}
echo "</SELECT></td>
</tr></table>";


OUTPUT:
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Artikelliste
* Author      :     4fb - Jan Lengowski
* Copyright   :     Contenido - four for business
* Created     :     15-08-2002
* Modified    :     16-08-2002
* Modified    :     20.02.2003 J.Schaaf, www.jsit.de
* Modified    :     23.02.2003 R.Meyer, EMK Elektronik GmbH
************************************************/
// second db class instance
$db2 = new DB_Contenido;

// selected category
$selcat = "CMS_VALUE[0]";

// selected is_start article or site article // jsit
$sel_start = "CMS_VALUE[10]";

// selected 'Weiter' Text // jsit
$text_to = "CMS_VALUE[11]";

// selected 'Weiter' Bild // jsit
$image_to = "CMS_VALUE[12]";

// bildbreite
// $imgwidth = "CMS_VALUE[1]";

// bildhoehe
// $imgheight = "CMS_VALUE[2]";

// anzahl der zeichen h1
// $mxh[0] = "CMS_VALUE[3]";

// anzahl der zeichen h2
// $mxh[1] = "CMS_VALUE[4]";

// select all articles in category widthout start article
// jsit start
if ($sel_start=="0")
{
	$query = "SELECT ARTLANG.idside, ARTLANG.idsidelang FROM $cfgTab_cat_side AS CATART, $cfgTab_side_lang AS ARTLANG ".
	         "WHERE CATART.idcat = '$selcat' AND ARTLANG.idside = CATART.idside AND ARTLANG.idlang = '$lang' AND ".
	         "ARTLANG.online = '1' AND CATART.is_start = '0' ORDER BY ARTLANG.title";
}
else
{
	$query = "SELECT ARTLANG.idside, ARTLANG.idsidelang FROM $cfgTab_cat_side AS CATART, $cfgTab_side_lang AS ARTLANG, $cfgTab_cat AS KAT  ".
	         "WHERE KAT.parentid = '$selcat' AND CATART.idcat = KAT.idcat AND ARTLANG.idside = CATART.idside AND ARTLANG.idlang = '$lang' AND ".
	         "ARTLANG.online = '1' AND CATART.is_start = '1 ' ORDER BY ARTLANG.title";
}
//jsit end

// execute query
$db->query($query);

IF (_DEBUG)
{
	echo "CAT: ".$selcat ;
	echo "<br>:".$query."<br>";
	echo $db->nf()."<br>";
}

unset($articleID);
unset($linkID);


// get id's of sub articles
while ($db->next_record())
{
	$articleID[] = $db->f("idsidelang");
	$linkID[] = $db->f("idside");
} // end while

// loop through subarticles

IF (_DEBUG)
{
	echo "<pre>articleID:<br>";
	var_dump ($articleID);
	echo "</pre>";
}

// now loop through ALL articles
foreach ($articleID as $key => $value)
{
	// select all CMS variables of the article
	$query = "SELECT * FROM $cfgTab_content WHERE idsidelang = '$value' ORDER BY typeid";
	
	IF (_DEBUG)
	{
		echo "<pre><br>:".$query."<br>";
	}
	// execute query
	$db->query($query);

	IF (_DEBUG)
	{
		echo "select all CMS variables of the article:<br>";
		var_dump ($articleID);
		echo "</pre>";
	}

	// link
	$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idside=$linkID[$key]&m=$m&s=$s");

	// initialize vars to point out user Errors
	$headline = "HEADLINE not defined!";
	$text = "TEXT not defined!";
	$img = "IMAGE not defined!";

	// loop through result and extraxt data
	while ($db->next_record())
	{

		// data type
		$type = $db->f("idtype");
		$type2 = $db->f("typeid"); // R.Meyer

		if ($type == 1 && $type2 == 31)
		{ // headline "vorschau"
			$headline = $db->f("value");

		}
		elseif ($type == 3 && $type2 == 31)
		{ // text "vorschau"
			$text = $db->f("value");
		}
		elseif ($type == 4 && $type2 == 31)
		{ // image "vorschau"
			$value = $db->f("value");
			$query = "SELECT filename FROM $cfgTab_upl WHERE idupl = '$value'";
			$db2->query($query);
			$db2->next_record();
			//  $img = $cfgClient[$client]["htmlpath"]["img"] . $db2->f("filename");
			$img = $cfgClient[$client]["frontendpath"]["img"] . $db2->f("filename");

		} // end if

	} // end while

	IF (_DEBUG)
	{
		echo "<pre>headline:<br>";
		var_dump ($headline);
		echo "</pre>";
	}

	// not required. User is responsible to keep it short
	//  foreach ($headline as $key => $value) {
	//    // headline length
	//    $len = strlen($headline[$key]);
	//
	//    // cut headline if too long
	//    if ($len > $mxh[$key] && $mxh[$key] > 0) {
	//      $headline[$key] = substr($headline[$key],0,$mxh[$key]);
	//      $headline[$key] = $headline[$key] . " ...";
	//    } // end if
	//
	//  } // end foreach

	// HTML template for one element
	// old: <img src=\"$img\" width=\"$imgwidth\" height=\"$imgheight\">
	//      <span class=\"text\">$headline[1]</span>
	//	<tr valign=\"bottom\" bgcolor=\"#ffffff\" height=\"1\">
	//		<td>
	//			<img src=\"img/spacer.gif\" width=\"1\" height=\"1\">
	//		</td>
	//	</tr>
	
	echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
		<tr valign=\"top\">
			<td style=\"padding:10px\">
				<img src=\"$img\">
			</td>
			<td width=\"100%\" style=\"padding:10px\">
				<a href=\"$link\">
					<span class=\"head2\">$headline</span><br><br>
				</a>
				<span class=\"text\">$text</span><br>
			</td>
		</tr>
		<tr valign=\"bottom\" align=\"right\">
			<td colspan=\"2\">
				<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
					<td valign=\"middle\" align=\"right\" width=\"100%\">
						<a href=\"$link\" style=\"font-size:11px;color:#000000\">$text_to
						</a>
					</td>
					<td align=\"right\">
						<a href=\"$link\">
							<img src=\"".$cfgClient[$client]["frontendpath"]["img"].$image_to."\" border=\"0\">
						</a>
					</td>
				</table>
			</td>
		</tr>
	</table><hr>";

	//unset($headline);

} // end foreach

die Abfrage IF (_DEBUG) ist einen Debugabfrage kann gelöscht werden ;-)

Einfach das Modul in eine Startseite einbauen! Fertig!
Man kan damit sogar ein Shopsystem erstellen, mit etwas Änderungen.
Version x folgt, wo man die max. Breite der Vorschaubilder festlegen kann oder ein neues Bild TH gebaut wird ( Modul Gallery)

Gruß und viel Spaß

Jörg

Fragen? Immer zu !