2016年8月アーカイブ

先日、Movable Type6.3がリリースされました。

一番の変更点はダイナミックパブリッシングのPHP7サポートですが、内部的には Smartyのバージョンが2系から3系に変更になっています(PowerCMS/DynamicMTMLの対応は少々お待ち下さい)。

PHP 7 をサポート

PHP 7 を正式にサポートしました。PHP 7 は、PHP 5系と比べてもパフォーマンスの向上が期待できます。

Smarty 3.1 へアップデート

PHP 7 への対応に伴い、Smarty 2 から Smarty 3 へのアップデートされました。

プラグイン開発者へ

ダイナミック・パブリッシングに対応したプラグインについて、直接 Smarty を操作していないかぎりにおいて変更の必要は無いものと想定していますが、動作確認等よろしくお願いいたします。

※(再度) PowerCMS/DynamicMTMLの対応は少々お待ち下さい

MTViewerとは、$ctx であり Smartyである

何のことか分かる人にしかわからないアレゲな書き方ですが、つまるところMTにおけるダイナミック・パブリッシングとはMTのテンプレートをSmartyテンプレートにコンバートしてビルドするという仕組みになっています。実体は mt/php/lib/MTViewer.php です。

MTViewer.phpのコード

この MTViewerクラスの fetchメソッドがテンプレートをビルドするコードなのですが、MTタグをPHPの中で動的にビルドする方法について備忘録がてらメモしておきます。ちなみに、元がSmartyですので、これらはSmartyのテンプレートを渡しても動作します。MTテンプレートを指定した場合、mt/php/lib/prefilter.mt_to_smarty.php がMTのテンプレートをSmartyのテンプレートに変換してからビルドされます。というわけでMTViewerクラスの fetchメソッドにはMTタグをそのまま渡せるのです。

MTテンプレートをPHPコードの中でビルドする

念のためですが、$ctx の初期化については下記の記事を参照ください。

template_id 指定でビルド

$mt = MT::get_instance();
$ctx =& $mt->context();
$str = $ctx->fetch("mt:123");

テンプレート名(template_name) 指定でビルド

$mt = MT::get_instance();
$ctx =& $mt->context();
$str = $ctx->fetch("mt:テンプレート名");

テンプレート指定のビルドについては mt/php/lib/resource.mt.php で定義されています(Smartyのカスタムリソース)。 Smartyのカスタムリソースの作り方は以下のページに。カスタムリソースを作成すれば、例えば S3 に置いたMTテンプレートを指定してビルド、とかまぁ色々できるわけですね。

MTテンプレート文字列指定でビルド

$mt = MT::get_instance();
$ctx =& $mt->context();
$str = $ctx->fetch("eval:<mt:Date>");

ファイルパス指定でビルド

$mt = MT::get_instance();
$ctx =& $mt->context();
$str = $ctx->fetch("file:/path/to/tmpl.tpl");

テンプレート変数をセットしてビルド

$mt = MT::get_instance();
$ctx =& $mt->context();
$ctx->__stash[ 'vars' ][ 'foo' ] = 'bar';
$str = $ctx->fetch('eval:<mt:Var name="foo">');

記事コンテキストをセットしてビルド

$mt = MT::get_instance();
$ctx =& $mt->context();
$entry = $mt->db()->fetch_entry( 1 );
$ctx->stash( 'entry', $entry );
$str = $ctx->fetch('eval:<mt:EntryTitle>');

この辺りを理解しておくと、PHPでサイトを拡張していく際にMTテンプレートが活用できるようになります。例えばPHPで作成したフォームメールのテンプレートにMTタグを使ったり。ということでMT6.3の Tips でした。

私の会社(アルファサード株式会社)では、第13期から電子公告を始めました(ちゃんと定款変更もしました)。

電子公告を始めた経緯というか考えなどはまた別の機会に書こうと思いますが、ここでは表題の通り貸借対照表のマークアップを取り上げます。

「貸借対照表(B/S)」こそ「複雑なデータテーブル」ですね。

アクセシビリティ・サポーテッド(AS)情報:H43

見解としては「要注意(スクリーンリーダーによるサポートが十分とはいえない。)」

id属性とheaders属性を使わないですむように、できるかぎり単純な構造にしたほうがよい。

ということで、表を3分割することも検討したのですが、流動資産と流動比率を対比してみたい(流動比率とかを見たい)とかだと同じ表のほうがいいだろうかとか、でもそうなると空のセルをつくってセルの位置を調整したほうがいいんだろうかとか。そもそも経営指標って様々な切り口があるので「何と何を並べるのがいいのか」など、決算公告ってPDFで提供してる会社が多いですが「貸借対照表の公開について」みたいなのを国(法務省)や東証がガイドラインを示すとかしてもいいんじゃないかと思ったりした次第です。

資産の部、負債の部、資本の部を別のテーブルに分割する方法も検討した

現在のところ結論があるわけではないですが、結局は idとheaders属性によるひも付けを選択しました。ご意見などありましたらいただけると嬉しいです。今後のユーザーエージェントの対応に期待します。

ということで、以下マークアップ。

<table>
<caption>貸借対照表</caption>
<tbody>
<tr>
    <th scope="col" colspan="2" id="assets"><strong>資産の部</strong></th>
    <th scope="col" colspan="2" id="liabilities"><strong>負債の部</strong></th>
</tr>
<tr>
    <th id="asset-1">現金・預金合計</th>
    <td headers="assets asset-1">254,325,832</td>
    <th id="liability-1">仕入債務合計</th>
    <td headers="liabilities liability-1">5,768,438</td>
</tr>
<tr>
    <th id="asset-2">売上債権合計</th>
    <td headers="assets asset-2">37,361,649</td>
    <th id="liability-2">他流動負債合計</th>
    <td headers="liabilities liability-2">70,318,782</td>
</tr>
<tr>
    <th id="asset-3">棚卸資産合計</th>
    <td headers="assets asset-3">534,600</td>
    <th id="liability-3">流動負債合計</th>
    <td headers="liabilities liability-3">76,087,220</td>
</tr>
<tr>
    <th id="asset-4">他流動資産合計</th>
    <td headers="assets asset-4">523,689</td>
    <th id="liability-4">固定負債合計</th>
    <td headers="liabilities liability-4">84,331,000</td>
</tr>
<tr>
    <th id="asset-5">流動資産合計</th>
    <td headers="assets asset-5">292,745,770 </td>
    <th id="liability-5"><strong>負債合計</strong></th>
    <td headers="liabilities liability-5">160,418,220</td>
</tr>
<tr>
    <th id="asset-6">有形固定資産計</th>
    <td headers="assets asset-6">36,334,934</td>
    <th scope="col" colspan="2" id="capital"><strong>資本の部</strong></th>
</tr>
<tr>
    <th id="liability-6">無形固定資産計</th>
    <td headers="liabilities liability-6">7,163,609</td>
    <th id="capital-1">資本金合計</th>
    <td headers="capital capital-1">10,000,000</td>
</tr>
<tr>
    <th id="asset-7">投資その他の資産合計</th>
    <td headers="assets asset-7">18,205,477</td>
    <th id="capital-2">利益剰余金合計</th>
    <td headers="capital capital-2">184,031,570</td>
</tr>
<tr>
    <th id="asset-8">固定資産合計</th>
    <td headers="assets asset-8">61,704,020</td>
    <th id="capital-3">純資産合計</th>
    <td headers="capital capital-3">194,031,570</td>
</tr>
<tr>
    <th id="capital-4"><strong>資産合計</strong></th>
    <td headers="capital capital-4">354,449,790</td>
    <th id="assets-capital"><strong>負債・純資産合計</strong></th>
    <td headers="assets assets-capital">354,449,790</td>
</tr>
</tbody>
</table>

CMS大阪夏祭り2016 にて「オーサリングツールとしてのCMSとWebアクセシビリティ」というタイトルのセッションを持たせていただくことになりました。地元大阪で話す機会が最近あまりなかったので、ほぼ1年ぶりですね。

CMS大阪夏祭りビジュアル

去年も「祭り」のつくイベントにいくつか参加させていただいてお話させていただいたのですが、今年もお話します。お祭り男と呼んでください!

会社設立からもう13年、ずっとwebアクセシビリティのことに取り組んでいたんですけど、CMSを事業の中心に据えてからまもなく10年、ATAG(Authoring Tool Accessibility Guidelines (ATAG)) 2.0についても自分自身、再度見直す機会になればと思っています。

また、少し前になりますが、AccSellのポッドキャストに呼んでいただきまして、ツール屋目線でのwebアクセシビリティ語りをさせていただく機会をいただきました。参加いただく方は時間があれば(早送りででも)ざっとお聞きいただければバックグラウンドなどわかっていただけるかもしれません(長いですがw)。

都知事選は行きませんでいた。てか、都知事選への選挙権がないので。法人都民税は払ってんですけどね。東京の都政ってのは東京だけで済まない問題ですから、これから東京都政が良くなって景気が上向いてくれることを願っています。

さて、ログインが必要なページをシェアするのはあまり好みではないのですが。

「倒産」、実は減らず 25年ぶり低水準でも…:日本経済新聞

「ここまで倒産が減ったのは25年ぶりのことだ」。安倍晋三首相は6月1日の記者会見で胸を張った。確かに2015年の倒産は8812件(東京商工リサーチ調べ)と、1990年以来の水準に減少した。今年上半期も改善傾向が続き、中小企業を襲った淘汰の嵐はやみつつあるようにもみえる。しかし、この数字から浮かび上がるのは一つの断面にすぎない。

(中略)

東京商工リサーチの集計では、休廃業や解散といった形で15年に事業の継続を断念した企業は2万6699件。00年と比べると6割増え、倒産件数の3倍に達する。後継者が見つからずに廃業する例もあるとはいえ、法的整理から私的整理などへ企業の末路は移り変わっているようにみえる。

理由の一つとして「金融円滑化法」があるようです。金融機関には金融機関の「貸せない理由」があるわけで、単に返済猶予に応じたところで抜本的な収益改善を図らなければ問題を先延ばしにしているに過ぎません。帝国データバンクや東京商工リサーチのレポートを見るたびに感じていた違和感(そんなに景気が良くなってんだろうかという違和感)ですが、少しだけ腑に落ちました。

私自身、今の商売はともかく、若いころに事業がうまく行かず、それでも借金して引っ張って傷を大きくしてしまった経験があります。その時の経験が「資金繰りに追われだしたら、中小企業の経営者はまともに経営なんてできない」という現在の考えにつながっているわけですが、大切なのは返済を猶予してもらうことではなく、なぜこうなったのか、何を改善したら窮地を脱することができるのかを考えることです。

ま、金融機関担当者の多くが池井戸潤の小説「陸王」にでてくる銀行員 坂本太郎みたいな人ならいいんでしょうけどね(珍しく銀行員が善人?に描かれていました。足袋作り百年の老舗が、ランニングシューズに挑むストーリーです)。

ま、大本営発表は鵜呑みにせず、景気のせいにもせず、精進あるのみです。中小企業の経営ってもんは。

既にPowerCMSでやっているものなのですが、再整理の意味で、メモ(てか、ブログサボってたのでリハビリがてらw)。

config.yaml

permissions:
    system.access_cms:
        label: Can Access CMS
        order: 2000
    system.administer:
        inherit_from:
            - system.access_cms

これで、ユーザーの編集画面にシステム権限「Can Access CMS(CMSへのアクセス)」が追加して表示されます。system.administer... 以下を追加しているので、「システム管理者」にチェックを入れると「Can Access CMS(CMSへのアクセス)」にもチェックが入ります。

管理画面のシステム権限設定エリア

ただ、このまま「保存」しても「MT::Authorに can_access_cms メソッドがない」というエラーが出ます。社内で聞いてみたところ「アクセサを定義する必要があります。」とのこと。

config.yaml

callbacks:
    init_app: $myplugin::MyPlugin::Plugin::_cb_init_app

MyPlugin::Plugin::_cb_init_app

sub _cb_init_app {
    require MT::Author;
    *MT::Author::can_access_cms = sub {
        my $author = shift;
        if ( @_ ) {
            $author->permissions(0)->can_access_cms( @_ );
        }
        else {
            $author->is_superuser()
                || $author->permissions(0)->can_access_cms( @_ );
        }
    };
}

これで、あとはMT側がよしなに処理してくれます。もちろん、この権限の有無による振る舞いの分岐はそれぞれの処理に実装する必要があります。

Facebook

Twitter

このアーカイブについて

このページには、2016年8月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2016年3月です。

次のアーカイブは2016年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6