Dringend gesucht modifizierte Newsliste evtl.

Gesperrt
spirit
Beiträge: 36
Registriert: Fr 18. Nov 2005, 10:16
Kontaktdaten:

Dringend gesucht modifizierte Newsliste evtl.

Beitrag von spirit »

Hallo liebe Gemeinde :wink:

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
MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag 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
spirit
Beiträge: 36
Registriert: Fr 18. Nov 2005, 10:16
Kontaktdaten:

Danke

Beitrag 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
schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

Dann doch lieber die Artikelliste Advanced. ;)
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)
spirit
Beiträge: 36
Registriert: Fr 18. Nov 2005, 10:16
Kontaktdaten:

Beitrag 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
spirit
Beiträge: 36
Registriert: Fr 18. Nov 2005, 10:16
Kontaktdaten:

So

Beitrag 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)
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag 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.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
spirit
Beiträge: 36
Registriert: Fr 18. Nov 2005, 10:16
Kontaktdaten:

Beitrag 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
schlaucher
Beiträge: 444
Registriert: Mi 14. Sep 2005, 10:38
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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
spirit
Beiträge: 36
Registriert: Fr 18. Nov 2005, 10:16
Kontaktdaten:

Gelöst

Beitrag 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"] = "&nbsp;";
$aData["Item".($i + 1)]["Text"]     = "&nbsp;";
$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>';

}
}
}
?>
Gesperrt