pragmaMx Support Forum

pragmaMx => Themes & Design => Thema gestartet von: Snow2002 am 21 Februar 2006, 12:53:08

Titel: Login Feld in fertiges Theme einbauen?
Beitrag von: Snow2002 am 21 Februar 2006, 12:53:08
Huhu!

Ich habe vor einiger Zeit mit der MX-Themeengine+Dreamweaver ein eigenes Theme gebastelt. Findet ihr hier: http://www.graffiti-dortmund.de/version2/html/index.php (http://www.graffiti-dortmund.de/version2/html/index.php)

Jetzt habe ich die Idee, links oben nachträglich ein Login einzubauen, so dass nach dem Einloggen der Benutzername auftaucht.

Zur Ansicht:
(https://forum.pragmamx.org/proxy.php?request=http%3A%2F%2Fwww.graffiti-dortmund.de%2Fbilda%2Fbastel.gif&hash=3293bc350d8a06da8d4bc5f5af5c0bc145e51a6b)

in dem weißen Feld soll der Benutzername stehen. Kann man die Funktion nachträglich in das fertige Theme einbauen? Wenn ja wie? Bin da völlig draußen, was die Engine angeht..

Gruß, Marcus
Titel: Re: Login Feld in fertiges Theme einbauen?
Beitrag von: onkel am 21 Februar 2006, 13:16:28
In dein Theme.html  kommt {LOGINFORM}


in der Funktion.php



$part[] = array("{LOGINFORM}",   mx_theme_loginform()    );






Dann  noch die function noch rein

################################################################
function mx_theme_loginform() {

global $prefix, $user_prefix;

$out = "";

if (!mxIsUser()) {

if(!defined("mxloginblockviewed")) define("mxloginblockviewed",TRUE);

$nickname = _NICKNAME;

$password = _PASSWORD;

$login = _LOGIN;

$check = mxGetUserLoginCheckField();

$out .=

<<<logform

<form action="modules.php?name=Your_Account" method="post">

$check

  </form>

logform;

}

else {

$hallo = _HELLO;

$logout = _AB_LOGOUT;

$account = _YACCOUNT;

$privatemessages = "";

$cookie = mxgetusersession();

$username = $cookie[1];

if (mxModuleAllowed('Private_Messages')){ # falls pm-modul aktiv ist

$qry="SELECT Count(msg_id) FROM ${user_prefix}_priv_msgs WHERE to_userid=".$cookie[0]." AND read_msg=0;";

$result = sql_query($qry);

list($countpmunread) = sql_fetch_row($result);

if ($countpmunread) { # wenn angemeldeter User

$privatemessages = "<div style=\"text-align: center; font-size: 9px;\">"._YOUHAVE." <a href=\"modules.php?name=Private_Messages\" title=\""._PRIVATEMSG."\"><b style=\"color: Yellow; font-weight: bold;\">".intval($countpmunread)."</b> "._PRIVATEMSG."</a><div>";

}

}

# Usergaestebuch

$guestbook = "";

if (mxModuleAllowed("UserGuest")){ # falls gaestebuch vorhanden

$qry="SELECT Count(gid) FROM ${user_prefix}_userguest WHERE touserid='".$cookie[0]."' AND touser = '".$username."' AND dummy=0;";

$result = sql_query($qry);

list($gbnewentries) = sql_fetch_row($result);

if($gbnewentries){

$msg2 = ($GLOBALS['currentlang']=='english') ? 'new guestbookentries' : 'neue G&auml;stebucheintr&auml;ge';

$guestbook = "<div style=\"text-align: center; font-size: 9px;\">"._YOUHAVE." <a href=\"modules.php?name=UserGuest\" title=\""._GUESTBOOKVIEW."\"><b style=\"color: Yellow; font-weight: bold;\">".intval($gbnewentries)."</b> ".$msg2."</a></div>";

}

}

$out .=

<<<logform

<div style="font-weight: normal; padding-bottom: 3px; font-size: 11px;">$hallo $username &nbsp;&nbsp;&nbsp;<a href="modules.php?name=Your_Account&amp;op=logout" title="$logout"><img src="themes/theme2005/images/logout.png"></a>&nbsp;<a href="modules.php?name=Your_Account" title="$account"><img src="themes/theme2005/images/account.png"></a></div>


$privatemessages $guestbook


logform;

}

#$out .= "<input type='checkbox' value='1' name='rememberme'>&nbsp;"._REMEMBERLOGIN."<br>";

return $out;

}


Wobei du das alles nach deinen Wünschen anpassen kannst .............

mfg
Titel: Re: Login Feld in fertiges Theme einbauen?
Beitrag von: henne am 21 Februar 2006, 13:18:34
jupps sollte eigentlich kein Thema sein, es gibt ja in der functions.php (von mx_default) schon die Funktion mx_theme_loginform.
Die kannst Du Dir anpassen. Die betreffenden Stellen sind eigentlich nur HTML. Dann kann das ganze Loginform, über den Platzhalter {LOGINFORM}, an der Stelle wo jetzt Dein grafisch dargestelltes Loginform ist, eingefügt werden.

Wenn Du noch Fragen hast meld Dich einfach nochmal ;)

Edit: ups der Onkel war schneller ;D
Titel: Re: Login Feld in fertiges Theme einbauen?
Beitrag von: Snow2002 am 22 Februar 2006, 08:07:25
Moin!

Danke für eure Tipps! Damit habe ich es schon mal ein großes Stück weiter geschaft.
Einzigstes Problem: Im IE + Safari wird alles korrekt dargestellt. Im Opera + Mozilla hingegen
steht der Username nicht im weißen Kasten, sondern weiter rechts..also neben dem Kasten. Wißt ihr da auch Rat? Hier mal der Abschnitt aus der functions.php

# ###############################################################
function mx_theme_loginform()
{
    global $prefix, $user_prefix, $JPCACHE_ON;
    if ($JPCACHE_ON) {
        return;
    }
    $out = "";
    if (!MX_IS_USER) {
        if (!defined("mxloginblockviewed")) define("mxloginblockviewed", true);
        $nickname = _NICKNAME;
        $password = _PASSWORD;
        $login = _LOGIN;
        $check = mxGetUserLoginCheckField();
        $out .= <<<logform
<form action="modules.php?name=Your_Account" method="post">
$check
  <table align="center" border="0" cellspacing="0" cellpadding="1">
    <tbody>
    </tbody>
  </table>

</form>
logform;
    } else {
       
        $logout = _AB_LOGOUT;
        $account = _YACCOUNT;
        $privatemessages = "";
        $cookie = mxgetusersession();
        $username = $cookie[1];
        if (mxModuleAllowed('Private_Messages')) { # falls pm-modul aktiv ist
            $qry = "SELECT Count(msg_id) FROM ${user_prefix}_priv_msgs WHERE to_userid=" . $cookie[0] . " AND read_msg=0;";
            $result = sql_query($qry);
            list($countpmunread) = sql_fetch_row($result);
            if ($countpmunread) { # wenn angemeldeter User
                $privatemessages = "<div style=\"text-align: left;\">" . _YOUHAVE . " <a href=\"modules.php?name=Private_Messages\" title=\"" . _PRIVATEMSG . "\"><b style=\"color: #FF9900; font-weight: bold;\">" . intval($countpmunread) . "</b>&nbsp;Nachricht(en)</a></div>";
            }
        }
        # Usergaestebuch
        $guestbook = "";
        /*
if (mxModuleAllowed("UserGuest")){ # falls gaestebuch vorhanden
$qry="SELECT Count(gid) FROM ${user_prefix}_userguest WHERE touserid='".$cookie[0]."' AND touser = '".$username."' AND dummy=0;";
$result = sql_query($qry);
list($gbnewentries) = sql_fetch_row($result);
if($gbnewentries){
$msg2 = ($GLOBALS['currentlang']=='english') ? 'new guestbookentries' : 'neue G&auml;stebucheintr&auml;ge';
$guestbook = "<div style=\"text-align: left; font-size: 9px;\">"._YOUHAVE." <a href=\"modules.php?name=UserGuest\" title=\""._GUESTBOOKVIEW."\"><b style=\"color: Yellow; font-weight: bold;\">".intval($gbnewentries)."</b> ".$msg2."</a></div>";
}
}
*/
        $out .= <<<logform
$hallo <span style="color: #ff9900; background-color: transparent;">$username</span> !
<br><br>

$privatemessages $guestbook
  <table align="left" width="100%" border="0">
</table>
logform;
    }
    # $out .= "<input type='checkbox' value='1' name='rememberme'>&nbsp;"._REMEMBERLOGIN."<br>";
    return $out;
}


Hier der Bereich der theme.html
<TR>
<TD style="background-image:url(http://www.graffiti-dortmund.de/version2/html/themes/gda5/images/theme_02.gif);" WIDTH=950 HEIGHT=131><div id="loginform">
        <table width="340" height="88" border="0">
          <tr>
            <td width="10">&nbsp; </td>
            <td width="88">{LOGINFORM}</td>
          </tr>
        </table>
      </div></TD>
</TR>
<TR>


Gruß, Marcus
Titel: Re: Login Feld in fertiges Theme einbauen?
Beitrag von: Snow2002 am 22 Februar 2006, 10:50:28
Huhu!

Das Problem ist vom Tisch!
Ich habe in der Theme.html der LOGINFORM gesagt, das sie bitte linksbündig sein soll. Daran hält sie sich nun auch in allen Browsern. ;)

Gruß, Marcus