Hallo Joomlaportal,
ich habe heute damit angefangen eine andere Lösung für eine Art Hinweisfesnter für UDDEIM zu basteln.
Bisher habe ich es geschafft das das Fenster sich öffnet wenn eine oder mehrere neue Nachrichten im Posteingang sind.
Ich möchte nun in dem Hinweisfenster, den User mit Namen ansprechen. Leider bekomme ich das nich hin.
ich habe mit
PHP-Code:
$user = &JFactory::getUser();
if($user->get('id')) {
echo $user->get('username');
versucht.
Leider scheint es so als wenn da irgendwas mit der Syntax nicht stimmt, ich bekomme da nur eine weiße Seite gezeigt.
Also 1. Frage, wie kann ich den Usernamen ausgeben lassen?
Weiter möchte ich das der Hinweis auf ALLEN Seiten kommt, ausser im Postfach (denke der Posteingang reicht) selber. Auch sollte die Nachricht nicht erscheinen, wenn der user gerade seine Nachrichten liest aber noch viele ungelesene hat. Denn dann würde der Hinweis ja bei jeder Nachricht erscheinen...
Ich habe mein Hinweisfenster nun in das UDDEIM Modul mit eingebaut. Bin da aber für andere Lösungen offen. Hier ist mein ausschnitt des Codes des mod_uddeim.
PHP-Code:
if ( $uddshowinbox ) {
// $uddsql="SELECT count(a.id) FROM #__uddeim AS a WHERE a.totrash=0 AND archived=0 AND a.toid=".(int)$udduserid;
$uddsql="SELECT count(a.id) FROM #__uddeim AS a WHERE a.totrash=0 AND a.toread=0 AND a.toid=".(int)$udduserid;
// $uddsql="SELECT count(a.id) FROM #__uddeim AS a LEFT JOIN #__users AS b ON a.fromid=b.id WHERE a.totrash=0 AND archived=0 AND a.toid=".(int)$udduserid;
$udddatabase->setQuery($uddsql);
$uddresult=(int)$udddatabase->loadResult();
$uddout .= "<p class='uddeim-module-body'>";
if($uddshowicons)
$uddout .= '<a href="'.uddeIMsefRelToAbs( "index.php?option=com_uddeim&task=inbox".($udditem_id ? "&Itemid=".$udditem_id : "") ).'" title="'._UDDEIM_INBOX.'">';
$uddout .= "[".$uddresult."] neue Nachrichten "; /*_UDDEIM_INBOX.": ".$uddresult;*/
$uddout .= '</a>';
$uddout .= "<img src='".$uddpathtosite."/components/com_uddeim/templates/".$uddconfig->templatedir."/images/menu_inbox.png' width='26px' height='26px' alt='"._UDDEIM_INBOX."' title='Posteingang' style='vertical-align: middle'; />";
$uddout .= "</p>";
}
// #################### Erweiterung zum öffnen eines Hinweises a la PopUp oder ähnliches
echo "**********
function msgcl()
{
document.getElementById('bodymessagealert').style.display='none';
}
</script>";
if ($uddresult > 1)
{
$uddout .= "<div id='bodymessagealert'>";
$uddout .= "<div id='messagealert'>";
$uddout .= "<b>";
$uddout .= "<p>Hallo User</p>";
$uddout .= "<p>Du hast mehrere ungelesene Nachrichten in deinem Posteingang!</p>";
$uddout .="<p>Bitte lese deine Nachrichten.</p>";
$uddout .= ">>> <a href='javascript:msgcl();'>Hinweis schließen</a> <<<</b></div>";
$uddout .= "</div>";
}
// ####################### Erweiterung zum öffnen eines Hinweises a la PopUp oder ähnliches
if ( $uddshowoutbox ) {
$uddsql="SELECT count(a.id) FROM #__uddeim AS a WHERE a.totrashoutbox=0 AND ((a.systemmessage IS NULL) OR (a.systemmessage='')) AND a.fromid=".(int)$udduserid;
// $uddsql="SELECT count(a.id) FROM #__uddeim AS a LEFT JOIN #__users AS b ON a.toid=b.id WHERE a.totrashoutbox=0 AND ((a.systemmessage IS NULL) OR (a.systemmessage='')) AND a.fromid=".(int)$udduserid;
$udddatabase->setQuery($uddsql);
$uddresult=(int)$udddatabase->loadResult();
$uddout .= "<p class='uddeim-module-body'>";
if($uddshowicons)
$uddout .= "<img src='".$uddpathtosite."/components/com_uddeim/templates/".$uddconfig->templatedir."/images/menu_outbox.gif' alt='"._UDDEIM_OUTBOX."' /> ";
$uddout .= '<a href="'.uddeIMsefRelToAbs( "index.php?option=com_uddeim&task=outbox".($udditem_id ? "&Itemid=".$udditem_id : "") ).'" title="'._UDDEIM_OUTBOX.'">';
$uddout .= _UDDEIM_OUTBOX.": ".$uddresult;
$uddout .= '</a>';
$uddout .= "</p>";
Da wo nun noch Hallo User steht, sollte dann der entsprechende Username stehen.
Lesezeichen