Seite 1 von 1
Dringend gesucht modifizierte Newsliste evtl.
Verfasst: Do 17. Aug 2006, 20:33
von spirit
Hallo liebe Gemeinde
ich bin dabei, eine Seite aufzubauen, die unterschiedliche Shops listet ( Weiterleitung zu diesen Shops)
Ich benötige dafür folgende Funktion:
Es werden alle Shops gelistet, Anlegen in Form von News, jedoch soll keine Weiterleitung auf den Artikel erfolgen, sondern direkt verlinkt werden. Ansicht soll sich wie folgt aufbauen: Bild / Headline / Text / Link
Nun sollen die angelegten Shops in den Kategorien angelegt werden, soweit ja kein Problem, aber.... es soll eine Mehrfachzuordung stattfinden. Das heisst, ein angelegter Shop soll in Kategorie A / C / F erscheinen.
Gibt es ein Modul, welches bereits bei der Einpflegung der Shops eine Funktion zur Kategorie/Artikelauswahl hat? Welches, wenn ich später einen Artikel neu einpflege dann auch ein Feld öffnet, in dem ich die Kategorien oder Artikel auswählen kann, auf dessen Seiten die Liste erscheinen soll?
Ich habe mich nun bestimmt etwas wirr ausgedrückt, aber ich hoffe, dass ihr mir dennoch weiterhelfen könnt. Bislang habe ich das Modul Multiple Article Teaser ausprobiert, welches klasse ist, jedoch für die spätere Einpflegung von neuen Shops, zwangsläufig jede Kategorie einzeln konfiguriert werden muss.
Mir wäre der umgekehrte Weg lieber: Shop anlegen und auswählen, wo es erscheinen soll.
Bsp:
shop1 ---- Kategorie 1+ 3 + 4 usw.
shop2 ---- Kategorie 1+ 3+ 5 + 6 usw.
Liebe Grüße
Martina
Verfasst: Do 17. Aug 2006, 22:03
von MyAccount
Das geht so ohne weiteres leider nicht mehr. Mit den Standard-Bordmittel wirst Du wahrscheinlich daran scheitern, dass Du einen Artikel nicht mehreren Kategorien zuordnen kannst.
Das hab ich hier dazu gefunden:
http://contenido.org/forum/viewtopic.ph ... highlight=
Im Moment fällt mir leider keine Lösung dazu ein.
Gruß MyAccount
Danke
Verfasst: Do 17. Aug 2006, 22:51
von spirit
Danke für Deine Nachricht...hmm...das stellt mich nun vor ein grosses Problem. Ich muss dann wohl versuchen, zumindest den Link *mehr* aus der Artikelliste gegen einen externen Link zu ersetzen...was auch wieder ein Problem für mich werden dürfte*g
Aber dennoch danke für Deine schnelle Beantwortung
Martina
Verfasst: Fr 18. Aug 2006, 10:58
von schlaucher
Hi spirit,
ich weiss leider nicht, wie gut Deine PHP Kenntnisse sind, aber mit etwas Aufwand könntest Du auch das Modul Terminliste
http://www.contenido.de/forum/viewtopic.php?t=13425 für Deine Zwecke umbauen.
Hier kannst Du zusätzliche Felder (z.B. Kategorien) einfügen und über eine geänderte Selektierung nur bestimmte Datensätze anzeigen lassen.
Gruß
schlaucher
Verfasst: Fr 18. Aug 2006, 11:16
von i-fekt
Dann doch lieber die
Artikelliste Advanced.

Verfasst: Fr 18. Aug 2006, 13:39
von spirit
Hallo schlauer, hallo i-fekt,
danke für die Tipps, doch meine PHP-Kenntnisse sind gleich Null

...ich bin Grafikerin.
Ich habe die ganze Nacht damit zugebracht, irgendeine halbwegs annehmbare Lsöung zu finden...und letztendlich alles vom Server gelöscht um eine alte Version neu aufzusetzen.
Glücklich bin ich damit nicht.
Ich schreibe nochmal kurz, was es sein soll:
Ich erstelle eine Liste von Shops:
Amazon
Otto
Neckermann.....
Lege Kategorien an:
Mode
Sport
Elektronik
Und möchte dann aus meiner Shopliste die entsprechenden Shops den Kategorien zuweisen. Hier kann es also vorkommen, daß ein Shop durchaus in 10 Kategorien angezeigt wird.
In der Auflistung in den einzelnen Kategorien soll die Übersicht untereinander erscheinen: Bild / Überschrift/Text. Es soll keine neue Seite für den ausführlichen Text geöffnet werden können, sondern es soll von der Übersicht direkt eine Weiterverlinkung zum Shop erfolgen.
Das zweite Problem...wie bekomme ich den Link * mehr* umgebaut ...so daß ich hier die URL einpflegen kann.
Ich bin verwirrter als gestern und schlauer erst recht nicht
Liebe Grüße
Martina
So
Verfasst: Fr 18. Aug 2006, 14:00
von spirit
Hallo nochmal,
so soll es aussehen, nur daß das Bild, sowie der Link nicht auf eine Unterseite leiten, sondern direkt zum Shopanbieter.
http://www.ckmb.de/media/cms/front_content.php?idcat=68
(Seite ist noch im Aufbau)
Verfasst: Fr 18. Aug 2006, 14:01
von kummer
hallo martina
es gibt ganz bestimmt eine lösung für dein problem.
ich würde das wie folgt angehen:
(1) im mysql ein tabelle anlegen mit artikel-ids (idartlang) sowie den kategorien (idcat).
(2) ein kleines modul erstellen, welches erlaubt, die entsprechenden kategorien zu setzen
(3) artikelliste so anpassen, dass für die ausgabe diese tabelle benützt wird.
dann kannst du beim jeweiligen artikel angeben, in welchen kategorien dieser ausgegeben werden soll.
ein etwas einfacherer, allerdings auch weniger eleganter ansatz:
(1) du gibst im artikel in der artikeleigenschaft die kategorienpfade derjenigen kategorien an, in welchen die darstellung erfolgen soll.
(2) dann brauchst du nur die artikelliste so anpassen, dass alle artikel auf das vorhandensein des kategoriepfades in der zusammenfassung geprüft werden.
aber wie gesagt, das ist die weitaus weniger glückliche lösung, da dazu ein feld 'missbraucht' werden muss.
Verfasst: Fr 18. Aug 2006, 14:35
von spirit
Hallo Kummer,
Dein erster Vorschlag ist genau das, was ich benötige. Doch leider reichen meine Kenntnisse nicht aus. Kann mir jemand ein Angebot machen, was solch eine Modifizierung kosten würde? Denn alleine bekomme ich kein Modul, meinen Vorstellungen angepasst, hin.
Vielen Dank
Verfasst: Fr 18. Aug 2006, 15:55
von schlaucher
Hi spirit
schau mal auf folgenden Link:
Testseite Shops
Ist alles "quick and dirty" aber jeder Shop ist nur einmal da und kann in jeder Kategorie angezeit werden. Das Design musst Du halt selbst anpassen, ich habs nicht so damit.
Ist die abgeänderte Terminliste
Gruß
schlaucher
Gelöst
Verfasst: Fr 25. Aug 2006, 02:35
von spirit
Hallo erstmal noch ein ganz dickes Danke für Eure Tipps.
Ich habe nun doch das Modul Multiple Article Teaser umgebaut und es so angepasst, daß es optisch , sowie auch mit der Verlinkung zum Shop klappt.
Bild links - Headline, darunter Text und darunter ein Button mit der Weiterleitung im neuen Fenster. Das ganze ist sauber in einer Tabelle abgelegt.
Vielleicht kann es ja noch jemand gebrauchen:
Code: Alles auswählen
<?php
# Initialization
$bDebug = false;
unset ($aData);
$aData = array();
unset ($aSettings);
$aSettings = array();
$aSettings["ArticleCount"] = "CMS_VALUE[1]";
$aSettings["TeaserLength"] = "CMS_VALUE[2]";
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[5]";
$aSettings["TextIdentifier"] = "CMS_VALUE[6]";
$aSettings["ImageIdentifier"] = "CMS_VALUE[7]";
$aSettings["ImageWidth"] = "CMS_VALUE[8]";
$aSettings["ImageHeight"] = "CMS_VALUE[9]";
$aSettings["ImageFromContent"] = "CMS_VALUE[10]";
# Checking values
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] <= 0) {
$aSettings["ArticleCount"] = 0;
}
if (!is_numeric($aSettings["TeaserLength"]) || $aSettings["TeaserLength"] <= 0) {
$aSettings["TeaserLength"] = 50;
}
if (!is_numeric($aSettings["ImageWidth"]) || $aSettings["ImageWidth"] <=0) {
$aSettings["ImageWidth"] = 0;
$aSettings["ImageHeight"] = 0;
}
if (!is_numeric($aSettings["ImageHeight"]) || $aSettings["ImageHeight"] <=0) {
$aSettings["ImageWidth"] = 0;
$aSettings["ImageHeight"] = 0;
}
if (!is_object($db2)) {
$db2 = new DB_Contenido;
}
if (!is_object($db3)) {
$db3 = new DB_Contenido;
}
if ($aSettings["ArticleCount"] > 0 && ($aSettings["HeadlineIdentifier"] != "" ||
$aSettings["TextIdentifier"] != "" || $aSettings["ImageIdentifier"] != "")) {
for ($i = 0; $i < $aSettings["ArticleCount"]; $i++) {
$lArtIdentifier = 21 + ($i * 2);
$aData["Item".($i + 1)] = array();
$aData["Item".($i + 1)]["IDCatArt"] = "CMS_VALUE[$lArtIdentifier]";
$aData["Item".($i + 1)]["Headline"] = " ";
$aData["Item".($i + 1)]["Text"] = " ";
$aData["Item".($i + 1)]["Image"] = array();
$aData["Item".($i + 1)]["Image"]["ServerPath"] = "";
$aData["Item".($i + 1)]["Image"]["WebPath"] = "";
if ($aData["Item".($i + 1)]["IDCatArt"] != "") {
$sql = "SELECT tblData.value AS value, tblData.idtype AS idtype, tblData.typeid AS typeid FROM ";
$sql .= $cfg["tab"]["cat_art"]." AS tblCatArt, ";
$sql .= $cfg["tab"]["art_lang"]." AS tblArtLang, ";
$sql .= $cfg["tab"]["content"]." AS tblData ";
$sql .= "WHERE tblData.idartlang = tblArtLang.idartlang AND ";
$sql .= "tblArtLang.idlang = '".$lang."' AND ";
$sql .= "tblArtLang.idart = tblCatArt.idart AND ";
$sql .= "tblCatArt.idcatart = '".$aData["Item".($i + 1)]["IDCatArt"]."' AND (";
$sql_items = "";
if ($aSettings["HeadlineIdentifier"] != "") {
$sql_items = "(".$aSettings["HeadlineIdentifier"].")";
}
if ($aSettings["TextIdentifier"] != "") {
if ($sql_items != "") {
$sql_items .= " OR (".$aSettings["TextIdentifier"].")";
} else {
$sql_items = "(".$aSettings["TextIdentifier"].")";
}
}
if ($aSettings["ImageIdentifier"] != "") {
if ($sql_items != "") {
$sql_items .= " OR (".$aSettings["ImageIdentifier"].")";
} else {
$sql_items = "(".$aSettings["ImageIdentifier"].")";
}
}
$sql .= $sql_items.")";
if ($bDebug) {
echo "<pre>".$sql."</pre>", chr(10);
}
// execute query
$db2->query($sql);
while ($db2->next_record()) {
$sTypeIdentifier = "tblData.idtype = '".$db2->f('idtype')."' AND tblData.typeid = '".$db2->f('typeid')."'";
# Note: The TypeIdentifier for one item may be the same as for another item.
# Therefore, we are storing the content everywhere as needed
if ($sTypeIdentifier == $aSettings["HeadlineIdentifier"]) {
$aData["Item".($i + 1)]["Headline"] = strip_tags(urldecode($db2->f('value')));
}
if ($sTypeIdentifier == $aSettings["TextIdentifier"]) {
$sTmpValue = strip_tags(urldecode($db2->f('value')));
if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
$sTmpValue = substr($sTmpValue, 0, $aSettings["TeaserLength"])."...";
}
$aData["Item".($i + 1)]["Text"] = $sTmpValue;
}
if ($sTypeIdentifier == $aSettings["ImageIdentifier"]) {
$sql = "";
if ($aSettings["ImageFromContent"] != "") {
$sTmpValue = urldecode($db2->f('value'));
$regEx = "/<img[^>]*?>.*?/i";
$match = array ();
preg_match($regEx, $sTmpValue, $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}";
# }
#}
if (strlen($name) > 0) {
$sql = "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
$sql .= "WHERE filename REGEXP '$name'";
}
} else {
$sql = "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
$sql .= "WHERE idupl = '".$db2->f('value')."'";
}
if ($bDebug) {
echo "<pre>".$sql."</pre>";
}
if ($sql != "") {
// execute query
$db3->query($sql);
if ($db3->next_record()) {
$aData["Item".($i + 1)]["Image"]["ServerPath"] = $cfgClient[$client]["upl"]["path"].$db3->f('dirname').$db3->f('filename');
$aData["Item".($i + 1)]["Image"]["WebPath"] = $cfgClient[$client]["upl"]["htmlpath"].$db3->f('dirname').$db3->f('filename');
}
}
}
}
}
}
unset ($db2);
unset ($sql);
unset ($sql_items);
unset ($sIDCatArt);
unset ($sTmpValue);
for ($i = 0; $i < $aSettings["ArticleCount"]; $i++) {
if ($aData["Item".($i + 1)]["IDCatArt"] != "") {
$href = $sess->url("front_content.php?idcatart=".$aData["Item".($i + 1)]["IDCatArt"]);
echo '<div id="area'.($i + 1).'">', chr(10);
if ($aSettings["ImageWidth"] == 0 || $aSettings["ImageHeight"] == 0) {
$image = $aData["Item".($i + 1)]["Image"]["WebPath"];
} else {
if ($aData["Item".($i + 1)]["Image"]["ServerPath"] != "" && file_exists($aData["Item".($i + 1)]["Image"]["ServerPath"])) {
#Scale image
$image = capiImgScale($aData["Item".($i + 1)]["Image"]["ServerPath"], $aSettings["ImageWidth"], $aSettings["ImageHeight"], false, false, 10, false);
} else {
$image = $aData["Item".($i + 1)]["Image"]["WebPath"];
}
}
#Get dimensions of the image
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
echo '<tr valign="top">';
echo '<td width="150">';
list ($width, $height, $type, $attr) = getimagesize($image);
if ($image !== "") {
echo '
<div id="image"><img src="'.$image.'" width="'.$width.'" height="'.$height.'" /></div>', chr(10);
}
echo '</td>';
echo '<td>';
echo '<div id="headline" class="small">'.$aData["Item".($i + 1)]["Headline"].'</div>', chr(10);
echo '<br>';
echo '<div id="text">'.$aData["Item".($i + 1)]["Text"].'<br /><br><a href="'.$href.'", target="{BLANC}"><img src="images/zum_shop.gif" border="0"/>'.mi18n("").'</a></div>', chr(10);
echo '</div>', chr(10);
echo '</td>';
echo '</tr>';
echo '</table>';
echo '<img src="images/line_liste.gif">';
echo '<br>';
}
}
}
?>