MODxのGismeteoによる「グラマラス」インフォーマー

実際、多くのサイトでは、現在の天気が地球上のある場所または別の場所で何であるかに関する情報を貼り付けることは、何らかの方法で役立ちます。 ほとんどの人が自分の気象サービスを維持することは少なくとも採算が取れないので、かなり柔らかい土地で無料の気象ウィジェットを提供するリソースの一部を使用する方がはるかに理にかなっています(ウェブサイトへのリンクを置くだけです)。 最も有名で人気のあるサービスの1つはgismeteo.ruです。 しかし、その標準的なインフォーマーは全員に適しているわけではありません...しかし、企業のコーポレートアイデンティティに合うようにインフォーマーのデザインを作り直したい場合や、1つのインフォーマーで複数の都市をカバーしたい場合はどうなりますか? たとえば、最近の顧客である旅行会社は、彼らが働いている場所のリストを持つ情報提供者を望んでいました。 これが1つです(最終結果のスクリーンショット):



私たちは何を達成したいのですか



これはできないと思いますか? 可能な限り、さらに、今晩、MODx用の特別なスニペットをいくつかのデモテンプレートで作成することで、作業を促進しました。



実際、 小さなアーカイバをダウンロードします。 ご覧のとおり、スニペット自体(gismeteo.phpファイル、正しく動作するにはlibxsltが必要ですが、このライブラリはほとんどの通常のホスティングサイトに含まれています)とテンプレート付きの2つのxslファイルがあります。 実際、MODxのイデオロギーに精通している人にとっては、インストールに問題はないと思います。「リソース管理」に進み、新しいスニペットを作成して、 Gismeteoと呼び、gismeteo.phpファイルの内容をコピーします。 テンプレートでも同じです-それぞれについてチャンクを作成します(MODxイデオロギーに準拠し、特別な必要なしにハードドライブからのファイルの接続を使用しないようにしました)。これらのチャンクの1つを「 informer 」と呼びます。 ...ただし、これについてはさらに詳しく説明します。



スニペットを呼び出すためのパラメーターの詳細な分析(それらは2つしかありません)とその操作のロジック(小さな叙情的な余談)に進む前に。 なぜ、実際にはXSLT-これは最速ではありませんが、テクノロジーのように思えますか? はい、Gismeteoには非常に便利な機能があり、XML形式で天気予報を受信できます 。 そして、XSLTテンプレートの助けを借りて、必要に応じてこの情報を表示し、PHPコードでの情報の表示の「調整」を最小限に抑え、このコード自体の行数を大幅に節約できます。 さらに、誰も私たちを制限しません-スニペットの1回の呼び出しで、一度に複数の都市の情報を要求し、この情報に一般的なプレゼンテーションテンプレートを重ね合わせることができます...私たちが必要なものですよね?



したがって、スニペット呼び出しは、シベリアのフェルトブートと同じくらい簡単です。 次のようなもの:



[[Gismeteo? &tpl = `informer_full`&source =` http://informer.gismeteo.ru/xml/32150_1.xml,http:// informer.gismeteo.ru / xml / 32158_1.xml`]]



はい、私が言ったように、2つのオプションしかありません。 tplパラメーターは、XSLTテンプレートを含むチャンクの名前です(デフォルトは「informer」です)。 sourceパラメーターは、コンマで区切られたURLのリストです。これにより、必要な都市のXMLインフォーマーが横になります(これらのURLは上記のリンクから取得できます)。 sourceパラメーターが指定されていない場合、デフォルトでは、栄光の故郷の首都の情報提供者に等しくなります:)



どのように機能しますか? スニペット自体に、タイトル付きのテーブルが表示されます。 その内部では、ソースパラメータ値のリスト全体に対してイテレータが起動されます。 つまり、各都市に対してXMLソースを取得し、通常の人間のUTF-8にトランスコードします(それ以外の場合は元のgad cp1251で与えられ、urlencodeメソッドを使用してエンコードされます)、XSLスタイルを課します(通常の<言い換えれば、テーブルのtr> s)-そして、結果のHTML eで、「曇り」と「沈殿」パラメータの数値を通常の言葉の類似物に置き換えます。 はい、すでに3段階の解析があり、テンプレートに曇りと降水量のクラスを「ハード」縫い込む必要があることはあまり便利ではありません。 。 まあ。 このすべての詳細はコードで見ることができます-それは非常に小さく、コメントさえあります。 最終的に、きちんとした小さなタブレットが得られます。その上で、あらゆる方法でCSSで歪め、他のすべてのデザインの下で「シャープ」にすることができます。



一般的に-お楽しみください! この小さくても便利な小さなものが役に立つ人はまだいると思います...



PSいいえ、GismeteoのWebサイトは広告の料金を支払っていないので、考えないでください:)



All Articles