カテゴリー
Movable type

[MT]記事ページで記事一覧を出す際、その一覧から当該記事を除外する(※基本形)

MTの記事ページに、記事一覧リストを吐き出して、その一覧から当該記事を表示させない場合のMTタグの使い回し方法の表記。
こういう面倒な事は分岐ーとかカスタムフィールドーとか考えちゃいますが、mt:Entriesのuniqueというモディファイアがあるので、こんなテストソースを書いた所、うまく行ったような感じ。


<mt:EntryID setvar="entryid">

<mt:Entries id="$entryid">
<mt:EntryTitle setvar="entrynow">
</mt:Entries>

<mt:Entries lastn="10" unique="1">
<li><mt:EntryTitle></li>
</mt:Entries>


まず、最初に表示している詳細記事のエントリーIDを取得し、setvarで代数へ。

そのエントリーIDの値を使って、その記事をmt:Entriesで呼び出す。これもsetvarで代数へ。

そして、uniqueを設定したmt:Entriesで記事リストを呼び出す。
現時点では、このリストの中に表示している記事のタイトルはないうえ、指定した件数が全部出ているのでまずは成功か。

このuniqueモディファイアは「その MTEntries ブロックタグは、同じテンプレート内で使用した MTEntries ブロックタグで出力した記事を除いて出力します。」というものなので、2番目のブロックでその記事を呼び出したことでこの条件に該当することになり、除外された。。。という仕組み。2番目のやつをsetvar指定したのは単に画面に表示させないようにするためだけなので、entrynowを使う予定は無し。

注意したいのは、このソースよりも前にmt:Entriesを使うような事をしてなければ、という感じか。

これは基本形。ここからさらに複雑になる実装を。これについては別エントリーで。

カテゴリー
Podcast

podcast「佐藤大のプラマイゼロ」 ”日本一遅い箱根駅伝振り返りトーク”の放送台本

podcast「佐藤大のプラマイゼロ」の最新回「#97 ガイネンのリアリティー」が更新。
恒例・日本一遅い箱根駅伝振り返りトークが行われてるのですが、この番組の箱根専用放送作家として今年も放送台本(笑)を提供させていただきましたのですよ。
この台本自体は放送ではあまり登場してないのですが、これを元に大さん&おすぎさんがトークを繰り広げております・・・多分(笑
そんなわけで、今年もその”放送台本”を公開。放送とセットで読むとちょっと面白いかも。

カテゴリー
CGI

[CGI]Mail form pro の基本テンプレ

WPのContact form 7がつかえない場合は、Mail form proを使いようにしている。いろいろ高機能だし。
ただ、同梱のマニュアルはちょいと舌足らずなところがあり、そのまま設定したら動かないので、テンプレートのようにしてまとめておく。ファイルへのリンク、細かい入力欄は任意で。









お名前 :

フリガナ :

性別 : 男性女性

メールアドレス:

メールアドレス(確認用):

必須項目は上記サンプルにも付いているが以下の物を付ける。

required="required" 

チェックボックスの必須で、「一つは必ずチェックさせる」というものになると以下の内容をつける

data-min="1" required="required"

名前の入力で「姓」「名」を別々にテキストボックスを作ると、確認画面・送信メールにも別々で出てくるのだが、姓名の入力欄の前に下記を入れると確認画面・送信メールでは2つ合体した形で表示されるようになる。もちろん電話や郵便番号などのテキストボックスでも活用できる。


エラーの文章を任意の場所に出す場合は以下のソースを書くとその場所に出る。

文字書式チェック機能もあり。

#push @AddOns,'charactercheck.js'; ## 文字校正 のコメントアウトを外した上で、

data-charcheck="digit" 数字のみ
data-charcheck="alphabet" 英語のみ
data-charcheck="digit_and_alphabet" 英語と数字のみ(記号含まず)
data-charcheck="kana" 全角カタカナのみ

導入時は一応「mailformpro/check.cgi」にアクセスして、設定に間違いがないか確認することをお勧めする。
また、導入当初、画面に出ているモジュール確認画面と確認画面などの遷移確認の画像を消すには、config.cgiの以下の部分をコメントアウトする

#push @AddOns,'OperationCheck.js';  ## 動作チェック
#push @Modules,'check';   ## CGI動作環境チェック
#push @AddOns,'phase.js';    ## 段階的入力機能

送信メールアドレスは複数個設置可能。一番最初にセットされたメールアドレスがフォームの差出人として設定される、との事。

push @mailto,'aaa@test.com';
push @mailto,'bbb@test.com';
push @mailto,'ccc@test.com';

WPなどで記事ごとについているお問い合わせフォームとして使う際、記事タイトルのvalueに記事タイトルを入れようとすると反応しない。どうも手入力されたものではないとデフォルト値として扱われ、データ入力されてないとみなされる模様。その時は下記のように書けばOK。

<input type="text" name="記事タイトル" data-value="CMSの記事タイトルタイトル" readonly>
カテゴリー
Data base Wordpress

[WP]サーバー引越の際のDBの書き換えで楽をする方法

以前のWordpressの引越はDBを触らないといけなかった。これはシステム関係に疎いデザイナーにとっては、phpMyAdminを触らないといけないという恐怖の仕事であり、できるなら移管後に構築をしたいと思った物である。

それが、最近ではスクリプトで一括で処理ができるようになったらしい。便利な世の中である。

参考になるのが「ドメイン変更を伴うWordPressサイトのサーバー移転方法」でも書かれている「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」を使用。これがあれば、とりあえずは動く所まで基本持っていける。

それでもphpMyAdminを触らざるを得ない時もある。
その時は下記の構文で一括置換で頑張るしかない。

update テーブル名 set カラム名 = replace(カラム名, “置換前の文字列”, “置換後の文字列”)

サンプルとしては、

UPDATE wp_posts SET post_content=REPLACE(post_content,"old.example.com","new.example.com");

テーブル「wp_posts」の、カラム「post_content」の「old.example.com」を、「new.example.com」に置き換える、っていう処理ですな。