ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Movable TypeコミュのMT4 こんなことできますか? などなど

  • mixiチェック
  • このエントリーをはてなブックマークに追加
MT4.1がリリースされました。以前までのMT3.3xのバージョンとは、内容が異なってくるために
別トピック立てました。

MT4 バージョンについての内容は こちらでディスカッションできればと思います。


--- バージョン MT3.3x以降については、以下のトピックへ ---

【こんなことできますか? part2】
http://mixi.jp/view_bbs.pl?id=13324758&comm_id=296

過去のトピック
【こんなことできますか?】
http://mixi.jp/view_bbs.pl?id=132879&comm_id=296

コメント(168)

>128

ウェブページに記事を表示させるということは、タグのカスタマイズをしているんですよね。
データがウェブページに読み込まれているか、テストしましたか?
手動で再構築する時はウェブページに反映するけど、公開キュー経路では反映しない?

5.02を利用しているなら不具合のアナウンスがありますよ。
http://www.movabletype.jp/documentation/mt5/release/502-patch-1.html
>126 てってこ(`・ω・´)さん
こんにちは。

ロりポップの「Movable Type簡単インストール」のページを見てみたところ、mt-jobs.shはMTのrun-periodic-tasksスクリプト(指定日投稿のスクリプト)を定期的に実行するようにするものになっていました。
mt-rebuild.plを定期的に実行したい場合、以下のようにすれば良いと思います。

1.mt-rebuild.plをMovable Typeのインストール先ディレクトリにアップロードする
2.以下のようなスクリプトのファイルを作り、Movable Typeのインストール先ディレクトリにアップロードする

#!/bin/sh
#お客様のフルパスをご記入ください
userPath='お客さまのフルパス'
#FTPトップディレクトリからこのファイルまでのディレクトリパス
appPath='/MTのインストール先ディレクトリ'
cd ${userPath}${appPath}/
/usr/bin/perl ./mt-rebuild.pl
echo "finished"

3.「Movable Type簡単インストール」のページの「予約投稿の設定」→「3.cronの設定」に沿って、cronの設定を行う
>132 てってこ(`・ω・´)さん
こんにちは。

130のスクリプトで、mt-rebuild.plを実行する行を以下のように変えてください。

/usr/bin/perl ./mt-rebuild.pl -all
>134 てってこ(`・ω・´)さん
こんにちは。

もしかすると、再構築されていないウェブページは、ブログではなくて、ウェブサイトに属しているのではないでしょうか。
mt-rebuild.plは古いプラグインで、ウェブサイトには対応していません。
とりあえず、「mt-rebuild -all」とした時に、ウェブサイトも再構築されるようにするには、mt-rebuild.plの67行目を以下のように変えてください。

・書き換え前
my $iter = MT::Blog->load_iter;
・書き換え後
my $iter = MT::Blog->load_iter({ class => '*' });
質問をさせて戴きます。

現在、プロフィールページ(mt-cp.cgi)にて、ページの一部を他の登録ユーザーに見せない、ソースにも出さないといったことを考えております。

ユーザーの情報を表示するためのjs(17行目あたり)を利用して、mtIfLggedInとmt elseを使った分岐まではできたのですが、この場合はページは生成されているがdivでの非表示になっているだけで、ソースを見れば表示されてしまいます。

このソースを生成されないようにするためには、ログインユーザーが他の登録ユーザーのプロフィールページを閲覧した場合、mtIgoreで処理させる(=表示させない)ことが最善だと考えました。

ここでお聞きしたいのは、 「ログインユーザーのID」 を取得する方法はありますでしょうか。このIDを取得できれば、MTIfで条件文式で可能になると思います。

未熟な質問で言葉足らずですが、ご教授頂ければ幸いです。
昨年、年別アーカイブの作り方について教えていただき、お世話になったものです。
(このトピの85〜あたり)

年が明けて、また問題が発生したので、わかる方がいらしたら教えてください。
MTのバージョンは4.261です。

現在、サイトのトップページより、この年別アーカイブへのリンクを張っています。
ただし、サイトトップとこのアーカイブは別ブログです。

ちなみにこんな感じです。
------------------------------------------------------------------
最新の記事写真とリンク数枚
<MTSetVarBlock name="year"><$MTDate format="%Y"$></MTSetVarBlock>
<p><a href="<$MTBlogURL$><$MTGetVar name="year"$>">もっと見る</a></p>
-----------------------------------------------------------------------

下二行に書いたように、自動で現在の年のアーカイブにリンクするようにしていたのですが、まだ2011年のファイルができていないので、リンク切れが発生してしまいました。

これを避けるために、上の<$MTDate format="%Y"$>のところを、おそらく最新記事のMTEntrydateに置き換えれば良いような気がするのですが、タグの書き方がわかりません。

今は暫定的に数字で2010と入れてしまっていますが、いずれ書き替えないといけないので、もし可能ならば、ご教示いただけると幸いです。

よろしくお願いいたします。
138です。

すみません。自己解決しました。
削除しようかと思いましたが、一応そのまま書いておきます。

解決方法は、単純に年別アーカイブの最新記事にリンクを張りなおすというだけのことでした。
-------------------------------------
<mt:ArchiveList archive_type="Yearly" lastn="1">
<p><a href="<$mt:ArchiveLink$>">もっと見る</a></p>
</MTArchiveList>
---------------------------------------

かえってややこしいことをしていたようです。
お騒がせしました。
>141 -さん
こんにちは。
以下の記事をご参照ください。

・アーカイブの制御(その10・アーカイブページを部分的に出力しない)
http://www.h-fj.com/blog/archives/2009/08/01-073819.php
こんにちは、困ったときだけやってくるかれんです。
いつもお世話になっております。

現在のバージョンは4.291です。

ブログを10個ほど使って会社のサイトを作っています。

トップページに新着情報を出しているのですが、今まではブログ記事のみ、@更新タグのついたものが更新されたら表示する、というやり方をしてきました。

ところが、一部ウェブページも、大幅更新などがあったり、新しいページを追加した場合に表示させる必要が出てきました。

ブログ記事とウェブページを混在させた新着情報表示というのは可能なのでしょうか。
>>146
できなくはないと思います.ただし,ハッシュ変数の知識が必要になると思いますが…

手順を大雑把に以下に書いておくと(5つというのは例です),

1.各ブログの更新日時をハッシュキーとして最新5つのエントリーのハイパーリンク自体をハッシュ変数に格納する.
2.ウェブページの更新日時をハッシュキーとして最新5つのウェブページのハイパーリンク自体をハッシュ変数に格納する.
3.上記1,2で取得したハッシュ変数をハッシュキー(更新日時)で降順ソートしてMTLoopなりで5つ表示する.

ただ,ブログが10個あるということは,ウェブページも各ブログにあるんでしょうから,取得作業自体が面倒に…ってモディファイアのblog_ids="all"を使えばいけますね.
MTPagesでも使えますし.
HashiMさん、ありがとうございます。

恥ずかしながら、ハッシュ変数という言葉を知らなかったのですが、
ググッてみたらHashiMさんのブログに当たりました(^^ゞ。

手順の方も、そちらに出ていたコードを順を追ってみたところ
なんとなく理解したようなので、これからやってみようと思います。

ありがとうございました。
ちなみにブログは10個ありますが、ウェブページはないものの方が多いです。
>>147 HashiMさん

ありがとうございました!
無事できました。

他にも応用できそうなのでまた活用させていただきたいと思います。
いつも本当にありがとうございます。
>>149
うまく行ったようで何よりです.
それにしても,検索で自分が書いたエントリーに行き着くとはなんという(略).
いつもとても参考にさせて頂いております。
MT427-jaを使用しております。

80番さんのコメントでもありましたが、記事をイベントとして登録して
TOPに近日開催されるイベントのリストとして、20件掲載したいと思っております。

http://q.hatena.ne.jp/1298968093

こちらの記事を試したのですが、MT5用なのか?動きませんでした。
インデックステンプレートにインクルードしたのですが、違ったのでしょうか…。

イベントが複数日にわたるため、開始日は記事の更新日に、終了日はカスタムフィールドで
設定しています。

どなたかご返答頂けますと大変助かります。
どうぞ、よろしくご教授くださいませ。
たびたび失礼します。
試行錯誤して、タグを書いてみましたがどうにも近日25件になりません。


<mt:Entries sort_order="ascend" lastn="25">
<mt:EntriesHeader>
<div class="list">
<dl>
</mt:EntriesHeader>

<mt:SetVarBlock name="i_day"><mt:EntryDate format="%Y%m%d"></mt:SetVarBlock>
<mt:SetVarBlock name="today"><$mt:Date format="%Y%m%d"$></mt:SetVarBlock>

<mt:If name="i_day" ge="$today"$>
<dt><$MTEntryDate format="%Y年%m月%d日"$>
<$MTEntryCustomFieldDate field="lastday" format="〜%d日"$></dt>
<dd><a href="<$mt:EntryPermalink$>"><$mt:EntryDate format="%x"$><$mt:EntryTitle$></a>
<br/>

<mt:If tag="kaisaiti"><mt:kaisaiti></mt:If>/<mt:If tag="kaijou"><mt:kaijou></mt:If>

</dd>
</mt:If>

<mt:EntriesFooter>
</dl>
</MTEntriesFooter>
</MTEntries>


ご教授頂けましたら幸いです。
よろしくお願いいたします。
>>154
これだと,最新のエントリー25件のうち,閲覧日以降の投稿日のものを抽出していることになります.なので,25件表示されることはまず無いと思われます.
MTEntriesの場合,lastnがないとブログの初期設定(10件だったかな?)に左右されてしまうので,ざっくりと50件ぐらいにしておいたほうがいいのかな?

肝心の25件を抽出する方法ですが,まず,MTEntriesHeaderブロックの中で,カウント用の変数を初期値0で設定しておきます
----------
<mt:EntriesHeader>
<$mt:SetVar name="count" value="0"$>
<div class="list">
<dl>
</mt:EntriesHeader>
----------

そして,<mt:If name="i_day" ge="$today"$> ブロックを以下のように直します.
----------
<mt:If name="i_day" ge="$today"$>
<$mt:SetVar name="count" op="+" value="1"$>
<mt:If name="count" le="25">
<dt><$MTEntryDate format="%Y年%m月%d日"$>
<$MTEntryCustomFieldDate field="lastday" format="〜%d日"$></dt>
<dd><a href="<$mt:EntryPermalink$>"><$mt:EntryDate format="%x"$><$mt:EntryTitle$></a>
<br/>

<mt:If tag="kaisaiti"><mt:kaisaiti></mt:If>/<mt:If tag="kaijou"><mt:kaijou></mt:If>

</dd>
</mt:If>
</mt:If>
----------
おそらくこれでうまくいくと思います.
お返事が遅くなってすいません!
HashiMさん、ありがとうございます!

試してみました!
が、思うような挙動になりませんでした…。


<mt:Entries sort_order="ascend" lastn="25">

<mt:EntriesHeader>
<mt:SetVarBlock name="i_day"><mt:EntryDate format="%Y%m%d"></mt:SetVarBlock>
<mt:SetVarBlock name="today"><$mt:Date format="%Y%m%d"$></mt:SetVarBlock>
<$mt:SetVar name="count" value="0"$>
<div class="list">
<dl>
</mt:EntriesHeader>

<dt>
<mt:If name="i_day" ge="$today"$>
<$mt:SetVar name="count" op="+" value="1"$>
<mt:If name="count" le="25">
<$MTEntryDate format="%Y年%m月%d日"$>
<$MTEntryCustomFieldDate field="lastday" format="〜%d日"$></dt>
<dd><a href="<$mt:EntryPermalink$>"><$mt:EntryDate format="%x"$><$mt:EntryTitle$></a>
<br/>

<mt:If tag="kaisaiti"><mt:kaisaiti></mt:If>/<mt:If tag="kaijou"><mt:kaijou></mt:If>

</dd>
</mt:If>
</mt:If>

<mt:EntriesFooter>
</dl>
</MTEntriesFooter>
</MTEntries>


上記のように記載したのですが、表示が添付画像のようになっています。
登録してあるデータは、2012年4月分から2013年3月分まで入っています。

何かどこか違うのでしょうか…。
ご教授頂けますと幸いです。
よろしくお願いいたします。
> murasakiさん
lastn="50"にしてやってみてください.
> HashiMさま

ご返答ありがとうございます!
記事の件数が、250件以上ありまして、lastn="180"にしたところ
思うような挙動になりました! 写真1

ですが、下のほうにdtが書きだされてしまい…。
これを消すには、このタグかなぁ、と思っているのですがこれも上手く
行きませんでした。

<mt:Entries sort_order="ascend" lastn="180">

<mt:EntriesHeader>
<mt:SetVarBlock name="i_day"><mt:EntryDate format="%Y%m%d"></mt:SetVarBlock>
<mt:SetVarBlock name="today"><$mt:Date format="%Y%m%d"$></mt:SetVarBlock>
<$mt:SetVar name="count" value="0"$>
<div class="list">
<dl>
</mt:EntriesHeader>

<MTifNonEmpty tag="EntryDate">

<dt>
<mt:If name="i_day" ge="$today"$>
<$mt:SetVar name="count" op="+" value="1"$>
<mt:If name="count" le="25">
<$MTEntryDate format="%Y年%m月%d日"$>
<$MTEntryCustomFieldDate field="lastday" format="〜%d日"$></dt>
<dd><a href="<$mt:EntryPermalink$>"><$mt:EntryDate format="%x"$><$mt:EntryTitle$></a>
<br/>

<mt:If tag="kaisaiti"><mt:kaisaiti></mt:If>/<mt:If tag="kaijou"><mt:kaijou></mt:If>

</dd>
</mt:If>
</mt:If>

</MTifNonEmpty>

<mt:EntriesFooter>
</dl>
</MTEntriesFooter>
</MTEntries>


私もっと基礎から学ばなきゃダメですね;;
たびたびお手数おかけして申し訳ないです><

ご教授頂けますと幸いです。
よろしくお願いいたします。
上記の件は、自力解決しました!
ありがとうございました!
以下、解決したタグ


<mt:Entries sort_order="ascend" lastn="180">

<mt:EntriesHeader>
<mt:SetVarBlock name="i_day"><mt:EntryDate format="%Y%m%d"></mt:SetVarBlock>
<mt:SetVarBlock name="today"><$mt:Date format="%Y%m%d"$></mt:SetVarBlock>
<$mt:SetVar name="count" value="0"$>
<div class="list">
<dl>
</mt:EntriesHeader>

<mt:If name="i_day" ge="$today"$>
<$mt:SetVar name="count" op="+" value="1"$>
<mt:If name="count" le="25">

<MTifNonEmpty tag="EntryTitle">

<dt><$MTEntryDate format="%Y年%m月%d日"$>
<$MTEntryCustomFieldDate field="lastday" format="〜%d日"$></dt>
<dd><a href="<$mt:EntryPermalink$>"><$mt:EntryDate format="%x"$><$mt:EntryTitle$></a>
<br/>

<mt:If tag="kaisaiti"><mt:kaisaiti></mt:If>/<mt:If tag="kaijou"><mt:kaijou></mt:If>

</dd>
</MTifNonEmpty>

</mt:If>
</mt:If>



<mt:EntriesFooter>
</dl>
</MTEntriesFooter>
</MTEntries>



あとは、 lastn="180" という指定がないと表示の調整が取れない部分が
なんとかなるといいんですが…。

これ、また100件追加したら、調整しないとなんですよね?

ここを表示される記事全件の数字とかに置き換えられればいいのかな…。
過去の記事は計算されない、とかっていう感じの。

うう、試行錯誤は続きます><

どなたかヒントでもいただければ助かります><
>>159
一日あたりどのぐらいのイベント(エントリー投稿)があるのかは分かりませんが,あくまで閲覧日を基準としたそれ以降の最新のものから25件を表示する形なので,1日経つごとに抽出する件数の範囲(lastnの部分のうち,閲覧日以降のエントリーの範囲)が狭まっていきます(一日でもエントリーの投稿がなければ,の話です).

このへんは自身で調整していくしか無いと思います.
ただ,180エントリーでようやく25件が抽出できたのであれば,ざっくりと1週間換算で1300ぐらいにしてしておけばいいのではないかと思います(^^;

一応記事全件をはじき出す方法もあります.
エントリーは投稿されるたびに固有の番号(MTEntryID)がつきます.これは一番最初の投稿が1,次に2…という風になりますので,一番最新のエントリーのMTEntryIDを変数にしておいて,その数値をlastnに代入することで全件のエントリーとなります.
だけど,全件のエントリーから更に抽出をかけるため,再構築時の動作が若干重くなるし,日付が変わるごとに再構築されることを考えると,あまりいい方法とは思えませんけど(^^;
> HashiMさま

ご検討ありがとうございます!
1300 で再構築すると、画面に1件も出てこないんですよね…。
200 でもダメでした。なんでだろ…。

全件はじき出す方法、頑張って試してみます!
タグできたらまた貼りに来ます…。

すいません、スレ汚しで。
よろしくお願いします!!
>>160
よくよく見たら ソートを昇順(古い方が先頭)でやっているんですね.俺も勘違いをしていました.
lastnを外してください.確かlastnを設定した場合は,sort_orderにascendを指定していても常に降順(新しいほうが先頭)になってしまう(タグリファレンスに書いてありました)ので,意味がなくなってしまいます.
> HashiMさま

ご検討ありがとうございます!
lastnを外して、ブログ記事の設定を25件にしたのですが、そうすると
2012/11の記事以降が表示されるようになってしまいました。

直近の日付だと、2012/05/22になるハズなんですが><

以前のものがやはり一番挙動としては求めているものになりますので
lastn="180" でこの180の数値を自動化する方法を調べてみます!

がんばります><
>>163
ブログ記事の設定はlimit="auto"と同じになるようですし,lastnだと常に降順になるので,昇順のまま数を指定するならlimitのほうがいいと思われます.
そうすると,こんな感じでいいのではないですかね?
(よく見たら,エントリーごとに変数を取得していなかったようなので,最終版ということで全体のソースを書いておきます.あと個人的にMTタグの変数取得についてはMTSetVarBlockだと冗長なので,setvarモディファイアを使っています)
----------
<MTEntries sort_order="ascend" limit="9999">
<MTEntriesHeader>
<$MTDate format="%Y%m%d" setvar="today"$>
<$MTSetVar name="count" value="0"$>
<div class="list">
<dl>
</mt:EntriesHeader>

<$MTEntryDate format="%Y%m%d" setvar="i_day"$>

<MTIf name="i_day" ge="$today">
<$MTSetVar name="count" op="+" value="1"$>

<MTIf name="count" le="25">
<dt><$MTEntryDate format="%Y年%m月%d日"$>
<$MTEntryCustomFieldDate field="lastday" format="〜%d日"$></dt>
<dd><a href="<$MTEntryPermalink$>"><$MTEntryDate format="%x"$><$MTEntryTitle$></a>
<br/>
<MTIf tag="kaisaiti"><MTkaisaiti></MTIf>/<MTIf tag="kaijou"><MTkaijou></MTIf>
</dd>
</MTIf>

</MTIf>

<MTEntriesFooter>
</dl>
</MTEntriesFooter>
</MTEntries>
----------
これなら,一番古い分から一個ずつエントリーの日付(i_day)と閲覧日(today)を比較して,合致した数が1個〜25個以内ならエントリーの日付を出力し…と言うことをやってくれると思います.
なお,イベントについてのみのエントリーしか無いというのならいいんですけど,それ以外のエントリーも混ざると厄介ですので,カテゴリーで分けるというのが一番いいのかもしれません.
>164 HashiM様

ありがとうございます!!!お返事遅くなってすいません!
思うような挙動になりましたああああ!!!

他にもいっぱいいろいろ直さなくちゃいけないところ満載ではあるんですが
TOPはなんとか!本当に助かりました!

もっともっと勉強して使いこなしたいです!
はじめまして。
どのように実現したらよいのかわからなくて教えて下さい。

複数ブログで運用しているのですが、MTTagCountは
「特定のブログ内で、指定したタグが設定されたブログ記事数を表示します。」
となっていましたが、これはブログを指定することはできないでしょうか?

Aのブログのエントリーのタグと同じタグが付いたBのブログのエントリー数を
Aのブログで表示させたいのです。
お久しぶりです。
4年ぶりぐらいにHPいじっておりますが、やはりさっぱりわかりません。
お手隙の方、上手く伝えられるかどうかわかりませんが宜しくお願いします。


1バリュードメインで独自ドメイン?を取得。 さくらサーバーで設定しサイト?作成。
サイトを再編成しようと思い、
2バリュードメインで独自ドメイン?を取得。 さくらサーバーで設定しサイト?作成。

ここで「独自ドメイン?で作ったサイト?」を「独自ドメイン?で作ったサイト?」へ転送設定をしようと思っています。
ここで問題が発生しました。

私なりに調べた結果、「.htaccess」をサーバー内にアップロードすれば良いのですが、サイト?を独自ドメインで作成したために、独自ドメイン?へ転送する前の設定方法しか調べられません。

ファイル「.htaccess」では以下のように記述しています。
 ※※※.sakura.ne.jp/www/mtms → 独自ドメイン?

取り敢えず転送はできたのですが、独自ドメイン?からではなくさくらサーバーのMovableTypeアップロード先フォルダ(???;正しい表現を知りません)からでないと転送できません。

目標は、独自ドメイン?(/ディレクトリ毎) → 独自ドメイン?(/ディレクトリ毎)

ここでも問題があり、(表現があっているのかどうか不安ですが、)ディレクトリごとに振り分けも設定してみたのですが、それすら上手くできません。


これで自分の言いたいことがあっているのかどうかわかりませんが、何とかよろしくお願いします。
>>167

 全転送で思い通りではありませんが、自己解決しました。
もし時間を割いてくれた方がいたら、ありがとうございました。

ログインすると、残り139件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Movable Type 更新情報

Movable Typeのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング