zEvolutions
[v1.1][Guide]Dialogbox/Popup erstellen. - Druckversion

+- zEvolutions (https://ze-chat.de)
+-- Forum: Zephyr (https://ze-chat.de/forumdisplay.php?fid=26)
+--- Forum: Knowledgebase (https://ze-chat.de/forumdisplay.php?fid=32)
+--- Thema: [v1.1][Guide]Dialogbox/Popup erstellen. (/showthread.php?tid=510)



[v1.1][Guide]Dialogbox/Popup erstellen. - Zion - 31.08.2017

Dialogboxen sind die Seiten, die Inhalt in einem Simuliertem Popup anzeigen.


In der index.php suche

PHP-Code:
switch(ZE_INC){ 

füge darunter ein

PHP-Code:
case 'mynewdialog':
    $TPL_DONT 0;
    $TPL 'mynewcontent';
    require_once './inc/mynewdialog.inc.php';
    break; 

Speichern. Anschliessend erstellen wir im Ordner /inc/ eine neue Datei namens mynewdialog.inc.php mit folgendem Grundgerüstinhalt:

PHP-Code:
<?php

/**
 *        This file is part of "Zephyr v01".
 *
 *        "Zephyr v01" is free softwore. Feel free to use and/or modify
 *        it under the terms of the GNU General Public License as published by
 *        the Free Software Foundation; either version 3 of the License, or
 *        (at your option) any later version.
 *
 *        "Zephyr v01" is distributed in the hope that it will be useful,
 *        but WITHOUT ANY WARRANTY; without even the implied warranty of
 *        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *        GNU General Public License for more details.
 *
 *        You should have received a copy of the GNU General Public License
 *        along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *        Developed by Alexander Pakusch aka Zion, 2015
 *        <admin@zevolutions.de>
 *
 *        Developed by Johanna Fegg aka Holly, 2015
 *        <holly@zevolutions.de>
 *
 *        CREATED BY DEINNAME, JAHR
 *        <deinkontakt>
 *
 *        You are not allowed to sell this software or remove the Copyrights.
 *
 *        <http://www.zevolutions.de/>
 */

if($inc == '') {
  goto tplVars;
}

//Initiate Zephyr Parser - DO NOT CHANGE!
require_once './class/zephyr.class.php';
$tpl_path 'styles/'.ZE_USED_STYLE.'/tpl/';
zephyr::configure("base_url"NULL );
zephyr::configure("tpl_dir"$tpl_path );
zephyr::configure("cache_dir""cache/" );
zephyr::configure("path_replace"false);
$ZE_TPL = new zephyr;
//Zephyr Parser initiated, you may change below

tplVars:

//Include SessionClass. Kann entfernt werden, wenn es unnötig ist, eingeloggt zu sein
require_once './class/session.class.php';
$ZE_SESS = new session($db);


//Weitere Classes werden hier geladen

//Ggf die SessionID abfangen. Kann entfernt werden, wenn es unnötig ist, eingeloggt zu sein
if(isset($_GET["sid"])) {
  $sid htmlspecialchars($_GET["sid"]);
  } elseif(isset($_POST["sid"])) {
    $sid htmlspecialchars($_POST["sid"]);
  } else {
  $sid '';
}
//SessionID ende

//SessionID an das Template übertragen
$ZE_TPL->assign("ZE_SID"$sid );

?>

Speichern.  Nun gehen wir in euren Style-Ordner über und erstellen unter /styles/{STYLENAME}/tpl/ die Datei mynewdialog.zyr und füllen auch diese mit der Grundstruktur:


PHP-Code:
<div id="mynewdialog" class="trimwidth"><!--ID muss dem Dateinamen entsprechen! -->

  Mein Inhalt
  
<script>
  <!--Eventuelles JavaScript gehört hier her -->
  </script>
</div> 


Speichern. Nun müssen wir nur noch festlegen, wo und wie dieser Dialog zu öffnen/laden sein soll.
Öffne - immernoch im TPL ordner - die navigation.zyr und suche ein kleines Plätzchen für



PHP-Code:
        <li id="nav_mynewdialog" onclick="loadDialog('mynewdialog', 'Mein Neuer Dialogtitel', 'BEACHTE1', '');"><div><class="ui-icon fa fa-user fa-fw"></i>Mein neuer Dialog</div></li


Speichern. Nach dem Reload ist der Dialog nun aufrufbar.
Beachte: "fa-user" Kann jedes Icon sein, das du auf fontawesome.io findest.
Beachte1: Soll beim schliessen eine Javascript-Funktion ausgeführt werden, benenne sie hier. Wenn nicht, leer lassen
Beachte2: Dieser onclick kann auch in einen Button gesetzt werden, zB im Chatraum.
Beachte3: Dialoge beim Login/Aufruf der Seite sind offiziell nicht so gedacht und könnten Probleme verursachen, weshalb ich darauf nicht weiter eingehe. Findige Nutzer können sich aber aus anderen Guides sicher was zusammenreimen.