ブログの振り分け~PC版とモバイル版~

プラグインやサービスを使う手もありますが、PC版のページと携帯版のページを作るのが面倒でないなら、それぞれのテンプレートを作るのもシンプルで良いです。

<1>携帯版インデックスページを作る
MTで「インデックステンプレートを複製」(ファイル名の左側のチェックボックスを入れて、アクションのプルダウンからテンプレートの複製を選択)します。
Dreamweaverなどでざっとhtml組んで(手打ちでももちろんいいですが)複製したインデックステンプレートにコピーペーストし、テンプレートの設定画面でファイル名をPC版とは別の名前にしたあと、保存・再構築をかけます。

<2>携帯版のブログ記事ページを作る。
以下のサイトを参照しました。
http://webdesigner.hikonet.net/mt/20090110.php
アーカイブテンプレートで、PCのブログ記事のテンプレートを複製します。
テンプレートの設定で新しいアーカイブマッピングを作成にし、種類を「ブログ記事」パスのところは私は「m/%y/%m/%d-%s%x」としました。最初のm/はmディレクトリに携帯関係のファイルを入れる決まりにしたからです。
保存をクリックします。

携帯インデックスページに戻り、プログ記事へのリンクを
<a href="<$mtBlogURL$>m/<$MTEntryDate format="%Y/%m/%d-%S"$>.html"><$mt:EntryTitle$></a>
と設定します。再構築をかけます。
これで、携帯版ブログ記事が
http://ドメイン/m/2011/08/12-09.html
などのように生成されます。

<3>同じ要領で携帯月別ブログ記事リストを作成する
月別ブログ記事を複製し、アーカイブマッピングは「m/%y-month/%m/%d-%s%x」、種類が月別、インデックスページじ記述するリンクは、
<a href="<$mt:BlogURL$>m/<$MTArchiveDate format="%Y-month/%m/%d-%S"$>.html"><$mt:ArchiveTitle$>(<$mt:ArchiveCount$>)</a>
にしました。

これで、各プログ記事と、月別記事のページが生成されます。

さて、うまく行かなかったのが、カテゴリ別ブログ記事のページです。
考え方は同じはずなのに、何がいけないのか、ページ生成されないし。
この仕事にいつまでもかかりっきりになってる訳にもいかないし。
そこで。

いや、大したことしてません。すみませんもったいぶって。
カテゴリ用にMT新規で作りました。別のMTにカテゴリ関係だけ飛ばして、記事はインクルードで対応しました。
長くなってしまったので、詳しくは、次回にて。m(_~_)m

MTOSで、カテゴリに画像を割り当てる

カテゴリごとに画像を割り当てます。
正確に言うと、カテゴリの管理画面に、カスタムフィールドを追加します。
カテゴリと対になるもので、テキスト入力出来るものを作ります。ここに画像のファイル名を入力して、テンプレート側で画像が表示できるHTMLタグを設定しておきます。

参照ページはこちらです。(感謝)
Under the Bridge
MT4.1:プラグイン作成におけるDBへのフィールド追加について(カテゴリ編)


具体的には以下です。

<1>プラグイン作成
---------------------------
package MT::Plugin::SubitemCat;
use base 'MT::Plugin';

use strict;

use MT;
use MT::Plugin;
use MT::Template::Context;
use MT::Entry;

# register plugin
my $plugin = __PACKAGE__->new({
    name => 'SubitemCat',
    key => 'SubitemCat',
    version => '1.00',
    author_name => 'your name',
    description => 'Sub item of Cat',
    schema_version => '1.00',
});
MT->add_plugin($plugin);

# initialize registry
sub init_registry
{
    my $plugin = shift;
    $plugin->registry({
        object_types => {
           'category' => {
              'sort_index_custom' => 'string(255)',
           },
        },
        tags => {
            function => {
                'CategorySortIndex' => sub{&_hdlr_sort_index_custom;},
            },
        },
    });
    
}

sub _hdlr_sort_index_custom {
    my ($ctx, $args) = @_;
    my $tag = 'CategoryIndexAdd';
    (my $category = $ctx->stash('category')) || return $ctx->_no_category_error('MT' . $tag);
    return $category->sort_index_custom || '';
}

1;
-----------------------------

これで CategorySortIndex というMTタグが存在するようになります。
SubitemCat.plとして、mtフォルダ直下「plugins」ディレクトリに入れます。
任意で「SubitemCat」などの名前のフォルダに入れます。

次に管理画面にカスタムフィールドを表示させるためのファイルを作ります。
mt直下「tmpl」内「cms」内の「edit_category.tmpl」をダウンロード、以下ソースを追加します。


------------------------------
(省略)
    <fieldset>
        <h3><__trans phrase="Outbound TrackBacks"></h3>
<mtapp:setting
    id="ping_urls"
    label="<__trans phrase="Trackback URLs">"
    hint="<__trans phrase="Enter the URL(s) of the websites that you would like to send a TrackBack to each time you create an entry in this category. (Separate URLs with a carriage return.)">"
    help_page="categories"
    help_section="categories_urls_to_ping">
    <textarea name="ping_urls" id="ping_urls" cols="" rows="" class="full-width short"><mt:var name="ping_urls" escape="html"></textarea>
</mtapp:setting>
    </fieldset>



<!-- ここから追加部所 Category Sort Add -->
    <fieldset>
    <h3>Input Category Sort Index</h3>
<mtapp:setting
    id="sort_index_custom"
    label="Category Sort Index Input">
    <div class="textarea-wrapper">
        <input name="sort_index_custom" id="sort_index_custom" class="full-width" maxlength="100" value="<mt:var name="sort_index_custom" escape="html">" class="wide" />
    </div>
</mtapp:setting>
    </fieldset>
<!-- ここまで追加部所 Category Sort Add -->







<mt:setvarblock name="action_buttons">
    <button
        type="submit"
        accesskey="s"
        title="<__trans phrase="Save changes to this category (s)">"
        class="save action primary-button"
        ><__trans phrase="Save Changes"></button>
</mt:setvarblock>
<mt:include name="include/actions_bar.tmpl" bar_position="bottom" hide_pager="1" settings_bar="1">
</form>

</div>
<mt:include name="include/footer.tmpl">

------------------------------

保存したら、mt直下「alt-tmpl」内「cms」内にアップします。そうすると、MTが優先的にそちらを読みに行きます。

管理画面「.../mt/mt.cgi」に再度サインインすると、バージョンアップを知らせる画面が現れると思います。そうしたらまずは成功。
カテゴリの管理画面を見てみると「Category Sort Index Input」というタイトルのカスタムフィールドが新しくあると思います。

テキストも入力できますが、今回は画像のファイル名を入力しておきます。
画像もアイテムやFTPを使ってアップしておきます。

最後にテンプレートのカテゴリ表示に以下のようなHTMLタグを追加します。。
--------------------------------

<mt:Entries>

<mt:IfNonEmpty tag="EntryCategories">
<mt:EntryCategories>

<img src="<$mt:BlogURL$>/img/<$mt:CategorySortIndex$>" alt="<$mt:CategoryLabel$>" />

</mt:EntryCategories>
</mt:IfNonEmpty>
                            
</mt:Entries>

--------------------------------

上記で、指定した画像にカテゴリ名のaltが入って表示されます。

利用方法としては、カテゴリのリスト表示などで個別のアイコン画像を頭につけたりとか、リスト自体を画像で組んだり出来ますね。

長くなってすみません。

別ブログの特定のカテゴリをインクルード

別のブログの、あるカテゴリだけ表示したい。

以下の要領で組みます。
-------
<mt:Entries include_blogs="ブログID" category="表示したいカテゴリ">

<$mt:EntryTitle$>
<$mt:EntryBody$>
などの内容

</mt:Entries>
--------
大元のページでは</mt:Entries>をh2にしてたけど、インクルードのページでは別のカスタムフィールドをh2で表示、なんてこともできますね。

MultiBlogブロックタグで他のブログの最近の記事リストを表示

他のブログと相互に情報を表示させたい時に便利です。

<mt:MultiBlog mode="loop" include_blogs="ブログID">

<mt:ArchiveList archive_type="Individual" lastn="表示数">
<mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
<li><a href="<$mt:ArchiveLink$>"><$mt:EntryTitle$>・<mt:EntryCategories>
</a></li>
<mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
</mt:ArchiveList>
</mt:MultiBlog>

最近、他のブログ記事を表示させる技も、使いました。
また、紹介します

モブログくんテスト

110509_133515.jpg

モブログのテストしてます。

モブログくん

http://www.moblogkun.com/

4  5  6  7  8  9  10  11  12  13  14

▲トップへ戻る

2017年2月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

タグクラウド

My Photo