« WEBデザイン関連 | メイン | MTOSプラグイン »

2010年05月13日

MTIfCategoryで複数指定:カテゴリー毎に違うデザイン

まず、以下のサイトより、mtcatx-1_5.zip をダウンロード。もし、カテゴリーごとのテンプレートを正規表現を使って分岐する必要があるなら、mtregex-1_61.zip もダウンロード。 それぞれ以下のディレクトリにコピーする。bradchoateというディレクトリは存在しないので作成すること。

mtcatx-1_5.zip
(MTディレクトリ)/plugins/catx.pl
(MTディレクトリ)/extlib/bradchoate/catx.pm

mtregex-1_61.zip
(MTディレクトリ)/plugins/regex.pl
(MTディレクトリ)/extlib/bradchoate/regex.pm
(MTディレクトリ)/extlib/bradchoate/postproc.pm

<MTIfCategory name="カテゴリ名1">
カテゴリ名1で表示したい内容
</MTIfCategory>
<MTIfCategory name="カテゴリ名2">
カテゴリ名2で表示したい内容
</MTIfCategory>

nameには1つしか記述できない。複数指定したい場合は以下、

<MTIfCategory pattern="/カテゴリ名1|カテゴリ名2|カテゴリ名3/">

上記のように、クオーテーションマーク「"」の内側にスラッシュ「/」を入れて、カテゴリー名を半角の縦線で区切る。

この例だと「カテゴリ名1メ」と「カテゴリ名2」「カテゴリ名3」の3つのカテゴリーに、同じソースが挿入できます。

2009年11月09日

エントリー・アーカイブファイル名

例1 %y/%m/%d%h%n%s%x

途中の "/" はディレクトリ

2009/06/13023223.html(年/月/日時分秒+拡張子)

例2 %c/%m%d%h%n%x.html(拡張子を忘れないこと)

カテゴリ名/13023223.html(カテゴリ名/月日時分秒+拡張子)

例3%c/%y%m%d.html

flower/20091104.html(カテゴリー/年月日+拡張子)

%c:カテゴリー

%y:年→例) 2005

%Y:年→例) 05

%m:月

%d:日

%h:時

%n:分

%s:秒

%x:拡張子(「設定」→「公開」→「アーカイブの拡張子」で設定したもの)

拡張子を個別に設定する場合は最後の拡張子 %x を .php 等に書き換えるそうです。

2009年10月23日

MTOSで自動再構築

Action Streams 2.0プラグインを利用

CORESERVER & XreaでのCRONジョブ設定

1.TeraPadや秀丸エディタなどのテキストエディタで、以下のように記述し、***.shとファイル名をつけ、改行コードLFで保存。
※ファイル名の例:cron1.sh、cron2.sh、cron3.shなど。

#!/bin/sh
cd /virtual/hogehoge/public_html/mt
/usr/bin/perl ./tools/run-periodic-tasks
exit

cd /virtual/の後の、hogehogeを自分のものに変更。

/mtは、mt.cgiのあるディレクトリ

2.puplic_htmlの上のディレクトリにアップロードし、パーミッションを705に設定。

CORSERVERからcrontab コマンドを設定

次に、crontab コマンドを設定。

1.CORESERVER & Xreaのコントロールパネルを開き、管理メニューより「CRONジョブ」をクリック。CRONジョブの編集を行う。

CRONジョブ

ちなみに、ファイル名の後に、 >/dev/null 2>&1をつけるとエラーメールが送信されない。

Movable Typeの設定

CRONジョブ

上記の設定をおこなうと、個別ページは動的出力なので、毎時0分に情報が更新されるけど、トップページはもちろん、静的出力のページはそうはいかないため、下記の方法で、情報取得に合わせ再構築するように設定を行うこと。

ブログ>ツール>プラグインを開き、Action Streams 2.0の設定をクリックし、「再構築を有効にする」にチェックを入れて変更を保存。

2009年04月09日

カテゴリごとにデザイン変更:MTIfCategory

MT3.3以上、MTIfCategoryタグ

■記述例

<MTIfCategory name="AAAAA">
「AAAAA」カテゴリの場合に表示する内容
<MTElse>
上記以外のカテゴリの場合に表示する内容
</MTElse>
</MTIfCategory>

■記述例(条件分岐を増やす場合)

<MTIfCategory name="AAAAA">
「AAAAA」カテゴリの場合に表示する内容
<MTElse>
<MTIfCategory name="BBBBB">
「BBBBB」カテゴリの場合に表示する内容
<MTElse>
上記以外のカテゴリの場合に表示する内容
</MTElse>
</MTIfCategory>
</MTElse>
</MTIfCategory>
2009年04月08日

MTでカテゴリーを並べ替える

MTでカテゴリを並べ替えるというとSortCatFld_1_01.zipが有名ですね。

ですが、インストしたMTではなぜか?

Cannot find column 'order_number' for class 'MT::Category

とエラーしてしまいました。調べたところ、他にもエラーした方がいらっしゃるようで、「データベースのアップグレードに失敗しているようです」との事でした。修正の方法も掲載されていましたが、他の方法を探すことに!

WEBデザイン BLOG様に掲載されているソートファイルを作成しソートアトリビュートを使ってカテゴリーを好きな順番に並べる方法を早速やってみました。

カテゴリ並び替え

こんな感じでオリジナルのソートファイルを作り、ファイル名CatSort.pmとして保存。それをextlibフォルダにアップロードします。

バッチリうまくいきました!

はじめは、

'カテゴリー名' => 100, 
'カテゴリー名' => 200, 

このCatSort.pmの中身でカテゴリー名を入れるところを、間違えて出力フォルダ名を入れてしまって思うようにいかず・・・。気がついて、今度はカテゴリー名を入れたのですが、半角英数と全角英数を間違えて思うようにいかず・・・。

きちんとカテゴリー名を入れればOKですね。WEBデザイン BLOG様ありがとうございました。

2009年03月04日

MTのログインパスワードを忘れて再設定も失敗!

「MT-Medic 1.34」を使ってみた。

MT-Medic

【1】MT-Medic.cgiをダウンロード。

http://www.nonplus.net/software/mt/MT-Medic.htm

一番上のDownload(ダウンロード)をクリックしてzip形式のファイルを保存。

【2】MT-Medic.cgiを編集。

MT-Medic

テキストエディタ(メモ帳や秀丸など)で開き、12行目と18行目に再設定したいパスワードを入力します。

11行目 my $INFO_PASSWORD ="";
15行目 my $INFO_PASSWORD ="";

上記の2箇所の""の中に、新たなパスワードを入力する。

[ 例 ]

11行目 my $INFO_PASSWORD = "hogehoge";
15行目 my $INFO_PASSWORD = "hogehoge";

【3】mt-medic.cgiにアクセス。

そのmt-medic.cgiをmt.cgiと同じディレクトリに置きブラウザでmt-medic.cgiにアクセスします。 「Authors」をクリックします。

MT-Medic

【4】先ほどmt-medic.cgiに設定したパスワードを入力します。

MT-Medic

【5】登録されている「投稿者」の一覧が表示されます。パスワードを変更したい投稿者の「Edit」をクリックします。

MT-Medic

【6】新たに設定するパスワードを入力します。「SAVE」して完了です。

MT-Medic

【7】注:mt-medic.cgiは削除、または、リネームします。セキュリティ上の事があるので忘れずに。

2009年02月20日

MTOS(ムーバブルタイプ)バックアップと復元

MTはバックアップと復元ができる事がとても便利。

バックアップすれば、エントリー記事、カテゴリーはもちろん、テンプレート、アーカイブ、モジュールなども全てバックアップがとれます。

復元に失敗する場合があります。。

【注意1】:MTのバージョンを合わせること。

  • ○MTOS-4.12-ja→MTOS-4.12-ja
  • ○MTOS-4.23-ja→MTOS-4.23-ja
  • ×MTOS-4.12-ja→MTOS-4.22-ja
  • ×MTOS-4.12-ja→MTOS-4.23-ja

【注意2】:プラグインも同じ状態にしておくこと。

同じバージョンでバックアップ→復元してるはずなのに、しかも同じサーバー内で復元を実行したのに、復元に失敗。なぜ??と思ったら、原因はpluginsフォルダでした。バックアップした時のpluginsにあったものが、復元時のmt/plugins/の中に入ってなかったんです。

ということで、mt/plugins/の中に足りなかったプラグインを入れ、あらためて復元したところ成功しました。

【注意3】:ウィジェットは再現されないの??

「ウィジェットセットの編集」だけは、正しく復元されず、以下のようにインストールされていませんでした。

MTインストール

ですが、ウィジェットそのものには、カスタマイズしたものや新しく作ったものが復元されていたので、以下のようにドラッグでインストールしました。

MTインストール

あらためて再構築したところ、バッチリ元通りに復元できました。

MTOSログイン画面が表示されない

coreserverにインストールしたMTOS4.12、mt.cgiにアクセスしたところ、変てこりんになってます。

mt-rebuild.pl -mode="(all|archive|entry|index)" -blog_id=0 
[-archive_type="(Individual|Daily|Weekly|Monthly|Category)" -no_indexes 
 -entry_id=0 -build_dependencies
 -template="your template name" -force ]
 
OR 

mt-rebuild.pl -all [-no_indexes]
 
See the POD documentation embedded in this script for more detail.

Status: 302 Moved
Pragma: no-cache
Location: http://chihiro.s35.coreserver.jp/mt4/mt-upgrade.cgi?__mode=install

自分では全く何をやってしまったのか?わかりません。。

サイトは表示され、FTP上にファイルやデータは存在しているのでブラウザ上では何の問題もありませんが・・。mt-rebuild.plがダメなの?なんだか良くわかりません。削除してもダメ、属性を変えてもダメ・・・。

どうせなら、バージョンアップしようかと思ったけれど、何せログインができないので・・。

ぐちゃぐちゃやってしまった後に、気づいたこと・・。mt-rebuild.plを、mt/pluginsの中に置いていたのが原因だったようでした・・・。

2009年02月16日

MTEntryMoreだけを表示する

エントリー記事で、本文(Body)とその続き(EXTENDED BODY)に記事を書いた場合。

【1】MOREだけを表示したい場合のMTタグ。

記事の続きを表示するタグ(MTEntryMore)

ブログ記事のテンプレート

<$MTEntryMore$>

ブログ記事のテンプレート以外

<MTEntries> <$MTEntryMore$> </MTEntries>

記事の続き(EXTENDED BODY)に入力がある場合だけ表示

ブログ記事のテンプレート

<MTIfNonEmpty tag="EntryMore"> <$MTEntryMore$> </MTIfNonEmpty>

ブログ記事のテンプレート以外

<MTEntries> <MTIfNonEmpty tag="EntryMore"> <$MTEntryMore$> </MTIfNonEmpty> </MTEntries>

これで、ブログ記事で書いた記事の続きを取り出すことができます。

記事本文MTEntrybodyだけを表示する

【2】Bodyだけを表示したい場合のMTタグ。

ブログ記事のテンプレート <MTIfNonEmpty tag="EntryMore"> <$MTEntryMore$> </MTIfNonEmpty>

サンプル:カテゴリーページに、そのカテゴリーに属する記事一覧を表示するが、1記事めの本分だけを取り出して表示したい場合

<MTEntries lastn="1" sort_order="ascend"> <MTIfNonEmpty tag="EntryMore"> <$MTEntrybody$> </MTIfNonEmpty> </MTEntries>

記事の続きには、「改行方法を指定」することができる。

改行方法を指定する(convert_breaks)

convert_breaksを記載しない場合は、convert_breaks="1"の設定になっています。
convert_breaks="1"の場合、自動的に改行します。
convert_breaks="0"の場合、自動的に改行しないようになります。
この設定は、ブログ記事を作成時にフォーマットを「改行を変換」にした場合、適用されます。

自動的に改行する(convert_breaks="1")

ブログ記事のテンプレート

<$MTEntryMore convert_breaks="1"$>

ブログ記事のテンプレート以外

<MTEntries> <$MTEntryMore convert_breaks="1"$> </MTEntries>

自動的に改行しない(convert_breaks="0")

ブログ記事のテンプレート

<$MTEntryMore convert_breaks="0"$>

ブログ記事のテンプレート以外

<MTEntries> <$MTEntryMore convert_breaks="0"$> </MTEntries>

2008年11月14日

サイドバーのカテゴリー

MTOSのテンプレートをデフォルトの状態で使ってみようと思った。

サイトバーのカテゴリータイトル部分に、cutfirstcharを使おうと思ったけど、どこにMTCategoryLabelタグがあるの???探しに探して見つからず。

<$mt:FolderLabel$>

これが、サイドバー部分のカテゴリータイトルタグでした。

2008年10月21日

MT自動再構築

 # To rebuild all weblogs in the system.
 mt-rebuild -all

# To rebuild an entire weblog:
mt-rebuild -mode="all" -blog_id=0

# To rebuild all archives, but not index templates:
mt-rebuild -mode="all" -blog_id=0 -no_indexes

# To rebuild a weblog archive type:
mt-rebuild -mode="archive" -blog_id=0 -archive_type="(Individual|Daily|Weekly|Monthly|Category)"

# To rebuild a specific weblog entry:
mt-rebuild -mode="entry" -blog_id="0" -entry_id=0

# To rebuild a specific weblog index template:
mt-rebuild -mode="index" -blog_id="0" -template="your template name"
2008年10月16日

XREA&CORE:mt-rebuild+CRONで再構築に失敗

【トラブル1】CORESERVERで、CRONを使い・・・何度やっても再構築に失敗。

cron jobメールには、

/virtual/アカウント名/public_html/cron.sh: 
/virtual/アカウント名/public_html/cron.sh: cannot execute binary file

cron.shの置き場所

/virtual/アカウント名/public_html/cron.sh

パーミッション700

【解決方法1】:UTF-8N、改行コードはLFで保存すればOK

と、思いきや、またまた再構築に失敗!!

【トラブル2】

●.shファイルについて

#!/bin/sh/usr/local/bin/perl/virtual/自分のID
/public_html/設置フォルダ/mt-rebuild.pl -mode="all" -blog_id="1" exit

↑TeraPadで作成、UTF-8Nで保存し、public_htmlと同列にUP、パーミッション644

●mt-rebuild.plについて

mt.cgiと同列にUP、パーミッション700

以上のように設定し、XREAの管理メニューにて

分 時 日 月 曜日
0 6 * * *

【解決2】

すると、以下のメールが届きました。

mt-rebuild.pl -mode="(all|archive|entry|index)" -blog_id=0
[-archive_type="(Individual|Daily|Weekly|Monthly|Category)" -no_indexes
-entry_id=0 -build_dependencies
-template="your template name" -force ]

OR

mt-rebuild.pl -all [-no_indexes]

See the POD documentation embedded in this script for more detail.

/virtual/chihiro/popox.sh: line 3: -mode=all: command not found

何をどうやってもダメ・・。もしかして、MT-OS4.12がダメ??

2008年09月29日

ブログ記事インポート失敗

MTOSでブログ記事をインポートする際、

文字コード UTF-8

改行コード LF

にしないと、記事を読みこまない

2008年08月26日

サイトマップ

「ul」「li」をコンテンツで使うスタイルと、サイトマップで使うスタイルを分けないとへんてこリンになります。↓こんな感じになればOK。

サイトマップ例

<h3><$MTBlogName encode_html="1"$>サイトマップ</h3>

<ul>
<li class="home">
<a href="<$MTBlogURL$>">ホーム</a>
<ul class="tree">
<MTPages sort_by="created_on" sort_order="ascend">
<li><a href="<$MTPagePermalink$>" title="<$MTPageTitle$>"><$MTPageTitle$></a></li>
</MTPages>
</ul>
<MTTopLevelCategories>
<MTSubCatIsFirst>
<ul class="tree">
</MTSubCatIsFirst> <MTIfNonZero tag="MTCategoryCount">
<li class="tree<MTSubCatIsLast>_end</MTSubCatIsLast>">
<a href="<$MTCategoryArchiveLink$>">
<MTCategoryLabel cutfirstchar="10"></a> (<$MTCategoryCount$>) 
<MTElse>
<li class="tree<MTSubCatIsLast>_end</MTSubCatIsLast>"><MTCategoryLabel cutfirstchar="10"> 
</MTElse>
<ul class="tree">
<MTEntries lastn="65535" sort_order="ascend">
<li class="tree<MTEntriesFooter>_end</MTEntriesFooter>">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast>
</ul>
</MTSubCatIsLast> </MTTopLevelCategories> </li> </ul>

/*■サイトマップ*/

#left ul.home {
    list-style: none;
}

ul.tree {
    margin: 0!important;
    padding: 0!important;
    list-style: none!important;
}
ul.tree ul {
    margin: 0 0 0 1em!important;
    padding: 0!important;
}
ul.tree li {
    margin: 0!important;
    padding: 0 0 0 16px!important;
    background-image: url(<$MTBlogURL$>images/tree_lst.gif);
    background-repeat: no-repeat!important;
    list-style: none!important;
}
ul.tree li.tree_end {
    background-image: url(<$MTBlogURL$>images/tree_end.gif);
    list-style: none;
}
2008年08月15日

MTで「タグ」入力欄にキーワードを入力したら、カラム落ち

◆目的

  • MT概要→エントリーごとの概要
  • キーワード→出力ファイル名で使用
  • タグ→エントリーごとのキーワードで利用

◆記述

●MT エントリーアーカイブへ以下を記述

<meta name="Keywords" content=" <$MTBlogName encode_html="1"$>, <MTEntryTags> <$MTTagName$>, </MTEntryTags> キーワード" />

●MTの記事投稿フォームのタグ入力欄に以下を入力

あああ,いいい

◆対策

上記のようにしたところ、カラム落ち!!
→まずhttp://validator.w3.org/でチェックすること

カラム落ちは、#pagebody-innerの width:100%のせいかと。

55行目の</div>を113行目の<!--△SIDE-->の後の行へ来るように テンプレートを修正すれば、解決すると思います。

MTOS サイドバーのカスタマイズ

ホームページウィジェット」を開くと

<mt:If name="main_index"> <$mt:include widget="Select"$> <$mt:include widget="pickup"$> </mt:If>

(widgetの名前はカスタマイズ済みなので、インスト時は違う名前)

<mt:If name="main_index">の部分は、メインインデックス=TOPページだけ表示させる、という意味。インスト時は、"最近のコメント""最近のブログ記事""アイテム""タグクラウド" などのウィジェットです。

実行したいウィジェットを呼び出すのが、<$mt:include widget="ウィジェット名"$>と、言うことになります。

もし、TOPページだけでなく、すべてのテンプレートで表示したい場合、<mt:If name="main_index">と</mt:If>を消してしまえばOK