Popup-Steuerung

Gesperrt
s3b
Beiträge: 21
Registriert: Do 17. Jul 2003, 15:02
Kontaktdaten:

Popup-Steuerung

Beitrag von s3b » Do 17. Jul 2003, 15:13

Hallo,

nachdem von diesem Forum nun schon so oft profitiert habe, will ich nun endlich auch mal ein Modul posten. Anbei nun also meine dynamische Popup-Steuerung:

Es handelt sich um ein Modul, das man z.B. im Template der Startseite verankern kann und das auf den jeweils als Startartikel definierten Artikel eines eigenen Haupt-Strukturpunktes verweist. Achja, sollte der Startartikel nicht online sein oder der Strukturpunkt keine Artikel enthalten, wird auch das Popup nicht geöfnnet. Man kann es zudem gesondert in der Modulsteuerung aus- oder anschalten. Das Fenster wird dann bei jedem Aufruf der Seite geöffnet. Diesem Strukturpunkt kann man wie gewohnt ein eigenes Layout->Template zuweisen, was dann im Popup verwendet wird... ich denke, den Rest kriegt ihr hin.

Ganz unten haben ich noch zusätzlich mein Popup-Template beigefügt, in dem ein Javascript dafür sorgt, dass im Popup enthaltene Links im Hauptfenster geöffnet werden.

Modul Input:

Code: Alles auswählen

?><?/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname : Popup-Steuerung 
* Author(s) : Sebastian Gerhards, Medialis Marketing GmbH
* Copyright : 
* Created : 08-07-2003 
************************************************/ 


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

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"> ";
?>
<tr valign="top">
<td>Maße des Popups:</td>
<td><input maxlength="3" size="4" type="text" value="<? echo "CMS_VALUE[1]" ?>" name="<? echo "CMS_VAR[1]" ?>"> Höhe<br>
<input maxlength="3" size="4" type="text" value="<? echo "CMS_VALUE[2]" ?>" name="<? echo "CMS_VAR[2]" ?>"> Breite<br></td>
</tr>
<tr valign="top"> 
<td>Popup-Strukturpunkt:</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 desc"; 

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

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

// indent spacer 
$spaces = "&nbsp;"; 

// 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 
?>
</select> 
</td> 
</tr> 
<tr>
	<td>Popup aktiv:</td>
	<td><input type="checkbox" name="<? echo "CMS_VAR[3]" ?>" value="aktiv"
<?
	if ("CMS_VALUE[3]" == "aktiv") echo " checked";
?>
	></td>
</tr>
<?
echo "</table>";
Modul Output:

Code: Alles auswählen

?><?/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname : Popup-Steuerung 
* Author(s) : Sebastian Gerhards, Medialis Marketing GmbH
* Copyright : 
* Created : 08-07-2003 
************************************************/ 

//Checken, ob Ein Artikel vorliegt
// selected category 
$selcat = "CMS_VALUE[0]"; 

// select all articles in category widthout start article 
$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' LIMIT 1"; 

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

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

// any news? 
$newscounter = ($db->num_rows($db)); 
if ($newscounter > 0) {
	
	if ("CMS_VALUE[3]" == "aktiv") {//nur ausfuehren wenn Box ueberhaupt eingeblendet werden soll
		
		if (("CMS_VALUE[1]" != "") && ("CMS_VALUE[2]" != "")) {
			$window_height = "CMS_VALUE[1]";
			$window_width = "CMS_VALUE[2]";
		} else {
			$window_height = "400";
			$window_width = "300";
		}
		
		$link_url = "front_content.php?client=$client&lang=".$_GET['lang']."&idcat=".$selcat."&idside=".$_GET['idside']."";
?>
	<script language="JavaScript1.2">
	new_window('<? echo $link_url ?>','aktuelles','resizable=yes', <? echo $window_width ?>, <? echo $window_height?>, 'true');
	</script>
<?
	}
}
...und das Layout meines Popup-Struktur-Templates (von speziellen Layoutangaben bereinigt):

Code: Alles auswählen

?>
<html>
<head>
<title>Seitentitel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="css/styles.css" type="text/css">
<script src="js/standard.js" type="text/javascript"></script>
</head>

<?php 
if (eregi("front_content.php",$PHP_SELF)) { ?>
<script language="JavaScript1.2">
function setATargets() {
	mengeA = document.links.length;
	for (i=0;i<mengeA;i++) {
		hrefalt = document.links[i].href;
		document.links[i].href = "javascript:top.opener.location.href='"+hrefalt+"'; top.opener.focus();";
	}
}
</script>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="5" topmargin="5" marginwidth="5" marginheight="5" scroll="auto" onLoad="setATargets()">
<?php } else {?>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="5" topmargin="5" marginwidth="5" marginheight="5" scroll="auto">
<?php }?>
<? CMS_CONTAINER[1] //Contentbereich der Seite?><br><br>
<? CMS_CONTAINER[2] ?>
</body>
</html>
Zu letzterem Layout ist noch zu sagen, dass das Javascript nur ausgeführt wird, wenn das damit entwickelte Template über die front_content.php verarbeitet wird - im Contenido-Editiermodus bleibt diese Funktion unbeachtet...

Viel Spaß damit
derseb
Zuletzt geändert von s3b am Mi 10. Sep 2003, 17:29, insgesamt 1-mal geändert.

victor
Beiträge: 70
Registriert: Mo 27. Jan 2003, 08:54
Wohnort: Kassel
Kontaktdaten:

Mal ne Frage

Beitrag von victor » Mi 10. Sep 2003, 11:42

Wo kommt der code für das Template hin in in das Modul oder in ein neues Layout, habe nämlich das Problem, das ich keine Kategorie auswählen kann.. Kannst du mit weiterhelfen...
"Niemand weiss mehr als alle zusammen"

s3b
Beiträge: 21
Registriert: Do 17. Jul 2003, 15:02
Kontaktdaten:

Re: Mal ne Frage

Beitrag von s3b » Mi 10. Sep 2003, 17:27

Ich hoffe doch - Mein "Template" ist natürlich ein Layout - sorry erstmal für den Vertipper. Du fügst also meinem "Template"-Code in ein neues Layout ein und generierst wie wahrscheinlich bekannt ein entsprechendes neues Template (diesmal richtige Wortwahl :wink: ).

Das Popup-Script checkt einen eigenen Strukturpunkt auf einen vorhandenen bzw. online geschalteten Artikel - Ich hab das Script geschrieben, damit ein neuer Hauptstrukturpunkt gecheckt wird, der nirgendwo sonst auf der Seite erscheint. Also neuen Hauptstrukturpunkt anlegen und diesem in der "Seiten"-Ansicht das Popup-Template zuweisen.

Jetzt musst Du das Popup-Modul auf einer Deiner Seiten integrieren, sprich Template entsprechend neu bestücken. Jetzt in der "seiten"-ansicht in die Modulkonfiguration und dort in der Modulkonfiguration des Popup-Moduls Deinen neuen Strukturpunkt auswählen (der müsste sich eigentlich schon in der Liste verstecken.) und das Popup einschalten.

Soweit die Theorie und meine Praxis - einfach wieder hier schreiben, wenn die Probleme bestehen bleiben...

greets
derseb

victor
Beiträge: 70
Registriert: Mo 27. Jan 2003, 08:54
Wohnort: Kassel
Kontaktdaten:

Danke erstmal

Beitrag von victor » Mi 10. Sep 2003, 20:51

werde ich gleich morgen ausprobieren. Hatte mir auch schon eine pop-variante versucht mit dem spaw-editor eine pop-up bereich einzubauen, hatte mich versucht will aber noch warten bis der richtig funktioniert hoffen doch alle auf die 4.4., weil in der insert_link.php von dem editior gebe es mit sicherlich auch ein Möglichkeit. , dann brauchte man sogar kein Modul mehr.

Was meinst du als Experte zu der Idee ??
"Niemand weiss mehr als alle zusammen"

victor
Beiträge: 70
Registriert: Mo 27. Jan 2003, 08:54
Wohnort: Kassel
Kontaktdaten:

Beitrag von victor » Do 11. Sep 2003, 12:12

mhh. irgendwie funzt das nicht, ich habe gesehen das du das javascript noch implementierst. mal ne Frage ist das modul auch für die 4.2.3 Version.
Alle updates habe ich installiert.


Sehen tue ich ja alles und deine Beschreibung ist auch sehr gut, danke noch mal für deine Mühe, habe nur das Problem das ich keinen Artikel auswählen kann.. Woran kann das Liegen fehler in der Datenbankabfrage ??
"Niemand weiss mehr als alle zusammen"

s3b
Beiträge: 21
Registriert: Do 17. Jul 2003, 15:02
Kontaktdaten:

re: ...

Beitrag von s3b » Do 11. Sep 2003, 12:42

das ist wirklich seltsam - lustig ist, dass ich das modul gerade gestern eingebunden habe und es auch wieder lief... - ich schau mir das noch mal an. vielleicht werden auch nur gespeicherte Daten nicht wieder in das Modul-formular übernommen... dann sollte aber nach erstmaligen konfigurieren des Moduls und Bestückung des Strukturpunktes mit Layout/Template und einem online geschalteten Startartikel das Popup aufspringen.

Ich schaue mir das noch einmal an und poste Dir dann hier noch mal meine letzte (aktuell funktionierende) Version.

DIe Contenido-Version ist übrigens richtig...

Gesperrt