Modul Artikel Spezifikationen verlinken

Gesperrt
makemyday
Beiträge: 53
Registriert: Fr 11. Jul 2003, 09:49
Wohnort: Gießen
Kontaktdaten:

Modul Artikel Spezifikationen verlinken

Beitrag von makemyday »

Hier mal ein kleines Modul, mit welchem man Artikel unterschiedlichster Artikel Spezifikationen als Links zu den Artikeln auflisten kann. Ideal geeignet, um Wichtige Inhalte auf der Startseite zu verlinken.

Im Inputbereich ist eine Mehrfachauswahl möglich. Der Name der Artikelspezifikation dient als Überschrift der einzelnen Links zu den Artikeln.

Kurz gesagt: Eine Navigation aus Links zu Artikeln mit ausgewählten Artikel Spezifikationen.

INPUT:

Code: Alles auswählen

?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname  :      Artikelspezifikationen
* Author(s)   :     Hanta Seewald
* Copyright   :     mark-up Marketing Design GmbH, Hanta Seewald
* Created     :     14.04.2006
************************************************/
if (!is_object($db)) $db = new DB_Contenido;
?>
<script language="JavaScript">
function setValues(obj) {
	var strValue = "";
	var theForm = obj.form;
	var hidden = theForm['hidden_'+obj.name];
	
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected == true) strValue += obj.options[i].value+",";
	}
	strValue = strValue.substr(0,strValue.length-1);
	hidden.value = strValue;
}
</script>
<table border="0" cellpadding="0" cellspacing="0">
	<tr>
		<td class="text_medium" style="padding: 5px"><?= mi18n("Anzuzeigende Artikel wählen.<br> Mehrfachauswahl mit Strg möglich") ?></td>
	</tr>
	<tr>
		<td class="text_medium" style="padding: 5px">
		<input type="hidden" name="CMS_VAR[1]" value="CMS_VALUE[1]" id="hidden_value_1">
		<select name="value_1" multiple="multiple" onChange="setValues(this)" size="8">
<?php
$arrSpec = explode(",","CMS_VALUE[1]");
$sql = "SELECT * FROM ".$cfg['tab']['art_spec']." WHERE client='".$client."' AND online='1' AND lang='".$lang."'";
$db->query($sql);
while ($db->next_record()) {
	$selected = (in_array($db->f("idartspec"),$arrSpec)) ? " selected=\"selected\"" : "";
	echo '<option value="'.$db->f("idartspec").'"'.$selected.'>'.$db->f("artspec").'</option>';
}
?>
		</select>
		</td>
	</tr>
</table><?php
OUTPUT:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Artikelspezifikationen
* Author(s)   :     Hanta Seewald
* Copyright   :     mark-up Marketing Design GmbH, Hanta Seewald
* Created     :     14.04.2006
************************************************/
if (!is_object($db)) $db = new DB_Contenido;
if (!is_object($db2)) $db2 = new DB_Contenido;
if (!is_object($tpl)) $tpl = new Template();

//cInclude("classes","class.artspec.php");

$strSpec = "CMS_VALUE[1]";
//$arrSpec = explode(",",$strSpec);
//Nur wenn auch etwas ausgewählt wurde
if ($strSpec != "") {
	$sql = "SELECT * FROM ".$cfg['tab']['art_spec']." WHERE idartspec in (".$strSpec.") ORDER BY artspec ASC";
	$db->query($sql);
	while ($db->next_record()) {
		$tpl->reset();
		$tpl->set("s","HEADLINE", $db->f("artspec") );
		$sql = "SELECT * FROM 
					".$cfg['tab']['art_lang']." 
				WHERE 
					artspec=".$db->f("idartspec")." 
					AND online=1
					AND locked = 0
				ORDER BY artsort ASC, title ASC, created DESC";
		$db2->query($sql);
		while ($db2->next_record()) {
			if ($db2->f("external_redirect")) {
				$target = "_blank";
			}else{
				$target = "_self";
			}
			$tpl->set("d","HREF", "front_content.php?idart=".$db2->f("idart")."&client=".$client."&lang=".$lang );
			$tpl->set("d","NAME", $db2->f("title") );
			$tpl->set("d","TARGET", $target );
			$tpl->next();
		}
		$tpl->generate("templates/artikelspezifikation.html");
	
	}
}
?>
Viel Spaß, vielleicht kann es der ein oder andere gebrauchen
makemyday
Zuletzt geändert von makemyday am Mi 16. Aug 2006, 11:08, insgesamt 1-mal geändert.
makemyday
Beiträge: 53
Registriert: Fr 11. Jul 2003, 09:49
Wohnort: Gießen
Kontaktdaten:

Beitrag von makemyday »

Ist eigentlich jedem selbst überlassen. Aber hier mal der Code von meinem Template:

Code: Alles auswählen

<ul class="artspec">
	<li class="artspec_headline">{HEADLINE}</li>
<!-- BEGIN:BLOCK -->
	<li><a href="{HREF}" title="{NAME}" target="{TARGET}">{NAME}</a></li>
<!-- END:BLOCK -->
</ul>
Grüße
makemyday
mreif
Beiträge: 192
Registriert: Mi 12. Okt 2005, 16:32
Wohnort: Weiterstadt
Kontaktdaten:

Bekome keine Artikel angezeigt ?!

Beitrag von mreif »

Hallo,

ich habe das Modul getestet und bin wie folgt vorgegangen.
- Modul erstellt
- artikelspezifikation.html unter Templates angelegt
- Template mit dem Modul versorgt

Gehe ich jetzt auf Artikel - Kategorie konfigurieren, erhalte ich zwar das neue Modul, wo ich die verschiedenen Artikel, die angezeigt werden sollen, auswählen kann - aber das Auswahlfeld ist leer - und ich kann somit nichts auswählen.

Wo ist mein Denkfehler - oder verstehe ich die Funktionsweise des Moduls falsch? :?:
/m
Version 4.6.15 - ältere Versionen kommen nicht auf die Kiste
makemyday
Beiträge: 53
Registriert: Fr 11. Jul 2003, 09:49
Wohnort: Gießen
Kontaktdaten:

Beitrag von makemyday »

In dem Auswahlfeld werden die Artikelspezifikationen angezeigt, die Du anzeigen willst. Die müssen natürlich in der Mandantenadministration erstellt werden.

Damit dann auch im frontend Artikel angezeigt werden, müssen natürlich Artikel diesen Artikelspezifikationen zugewiesen werden (Artikeleigenschaften)

Falls Du das alles schon gemacht hast, schreib mal evtl auftretenden Fehlermeldungen und die contenido Version.

Grüße
makemyday
mreif
Beiträge: 192
Registriert: Mi 12. Okt 2005, 16:32
Wohnort: Weiterstadt
Kontaktdaten:

Beitrag von mreif »

Danke ... genau das war mein Denkfehler.
Dort hatte ich noch nichts festgelegt.
Ist dort ein Eintrag vorhanden und freigegeben, erscheint er auch im Modul zur Auswahl.
/m
Version 4.6.15 - ältere Versionen kommen nicht auf die Kiste
mreif
Beiträge: 192
Registriert: Mi 12. Okt 2005, 16:32
Wohnort: Weiterstadt
Kontaktdaten:

Beitrag von mreif »

Hallo makemyday,

ein Fehler tritt bei mir allerdings noch auf.
Artikelspezifikationen sind gesetzt und zugewiesen.

Wenn ich die Frontend-Seite aufrufe, wo das Modul hinterlegt ist, erscheinen auch die Artikelspezifikation - die in dem Modul gewählt wurden - mit den zugewiesenen Artikel als Link.
Eigentlich alles sehr sauber und übersichtlich.

Wenn ich allerdings auf einen Link klicke, wird der Artikel nicht aufgerufen - sondern die aktuell gezeigte Seite wird einfach neu aufgebaut.

Hast Du noch einen Rat für mich, woran das jetzt noch liegen könnte?
Danke im Voraus.
/m
Version 4.6.15 - ältere Versionen kommen nicht auf die Kiste
makemyday
Beiträge: 53
Registriert: Fr 11. Jul 2003, 09:49
Wohnort: Gießen
Kontaktdaten:

Beitrag von makemyday »

Was steht dem bei der Ausgabe im href
mreif
Beiträge: 192
Registriert: Mi 12. Okt 2005, 16:32
Wohnort: Weiterstadt
Kontaktdaten:

Beitrag von mreif »

Ich habe einfach ein paar Artikel mit der Artikelspezifikation "News" belegt um das Modul zu testen.
Hier der Auszug aus dem Quelltext (Test-Umgebung).
<ul class="artspec">
<li class="artspec_headline">News</li>

<li><a href="front_content.php?idartlang=62&client=1&lang=1" title="Contenido Highlights" target="_self">Contenido Highlights</a></li>

<li><a href="front_content.php?idartlang=96&client=1&lang=1" title="RSS-News" target="_self">RSS-News</a></li>

<li><a href="front_content.php?idartlang=61&client=1&lang=1" title="Vorteile CMS" target="_self">Vorteile CMS</a></li>

</ul>
Version 4.6.15 - ältere Versionen kommen nicht auf die Kiste
makemyday
Beiträge: 53
Registriert: Fr 11. Jul 2003, 09:49
Wohnort: Gießen
Kontaktdaten:

Beitrag von makemyday »

Hab den Code oben geändert. Hier aber noch mal die Änderung im Detail

Code: Alles auswählen

$tpl->set("d","HREF", "front_content.php?idartlang=".$db2->f("idartlang")."&client=".$client."&lang=".$lang );
ersetzen durch

Code: Alles auswählen

$tpl->set("d","HREF", "front_content.php?idart=".$db2->f("idart")."&client=".$client."&lang=".$lang );
Aus irgendeinem Grund hatte ich idartlang verwendet. Warum weiss ich auch nicht mehr.
mreif
Beiträge: 192
Registriert: Mi 12. Okt 2005, 16:32
Wohnort: Weiterstadt
Kontaktdaten:

Beitrag von mreif »

ok, jetzt funktioniert es :D
merci
/m
Version 4.6.15 - ältere Versionen kommen nicht auf die Kiste
Gesperrt