a-blog cms Training Camp 2019 Spring を開催しました

5月17日(金)、18日(土)に、 a-blog cms Training Camp 2019 Spring を開催しました。a-blog cms Training Camp は年に2回行われている a-blog cms の最大規模の勉強会です。 ご参加いただいたみなさま、ありがとうございました。



1日目

1日目は、名古屋国際センタービルにて開発スタッフとa-blog cmsユーザー様からのセッションとa-blog cms awardsの授賞式を行いました。 最後にはa-blog cmsにちなんだ川柳を各チームに別れて考えるゲームをして大変盛り上がりました。

セッション

  • 「Ver.2.10について」アップルップル伊藤
  • 「Ver.2.10のテーマとUIについて」アップルップル森田
  • 「a-blog cms を利用した最近の多言語サイト制作について」アップルップル山本
  • 「a-blog cmsで予約サイトを実装しました」牧田 友和さん
  • 「ここぞというときに使えるCSVインポート」株式会社ヘルツ 筒井志信さん
  • 「Pythonで広がるa-blog cmsの可能性」15VISION 川邊マナブさん
  • 「a-blog cmsをはじめて3ヶ月」ヒラメキカンパニー 三谷健一さん

アップルップル 伊藤


アップルップル 森田


アップルップル 山本


牧田さん


株式会社ヘルツ 筒井さん


15VISION 川邊さん


ヒラメキカンパニー 三谷さん


a-blog cms awards 2019 表彰式

a-blog cms awards 2019 授賞式では以下4サイトが賞を受賞しました。おめでとうございます!


受賞した方々には改めて制作に力を入れた点などについて発表をしていただきました。


株式会社ペコト あがのさん

有限会社リーグラフィー 水越さん


フォルトゥナ 坂本さん


株式会社ルーコ 鈴木さん


グループワーク

1日目には「チーム対抗!a-blog cms 川柳」と題しグループワークも行われました。 各チームに分かれa-blog cmsに関する川柳を作りその面白さで競い合うゲームです。




2日目

2日目は、ベースキャンプ名古屋にて開発スタッフセッションとユーザーセッション、ハンズオンとディレクターズミーティングを行いました。

セッション

  • 「制作歴15サイトから厳選するa-blog cmsの基本+応用例」リーグラフィ 水越さん
  • 「カスタムフィールドのデータを表形式でPDFに書き出す方法」SUZULABO 太田さん
  • 「a-blog cms認証で二段階認証フォームを作る」データファーム 勝又さん
  • 「a-blog cmsの初心者向けコンテンツを整備してる話」有限会社アップルップル 井斉
  • 「私の1年間と a-blog cms だからできる簡単UI対応」有限会社アップルップル 菅原

リーグラフィ 水越さん


SUZULABO 太田さん


データファーム 勝又さん


有限会社アップルップル 井斉


有限会社アップルップル 菅原


ディレクターズミーティング

ディレクターズミーティングではセキュリティ周りの話やお客様とのやりとりに使うツールの話をしました。

ハンズオン

スタンプラリー形式で、7個のハンズオン課題に挑戦していただきました。



記念撮影

初心者向けハンズオンの様子

ハンズオンの様子

ディレクターズミーティングの様子


次回開催について

みなさま a-blog cms Training Camp 2019 Spring 2日間お疲れ様でした。 a-blog cms Training Camp 2019 Autumn は 申し訳ありませんが以前お伝えしていた開催日から変更になりました。
2019年11月22日(金)、23日(土) 名古屋にて開催予定です。 プログラム詳細については開催が近づきましたらお知らせいたします。

YouTube を利用せず mp4 をアップロードするカスタムユニットの実装

一般に非公開の動画を CMS のコンテンツとして扱いたい場合、YouTube や Vimeo にアップすることが NG なこともあります。その際には CMS をインストールしているサーバーに mp4 のファイルをアップロードできるようにし video タグで再生することになります。

今回はカスタムユニットで mp4 のファイルをアップロードし再生できるものを作ってみます。

カスタムユニットを作る際には /theme_name/admin/entry/unit/extend.html にソースコードを追加します。

a-blog cms の良さは、HTMLの知識のみでオリジナルのブロックである「カスタムユニット」を実装できるところですね。



mp4 カスタムユニットの仕様

  • アップロードした mp4 のプレビュー機能を用意
  • ファイルサイズを表示
  • 再生時の音声をミュートにできる設定を用意
  • ダウンロード UI の非表示できる設定を用意
  • サイズを設定、表示位置を左寄せか、中央表示かを指定できる設定を用意

管理画面側のテンプレート

/theme_name/admin/entry/unit/extend.html

<!-- BEGIN custom_mp4 -->
<table class="entryFormColumnSettingTable entryFormColumnTable {diff}">
  <tr>
    <!-- BEGIN_IF [{video-file@path}/nem/] -->
    <td class="entryFormFileentryFormImages">
      <video src="%{ARCHIVES_DIR}{video-file@path}" controls 
      <!-- BEGIN_IF [{mute}/eq/true] -->muted<!-- END_IF--> <!-- BEGIN_IF [{download}/eq/ng] -->controlslist="nodownload"<!-- END_IF --> class="acms-admin-img-responsive">
  </video>
    </td>
    <!-- END_IF -->
    <td class="entryFormFileControl">
      <table>
      <tr>
        <th><label for="unit-video-id-{id}">MP4ファイル</label></th>
        <td>
          <!-- BEGIN_IF [{video-file@path}/nem] -->{video-file@fileSize}[convert_bytes('m',1)] MB
          <input type="hidden" name="video-file{id}@old" value="{video-file@path}" />
          <input type="hidden" name="video-file{id}@secret" value="{video-file@secret}" />
          <input type="hidden" name="video-file{id}@fileSize" value="{video-file@fileSize}" />
          <label for="input-checkbox-video-file{id}@edit" class="acms-admin-form-checkbox">
            <input type="checkbox" name="video-file{id}@edit" value="delete" id="input-checkbox-video-file{id}@edit" />
            <i class="acms-admin-ico-checkbox"></i>削除</label>        
          <!-- END_IF -->
          <input type="file" name="video-file{id}" />
          <input type="hidden" name="unit{id}[]" value="video-file{id}" />
          <input type="hidden" name="video-file{id}@baseName" value="{video-file@baseName}" />
          <input type="hidden" name="video-file{id}:extension" value="file" />
          <input type="hidden" name="video-file{id}@extension" value="mp4" />
        </td>
      </tr>
      <tr>
        <th><label for="unit-video-mute-{id}">音声</label></th>
        <td>
          <div class="acms-admin-form-checkbox">
            <input type="checkbox" name="mute{id}[]" value="true" {mute:checked#true} {download:checked#ng} <!-- BEGIN_IF [{video-file@path}/em] --> checked="checked"<!-- END_IF --> id="input-checkbox-mute-true-{id}" />
            <label for="input-checkbox-mute-true-{id}">
              <i class="acms-admin-ico-checkbox"></i>再生時ミュート</label>
          </div>
          <input type="hidden" name="unit{id}[]" value="mute{id}" />
        </td>
      </tr>
      <tr>
        <th><label for="unit-video-download-{id}">ダウンロード</label></th>
        <td>
          <div class="acms-admin-form-checkbox">
            <input type="checkbox" name="download{id}[]" value="ng" {download:checked#ng} <!-- BEGIN_IF [{video-file@path}/em] --> checked="checked"<!-- END_IF --> id="input-checkbox-download-ng-{id}" />
            <label for="input-checkbox-download-ng-{id}">
              <i class="acms-admin-ico-checkbox"></i>不可</label>
          </div>
          <input type="hidden" name="unit{id}[]" value="download{id}" />
        </td>
      </tr>
      <tr>
        <th><label for="unit-video-size-{id}">サイズ</label></th>
        <td>
          <select name="video-size{id}">
            <option value="acms-col-sm-12" {video-size:selected#acms-col-sm-12}>幅1/1 (820px)</option>
            <option value="acms-col-sm-8" {video-size:selected#acms-col-sm-8}>幅2/3 (540px)</option>
            <option value="acms-col-sm-6" {video-size:selected#acms-col-sm-6}>幅1/2 (400px)</option>
          </select>
          <input type="hidden" name="unit{id}[]" value="video-size{id}" />
           <div class="acms-admin-form-checkbox">
            <input type="checkbox" name="video-align{id}[]" value="center" {video-align:checked#center} id="input-checkbox-video-align-center-{id}" />
            <label for="input-checkbox-video-align-center-{id}">
              <i class="acms-admin-ico-checkbox"></i>中央表示</label>
          </div>
          <input type="hidden" name="unit{id}[]" value="video-align{id}" />
        </td>
      </tr>
      </table>
    </td>
  </tr>
  </table>
<!-- END custom_mp4 -->

表示用側のテンプレート

/theme_name/include/unit/extend.html

<!-- BEGIN unit#custom_mp4 -->
<!-- BEGIN_IF [{video-file@path}/nem] -->
<div class="column-video-<!-- BEGIN_IF [{video-align}/eq/center] -->center<!-- ELSE -->auto<!-- END_IF --> {video-size}"{display_size}[raw]>
  <video src="%{ARCHIVES_DIR}{video-file@path}" controls 
      <!-- BEGIN_IF [{mute}/eq/true] -->muted<!-- END_IF--> <!-- BEGIN_IF [{download}/eq/ng] -->controlslist="nodownload"<!-- END_IF --> class="acms-admin-img-responsive">
  </video>
</div><!-- END_IF -->
<!-- END unit#custom_mp4 -->

コンフィグの設定

コンフィグのエントリー編集画面の 編集設定ユニット追加ボタンcustom_mp4 という設定を追加します。



その後、コンフィグのエントリー編集画面の ユニット設定 で、以下の画像のようなカタチになるように、動画 ボタンを一度クリックして保存してください。



これで、mp4 カスタムユニット の作成は完了です。

最後に、コピペすら面倒だという方のために、そのまま使える extend.html を zip したものをアップしておきました。ダウンロードしてお試しください。


参考ページ