Page 1 of 11

[DE] Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 2. September 2008 19:10
by Kevin
Fügt einen Block mit dem Wetter des Wohnorts des Users ein. Der Wohnort wird über die Postleitzahl ermittelt
wetter_block.gif
wetter_block.gif (5.89 KiB) Viewed 47748 times
Jeder User kann seine Postleitzahl im persönlichen Bereich angeben. Falls keine angegeben ist, wird eine Standardpostleitzahl genommen, die man im Code festlegen kann.

Demo - auf der rechten Seite "Wetter"

Anmerkung:
Wuerzi wrote:Wer die Geomap installiert hat findet schon 3 Felder in der Profile fields data Tabelle (user_id , pf_plz , pf_land).
Wer also die Geomap schon installiert hat, kann die Vorbereitung überspringen. Die User können dann bereits ihre Postleitzahl angeben.

Anmerkung 2:
Frank hat eine Lösung für Leute, die den Wetterdienst in mehreren Ländern nutzen möchten (Deutschland, Schweiz, Österreich):
viewtopic.php?p=8779#p8779

Vorbereitung:

Für diesen Block muss man ein "benutzerdefiniertes Feld" im ACP anlegen, zu finden unter "Benutzer und Gruppen".
  • Profilfeld hinzufügen
    • Feld Kennung= plz
    • Art des Feldes= Einzeiliges Textfeld
    • Profilfeld anzeigen: Nein
    • Im Profil des Benutzers anzeigen: anwählen
    • Dem Benutzer angezeigter Name/Titel: Wetter Postleitzahl
    • Feld-Beschreibung: Gib hier deine Postleitzahl ein, wenn Du das Wetter aus deiner Region auf dem Portal angezeigt bekommen möchtest.
  • Spezifische Optionen der Feldart
    • Größe des Eingabefelds: 5
    • Mindestens erforderliche Zeichenanzahl: 5
    • Maximal zulässige Zeichenanzahl: 5
    • Zulässige Werte: Nur Ziffern (0-9)
Damit geben wir den Usern die Möglichkeit, ihre Postleitzahl über das UCP (Profil ändern) in der Datenbank zu hinterlegen.

Nun zu den Änderungen an den Dateien:
Öffne: portal/block/additional_blocks.php
suche:

Code: Select all

if (!defined('IN_PORTAL'))
{
    exit;
} 
füge danach ein:

Code: Select all

// Wetter START
    include($phpbb_root_path . 'portal/block/wetter.'.$phpEx);
// Wetter ENDE                             
Erstelle eine neue Datei, namens wetter.php und lade sie in portal/block/
Inhalt:

Code: Select all

<?php

if (!defined('IN_PHPBB'))
{
   exit;
}

if (!defined('IN_PORTAL'))
{
   exit;
}

        $sql = "SELECT pf_plz
                FROM " . PROFILE_FIELDS_DATA_TABLE . "
                WHERE user_id = " . $user->data['user_id'];

            $result = $db->sql_query_limit($sql, 1);
            $plz     = $db->sql_fetchfield('pf_plz');
            $db->    sql_freeresult($result);

    $template->assign_vars(array(
        'WETTER_PLZ'     => (!empty($plz)) ? $plz : '20099', // Ändere 20099 in die gewünschte Standard Postleizzahl
    ));

?>
Hierbei bitte die 20099 durch die Postleitzahl ersetzen, für das das Wetter als Standard angezeigt werden soll, sollte keine Postleitzahl angeben sein oder ein Gast das Portal betrachtet.
  • Prosilver:
    • Öffne: styles/prosilver/template/portal/block/additional_blocks_right.html (oder additional_blocks_left.html - je nachdem wo man den Block haben möchte)
      suche:

      Code: Select all

      <!-- additional_blocks //-->  
      füge danach ein:

      Code: Select all

              <!-- Wetter Start -->
                  <!-- INCLUDE portal/block/wetter.html -->
              <!-- Wetter Ende -->  
      wetter.com: (XHTML valid strict)
      Erstelle in styles/prosilver/template/portal/block/ eine neue Datei namens wetter.html, mit dem Inhalt:

      Code: Select all

          {$LR_BLOCK_H_L}<img src="{T_THEME_PATH}/images/portal/portal_stats.png" width="16px" height="16px" alt=""/>&nbsp;Wetter{$LR_BLOCK_H_R}
                      <div style="text-align: center;">
                          <!-- Wettercode Start -->
                              <a href="http://www.wetter.com/home/extern/ex_search.php?search={WETTER_PLZ}"><img src="http://www.wetter.com/home/woys/woys.php?,C,1,DEPLZ,{WETTER_PLZ}" alt="" /></a>
                              <a href="http://www.wetter.com/home/extern/ex_search.php?search={WETTER_PLZ}"><img src="http://www.wetter.com/home/woys/woys.php?,F,1,DEPLZ,{WETTER_PLZ}" alt="" /></a>
                          <!-- Wettercode Ende -->
                      </div>
                      <br />
      {$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
       


      Alternativ mit donnerwetter.de: (nicht XHTML valid strict!)
      Erstelle in styles/prosilver/template/portal/block/ eine neue Datei namens wetter.html, mit dem Inhalt:

      Code: Select all

      {$LR_BLOCK_H_L}<img src="{T_THEME_PATH}/images/portal/portal_stats.png" width="16px" height="16px" alt=""/>&nbsp;Wetter{$LR_BLOCK_H_R}
                  <div style="text-align: center;">
                      <!-- Wettercode Start -->
                          <script type="text/javascript" language="javascript" src="http://www.donnerwetter.de/wetter/net/boxregio.mv?typ=1&plz={WETTER_PLZ}&color_bg=80FFFF&color_hi=FFFFFF&color_txt=000000&width="></script>
                          <noscript>JavaScript ist deaktiviert - leider sehen Sie hier kein aktuelles Wetter. <a href="http://www.donnerwetter.de" target="_blank">www.Donnerwetter.de</a></noscript> 
                      <!-- Wettercode Ende -->
                  </div>
                  <br />
      {$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
      

  • subsilver2:
    • Öffne: styles/subsilver2/template/portal/block/additional_blocks_right.html (oder additional_blocks_left.html - je nachdem wo man den Block haben möchte)
      suche:

      Code: Select all

      <!-- additional_blocks //-->   
      füge danach ein:

      Code: Select all

              <!-- Wetter Start -->
                  <!-- INCLUDE portal/block/wetter.html -->
              <!-- Wetter Ende -->   
      wetter.com: (XHTML valid strict)
      Erstelle in styles/subsilver2/template/portal/block/ eine neue Datei namens wetter.html, mit dem Inhalt:

      Code: Select all

      {$LR_BLOCK_H_L}<img src="{T_THEME_PATH}/images/portal/portal_stats.png" width="16px" height="16px" alt="" />&nbsp;Wetter{$LR_BLOCK_H_R}
      <table class="tablebg" cellspacing="1" width="100%">
          <tr class="row1">
              <td style="text-align:center;">
                          <!-- Wettercode Start -->
                              <a href="http://www.wetter.com/home/extern/ex_search.php?search={WETTER_PLZ}"><img src="http://www.wetter.com/home/woys/woys.php?,C,1,DEPLZ,{WETTER_PLZ}" alt="" /></a>
                              <a href="http://www.wetter.com/home/extern/ex_search.php?search={WETTER_PLZ}"><img src="http://www.wetter.com/home/woys/woys.php?,F,1,DEPLZ,{WETTER_PLZ}" alt="" /></a>
                          <!-- Wettercode Ende -->
              </td>
          </tr>
      </table>
      {$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
       

      Alternativ mit donnerwetter.de: (nicht XHTML valid strict!)
      Erstelle in styles/subsilver2/template/portal/block/ eine neue Datei namens wetter.html, mit dem Inhalt:

      Code: Select all

      {$LR_BLOCK_H_L}<img src="{T_THEME_PATH}/images/portal/portal_stats.png" width="16px" height="16px" alt="" />&nbsp;Wetter{$LR_BLOCK_H_R}
      <table class="tablebg" cellspacing="1" width="100%">
          <tr class="row1">
              <td style="text-align:center;">
                      <!-- Wettercode Start -->
                          <script type="text/javascript" language="javascript" src="http://www.donnerwetter.de/wetter/net/boxregio.mv?typ=1&plz={WETTER_PLZ}&color_bg=80FFFF&color_hi=FFFFFF&color_txt=000000&width="></script>
                          <noscript>JavaScript ist deaktiviert - leider sehen Sie hier kein aktuelles Wetter. <a href="http://www.donnerwetter.de" target="_blank">www.Donnerwetter.de</a></noscript> 
                      <!-- Wettercode Ende -->
              </td>
          </tr>
      </table>
      {$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
      


Das war es auch schon.

Man kann auch andere Wetterdienste nutzen, die auf Postleitzahlen basieren. Einfach den Code in der wetter.html zwischen den Markern
<!-- Wettercode Start -->
<!-- Wettercode Ende -->
durch den des anderen Anbieters ersetzen. Dort, wo die Postleitzahl ausgegeben werden soll, diesen Code setzen:
{WETTER_PLZ}

Viel Spaß!

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 2. September 2008 19:21
by scwfan06
Respekt Kevin!

Astreine Arbeit.

Funzt super! :)

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 2. September 2008 19:24
by Kevin
Sehr schön! :)

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 2. September 2008 21:08
by HenK
Super! Danke Kevin!

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 3. September 2008 19:42
by Kevin
Update - siehe ersten Beitrag.
  • wetter.com dazu
  • subsilver2 dazu
  • den Code aus der portal.php in eine eigene Datei ausgelagert
  • XHTML valid strict! (wetter.com)

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 15. September 2008 09:22
by Strande
eine kleine frage noch am rande, ich hab einen user da sind unter derselben PLZ mehrere Orte, wie oder wo kann ich festlegen das der richtige Ort angezeigt wird.

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 15. September 2008 14:09
by Redbull254
Strande wrote:eine kleine frage noch am rande, ich hab einen user da sind unter derselben PLZ mehrere Orte, wie oder wo kann ich festlegen das der richtige Ort angezeigt wird.
Die Anzeige ist nur so genau, wie der jeweilige Anbieter eine Selektierung zulässt. Es wird ja nur das Modul des Anbieters in das Portal eingebaut.

Geht die Auswahl des Ortes schon beim Anbieter nicht genauer, kann es im Portal auch nicht anders angezeigt werden.

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 21. September 2008 12:04
by archivar
wenn ich im pers.-bereich die plz eingebe 07768 bekomme ich die meldung muß größer als 10000 sein.
setze ich den wert auf 1000 wird beim wetterfritzen die 0 unterschlagen und zeigt mir nur noch 7768 ort nicht gefunden.
kann mir jemand mitteilen was ich wieder verkehrt gemacht habe? :oops:
L.G. archivar (der ewige anfänger :oops: )

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 22. September 2008 13:37
by HenK
Was hab ich falsch gemacht wenn ich auf dem Portal folgendes angezeigt bekomme:
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3570: Cannot modify header information - headers already sent by (output started at /portal/block/wetter.php:1)
Das portal an sich wird angezeigt. Nur mit ziemlich großer Schrift.

EDIT:

Hat sich erledigt! Weiß nicht genau woran es lag aber hab die wetter.php nochmal neu gemacht.^^

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 22. September 2008 14:34
by HenK
lemmi wrote:wenn ich im pers.-bereich die plz eingebe 07768 bekomme ich die meldung muß größer als 10000 sein.
setze ich den wert auf 1000 wird beim wetterfritzen die 0 unterschlagen und zeigt mir nur noch 7768 ort nicht gefunden.
kann mir jemand mitteilen was ich wieder verkehrt gemacht habe? :oops:
L.G. lemmi (der ewige anfänger :oops: )
Ich glaube du hast nix falsch gemacht. PLzs, die miz 0 anfangen scheinen damit nicht zu funktionieren. Da das Profilfeld die Nullen am anfang wegstreicht.

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 22. September 2008 16:06
by Christian_N
HenK wrote:
lemmi wrote:wenn ich im pers.-bereich die plz eingebe 07768 bekomme ich die meldung muß größer als 10000 sein.
setze ich den wert auf 1000 wird beim wetterfritzen die 0 unterschlagen und zeigt mir nur noch 7768 ort nicht gefunden.
kann mir jemand mitteilen was ich wieder verkehrt gemacht habe? :oops:
L.G. lemmi (der ewige anfänger :oops: )
Ich glaube du hast nix falsch gemacht. PLzs, die miz 0 anfangen scheinen damit nicht zu funktionieren. Da das Profilfeld die Nullen am anfang wegstreicht.
So ist es, steht auch im ersten Beitrag drin, wenn man diesen mal genau durch lesen tut. :D
Kevin wrote:
  • Spezifische Optionen der Feldart
    • Größe des Eingabefelds: 5
    • Niedrigste zulässige Zahl: 10000
    • Höchste zulässige Zahl: 99999
    • Standardwert: 0
Extra mal rot markiert.

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 22. September 2008 16:13
by Redbull254
Das Problem ist nicht, das man als Standard-Vorgabe die 10000 drin hat, das kann man ja leicht ändern.
Das Problem liegt darin, das Zahlen-Kombinationen, die mit der Zahl 0 beginnen, ignoriert werden.

Scheinbar hängt das mit dem Script von Wetter.com zusammen. :roll:
Was mich aber verwirrt, weil es auf der Webseite auch mit Ortschaften klappt, die mit "0" beginnen.
Ich bin auch an dem Problem dran, weil einige Mitglieder bei mir im Forum das gleiche Problem haben. :(

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 22. September 2008 16:39
by HenK
Das Problem liegt aber nicht am wetter.com sondern an pbphh3, oder?
Also einfach an der Profilfeld-Art. Aus 00001 wird von phpbb3 einfach 1 geamcht. (Beispiel)

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 22. September 2008 16:44
by Redbull254
HenK wrote:Das Problem liegt aber nicht am wetter.com sondern an pbphh3, oder?
Also einfach an der Profilfeld-Art. Aus 00001 wird von phpbb3 einfach 1 geamcht. (Beispiel)
Mit so vielen Nullen habe ich das nicht getestet. :lol:

Wenn das aber so als Ergebnis kommt, hast Du recht. Mal schauen, was da die "phpBB3 Gurus" zu sagen. :D

Re: Wetterbox auf dem Portal (mit User Postleitzahl)

Posted: 22. September 2008 17:00
by HenK
Ich hab da ne Lösung:

Man erstellt einfach als Profilfeld ein Textfeld:

Profilfeld hinzufügen:
  • Feld Kennung= plz
  • Art des Feldes= Einzeiliges Textfeld
  • Profilfeld anzeigen: Nein
  • Im Profil des Benutzers anzeigen: anwählen
  • Dem Benutzer angezeigter Name/Titel: Wetter Postleitzahl
  • Feld-Beschreibung: Gib hier deine Postleitzahl ein, wenn Du das Wetter aus deiner Region auf dem Portal angezeigt bekommen möchtest.
Spezifische Optionen der Feldart:
  • Größe des Eingabefelds: 5
  • Mindestens erforderliche Zeichenanzahl: 5
  • Maximal zulässige Zeichenanzahl: 5
  • Zulässige Werte: Nur Ziffern (0-9)
Funzt auch mit der PLZ: 07768 (von Lemmi)