ライブラリに関するページ: code.websaints.net
このライブラリを使用すると、次のことができます。
- サイトでフォトギャラリーまたはフォトギャラリーシステムを整理する
- 写真のアップロードと削除、アルバムの作成と削除、メタデータの管理など、ギャラリーを管理します
次の理由から、Yandex.Fotkiサービスを使用する必要があります。
- プロジェクトサーバーに画像を保存するスペースを無駄にしません
- ギャラリーが機能するために、データベースやその他のツールを使用してメタデータを保存および管理する必要はありません
- このサービスは、幅が800,500,300,150,100,75および50pxのプレビュー画像を作成します。自分で行う必要はありません。
- マテリアルが保存されるYandexサーバーは、ホスティングプロバイダーよりも信頼性が高い可能性が高い
- ユーザーの写真のアップロード速度は、サーバーからダウンロードする場合よりも高い可能性が高い
カットの下に、簡単なコメント付きで提供される作業とそのコードの例があります。
例
Vladislav Mamontovichのお気に入りの写真のギャラリー
すぐに予約する:
-いいえ、このサービスに基づいて画像ホスティングを作成することはできません。これは1.2.4項に違反するためです。 Yandex.Fotki APIサービスのユーザー契約 。 選択した例は、明確にするためだけのものであり、完全に正しいわけではありません。 Yandexの従業員が彼を優しく扱うことを願っています。 または、少なくとも、不幸なVladislav Mamontovichをブロックする前に警告されます。
この例は2つのファイルで構成されています。
- example.html-ギャラリーを表示
- upload_image.html-画像のアップロード
Yandex.Fotkiで直接作業しているコード以外には焦点を当てません。 コードに関連する質問がある場合は、コメントで質問してください。 確かに答えます。
example.html
このページに実装する主な機能は何ですか:
- Mamontovichがアップロードした最新の25枚の画像のリストを表示する
- ダウンロードした画像の識別子が与えられている場合は、Yandex.Fotkiサービスによって作成されたプレビュー画像と元の画像へのリンクを一覧表示します
- 画像アップロードフォームを表示して、Vladislav Mamontovichがギャラリーを補充できるようにします
1.サービスを利用するユーザーを作成します。 すなわち-ヴラディスラフ・マモントヴィッチ。
- $ photo = new yandex_fotki ( "MojoElephant" ) ;
2. Mamontovichの写真の一般的なコレクションを取得する
- $ photo- > user ( ) -> add_photo_collection ( "Elephant Photo" ) ;
3. Mamontovichがアップロードした最新の25枚の写真を取得する
- $ photo- > user ( ) -> photo_collection ( "Elephant Photo" ) -> se ( array ( "limit" => 25 ) ) ;
4.それらをすべて通過した後、ギャラリーを形成します
- foreach ( $ photo- > user ( ) -> photo_collection ( "Elephant Photo" ) -> photo_list ( 0 ) as $ index => $ photo_element ) {
- $ photo_block = new template_class ( "Photo" 、 "../../templates/photo.html" ) ;
- $ photo_block- > point ( "Entry Points" ) ;
- $ photo_block- > plug ( "Entry Points" 、 " Enlarged " 、 " Enlarged " 、 $ photo_element- > get_L ( ) ) ;
- $ photo_block- > plug ( "Entry Points" 、 "Preview" 、 "Preview" 、 $ photo_element- > get_XXS ( ) ) ;
- $ gallery- > plug ( "Entry Points" 、 "Photo" 、 $ index 、 $ photo_block- > render ( ) ) ;
- }
5. Mamontovichが写真をアップロードした場合、新しい写真の識別子がスクリプトに転送されました。 IDで新しく読み込まれた写真を取得します
- $ new_photo = $ photo- > user ( ) -> photo_collection ( "Elephant Photo" ) -> get_photo_by_id ( $ photo_id ) ;
6.リンクのリストを表示する
- $ link_block = new template_class ( "Links" 、 "../../templates/link_block.html" ) ;
- $ link_block- > point ( "入力ポイント" ) ;
- $ link_block- > plug ( "Entry Points" 、 "Original" 、 "Link" 、 $ new_photo- > get_orig ( ) ) ;
- $ link_block- > plug ( "入力ポイント" 、 "XL" 、 "リンク" 、 $ new_photo- > get_XL ( ) ) ;
- $ link_block- > plug ( "入力ポイント" 、 "L" 、 "リンク" 、 $ new_photo- > get_L ( ) ) ;
- $ link_block- > plug ( "入力ポイント" 、 "M" 、 "リンク" 、 $ new_photo- > get_M ( ) ) ;
- $ link_block- > plug ( "入力ポイント" 、 "S" 、 "リンク" 、 $ new_photo- > get_S ( ) ) ;
- $ link_block- > plug ( "入力ポイント" 、 "XS" 、 "リンク" 、 $ new_photo- > get_XS ( ) ) ;
- $ link_block- > plug ( "入力ポイント" 、 "XXS" 、 "リンク" 、 $ new_photo- > get_XXS ( ) ) ;
- $ link_block- > plug ( "Entry Points" 、 "XXXS" 、 "Link" 、 $ new_photo- > get_XXXS ( ) ) ;
upload_image.html
このページに実装する主な機能は何ですか:
- 送信した画像をYandex.Fotkiサービスに保存します
- サーバーにアップロードされた画像のexample.html識別子を報告する
1.写真のアップロードは認証されたユーザーのみが可能であるため、クラスyandex_fotkiのオブジェクトを作成して認証します。
- $ photo = new yandex_fotki ( "MojoElephant" 、 "password" ) ;
2.その後、写真のコレクションを取得する必要があります。ここに、Mamontovichの新しい写真を追加します。
- $ photo- > user ( ) -> add_photo_collection ( "Elephant Photo" ) ;
3.実際、写真をYandex.Fotkiにアップロードします。 ダウンロード後、写真付き身分証明書を取得します。
- $ new_photo = array (
- "path" => "../../uploaded/" 。 $ _FILES [ "写真" ] [ "名前" ]
- ) ;
- $ result = $ photo- > user ( ) -> photo_collection ( "Elephant Photo" ) -> up ( $ new_photo ) ;
4.写真IDを保存します。 任意の方法を使用できますが、少なくともそれを実現します。 これらの目的のために、セッションにデータを保存するメッセージシステムを使用します。
5. Mamontovichをexample.htmlに転送し、アップロードした写真へのリンクを受け取ってギャラリーで表示します。
おわりに
ご覧のとおり、すべてが非常にシンプルで快適です。
最小限の労力で、サイトにギャラリーを実装できます。
Yandex.Fotkiに写真を保存する唯一の欠点は、サービスにメタデータを保存するよりもサービスがメタデータを要求するのに時間がかかることです。 しかし、キャッシュの賢明な使用はそれをほとんど無効にします。
さらなる研究のための資料
- Java ScriptおよびPython非標準RSA暗号化機能に移植
- Yandex.Fotki APIサービスのドキュメント
- Yandex.Fotki APIユーザー契約
- Club Yandex.Photo API
- PHPのクラスライブラリのサイト
ありがとう
暗号化アルゴリズムの移植、 Yandex.Fotki APIプロジェクトを明確にするためのプロト 、コメント、そして私に与えられた時間のために他のすべての人に助けてくれたar2rとnickmitinに感謝します。 また、#php RusNetチャンネルの人々に感謝し、私の仕事に専門的な評価を与え、より良い方法をアドバイスしてくれました。 mz、avz、focusshifterおよびその他すべて。 ありがとう
このコードは、 antonshevchukによって考案されたhighlight.hohli.comによって強調表示されています。
次は?
次は、エラーの検索と修正、コードのリファクタリング、ライブラリの使用とYandexのイデオロギーに関する詳細な記事の作成、フロー、いくつかのCMS用のプラグインの作成です。 はい、実際、私とあなたにとって必要で興味深いものはすべてあります。
しかし、少なくとも何か他のものがあるためには、誰かが私の仕事を必要としていることを知る必要があります。 ライブラリが役に立つ場合は、それについて書いてください。 黙ってはいけません。
PS図書館が好きで、DEVCONFの参加について考えているなら、会議のウェブサイトで私のレポートに投票してください: www.devconf.ru/phpconf/offers