für eines meiner Projekte ist das folgende Modul "PopUp-Builder" enstanden, vielleicht hat der eine oder andere ja Bedarf.
Mit Hilfe des PopUp-Builders lassen sich Popups auf der Seite integrieren. Hierzu gibt man eine URL an, die im neu geöffneten Fenster angezeigt werden soll. Das Erscheinungsbild dieses Fenster kann über diverse Parameter (z.B. Höhe, Breite, Menüleiste anzeigen...) beeinflusst werden.
Über den Button "Popup testen" kann das Aussehen des Fensters schon in der Konfiguration überprüft werden.
Zusätzlich kann eine Anzeige-Ratio eingestellt werden. Bei einem Wert von 0% wird das Popup nie, bei einem Wert von 100% immer angezeigt. Auf der Skala dazwischen lässt sich dann bestimmen, mit welcher Wahrscheinlichkeit das Popup einem User präsentiert wird. Realisiert wird dies durch eine Zufallszahl.
Hier ein Screenshot des Input-Bereichs:
Beschreibung:
Code: Alles auswählen
PopUp-Builder
Version 0.9
Date: 05.09.2003
Author: Robert Strouhal (contenido.clearcreative.de)
Input:
Code: Alles auswählen
?>
<script language="JavaScript">
f = document.tplcfgform;
params = "nonsens=no";
function addToParams(varname, varwert){
params = params+", "+varname+"="+varwert;
}
function testPopupBuilder(){
if (f.elements['CMS_VAR[2]'].value != ""){
addToParams("width",f.elements['CMS_VAR[2]'].value);
}
if (f.elements['CMS_VAR[3]'].value != ""){
addToParams("height",f.elements['CMS_VAR[3]'].value);
}
if (f.elements['CMS_VAR[6]'].checked == true){
addToParams("location","yes");
}
if (f.elements['CMS_VAR[7]'].checked == true){
addToParams("menubar","yes");
}
if (f.elements['CMS_VAR[8]'].checked == true){
addToParams("toolbar","yes");
}
if (f.elements['CMS_VAR[9]'].checked == true){
addToParams("titlebar","yes");
}
if (f.elements['CMS_VAR[10]'].checked == true){
addToParams("status","yes");
}
if (f.elements['CMS_VAR[11]'].checked == true){
addToParams("scrollbars","yes");
}
if (f.elements['CMS_VAR[12]'].checked == true){
addToParams("resizable","yes");
}
testfenster = window.open(f.elements['CMS_VAR[1]'].value,"testfenster",params);
if ((f.elements['CMS_VAR[4]'].value != "") && (f.elements['CMS_VAR[4]'].value != "")){
testfenster.moveTo(f.elements['CMS_VAR[4]'].value,f.elements['CMS_VAR[5]'].value);
}
}
</script>
<?
// INPUT
echo "<table border=0>\n";
echo " <tr><td>URL</td><td colspan=3><input type=\"text\" size=50 ";
echo " name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td><tr>\n";
echo " <tr><td colspan=4> </td></tr>\n";
echo " <td>Breite</td><td><input type=\"text\" maxlength=4 size=4 ";
echo " name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\"> px</td>";
echo " <td>Höhe</td><td><input type=\"text\" maxlength=4 size=4 ";
echo " name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"> px</td></tr>";
echo " <tr><td>Position von links*</td><td><input type=\"text\" maxlength=4 size=4 ";
echo " name=\"CMS_VAR[4]\" value=\"CMS_VALUE[5]\"> px</td>";
echo " <td>Position von oben*</td><td><input type=\"text\" maxlength=4 size=4 ";
echo " name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\"> px</td></tr>";
echo " <tr><td colspan=4>* Diese Funktionen sollten nur für PopUps genutzt werden, ";
echo "deren Inhalt auf der gleichen Domain liegt wie die eigentliche Website!</td></tr>\n";
echo " <tr><td colspan=4> </td></tr>\n";
echo " <tr><td width=10>Adressleiste</td>";
echo " <td><input type=\"checkbox\" name=\"CMS_VAR[6]\" value=\"yes\" ";
if ("CMS_VALUE[6]" == "yes"){
echo " checked ";
}
echo " ></td>";
echo " <td width=10>Menüleiste</td>";
echo " <td><input type=\"checkbox\" name=\"CMS_VAR[7]\" value=\"yes\" ";
if ("CMS_VALUE[7]" == "yes"){
echo " checked ";
}
echo " ></td></tr>";
echo " <tr><td>Werkzeugleiste</td>";
echo " <td><input type=\"checkbox\" name=\"CMS_VAR[8]\" value=\"yes\" ";
if ("CMS_VALUE[8]" == "yes"){
echo " checked ";
}
echo " ></td>";
echo " <td>Titelleiste</td>";
echo " <td><input type=\"checkbox\" name=\"CMS_VAR[9]\" value=\"yes\" ";
if ("CMS_VALUE[9]" == "yes"){
echo " checked ";
}
echo " ></td></tr>";
echo " <tr><td>Statusleiste</td>";
echo " <td><input type=\"checkbox\" name=\"CMS_VAR[10]\" value=\"yes\" ";
if ("CMS_VALUE[10]" == "yes"){
echo " checked ";
}
echo " ></td>";
echo " <td>Scroll-Funktion</td>";
echo " <td><input type=\"checkbox\" name=\"CMS_VAR[11]\" value=\"yes\" ";
if ("CMS_VALUE[11]" == "yes"){
echo " checked ";
}
echo " ></td></tr>";
echo " <tr><td>Resizable</td>";
echo " <td><input type=\"checkbox\" name=\"CMS_VAR[12]\" value=\"yes\" ";
if ("CMS_VALUE[12]" == "yes"){
echo " checked ";
}
echo " ></td>";
echo " <td colspan=2> </td></tr>\n";
echo " <tr><td colspan=4> </td></tr>\n";
echo " <tr><td>Anzeigen-Ratio</td>";
echo " <td><select name=\"CMS_VAR[13]\">\n";
$popupRatio = str_replace(",",".","CMS_VALUE[13]");
$popupRatio = (float) $popupRatio;
for ($i=0; $i<=1; $i=$i+0.1){
echo "<option value=\"".$i."\" ";
if ($i <= $popupRatio){
echo " selected ";
}
echo ">".($i*100)." %</option>\n";
}
echo "</select>\n";
echo "</td></tr>\n";
echo " <tr><td colspan=4> </td></tr>\n";
echo " <tr><td colspan=4><input type=\"button\" value=\"PopUp testen\" ";
echo " onClick=\"testPopupBuilder()\"></td>";
echo "</table>";
Output:
Code: Alles auswählen
<?
class PopupBuilderParams{
var $paramsstring;
function PopupBuilderParams(){
$this->paramsstring = "nonsens=no";
}
function add($varname, $varwert="yes"){
$this->paramsstring = $this->paramsstring.", ".$varname."=".$varwert;
}
}
$pBp = new PopupBuilderParams();
if ("CMS_VALUE[2]" != ""){
$pBp->add("width","CMS_VALUE[2]");
}
if ("CMS_VALUE[3]" != ""){
$pBp->add("height","CMS_VALUE[3]");
}
if ("CMS_VALUE[6]" != ""){
$pBp->add("location");
}
if ("CMS_VALUE[7]" != ""){
$pBp->add("menubar");
}
if ("CMS_VALUE[8]" != ""){
$pBp->add("toolbar");
}
if ("CMS_VALUE[9]" != ""){
$pBp->add("titlebar");
}
if ("CMS_VALUE[10]" != ""){
$pBp->add("status");
}
if ("CMS_VALUE[11]" != ""){
$pBp->add("scrollbars");
}
if ("CMS_VALUE[12]" != ""){
$pBp->add("resizable");
}
if ($changeview != "edit"){
echo "<script language=\"JavaScript\">\n";
echo "if (Math.random() < CMS_VALUE[13]){\n";
echo " popup = window.open('CMS_VALUE[1]','popup','".$pBp->paramsstring."')\n\n";
if (("CMS_VALUE[4]" != "") && ("CMS_VALUE[5]" != "")){
echo " popup.moveTo(CMS_VALUE[4],CMS_VALUE[5])\n";
}
echo "}\n";
echo "</script>\n";
}
?>
Es ist noch eine der ersten Versionen. Daher alles ohne Garantie oder Gewährleistung. Fehlermeldungen oder Verbesserungsvorschläge nehme ich gerne entgegen.
Schöne Grüße
Robert