Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

a-blog cms 基本機能でつくるスタンプラリー

500 views

Published on

2017年11月17日開催「a-blog cms Training Camp 2017 Autumn」で発表したスライド

Published in: Technology
  • Be the first to comment

  • Be the first to like this

a-blog cms 基本機能でつくるスタンプラリー

  1. 1. a-blog cms 基本機能でつくる スタンプラリー 事例紹介 2017.11.17 a-blog cms Training Camp 2017 Autumn 15VISION いちがみトモロヲ
  2. 2. 「現在位置を取得できませんでした。」 と表示される場合は、スマートフォンの 位置情報サービスを許可しているか
 確認してください。
  3. 3. 15VISION いちがみ トモロヲ • モバイルUIデザイン • ウェブサイト運用コンサルティング • 研修講師 • テクニカルライティング • a-blog cms エバンジェリスト
  4. 4. 8月から2名体制に
  5. 5. デモします。
  6. 6. どうやってつくったか
  7. 7. まずは準備
  8. 8. コンフィグ「機能設定」
  9. 9. コンフィグ「編集設定」 Entry_GeoList を使うための設定
  10. 10. 実装の解説
  11. 11. ログイン前 ログイン後
  12. 12. タッチモジュール Touch_Unlogin 「非ログイン状態」の時のみ表示する ログイン前
  13. 13. タッチモジュール Touch_Login 「ログイン状態」の時のみ表示する ログイン後
  14. 14. ビルトインモジュール User_Profile ユーザーのプロフィールを表示 • ユーザーID: %{SESSION_USER_ID} • ログイン中のユーザーID ログイン後 <!-- BEGIN_MODULE User_Profile id="User_Profile" --><!-- BEGIN user:loop -->{name}<!-- END user:loop --><!-- END_MODULE User_Profile -->
  15. 15. ビルトインモジュール Entry_GeoList 位置情報に基づいて、近い距離順で エントリーの一覧を表示
  16. 16. Entry_GeoList loop 内 IFブロック <!-- BEGIN_IF [{geo_distance}/lte/30] --> 30m以内にいる時の表示を指定
  17. 17. スタンプボタン エントリーの「複製」ボタン
  18. 18. スタンプボタン エントリーの「複製」ボタン
  19. 19. • ユーザーには「編集者」権限を付与 スタンプボタン エントリーの「複製」ボタン
  20. 20. • Entry_GeoList • Entry_Body <!-- BEGIN_IF [{eid}/eq/1] --> <!-- BEGIN_MODULE Entry_Body id="Entry_Body-1" --> <!-- BEGIN entry:loop --> <article class="entry acms-text-center"> <!--#include file="/admin/entry/action.html"--> </article> <!-- END entry:loop --> <!-- END_MODULE Entry_Body --> <!-- END_IF --> Entry_GeoListでエントリーIDを特定して そのエントリーのみが表示される モジュールを貼り付ける。 モジュールはエントリーごとに作成。
  21. 21. スタンプ押下 エントリーページを表示 3秒後にリダイレクトでトップページに戻す
  22. 22. Entry_GeoList loop 内 IFブロック <!-- BEGIN_IF [{title}/nlk/非公開] ̶> タイトルに「非公開」が含まれない エントリーを表示
  23. 23. 行ったことがあるか判定 エントリー名「味噌かつ」が 自分の投稿したエントリーのタイトルに 含まれていたら行ったことがある <!-- BEGIN_IF [<!-- BEGIN_MODULE Entry_List id="stampedshops" --><!-- BEGIN entry:loop -->{title}<!-- END entry:loop --><!-- END_MODULE Entry_List -->/lk/{title}] --> Entry_GeoList loop 内 IFブロック IFブロックの中に「Entry_List」 ユーザーID: %{SESSION_USER_ID}
  24. 24. スタンプを押した数判定 Entry_Summary を使って 自分の投稿したエントリーの数を表示 <!-- BEGIN_MODULE Entry_Summary id="stampedcount" --> いままでに <strong>{itemsAmount}個</strong> の名古屋めしを食べましたね。 <!-- END_MODULE Entry_Summary --> ビルトインモジュール ページャーの「総エントリー数」
  25. 25. ん?編集者権限ということは? エントリー編集画面のURL直打ちで エントリーを編集できちゃう?
  26. 26. template.yaml tpl_top : top.html tpl_index : top.html tpl_detail : entry.html tpl_404 : 404.html tpl_admin : admin.html tpl_entry_edit : entry.html tpl_entry_add : entry.html tpl_login : login.html エントリー編集画面「entry.html」に 「Entry_Body」をおいていない
  27. 27. /themes/system/admin.html 管理画面の”ガワ”のテンプレート
  28. 28. タッチモジュール Touch_SessionWithAdministration <!-- BEGIN_MODULE Touch_SessionWithAdministration ̶> ・・・ <!-- END_MODULE Touch_SessionWithAdministration --> 管理者権限を持っていないと管理画面を見られない
  29. 29. これで抜け道阻止できたかなと 思うのですがどうでしょう?
  30. 30. “詰んでからはじまるa-blog cms” by ミズノ ケイスケさん
  31. 31. ありがとうございました! キャンプ中にスタンプをいっぱい集めてね (๑•`ㅂ•́)‫✧و‬

×