Next Birthdays 1.1

andysmith
mich würde noch eine Erweiterung am Hack interessieren und zwar hatte Geburtstag.... also das gleiche von der voranzeige sollte auch in der Nachbetrachtung zu sehen sein... ist das möglich herzustellen ob auch der Wechselwirkung der beiden Anzeigen zusammen....

Ansonsten vielen Dank!!
elke
Zitat:
Original von elke
bekommt man denn keine Antwort mehr auf Fragen zu diesem Hack? Wäre nett, wenn sich einer der zuständigen mal melden könnte verwirrt
Oder weiß man darauf keine Lösung?


ich frag nochmal nach und bitte um eine evtl. Antwort

edit 08.09.: Und wieder nichts???????? verwirrt
easy83
hallo

vielen dank für den hack leider habe ich ein *hoffe* kleines problem

nachdem einbau und aufruf der start seite bekomme ich folgende fehler meldung

Zitat:

Parse error: syntax error, unexpected ')' in /wbb/index.php(524) : eval()'d code on line 236


wenn ich jetzt in der index.php bei 524 schaue steht dies drin
Zitat:
514
    if ($countnew == 1) $pms_NEWMESSAGE = $lang->items['LANG_START_PMS_MESSAGE'];

515
    else $pms_NEWMESSAGE = $lang->items['LANG_START_PMS_MESSAGES'];
517
    if ($counttotal == 1) $pms_TOTALMESSAGE = $lang->items['LANG_START_PMS_MESSAGE'];
518

else $pms_TOTALMESSAGE = $lang->items['LANG_START_PMS_MESSAGES'];
520
    $lang->items['LANG_START_PMS'] = $lang->get("LANG_START_PMS", array('$countnew' => $countnew, '$pms_NEWMESSAGE' => $pms_NEWMESSAGE, '$countunread' => $countunread, '$counttotal' => $counttotal, '$pms_TOTALMESSAGE' => $pms_TOTALMESSAGE));
524+525
    eval("\$tpl->output(\"".$tpl->get("index")."\");");
    ?>


ich habe noch den Next_Events_1_0_für_WBB_2_3 zuvor eingebaut


ich hoffe da hat jemand ein tipp für mich

vielen dank im voraus
Agi
Im Template index ist in Zeile 236 vermutlich ein Fehler.
easy83
in der zeile 236 steht </html>
das ist doch normal

ich hänge mal meine index.tpl an vielleicht findest du ja den fehler


vielen dank für die schnelle antwort
C-Board
Such' mal in dem Template nach

code:
1:
2:
3:
<if(isset($birthdaybit) || isset($eventbit)  || isset($nexteventbit)) || isset($nextbirthdaybit))>


und tausch' das aus gegen

code:
1:
2:
3:
<if(isset($birthdaybit) || isset($eventbit)  || isset($nexteventbit) || isset($nextbirthdaybit))>


Ist also ein klassischer Einbaufehler.

Gruß Mike
dannykster
Danke für den Hack, ist eine nette Erweiterung. großes Grinsen
elke
Mike hast nicht auch für mich eine Lösung? großes Grinsen
Ich hätte den Hack gerne auch im Portal, aber anscheinend weiß hier keiner wie man das macht und hat auch keine Idee
C-Board
Dann muss ich Dich bitten zu warten. Ich hänge derzeit in einem anderen Projekt fest, welches absolute Priorität hat.

Gruß Mike
elke
danke Mike, ich warte gerne, wenn mir geholfen wird Freude
easy83
vielen dank C-Board

es funktioniert soweit alles

wenn ich im acp jetzt 350 eingebe zeigt er mir nur die in den nächsten 20 tage ist das so absicht?


vielen dank noch mal
C-Board
Naja, wenn man sich den Codeschnipsel mal anschaut:

php:
1:
2:
3:
4:
5:
6:
while ($i 0){
    $currentdate formatdate("m-d"mktime(000date("m"), date("d")+$i,  date("Y")));
    if (isset($query)) $query .= " OR birthday LIKE '%-$currentdate'";
    else $query "birthday LIKE '%-$currentdate'";
    $i--;
}


Die Variable $i sind die im ACP eingestellten Tage (bei Deinem Test 350). Nun wird diese Schleife 350 mal durchlaufen. Und für jeden Durchlauf wird das SQL-Statement "verlängert" um die Zeichenfolge OR birthday LIKE 2008-10-08 (als Beispiel für einen Geburtstag).

Ich denke mal, das sprengt den Rahmen der zulässigen Länge eines SQL-Statements.

Kleiner Tipp für einen Test des Hacks.

Du kannst (z.B. über den MySQLDumper) in der DB-Tabelle bbx_users das Geburtsdatum von Dir selbst ja mal auf morgen oder übermorgen setzen. Dann wirst Du feststellen, ob alles rund läuft. Wenn ja, setzt Du Dein Datum wieder auf den korrekten Wert.

Gruß Mike
elke
Zitat:
Original von C-Board
Dann muss ich Dich bitten zu warten. Ich hänge derzeit in einem anderen Projekt fest, welches absolute Priorität hat.

Gruß Mike


denkst Du noch an mein Problem?
C-Board
Ja, ich denke Tag und Nacht daran verwirrt

Hier das Workaround für die Anzeige der Nextbirthdays im JGS-Portal:
  1. Bearbeiten der Datei ./jgs_portal_include/jgs_portal_geburtstag.php
    Suche:
    php:
    1:
    
    eval("\$seiteninfos['seiten_text'] = \"".$tpl->get("sponsor_portalboxen_geburtstag")."\";");

    DARÜBER einfügen:
    php:
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
    13:
    14:
    15:
    16:
    17:
    18:
    19:
    20:
    21:
    22:
    23:
    24:
    25:
    26:
    27:
    28:
    29:
    30:
    31:
    32:
    33:
    
    if ($shownextbirthdays 0) {
        unset($query);
        $i intval($shownextbirthdays);
        $today mktime(000date("m"), date("d"),  date("Y")); //date("Y-m-d");
        while ($i 0){
            $currentdate formatdate("m-d"mktime(000date("m"), date("d")+$i,  date("Y")));
            if (isset($query)) $query .= " OR birthday LIKE '%-$currentdate'";
            else $query "birthday LIKE '%-$currentdate'";
            $i--;
        }
        $result $db->unbuffered_query("SELECT u.userid, u.username, u.useronlinegroupid, u.birthday, g.useronlinemarking FROM bb".$n."_users u LEFT JOIN bb".$n."_groups g ON (u.useronlinegroupid=g.groupid) WHERE ".$query." ORDER BY username ASC");
        while ($row $db->fetch_array($result)) {
            $nb_user_id $row['userid'];
            $row['username'] = htmlconverter($row['username']);
            $nb_user_name sprintf($row['useronlinemarking'], $row['username']);
            $birthyear intval(wbb_substr($row['birthday'], 04));
            $age $currentyear $birthyear;
            $birthday mktime(000wbb_substr($row['birthday'], 62), wbb_substr($row['birthday'], -2), date("Y"));
            $in_days floor(($birthday $today)/86400);
            if ($age || $age 200$age '';
            else $age "&nbsp;($age)";
            $lang_in_days $lang->get("LANG_JGSPORTAL_DAYS", array('$in_days' => $in_days));
            if (isset($daybit[$in_days])) eval("\$daybit[$in_days] .= \"".$tpl->get("sponsor_portalboxen_geburtstag_next_bit")."\";");
            else eval("\$daybit[$in_days] = \"".$tpl->get("sponsor_portalboxen_geburtstag_next_bit")."\";");
        }
        $j 1;
        unset($nextbirthdaybit);
        while ($j <= intval($shownextbirthdays)){
            if (!isset($nextbirthdaybit)) $nextbirthdaybit $daybit[$j];
            else if (isset($daybit[$j])) $nextbirthdaybit .= "<br /><br />".$daybit[$j];
            $j++;
        }
    }

  2. Bearbeiten des Templates sponsor_portalboxen_geburtstag.tpl
    Gesamten Inhalt des Templates ERSETZEN mit:
    code:
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
    13:
    14:
    15:
    16:
    17:
    18:
    19:
    
    <table cellpadding="1" cellspacing="0" border="0" style="width:100%" class="tableinborder">
     <tr>
      <td class="{$seiteninfos['seiten_class']}" align="center"><img src="{$style['imagefolder']}/birthday.gif" border="0" alt="" /></td>
      <td class="{$seiteninfos['seiten_class']}" align="left"><span class="smallfont"><b>{$lang->items['LANG_JGSPORTAL_GEBURTSTAG']}</b></span></td>
     </tr>
    </table>
    <span class="smallfont">$birthdaybit</span>
    <if(isset($nextbirthdaybit))>
     <then>
      <hr size="{$style['tableincellspacing']}" class="threadline" />
      <table cellpadding="1" cellspacing="0" border="0" style="width:100%" class="tableinborder">
       <tr>
        <td class="{$seiteninfos['seiten_class']}" align="center"><img src="{$style['imagefolder']}/birthday.gif" border="0" alt="" /></td>
        <td class="{$seiteninfos['seiten_class']}" align="left"><span class="smallfont"><b>{$lang->items['LANG_JGSPORTAL_NEXTBIRTHDAY']}</b></span></td>
       </tr>
      </table>
      <span class="smallfont">$nextbirthdaybit</span>
     </then>
    </if>

  3. Erstellen eines neuen Templates sponsor_portalboxen_geburtstag_next_bit.tpl
    mit dem Inhalt:
    code:
    1:
    
    <if(isset($daybit[$in_days]))><then><br /></then><else><if($in_days==1)><then><b>{$lang->items['LANG_JGSPORTAL_TOMORROW']}</b><br /></then><else><b>$lang_in_days </b><br /></else></if> </else></if><if($wbbuserdata['can_view_profile']==1)><then><a href="profile.php?userid=$nb_user_id{$SID_ARG_2ND}">$nb_user_name</a>$age</then><else>$nb_user_name $age</else></if>

  4. Importieren der Sprachvariablen-Datei sprachvariablen_jgs_portal.lng (als Dateianhang an diesem Posting) über das ACP.

  5. Das war's schon


Und nun das Workaround für die Anzeige der Nextbirthdays im HM-Portal:
  1. Bearbeiten der Datei ./hm-portal/box_birthday.php
    Suche:
    php:
    1:
    2:
    
    eval ("\$birthdaybits .= \"".$tpl->get("hm_box_birthday_in")."\";");
    }

    DARUNTER einfügen:
    php:
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
    13:
    14:
    15:
    16:
    17:
    18:
    19:
    20:
    21:
    22:
    23:
    24:
    25:
    26:
    27:
    28:
    29:
    30:
    31:
    32:
    33:
    
    if ($shownextbirthdays 0) {
        unset($query);
        $i intval($shownextbirthdays);
        $today mktime(000date("m"), date("d"),  date("Y")); //date("Y-m-d");
        while ($i 0){
            $currentdate formatdate("m-d"mktime(000date("m"), date("d")+$i,  date("Y")));
            if (isset($query)) $query .= " OR birthday LIKE '%-$currentdate'";
            else $query "birthday LIKE '%-$currentdate'";
            $i--;
        }
        $result $db->unbuffered_query("SELECT u.userid, u.username, u.useronlinegroupid, u.birthday, g.useronlinemarking FROM bb".$n."_users u LEFT JOIN bb".$n."_groups g ON (u.useronlinegroupid=g.groupid) WHERE ".$query." ORDER BY username ASC");
        while ($row $db->fetch_array($result)) {
            $nb_user_id $row['userid'];
            $row['username'] = htmlconverter($row['username']);
            $nb_user_name sprintf($row['useronlinemarking'], $row['username']);
            $birthyear intval(wbb_substr($row['birthday'], 04));
            $age $currentyear $birthyear;
            $birthday mktime(000wbb_substr($row['birthday'], 62), wbb_substr($row['birthday'], -2), date("Y"));
            $in_days floor(($birthday $today)/86400);
            if ($age || $age 200$age '';
            else $age "&nbsp;($age)";
            $lang_in_days $lang->get("LANG_HMPORTAL_DAYS", array('$in_days' => $in_days));
            if (isset($daybit[$in_days])) eval("\$daybit[$in_days] .= \"".$tpl->get("hm_box_birthday_next_in")."\";");
            else eval("\$daybit[$in_days] = \"".$tpl->get("hm_box_birthday_next_in")."\";");
        }
        $j 1;
        unset($nextbirthdaybit);
        while ($j <= intval($shownextbirthdays)){
            if (!isset($nextbirthdaybit)) $nextbirthdaybit $daybit[$j];
            else if (isset($daybit[$j])) $nextbirthdaybit .= "<br /><br />".$daybit[$j];
            $j++;
        }
    }


    Suche:
    php:
    1:
    
    if($birthdaybits != "")

    ERSETZEN mit:
    php:
    1:
    
    if($birthdaybits != "" || $nextbirthdaybit != "")

  2. Bearbeiten des Templates hm_box_birthday.tpl
    Gesamten Inhalt des Templates ERSETZEN mit:
    code:
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
    13:
    14:
    15:
    16:
    17:
    18:
    19:
    20:
    21:
    22:
    
    <if(isset($birthdaybits) && $birthdaybits!="")>
     <then>
      <tr>
       <td class="tablecat" colspan="10" align="left"><span class="smallfont"><b>{$lang->items['LANG_HMPORTAL_BIRTHDAY_CONGRAT']}</b></span></td>
      </tr>
      <tr>
       <td class="tablea" width="10%"><img src="{$style['imagefolder']}/birthday.gif" alt="" /></td>
       <td class="tableb" align="center" colspan="9"><span class="smallfont">$birthdaybits</span></td>
      </tr>
     </then>
    </if>
    <if(isset($nextbirthdaybit) && $nextbirthdaybit!="")>
     <then>
      <tr>
       <td class="tablecat" colspan="10" align="left"><span class="smallfont"><b>{$lang->items['LANG_HMPORTAL_NEXTBIRTHDAY_CONGRAT']}</b></span></td>
      </tr>
      <tr>
       <td class="tablea" width="10%"><img src="{$style['imagefolder']}/birthday.gif" alt="" /></td>
       <td class="tableb" align="center" colspan="9"><span class="smallfont">$nextbirthdaybit</span></td>
      </tr>
     </then>
    </if>

  3. Erstellen eines neuen Templates hm_box_birthday_next_in.tpl
    mit dem Inhalt:
    code:
    1:
    
    <if(isset($daybit[$in_days]))><then><br /></then><else><if($in_days==1)><then><b>{$lang->items['LANG_HMPORTAL_TOMORROW']}</b><br /></then><else><b>$lang_in_days </b><br /></else></if></else></if><if($wbbuserdata['can_view_profile']==1)><then><a href="profile.php?userid=$nb_user_id{$SID_ARG_2ND}">$nb_user_name</a>$age</then><else>$nb_user_name $age</else></if>

  4. Importieren der Sprachvariablen-Datei sprachvariablen_hm_portal.lng (als Dateianhang an diesem Posting) über das ACP.

  5. Das war's schon


Gruß Mike
elke
Zitat:
5. Das war's schon


großes Grinsen ?
Limo
würde auch gerne Danke sagen..

Aber schon beim ersten schritt kommt ein Fehler:

Zitat:
Es traten folgende Fehler beim Importieren der Variablendatei auf: no optiongroup 'INDEX' for option 'shownextbirthdays'


Trotzdem Danke ^^
inco
Zitat:
Original von KDW
Hallole,



Suche:
$birthday = mktime(0, 0, 0, wbb_substr($row['birthday'], 6, 2), wbb_substr($row['birthday'], -2), date("Y"));

Ändere in:
$birthday = mktime(0, 0, 0, wbb_substr($row['birthday'], 5, 2), wbb_substr($row['birthday'], -2), date("Y"));

KDW


Hab mir schon einen Wolf gesucht aber durch diese Änderung geht es haben ja jetzt Oktober..... fröhlich
*S2k*
hab noch ne frage

im board ist der

user_anniversary_hack_v1_4

eingebaut. in der index.tpl ist daher dieser code

code:
1:
<if(isset($birthdaybit) || isset($eventbit) || isset($useranniversarybit) || isset($nextuseranniversarybit))>


und diesen müsste ich zusätlich einfügen

code:
1:
<if(isset($birthdaybit) || isset($eventbit) || isset($nextbirthdaybit))>


was muss ich ändern damit beide funzen??
nAsH
versuchs mal damit...
code:
1:
<if(isset($birthdaybit) || isset($eventbit) || isset($useranniversarybit) || isset($nextuseranniversarybit) || isset($nextbirthdaybit))>

nAsH
*S2k*
thx

werds heute abend mal versuchen Augenzwinkern



EDIT

@ nAsH

hab den code eingebaut und getestet. es gibt aber keine veränderung unglücklich


EDIT

hat mir niemand einen rat?