MovableType 一覧

MovableTypeで作ったCMSにログインするとダッシュボード右側にMTニュースが表示されます。
要るような要らないような、微妙な存在。

これをプラグインで非表示にします。

config.yamlを書いてpluginディレクトリに入れるだけ。

こちらに詳しく書いてあります。

MovableTypeのブログで、カテゴリーの概要(MT:CategoryDescription)やブログ・ウェブサイトの概要(MT:BlogDescription・MT:WebsiteDescription)の改行をhtmlへ反映させる方法。

htmlがわかっているのなら入力ボックスにhtmlタグを書けば済む話ですが、お客様にそれを書いてもらうのは中々ムズカシイ。

そこで改行を反映させる方法。

<MT:CategoryDescription nl2br="xhtml">

nl2br="xhtml"と書けば<br />に、nl2br="html"と書けば<br>と出力され、改行が反映されます。

概要欄の改行が必要なケースもあると思います(というか、必要だったので調べて実装した)。お役に立てば幸いです。

error.png

先日納品したウェブサイトで、画像をアップロードしようとすると上の画像のような表示で、アップロードできなくなる事例が発生しました。
とりあえず別ディレクトリに新しくMTをインストールしDBをコピーしてみる。やはり同じか・・・

データベースをチェックしても特に異常はなく、プラグインのミスもない。どうやらサーバに問題があるような予感。

サーバそのものを移転する方法も検討しましたが、逃げちゃうのもどうかと思い、少し格闘してみました。使っているのはCoreserver.jp。

画像関係以外は普通に動作しているよう。ということは画像を扱うドライバ関連か?という結論に落ち着きました。
通常はImageDriverにImageMagicを指定してあるウチのMT。これをGDに変更してみる。変更はいたって簡単で、mt-config.cgiの当該記述を書き換えるだけ。

ImageDriver ImageMagick
  ↓
ImageDriver GD

これで問題解決となりました。

トップページにエントリーの中に画像がある場合はその画像を、ない場合には指定した画像を貼る場合のメモ。

ちょっとズルな方法ではありますが・・・

<img src="
<mt:SetVarBlock name="items"><mt:EntryAssets lastn="1"><mt:AssetThumbnailURL></mt:EntryAssets></mt:SetVarBlock>
<mt:If name="items" eq="">
/img/sample1.jpg" alt="サンプル
<mt:Else>
<mt:EntryAssets lastn="1"><mt:AssetThumbnailURL width="290" square="1"></mt:EntryAssets></mt:If>">

説明:

1)エントリにアイテムがあるかどうかを判別する
2行目mt:SetVarBlockタグの中にサムネイルのURLを出力する(name="items")。画像がない場合にはこの値は空となる。

2)分岐する
3行目mt:Ifタグでmt:SetVarBlockタグの値を判別する。出力した値が空の場合は指定画像のパス(4行目)を、値がある場合はその値(6行目)を出力する。


空の値を参照するってトコがミソ。ズルさ百倍な方法です。

スマートフォンでウェブサイトを閲覧中に掲載の電話番号へ電話をかけたいことありますよね。iPhoneは結構お節介でSafariだと電話番号とおぼしき数字列は自動的に【 href=tel: 】になります。たまに電話番号じゃない数字列にまでtelリンクついていることもありますが。これがChromeだと無視したまんまでタップできない。

かといってHTMLにベタに、<a href="tel:**-****-*****">電話はこちら</a>って書いちゃうと、デスクトップで見たときに不格好だしクリックした時のエラーも気になる。つまりスマホの時はタップできて、デスクトップの時は単なる文字列になるようにしたいわけですな。

こちらで詳しく紹介されていました。

まずヘッダ内に、

<script type='text/javascript'>
function smtel(telno){
if((navigator.userAgent.indexOf('iPhone') > 0 ) || navigator.userAgent.indexOf('Android') > 0 ){
document.write('<a href="tel:'+telno+'">'+telno+'</a>');
}else{
document.write(telno);
}
}
</script>


と記述しておきます。
番号を表示したいところに
<script type="text/javascript">smtel('***-****-****');</script>

注'***-****-****=電話番号
と記述。

これでスマートフォンではタップでき、デスクトップでは単なる文字列な電話番号が出来上がります。

ありがとうございます!

あ、iPadとかアンドロイドタブレットのときはどうしようか。。

タイトルだけをみるとさっぱり意味が分かりませんね・・・照

なにをしたいかというと、こんな感じ。

イベントの告知をします。 ↓ イベントが終わるとその報告をします。 ↓ ウェブサイトの内容が書きかわります。

具体例はこんな感じ。
image.png

イベントの予定:

本文欄に入力する。
1、「ただいま募集中です」と表示される。
2、本文欄の原稿が緑でかこった部分に表示される(ここでは文字数制限をしている)

イベントのレポート:

追記欄に入力する。
1、「終了しました」と表示される。
2、追記欄の原稿が青でかこった部分に表示される(ここでは文字数制限をしている)

ソースコードはこんなかんじ。

<ul id="hoge" class="kunya"><mt:Blogs include_blogs="children"><mt:Entries lastn="4">
<li>
<div class="news_date"><mt:EntryDate format="%d %b<span>%Y</span>" language="en"></div>
<div class="news_t"><a href="<mt:EntryPermalink>"><mt:EntryTitle></a></div>
<div class="news">Posted by <a href="#"><mt:EntryAuthor></a><br><a href="<mt:EntryPermalink>"><mt:IfNonEmpty tag="Entrymore">終了しました<mt:Else>ただいま募集中です</mt:IfNonEmpty></a></div>
<div class="news_info"><mt:IfNonEmpty tag="entrymore"><mt:EntryMore remove_html="1" words="100"><mt:Else><mt:EntryBody remove_html="1" words="100"></mt:IfNonEmpty><a href="<mt:EntryPermalink>">...詳細はこちら ></a></div>
<div class="clear"></div>
</li>
</mt:Entries></mt:Blogs></ul>


このように、mt:EntryBodyとmt:EntryMoreを使い分けることで、原稿を削除することなく表示を変えられます。表示以外にもリンクのとび先を変えるなどもできますね。

先日Facebook友達のYujiさんが僕のショップへご来店。
趣味では友達ですが、ウェブ制作では同業者でもあるのでお互いの近況と情報交換。

僕はコレ!と思ったらそこを集中的に突き進むタイプ。そこそこ極めたりもしますが周囲からは置いていかれることもしばしば・・・。

今回も彼の取り組んでいる分野を聞いて、ちょっと唖然・・・

なにに唖然としたかは置いておいて、僕にとっては新しい情報をいただきました。世間では常識になっているであろう「Twitter Bootstrap」。実は初めて聞きました。まあ、世間一般のウェブ開発者は皆さんご存知なんでしょうけど。さっそく調査開始。

・・・数時間経過・・・

dotinstallさんの動画を購読。なるほど!そーゆーことでしたか!

ということで、ちらりちらりと弄り始めました。探してみるとTwitter BootstrapのMTテンプレートを公開している方も発見。すばらしいね!

Movable Type×Twitter Bootstrapのテンプレートを配布 - ChinoBlog

さっそく試してみようと思っております。=>ありがとうございますChinoBlog様。

なんか意味不明なタイトルで申し訳ない。

FireFox16.x上でMovableTypeのブログ記事投稿を行うと、カテゴリが保存されないという問題がありました。本日(2012/11/22)に新しいfireFoxがインストールされたのでテストしてみます。

っちゅうことで、この記事がカテゴリ「戯れ言」に入っていれば問題解消、そうでなければ当面の間MTでの投稿にFFは使えない、ということになります。

さてどうでしょうか・・・『ぽちっとな!』

続きを読む

お恥ずかしい話しですが、表題のとおりです。

つい先日までVer.5.01だったこのブログ。ようやく重い腰を上げてバージョンアップ作業を開始しました。公式サイトよりver.5.20をダウンロードし、アップロード。いつものようにmt.cgiにアクセスしてバージョンアップ作業に入るところでした。

ところが、次のエラーが出て、作業中断。

エラーが発生しました。
Connection error: User ***DB_USER_NAME*** already has more than 'max_user_connections' active connections

とりあえず5.01に戻し、再度検討。無意味かな〜と思いつつ、まずは5.01から5.07へのバージョンアップを実施。データベースのアップグレードが完了したのを確認して、つづいて5.07から5.14へのバージョンアップ。こちらも無事に成功。再構築やら新しい記事の作成で作業の成功を確認しました。

同様に5.14から5.20への作業を行いますが、先ほどのエラーメッセージがでてしまい完了せず。

今現在5.14で運用しております。さて、原因はいったいなんでしょうか。。
しばらくは退屈しないで済みそうです。

どんだけ放置してるんだよ。とお叱りを受けたとか受けないとか...
そのくらい怠惰なブログでスマンこってす。

さて、表題のとおり某案件の手直しのこと。

これまでは、非表示にしたいエントリーは手動で下書きへ保存していただいておりましたが、ご要望として「1年前の同月までのエントリーを一覧に表示し、それら以外はリストアップしない」というのをいただきました。まあ、アーカイブが無くなる訳ではなく、インデックスに一覧化されないだけなんですが。

さて、ブログの設定でアーカイブの設定を365日を設定すればヨロし。なーんて安易に考えておりましたら、例えば10月25日の記事をポストすると1年前の10月26日以降の記事が表示されて10月1日から25日までが非表示になる。かといって365日より大きい数字にすると場合によっては9月のエントリーまで表示される場合があることに気がつきました。それならば条件分岐で設定することになりますね。

以前のエントリーで今日以降のブログ記事を非表示にする事例を書きました。これと同様の方法で1年前の同月以降を表示させます。


<MTSetVarBlock name="this_month"><$MTDate format="%Y%m"$></MTSetVarBlock>
<MTSetVarBlock name="last_year"><mt:GetVar name="this_month" op="-" value="101"></MTSetVarBlock>
<MTArchiveList archive_type="Individual">
<MTUnless name="prev">
<MTSetVarBlock name="todays_month"><$MTArchiveDate format="%Y%m"$></MTSetVarBlock>
<MTIf name="todays_month" gt="$last_year"><mt:Entries sort_order="ascend" unique="1">
<mt:EntryDate Format="%Y年 %B月 %e日">:
<a href="<mt:EntryPermalink>"><mt:EntryTitle remove_html="1"></a>
</mt:Entries>
</MTIf>
</MTUnless>
</MTArchiveList></table>

まず、Mt:SetVarBlockで今月(this_month)を定義します。例えば2012年10月なら「201210」となります。
続いて、1年前の同月よりも前(last_year)を定義します。2012年10月の前年同月より前なら2011年9月「201109」となります。これはmt:GetVarタグでop変数を使用して計算します。this_monthから得られた201210から前年の更に前月を得るには、「201210−201109=101」ということで101減じます。すなわち2行目の「<mt:GetVar name="this_month" op="-" value="101">」において計算します。mt:ArchiveListタグをmt:Ifで条件設定し表示されるエントリーを絞り込みます。これで、一覧化されるエントリーの起点が設定できました。

必要なら終点となる条件分岐を設定するれば、任意の期間のエントリーのみを出力できます。

このページの上部へ

About

北陸地方の田舎街でひっそりとくらしているアキのブログ。
30歳からは年齢が減少することにしてはや○○年。そのとおりにいくと現在未成年のはずだけど参政権は剥奪されていません。

プロフィール

性別:♂
血液型:ビール
好きな食べ物:果物、キノコ、マメ
野望:世界征服
宝物:こども
嫌いなもの:薬、タバコ

サイト内検索

最近のピクチャ

  • IMG_0921.jpg
  • error.png

Powered by Movable Type 6.0.3