ilch Forum » Allgemein » HTML, PHP, SQL,... » PN Popup

Geschlossen
  1. #31
    User Pic
    M und M Chief Mitglied
    Registriert seit
    13.11.2012
    Beiträge
    10
    Beitragswertungen
    0 Beitragspunkte
    Hey, also ich hab mich auch mal daran versucht, der Popup auf allen Seiten anzeigen zu lassen und habe auch die

    include\boxes\login.php

    <?php 
    #   Copyright by Manuel Staechele
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    $tpl = new tpl ( 'user/boxen_login.htm' );
    
    if ( loggedin() ) {
      
      if ( user_has_admin_right($menu,false) ) {
        $tpl->set ( 'ADMIN', '&nbsp;|&nbsp;<a class="loginilch" href="admin.php?admin">Adminarea</a>' );
      } else {
        $tpl->set ( 'ADMIN', '' );
      }
    
    	  if ( $allgAr['Fpmf'] == 1 ) {
    		  $erg = db_query("SELECT COUNT(id) FROM `prefix_pm` WHERE gelesen = 0 AND status < 1 AND eid = ".$_SESSION['authid']);
    			$check_pm = db_result($erg,0);
    			$nachrichten_link = '<a class="loginilch" href="index.php?forum-privmsg">'.$lang['messages'].'</a>&nbsp;('.$check_pm.')';
    		} else {
    		  $nachrichten_link = '';
    		}
    	
    		$tpl->set ( 'SID' , session_id() );
    		$tpl->set ( 'NACHRICHTEN' , $nachrichten_link );
    		$tpl->set ( 'NAME', $_SESSION['authname'] );
    		$tpl->set ( 'privmsgpopup', check_for_pm_popup() );
        $tpl->out (0);		
    } else {
      if (empty($_POST['login_name'])) { $_POST['login_name'] = 'Nickname'; }
    	if (empty($_POST['login_pw'])) { $_POST['login_pw'] = 'ääääääää'; }
    	$regist = '';
    	if ( $allgAr['forum_regist'] == 1 ) {
    	  $regist = ' &nbsp; &nbsp; <a href="index.php?user-regist">Regist</a>';
    	}
    	$tpl->set_ar_out ( array ( 'regist' => $regist, 'wdlink' => '?'.$allgAr['smodul'], 'PASS' => $_POST['login_pw'], 'NAME' => $_POST['login_name'] ) , 1 );
    }
    unset($tpl);
    ?>


    und die

    include\templates\user\boxen_login.htm

    {privmsgpopup}
    <style type="text/css">
    <!--
    .Stil2 {color: #FFFFFF}
    .Stil3 {color: #FFFFFF}
    -->
    </style>
    
    	  <div style="margin-bottom:2px;" align="center">
    		<div align="left">
    		<span class="Stil2"><span class="Stil3">
    		<font class="chead" face="Arial">Willkommen im Hauptquartier<b><br>{NAME}</b>
    
    		</font> </span></span></div>
    	<div align="left"><span class="Stil2"><font size="1" face="Arial">
    		<font color="#FFFFFF"><br>
    		
    		{NACHRICHTEN} 
    		| </font><a href="index.php?user-8"> Profil bearbeiten</a><font color="#FFFFFF"></font><a href="index.php?user-7"> Profile</a><font color="#FFFFFF">
    		| </font> <a class="loginhover" href="index.php?user-3">{_lang_logout}</a>
    		{ADMIN} 
    			</font> </span></div>&nbsp;</div>
    	  <span class="Stil2">{EXPLODE}      </span>
    	  <form method="POST">
            <p style="margin-top: 0; margin-bottom: 0" align="left">
            <input type="text" name="name" value="{NAME}" onFocus="if (value == '{NAME}') {value = ''}" onBlur="if (value == '') {value = '{NAME}'}" maxlength="30" class="inputlogin" size="15" />
            <input type="submit" name="user_login_sub" value="" class="loginbutton" style="width:68px; height: 17px; background-image:url(include/designs/grcdesign01/head/02login.jpg);"/>
            </p>
    		<p style="margin-top: 0; margin-bottom: 0" align="left">
            <input type="password" value="{PASS}" onFocus="if (value == '{PASS}') {value = ''}" onBlur="if (value == '') {value = '{PASS}'}" maxlength="20" name="pass" class="inputlogin" size="15" />
            <a href="?user-regist"><img src="include/designs/grcdesign01/head/03regist.jpg" alt="regist" width="68" height="17" border="0" /></a><br />
            <input type="hidden" name="wdlink" value="{wdlink}" />
    		</p>
    </form>


    Dateien geändert. Soweit funktioniert das Ganze auch. Nur komisch ist, dass innerhlab des Forums die Formatierung korrekt angezeigt wird und auf allen anderen Seiten nicht. Habe die

    include\includes\func\forum.php
    <?php 
    #   Copyright by Manuel Staechele
    #   Support www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    function getmods ($fid) {
      
    	$erg = db_query("SELECT b.id,b.name FROM prefix_forummods a LEFT JOIN prefix_user b ON b.id = a.uid WHERE a.fid = ".$fid);
    	if ( db_num_rows($erg) > 0 ) {
    	  $mods = '<br /><u>Moderators:</u> ';
    	  while($row = db_fetch_assoc($erg) ) {
    		  $mods .= '<a class="smalfont" href="index.php?user-details-'.$row['id'].'">'.$row['name'].'</a>, ';
    	  }
    		$mods = substr ( $mods , 0 , -2 );
    		return ($mods);
    	} else {
    	  return ('');
    	}
    }
    
    # forum oder topic las update zeit
    # id ( forum oder topic id )
    # fid ( 0 is forum, > 0 is forum_id_vom_topic )
    function forum_get_ordner ( $ftime, $id, $fid =0 ) {
      if ( $ftime >= $_SESSION['lastlogin'] ) {
        if ( $fid == 0 ) {
          $anzOpenTopics = db_result(db_query("SELECT COUNT(*) FROM prefix_topics LEFT JOIN prefix_posts ON prefix_posts.id = prefix_topics.last_post_id WHERE prefix_topics.fid = ".$id." AND prefix_posts.time >= ".$_SESSION['lastlogin'] ),0); 
          if ( (($anzOpenTopics > 0 ) AND !isset($_SESSION['forumSEE'][$id]))
            OR $anzOpenTopics > count($_SESSION['forumSEE'][$id])
            OR max ( $_SESSION['forumSEE'][$id] ) <= ( $ftime - 4 ) 
          ) {
            return ( 'nord' );
          } else {
            return ( 'ord' );
          }
        } else {
          if ( isset ($_SESSION['forumSEE'][$fid][$id]) AND $ftime <= $_SESSION['forumSEE'][$fid][$id] ) {
            return ( 'ord' );
          } else {
            return ( 'nord' );
          }
        }
      } else {
    	  return ('ord');
    	}
    }
    
    function check_for_pm_popup () {
      # opt_pm_popup
      if (1 == db_result(db_query("SELECT COUNT(*) FROM prefix_user where id = ".$_SESSION['authid']." AND opt_pm_popup = 1"),0,0) AND 1 <= db_result(db_query("SELECT COUNT(*) FROM prefix_pm WHERE gelesen = 0 AND status < 1 AND eid = ".$_SESSION['authid'] ),0) ) {
        $x = <<< html
        <script language="JavaScript" type="text/javascript"><!--
        function closeNewPMdivID () { document.getElementById("newPMdivID").style.display = "none"; }
        //--></script>
        <div id="newPMdivID" style="position:absolute; top:250px; left:350px; display:inline; width:400px;">
    <table border="0" width="100%" bgcolor="#FFFFFF">
    	<tr>
    		<td width="86">
          <img src="http://www.mundm-funclan.de/main/include/images/icons/newmessage.jpg"></a></td>
    		<td align="left" ><b>Neue private Nachricht</b> <br>
    		Bitte kontrolliere deinen <a href="http://www.mundm-funclan.de/main/index.php?forum-privmsg">Posteingang</a>. Damit dieses Fenster dauerhaft verschwindet musst du alle neuen Nachrichten lesen. </td>
    		<td width="18" align="left" valign="top">
    		<a href="javascript:closeNewPMdivID()">
    		<img style="float:right; border: 0" src="http://www.mundm-funclan.de/main/include/images/icons/del.gif" alt="schliessen" title="schliessen"></a></td>
    	</tr>
    </table>
        </div>
    html;
        return ($x);
      }
    }
    
    function forum_user_is_mod ($fid) {
      if (is_siteadmin()) { return (true); }
      
      if (1 == db_result(db_query("SELECT COUNT(*) FROM prefix_forummods WHERE uid = ".$_SESSION['authid']." AND fid = ".$fid),0)) {
        return (true);
      }
      return (false);
    }
    
    
    function check_forum_failure($ar) {
    
      if ( array_key_exists(0,$ar) ) {
        $hmenu  = '<a class="smalfont" href="?forum">Forum</a><b> &raquo; </b> Fehler aufgetreten';
        $title  = 'Forum : Fehler aufgetreten';
        $design = new design ( $title , $hmenu );
    	  $design->header();
    	  echo '<b>Es ist/sind folgende(r) Fehler aufgetreten</b><br />';
    	  foreach($ar as $v) {
    	    echo $v.'<br />';
    	  }
        echo '<br /><a href="javascript:history.back(-1)">zur&uuml;ck</a>';
    		$design->footer();
    	  exit();
    	}
      
      return (true);
    }
    ?>


    überprüft, sehe aber keinen Formatierungsfehler.
    Könnte hier mir jemand helfen? Ist irgendwas bei der Übergabe verkehrt?

    gesperrtes Bild

    Das untere ist das Korrekte. Warum allerdings zweimal der letzte Satzteil ausgeworfen wird ist mir auch ein Rätsel.

    Danke schon im Voraus für die Hilfe.
    0 Mitglieder finden den Beitrag gut.
  2. #32
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mit dem Code sollte das obere Ergebnis (Bild) kommen.

    Im Forum wird das Popup nochmal ausgegeben und an der gleiche Stelle positioniert. Da es aber durch die normale Schrift, die es erhält da es in "irgendeinem" Element ist, das diesen Style vererbt, etwas kleiner ist, überlagert es das Popup aus der Loginbox und es kommt dieses Bild zu stande.

    Lange Rede kurzer Sinn, du musst den Aufruf von check_for_pm_popup() im Forum entfernen, wenn du ihn schon in der Box hast, oder die Funktion so umschreiben, dass das Popup nur einmal erzeugt wird.

    Bsp.

    function check_for_pm_popup () {
        static $shown = false;
        if (false === $shown) {
            $shown = true;
            # opt_pm_popup
            if (1 == db_result(db_query("SELECT COUNT(*) FROM prefix_user where id = ".$_SESSION['authid']." AND opt_pm_popup = 1"),0,0) AND 1 <= db_result(db_query("SELECT COUNT(*) FROM prefix_pm WHERE gelesen = 0 AND status < 1 AND eid = ".$_SESSION['authid'] ),0) ) {
                $x = <<< html
        <script language="JavaScript" type="text/javascript"><!--
        function closeNewPMdivID () { document.getElementById("newPMdivID").style.display = "none"; }
        //--></script>
        <div id="newPMdivID" style="position:absolute; top:250px; left:350px; display:inline; width:400px;">
    <table border="0" width="100%" bgcolor="#FFFFFF">
        <tr>
            <td width="86">
          <img src="http://www.mundm-funclan.de/main/include/images/icons/newmessage.jpg"></a></td>
            <td align="left" ><b>Neue private Nachricht</b> <br>
            Bitte kontrolliere deinen <a href="http://www.mundm-funclan.de/main/index.php?forum-privmsg">Posteingang</a>. Damit dieses Fenster dauerhaft verschwindet musst du alle neuen Nachrichten lesen. </td>
            <td width="18" align="left" valign="top">
            <a href="javascript:closeNewPMdivID()">
            <img style="float:right; border: 0" src="http://www.mundm-funclan.de/main/include/images/icons/del.gif" alt="schliessen" title="schliessen"></a></td>
        </tr>
    </table>
        </div>
    html;
                return ($x);
            }
        } else {
            return '';
        }
    }



    Zuletzt modifiziert von Mairu am 24.04.2014 - 07:55:18
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  3. #33
    User Pic
    M und M Chief Mitglied
    Registriert seit
    13.11.2012
    Beiträge
    10
    Beitragswertungen
    0 Beitragspunkte
    Danke für die Hilfe.

    Habe jetzt {privmsgpopup} aus der showforum.php entfernt.
    Jetzt gibt es keine Überschneidung der Boxen mehr.

    Die Formatierung habe ich einfach durch ein Bild jetzt ersetzt ... lachen
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten