Neue Wetter Erweiterung
ER2: contao-weather-get
Composer: cnajjar/weather-get
GitHub: contao-weather-get
example.png
Neue Wetter Erweiterung
ER2: contao-weather-get
Composer: cnajjar/weather-get
GitHub: contao-weather-get
example.png
Geändert von pacman (11.09.2016 um 01:40 Uhr)
Vielen Dank für die tolle Erweiterung. openweathermap.org sowie YahooWeather funktioniert tadellos. - Installation über Composer - Contao 3.5.12
Kann ich das Modul bei MetaModels nutzen wenn der Ortsname(Titel) zur Verfügung steht. In welchem Template(s) muss ich <?php $weatherdata = $this->weatherinfo[0]; ?> mit meinen Ortsnamen <?php echo $arrItem['text']['titel']; ?> ersetzen.
Geändert von servpoint (11.09.2016 um 09:17 Uhr)
soll der Titel bzw Ortsname sich ändern ?
mod_wg_yahoo
mod_wg_forecastio
mod_wg_openweathermap
je nachdem von wo du das Wetter abholst.
PHP-Code:
$this->cityname
Yahoo hat erlaubte 600 Abfragen am Tag mit einem mind. cache von 1 std also 24 ~ 25 (falls jemand um 00:01 abruft erneuert es sich weil es ein neuer Tag ist trotz cache) also ca 24 Orte abrufbarPHP-Code:
$this->title
forecast.io hat 1000 Abfragen pro Tag Kostenlos also 40
openweathermap.org 60 Abfragen pro Minute oder ein paar Tausend pro Tag ?? (kann es leider nicht mehr finden)
Leider hat openweathermap noch ein Nachteil. Die Daten für die Vorhersage sind im 3 std. Intervall und nicht im Tagesintervall. (Bei der Temp. hab ich den Durchschnitt berechnet und bei dem icon und der Beschreibung die Mittagsdaten genommen).
openweathermap kann auch Tagesdaten liefern, leider nicht im kostenlosem Konto. (Aktuelle Wetterinformationen sind aber auch im kostenlosem Konto enthalten und werden so ausgegeben wie geliefert)
yahoo icons oder openweathermap icons (Die Originalen könne auch benutzt werden in dem Template oben auskommentiert ist das jeweilige <img /> das ersetzt werden kann.)
forecast.io hat keine eigenen icons (aber wie es aussieht die korrektesten Wetterdaten)
Geändert von pacman (11.09.2016 um 12:12 Uhr)
Brauche bitte Eure Hilfe,
Als Modul funktioniert die Ausgabe mit einem Ort ohne Probleme. Ich brauche dies aber für viele Orte. Ich habe folgendes Template für metamodels. Wie erreiche ich die Ausgabe der Wetterdaten von openweathermap.org
Als Werte stehen Ort <?php echo $arrItem['text']['titel']; ?> und Koordinaten <?php echo $arrItem['text']['karte']; ?> im Format XX.XXXXXXX, X.XXXXX zur Verfügung.
Danke im Voraus
HTML-Code:<?php if (count($this->data)): /* display only if there is data. */ ?> <?php foreach ($this->data as $arrItem): /* loop over all items. */ ?> <div class="item <?php echo $arrItem['class']; ?>"> <h3>Wetter in <?php echo $arrItem['text']['titel']; ?> - Temperatur & Wettervorhersage</h3> <div class="ce_text block" style="margin-top:20px; margin-bottom:15px;"> <?php $GLOBALS['TL_CSS'][] = 'system/modules/weather-get/assets/css/theme-simple.css'; $GLOBALS['TL_CSS'][] = 'system/modules/weather-get/assets/weather_icons/weather_icons/css/weather-icons.min.css'; //Weather-ICONS = https://erikflowers.github.io/weather-icons/ /*Original Openweather ICONS <div class="icon"><img src="http://openweathermap.org/img/w/<?= $weatherdata['weather_icon']; ?>.png" ></div> */ ?> <div class="<?php echo $this->class ?> block"<?php echo $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>> <?= $this->title; ?> <h3><?= $this->cityname; ?></h3> <?php $weatherdata = $this->weatherinfo[0]; ?> <?php if((time()<$weatherdata['sunrise'])){ $addition="night-"; }elseif((time()>$weatherdata['sunrise'])&&(time()<$weatherdata['sunset'])){ $addition="day-"; }elseif((time()>$weatherdata['sunset'])&&($weatherdata['sunset']>0)){ $addition="night-"; } ?> <div class="weatherday"> <div class="main-info"> <div class="date">Heute</div> <div class="icon"><i style="font-size:3em" class="wi wi-owm-<?= $addition ?><?= $weatherdata['weather_id']; ?>"></i></div> <div class="temp"><?= $weatherdata['temp']; ?><?php if($this->unit == "metric"):?>°C<?php endif;?></div> <div class="text"><?= $weatherdata['weather_desc']; ?></div> </div> <div class="extra-info"> <div class="humidity"><i class="wi wi-humidity"></i> <?= $weatherdata['humidity']; ?> Luftfeutchtigkeit</div> <div class="maxtemp"><i class="wi wi-thermometer"></i> <?= $weatherdata['maxtemp']; ?><i class="wi wi-celsius"></i> maximal</div> <div class="mintemp"><i class="wi wi-thermometer-exterior"></i> <?= $weatherdata['mintemp']; ?><i class="wi wi-celsius"></i> minimal</div> <div class="windspeed"> <?= $weatherdata['speed']; ?> km/std Windgesch.</div> </div> </div> <?php for($i=1; $i < count($this->weatherinfo); $i++): ?> <?php $weatherdata = $this->weatherinfo[$i]; ?> <div class="weatherday"> <div class="date"><?= date('d.M',$weatherdata['daytime']); ?></div> <div class="icon"><i style="font-size:3em" class="wi wi-owm-<?= $weatherdata['weather_id']; ?>"></i></div> <div class="temp"><span class="smallertemp"> <?= $weatherdata['mintemp']; ?> -</span> <?= $weatherdata['maxtemp']; ?><?php if($this->unit == "metric"):?>°C<?php endif;?></div> <div class="text"><?= $weatherdata['weather_desc']; ?></div> </div> <?php endfor; ?> <div class="copyright"><a href="http://www.openweathermap.org" target="_blank">© openweathermap.org</a></div> </div> <div class="clear"></div> <p class="back"><a href="javascript:history.go(-1)">zurück</a></p><?php endforeach; /* item loop */ ?> <?php else: /* no items found */ ?> <?php endif; ?>
Geändert von servpoint (01.11.2016 um 13:10 Uhr)
ein "allgemeines Vorgehen" auch bei anderen "Widgets" in Verbindung mit MM:
* MM außen vor lassen und die Sache mit "statischen Parametern" testen - bei Dir also alles nach "<h3><?= $this->cityname; ?></h3>..."
* Testen, ob das alles funktioniert
* Ansicht checken und ggf. CSS frisieren
* als letzten Schritt die "MM-foreach-Schleife" um die Ausgabe setzen und die statischen Parameter mit dynamischen ersetzen
Gruss
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
Hallo,
ich habe mir das template so angepasst, dass zum Datum auch der Wochentag mit ausgegeben wird ... leider aber in Englisch.
Zeitzone in den Einstellungen = Europe/Vienna
Sprache im Startpunkt der Webseite = de
ergibt: Sunday 06.NovemberPHP-Code:
<div class="date"><?= date('l d.F',$weatherdata['daytime']); ?></div>
wo muss ich ansetzen?
Grüsse
Bernhard
Ja, die PHP Funktion date() arbeitet nur in englisch. Du musst die Contao-Klasse Date mit der Methode parse() benutzen.
PHP-Code:
$myDate = \Date::parse('l j. F', $myTimestamp);
Geändert von Andreas (27.11.2016 um 20:18 Uhr)
Bitte!
Vor Anfragen im Forum HTML validieren.
Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.
Vielen Dank an alle Wunschlistenerfüller
Andreas Burg, Web Solutions
Forecast.io gibt es so nicht mehr.
Die heißen jetzt Dark Sky mit einer neuen Domain. Zwar liefert die alte Domain noch Informationen aber ich wollte auf Nummer sicher gehen.
Für den Kollegen mit dem MetaModel Problem:
Es sieht für mich so aus, als ob du den Inhalt beeinflussen willst, indem du das Template bearbeitest. Das Template ist lediglich für das Aussehen verantwortlich.
Ich habe ein Insert Tag hinzugefügt, und zwar
oderCode:{{weatherg::GEWOLLTES WETTER ID}}
Beide setzen voraus das du diese unter dem Punkt Wetter angelegt hast. Sonst gibt’s ne Fehlermeldung. Hoffe das hilft.Code:{{wethergBt::GEWOLLTES WETTER Titel}}
Wieder eine neue Contao Funktion dazugelernt danke.Ja, die PHP Funktion date() arbeitet nur in englisch. Du musst die Contao-Klasse Date mit der Methode parse() benutzen.
PHP-Code:
$myDate = \Date::parse('l d.F', $myTimestamp);
Geändert von pacman (28.11.2016 um 18:20 Uhr)
Hallo, ich bräuchte noch etwas input hinsichtlich der dynamischen Städtedaten.
In den entsprechenden Zeilen habe ich $this->cityname durch Variablen der Städte ersetzt.
<?= $cityname; ?>
<h3><?= $cityname; ?></h3>
Diese werden auch im FE ausgegeben. Allerdings ändern sich die Wetterdaten nicht für diese Städe.
Hier erscheint immer nur die im BE erfasste Ort.
An welcher Stelle müssen denn hier die Variablen im Template ersetzt werden?
Ich glaub, ich versteh was falsch?
So wie ich es verstanden habe soll eine andere Stadt angezeigt werden, wenn man im Template eine Variable abändert?
Das ist nicht der fall das Template ist ausschließlich für das Aussehen zuständig. der Inhalt wird über das Modul geregelt im Backend.
Falls ein andere Stadtname auftauchen soll, dann würde ich ($this->title) ausgeben an der stelle damit der Titel ausgegeben wird und nicht die vom Provider gelieferte Stadtinformationen.
Falls man im Backend mehrere Städte angelegt hat, und man einfach eins von n*Städten ausgeben will dann würde am besten ein Inserttag funktionieren.
Falls aber die Städte ausgewählt werden sollen, die noch nicht im Backend angelegt sind, funktioniert das noch nicht.
Grund dafür ist die Limitierten Aufruf Möglichkeit.
z.B Yahoo mit max 600 aufrufen bzw. bezahlter account (der aber hiermit nicht funktioniert)
Danke für die Infos pacman,
ja es verhält sich tatsächlich so, dass im Backend (also in der Erweiterung) keine Städte angelegt werden.
Das Wetter Gadget soll auf einer Reader Seite eines Reise-Katalogs eingesetzt werden.
Hier wird der jeweilige Stadtname durch das Readertemplate ausgegeben und der Gedanke war, dass diese Stadt dem Wetter-Template übergeben werden soll.
Wird diese Erweiterung in Zukunft für Contao 4.4 angepasst?
Das wäre super nett, ich könnte sie für ein aktuelles Projekt gut gebrauchen.
Danke
Ich habe dieses Modul weather-get unter 4.4.2 im Einsatz, manuell von Github geladen und per FTP in system/modules übertragen und contao-install für das Anlegen der Tabellen.
Servicepoint.de - Angebote, Empfehlungen und Dienstleistungen
Danke, alles funktioniert nun.
Manuelle Installation in einer 4.4.2 Installation (Contao Manager), Klasse!
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen