MTIfLoggedIn
ユーザーのサインイン状態によって表示内容を分けるための条件タグです。実際には、element_id モディファイアで指定した id をもとに div タグが生成され、script モディファイアで指定する JavaScript によって表示と非表示を制御します。script モディファイアで指定する JavaScript はあらかじめ用意しておく必要があります。
Movable Type 7 では、コミュニティ機能が同梱されていないため利用できません。
- 使い方
<script type="text/javascript">
<!--
function entry_create_loggedin() {
var u = mtGetUser();
var loggedin = u && u.is_authenticated && u.is_author && u.can_post ? true : false;
var eid = 'logged_in';
conditional_block(loggedin, eid);
if (!loggedin) {
var p = document.getElementById('login_message');
if (!p) return;
if (u && !u.is_author)
p.innerHTML = "ブログに投稿するには、Movable Typeにユーザー登録してください。";
else
if (u && !u.can_post)
p.innerHTML = "投稿する権限がありません。";
else
p.innerHTML = '<a href="javascript:void(0)" onclick="return mtSignInOnClick(\'login_message\')">サインインして記事を投稿してください。</a>';
} else {
if (u && !u.can_post) {
var p = document.getElementById('login_message');
p.innerHTML = "投稿する権限がありません。";
} else {
var mt = document.getElementById('magic_token');
if (mt) mt.value = u.sid;
}
}
}
// -->
</script>
<mt:IfLoggedIn script="entry_create_loggedin">
<form method="post" action="<$mt:CGIPath$><$mt:CommunityScript$>" name="entry_form" id="create-entry-form" enctype="multipart/form-data">
<input type="hidden" name="__mode" value="post" />
<input type="hidden" name="blog_id" value="<$mt:BlogID$>" />
<input type="hidden" id="magic_token" name="magic_token" value="" />
<mt:SetVarBlock name="field-content"><input id="entry-title" class="ti" name="title" /></mt:SetVarBlock>
<$mt:Include module="フォームフィールド" id="entry-title" class="" label="タイトル"$>
<mt:SetVarBlock name="field-content"><textarea id="entry-body" class="ta" name="text" rows="15" cols="50"></textarea></mt:SetVarBlock>
<$mt:Include module="フォームフィールド" id="entry-body" class="" label="本文"$>
<mt:If tag="BlogCategoryCount">
<mt:SetVarBlock name="field-content">
<select id="entry-category" name="category">
<option value="0">カテゴリを選択...</option>
<mt:TopLevelCategories>
<mt:SetVarBlock name="loop_to"><$mt:Var name="__depth__" _default="0"$></mt:SetVarBlock><mt:SetVarBlock name="spacer"><mt:For start="1" end="$loop_to"> </mt:For></mt:SetVarBlock><option value="<$mt:CategoryID$>"><$mt:Var name="spacer"$><$mt:CategoryLabel$></option>
<$mt:SubCatsRecurse$>
</mt:TopLevelCategories>
</select>
</mt:SetVarBlock>
<$mt:Include module="フォームフィールド" id="entry-category" class="" label="カテゴリ"$>
</mt:If>
<mt:EntryCustomFields>
<mt:SetVarBlock name="custom_field_name"><$mt:CustomFieldName escape="html"$></mt:SetVarBlock>
<mt:SetVarBlock name="field-content"><$mt:CustomFieldHTML$></mt:SetVarBlock>
<mt:SetVarBlock name="custom_field_id">profile_<$mt:CustomFieldName dirify="1" escape="html"$></mt:SetVarBlock>
<mt:SetVarBlock name="required"><mt:CustomFieldIsRequired>1<mt:else>0</mt:CustomFieldIsRequired></mt:SetVarBlock>
<$mt:Include module="フォームフィールド" id="$custom_field_id" class="" label="$custom_field_name" required="$required"$>
</mt:EntryCustomFields>
<input type="submit" accesskey="s" name="post" id="entry-submit" value="投稿" />
</form>
<mt:Else>
<p id="login_message"></p>
</mt:IfLoggedIn>
<script type="text/javascript">
<!--
mtAttachEvent('usersignin', entry_create_loggedin);
//-->
</script>
モディファイア
- element_id="id"
-
script モディファイアで設定した JavaScript で利用する id 要素を指定します。
- script="function_foo"
-
呼び出す JavaScript のファンクション(関数)名を指定します。