ラベル スキン の投稿を表示しています。 すべての投稿を表示
ラベル スキン の投稿を表示しています。 すべての投稿を表示

2008年3月10日月曜日

Nucleus 特注トップページ(3)

複数ブログで特注トップページ

スペシャルスキンを使った固定ページと、ブログ本体を融合させて、「固定ページ + ブログ」のサイトを作るのだ。
前回までにスペシャルスキンを使った固定ページができているところから始めてます。

まず固定ページに使っているスキンを複製する。
できたclone_enlightenの名前をenlighten_blogに変更したいが、エラーになる。"_"がチェックされているようだ。
「複製」なら使えるのに入力はチェックするなんてどうかなぁ。名前はenlighten4blogにする。

スキン「enlighten」を固定ページで使い、スキン「enlighten_blog」をブログにして組み合わせる案だ。
「スキンの編集 'enlighten': メインの目次ページ」は
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<%parsedinclude(sidemenu.php)%>
<%ifcat%><%parsedinclude(skintypes/mainindex.php)%><%else%>
<%include(../../index1.txt)%>
<%endif%>
<%parsedinclude(footer.php)%>

にする。

スキンファイル管理で、ふと考えたんだけど、スキンの実態はどうなっているんだろう。

nucleus/skins/にはディレクトリは増えていない。ということはスキンファイルは元祖とcloneが同じものを使うということだろうか。
こいつぁ、気をつけないと危ないぞ。

新しいブログを作る。
2ch2.phpをアップロード
<?php
$CONF['Self'] = '2ch2.php';
include('./config.php');
selectBlog('2ch2');
selector();
?>


URLは、http://192.168.0.8/sample/nucleus/2ch2.phpだそうだ。
スキンファイル管理
skins / enlighten / header.php
にリンクを張り直す。
動作確認。これがトップページ


これがブログ部分のトップページ


これがアイテムを表示するページ


今ひとつトップページがブログっぽい。もう少し変えたいもんだ。
管理が楽なのは、

・ファイル数が少ない。
・手数が少なくて変更できる。
・下まで探さないで変更できる。
・以後の変更が簡単。

ならば、
「スキンの編集 'enlighten': メインの目次ページ」を
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<!-- page content -->
<div id="content">
<!-- page start border:teal solid 1px; -->
<div style="margin:4px 96px;padding:4px;">
<%include(../../index1.txt)%>
</div>
<!-- page end -->
</div>
<%parsedinclude(footer.php)%>

にして、index1.txtの内容変更で更新をしよう。
mainpage33.png
だいぶ格好ついてきた。この方向で行くことにする。

2008年3月9日日曜日

Nucleus 特注トップページ(2)

トップページを好きに書きたい(2)

スキンの中に文章を直接書き込むのは、それはそれでいい考えだと思ったんだけど、せっかくだから初めてincludeを使ってみる。
やりたいことはこれだ。
カテゴリが選ばれたら、カテゴリのページを表示する
ブログを指定したら、ブログのトップページの文章を表示する。
それ以外なら
(最初の)トップページの文章を表示する。


skins:vars:ifに条件分岐の例が沢山あった。
<%if(category)%%> カテゴリが選択されているかどうか
<%if(category,catname,カテゴリ名)%%> 選択中のカテゴリ名が第3引数の指定値と一致するかどうか
<%if(blogsetting,bnumber,ブログid)%%> 選択中のブログidが第3引数の指定値と一致するかどうか


「スキンの編集 'enlighten': メインの目次ページ」はこんな、
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<%parsedinclude(sidemenu.php)%>
<%if(category)%><%parsedinclude(skintypes/mainindex.php)%><%else%>
<%if(blogsetting,bnumber,1)%><%include(../../index2.txt)%><%else%>
<%include(../../index1.txt)%>
<%endif%><%endif%>
<%parsedinclude(footer.php)%>


http://192.168.0.8/sample/nucleus/


http://192.168.0.8/sample/nucleus/index.php?blogid=1


http://192.168.0.8/sample/nucleus/index.php?catid=4&blogid=1


<%if(blogsetting,bnumber,1)%>てのが期待通りに動いていない
index.phpでも blogid=1とされているようだ。
<%if(blogsetting,burl,ブログのURL)%>を使ってみる。
<%if(category)%><%parsedinclude(skintypes/mainindex.php)%><%else%>
<%if(blogsetting,burl,"http://192.168.0.8/")%><%include(../../index1.txt)%><%else%>
<%include(../../index2.txt)%>
<%endif%><%endif%>

これもだめ。前と結果は同じだ。

あまりコードを書き込むと、バージョンアップやサーバー替えや構成変更の時にメンテナンスが増えるのでやりたくない。
なるべくシンプルに行きたいもんだ。
http://192.168.0.8/sample/nucleus/は
http://192.168.0.8/sample/nucleus/index.phpと同じ
http://192.168.0.8/sample/nucleus/index.php?blogid=1とも同じらしい。


ブログを変えれば blogidが変わる。新規ブログを作って逃げよう。

...また続く

2008年3月7日金曜日

Nucleus 特注トップページ(1)

トップページを好きに書きたい

ブログのトップページを専用の画面を表示させたいんだけど、どうするんだろう。
「メンバー詳細ページ」を使わないことにして、これをブログのトップページに流用できるんだろうか。
どうやって「メンバー詳細ページ」を呼べばいいんだろう。

「 メインの目次ページ 」の呼ばれ方を見てみる。
「 メインの目次ページ 」でトップページが表示されることがわかった。
ということは、[スキンの編集]の[スキンの編集 'enlighten': メインの目次ページ]で
<%parsedinclude(head.php)%>
<meta name="description" content="<%blogsetting(desc)%>" />
<title><%blogsetting(name)%> - <%blogsetting(desc)%></title></head>
<%parsedinclude(header.php)%>
<%parsedinclude(sidemenu.php)%>
<%parsedinclude(skintypes/mainindex.php)%>
<%parsedinclude(footer.php)%>
<%parsedinclude(skintypes/mainindex.php)%>
の部分を書き換えればトップページに表示したい文字が出そうだ。

mainindex.phpは[スキンファイル管理]->[enlighten]->[skintypes]にあった。
中身は
<div id="main">
<%blog(enlighten/index,6)%>
</div></div></div>
ここに、文字列を入れた。
<div id="main">
<div style="margin:4px 240px 4px 16px;padding:4px;">
<p><h4>ここがトップページ</h4>
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br />
ここがトップページです<br /></p>
</div>
</div></div></div>

http://192.168.0.8/sample/nucleus/


うまくいった。
と思ったら、ブログのページも同じになった。
http://192.168.0.8/sample/nucleus/index.php?blogid=1


カテゴリのページも同じになった。
http://192.168.0.8/sample/nucleus/index.php?catid=4&blogid=1


あっけにとられてわけがわからなくなったけど、スキンをdefaultにしたら「カテゴリのページ」はちゃんとカテゴリの内容が表示されている。

やりかたが違うらしい。あっちこっちから「 メインの目次ページ 」が使われているようだ。
「 メインの目次ページ 」の呼ばれかたがわからなければ、「メンバー詳細ページ」もわからない。Nucleusが内部で決めているんだろう。

アプローチを変えないとだめそう。少なくても変更したいページ全部に「 メインの目次ページ 」が使われることはわかったわけだ。
「スキンの編集 'enlighten': メインの目次ページ」の下に、
使用可能な変数 (クリックで説明表示): additemform, adminurl, archivedaylist, archivelink, archivelist, blog, bloglist, blogsetting, category, categorylist, charset, else, elseif, elseifnot, endif, if, ifnot, include, loginform, member, nextlink, nucleusbutton, otherarchivedaylist, otherarchivelist, otherblog, parsedinclude, phpinclude, plugin, preview, prevlink, referer, searchform, self, set, sitevar, skinfile, skinname, todaylink, version

が表示されている。これがスキン変数と言われるものらしい。
これを使って組み立てろということかな。
.......続く

2008年3月4日火曜日

Nucleus skinbackup.xmlをのぞいてみた

とりあえずdefaultのスキンを見ると

defaultのスキンのディレクトリの中は

skinbackup.xml
sidebar.inc
readme.html
preview.png
header.inc
head.inc
navigation.inc
preview-large.png
nicetitle.js
nicetitle.css
default_right.css
images
favicon.icofooter.inc
default_left.css

となっている。

スキンのキモ skinbackup.xmlをのぞいてみる


<nucleusskin>
<meta>
<skin name="default" />
<template name="default/index" />
<template name="default/item" />
<info><![CDATA[Nucleus CMS Default Skin]]></info>
</meta>

<skin name="default" type="text/html" includeMode="skindir" includePrefix="default/">
<description>Nucleus CMS default skin</description>

■定義済みパーツ: [スキンの編集 'default': 月別アーカイブページ]で表示される部分
<part name="archive"><![CDATA[<%parsedinclude(head.inc)%>
................
................

■定義済みパーツ: [スキンの編集 'default': 月別アーカイブ一覧ページ]で表示される部分
<part name="archivelist"><![CDATA[<%parsedinclude(head.inc)%>
................
................

■定義済みパーツ: [スキンの編集 'default': エラーページ]で表示される部分
<part name="error"><![CDATA[<%parsedinclude(head.inc)%>
................
................

■定義済みパーツ: [スキンの編集 'default': 画像ポップアップウィンドウ]で表示される部分
<part name="imagepopup"><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ................
................

■定義済みパーツ: [スキンの編集 'default': メインの目次ページ]で表示される部分
<part name="index"><![CDATA[<%parsedinclude(head.inc)%>
................
................

■定義済みパーツ: [スキンの編集 'default': 個別アイテムページ]で表示される部分
<part name="item"><![CDATA[<%parsedinclude(head.inc)%>
................
................

■定義済みパーツ: [スキンの編集 'default': メンバー詳細ページ]で表示される部分
<part name="member"><![CDATA[<%parsedinclude(head.inc)%>
................
................

■定義済みパーツ: [スキンの編集 'default': 検索ページ]で表示される部分
<part name="search"><![CDATA[<%parsedinclude(head.inc)%>
................
................
■■ここまでが、例の「標準で8種類ある」スキンらしい。

■■こっから先はテンプレートのようだ
■テンプレートの編集 'default/index'
<template name="default/index">
<description>Nucleus CMS default index template</description>
<part name="ARCHIVELIST_LISTITEM"><![CDATA[<dd>
................
<part name="BLOGLIST_LISTITEM"><![CDATA[<dd>
................
<part name="CATLIST_HEADER"><![CDATA[<dd>
................
<part name="CATLIST_LISTITEM"><![CDATA[<dd>
................
<part name="COMMENTS_MANY"><![CDATA[Comments]]></part>

<part name="COMMENTS_NONE"><![CDATA[<div class="contentitem3">
................
<part name="COMMENTS_ONE"><![CDATA[Comment]]></part>

<part name="COMMENTS_TOOMUCH"><![CDATA[<div class="contentitem3">
................

<part name="EDITLINK"><![CDATA[<div class="contentitem4">
................
<part name="FORMAT_DATE"><![CDATA[%m/%d]]></part>

<part name="FORMAT_TIME"><![CDATA[%X]]></part>

<part name="IMAGE_CODE"><![CDATA[<%image%>]]></part>

■[テンプレートの編集] 'default/index'で表示される部分
<part name="ITEM"><![CDATA[<div class="contenttitle">
<h2><%date%>: <a href="<%itemlink%>" title="Read entry: <%title(attribute)%>"><%title(raw)%></a></h2>
</div>
<div class="contentitem">
<div class="contentitem1">
<small class="contentitemcategory">
Category: <a href="<%categorylink%>" title="Category: <%Category%>"><%Category%></a>
</small>
</div>
<div class="contentitem2">
<small class="contentitempostedby">
Posted by: <a href="<%authorlink%>" title="Author: <%author%>"><%author%></a>
</small>
</div>
<%comments%>
<%edit%>
</div>
<div class="contentbody">
<%body%>
<%morelink%>
</div>]]></part>
■ここまで

<part name="LOCALE"><![CDATA[en]]></part>

<part name="MEDIA_CODE"><![CDATA[<%media%>]]></part>

<part name="MORELINK"><![CDATA[<p>&raquo;
<a href="<%itemlink%>#more" title="Read more on &#39;<%title(attribute)%>&#39;">Read More</a>
</p>]]></part>

<part name="POPUP_CODE"><![CDATA[<%popuplink%>]]></part>

<part name="SEARCH_HIGHLIGHT"><![CDATA[<span class="highlight">¥0</span>]]></part>

<part name="SEARCH_NOTHINGFOUND"><![CDATA[No search results found for <b><%query%></b>]]></part>

</template>

■■テンプレートの編集 'default/item'
<template name="default/item">
<description>Nucleus CMS default item template</description>
<part name="COMMENTS_BODY"><![CDATA[<div class="itemcomment id<%memberid%>">
................

<part name="COMMENTS_MANY"><![CDATA[comments]]></part>

<part name="COMMENTS_NONE"><![CDATA[<div class="comments">No comments yet</div>]]></part>

<part name="COMMENTS_ONE"><![CDATA[comment]]></part>

<part name="EDITLINK"><![CDATA[<div class="contentitem4">
................

<part name="FORMAT_DATE"><![CDATA[%m/%d]]></part>

<part name="FORMAT_TIME"><![CDATA[%X]]></part>

<part name="IMAGE_CODE"><![CDATA[<%image%>]]></part>

■[テンプレートの編集] 'default/item'で表示される部分
<part name="ITEM"><![CDATA[<div class="contenttitle">
<h2><%date%>: <%title(raw)%></h2>
</div>
<div class="contentitem">
<div class="contentitem1">
<small class="contentitemcategory">
Category: <a href="<%categorylink%>" title="Category: <%category%>"><%category%></a>
</small>
</div>
<div class="contentitem2">
<small class="contentitempostedby">
Posted by: <a href="<%authorlink%>" title="Author: <%author%>"><%author%></a>
</small>
</div>
<%edit%>
</div>
<div class="contentbody">
<%body%><br /><br />
<a name="more"></a><%more%>
</div>]]></part>
■ここまで
<part name="LOCALE"><![CDATA[en]]></part>

<part name="MEDIA_CODE"><![CDATA[<%media%>]]></part>

<part name="POPUP_CODE"><![CDATA[<%popuplink%>]]></part>

<part name="SEARCH_HIGHLIGHT"><![CDATA[<span class="highlight">¥0</span>]]></part>

</template>

</nucleusskin>

ホント、スキン変数とテンプレート変数だ。こいつをパーサーが読んで組み直して...ってことかな。

2008年3月2日日曜日

Nucleus スペシャルスキンパーツで独立ページ

独立ページを作りたい

WordPressだと、投稿ページのほかに「ページ」というので共通のスキンを使った独立したページを作ることができる。これをNucleus でもやりたいもんだ。

[レイアウト設定]>[スキン編集]でスキンを選ぶと「編集」のページに「スペシャルスキン」という入力窓が現れる。

スキン & テンプレートには、スキンの種別は8つで、item(個別アイテム)、archive(アーカイブ)、archivelist(アーカイブリスト)、archivelist(アーカイブリスト)、search(検索)、member(メンバー)、imagepopup(ポップアップ画像)、index(メイン)とerror タイプだと書いてあった。それ以外の「スペシャル」だとするとこいつぁ怪しいぞ。

「スペシャルスキン」で検索すると、当たりだった。これで独立ページが作れるらしい。
最終的にTips & Suggestions
の下の方にHow to create a Special skin partが見つかった。
英語だけど、この際ないよりはマシ。

    How to create a Special skin part

  1. Enter the Nucleus admin area and go to Skins management page (Layout>Skins). Find your skin and click the Edit link in the right column.

  2. Under the list of skin parts there is a sections called Special skin parts. In the field type the name of your special skin part and then click the Create button. (I'm using the name 'About' for my example). You then get a Edit skin part form, just like for any other skin part, that you can add content, skin variables or anything else. If you want to make it look like the rest of your site, you can copy the contents of the Main Index skinpart here and replace the <%body(...)%> skin variable with the contents of the static page.

    For example, using the default skin, the contents of the About skin part would look something like this:

    <%parsedinclude(head.inc)%>

    <!-- page header -->
    <%parsedinclude(header.inc)%>
    ...............
    コードがダーっと書いてあって、
    ...............
    <!-- page menu -->
    <h2 class="hidden">Sidebar</h2>
    <div id="sidebarcontainer">
    <%parsedinclude(sidebar.inc)%>
    </div>

    <!-- page footer -->
    <%parsedinclude(footer.inc)%>

  3. Now to access this page, you would point your browser (or put a link in your skin somewhere) to

    www.yourdomain.tld/index.php?special=About
  4. You can edit this skin part just as you would any other skin part and most skin variables and plugins will probably work.

    Note: You may want to keep your static content in a file called About.html in the skins/default/ directory (if using the default skin) and instead of typing the content of the page in the skin part, just put <%include(About.html)%>. There's almost no restriction on what these pages can contain.
一応exciteの翻訳窓に放り込んでみた。
でも「どうSpecial皮膚部分を作成するか。」はあんまりなので、S/皮膚/skin。
    どうSpecialSkin部分を作成するか。

  1. Nucleusアドミン領域に入ってください、そして、Skins管理ページ(レイアウト>スキン)に行きます。 Skinを見つけてください、そして、正しいコラムをEditリンクをクリックします。

  2. Skinの部品のリストの下では、SpecialSkinの部品と呼ばれるセクションがあります。 分野に、あなたの特別なSkin部分の名前をタイプしてください、そして、次に、Createボタンをクリックします。 (私は例に名前'About'を使用しています。) 次に、あなたはまさしくいかなる他のSkin部分などのようなEditSkin部分フォームも得て、内容、Skin変数または他の何かを加えることができます。 それをあなたのサイトの残りに似させたいなら、あなたは、静的なページのコンテンツにここにMain Index skinpartのコンテンツをコピーして、<%本体( )%>Skin変数を置き換えることができます。
    例えば、デフォルトSkinを使用して、AboutSkin部分のコンテンツはこのように見えるでしょう:
全然わからない。ますます混乱しちゃう。
とにかくやってみる。
[レイアウト設定]>[スキン編集]で、いま使っている「greygradient」の「編集」をクリックする。


「スキンの編集 'greygradient'」の画面で「スペシャルスキンパーツ」に、新しいスキンパーツ名を入力し「作成」をクリックする。


「スキンの編集 'greygradient': About」にHow to create a Special skin partにあったコードをコピーする。


「スキンの更新」をクリックする。
「メッセージ: スキンデータが保存されました」と表示された。

[レイアウト設定]>[スキン編集]に戻ると「Special1」というスキンが増えた。


http://192.168.0.999/~nucleus/index.php?special=About
でスペシャルスキンのページが表示された。


今後の課題:
スペシャルスキンをサイドバーの目次に表示する。

疑問:スペシャルスキンのデータはどこにしまわれるのだろう。
探した:「データベース: nucleus1 - テーブル : nucleus_skin」の中に、スキン/greygradientで、スキンタイプ/aboutというレコードができていた。

間違いはこちら

[レイアウト設定]>[スキン編集]で「新しいスキン」を作って、その中に。「スペシャルスキンパーツ」を作る。
[レイアウト設定]>[スキン編集]に「Special1」というスキンが増えるが、表示できない。


http://192.168.0.999/~nucleus/index.php?special=About
「スキン エラー」だけ。
で期待の画面が表示されない。

[管理ホーム]>[Nucleus Blog 1]の「設定」で
「標準のスキン」を「Special1」にしたら、期待の画面が表示される。

スキンというから、新しいスキンセットから作って、その中に Aboutというスキンを作ったのね。(- -);

2008年3月1日土曜日

Nucleus スキンとテンプレート

Nucleusの秘密を暴きたいんだけど.....

スキン & テンプレートの「テンプレートとスキンの相互関係」 に、

スキン とは出力する内容(タグを含むソース)を定義するものです。1つのスキンでもいくつかの種別ごとに定義が必要で、メインページや個別アイテムページ、アーカイブページなど(標準で8タイプ)があります。 スキン内の定義内容は、どの部分にblogデータを展開するのか、どのテンプレートを使用して展開するのかなどの指定を含みます。

とある。
「8種類」というは、[レイアウト設定]の[スキン編集]に出てくる、「定義済みパーツ:」の
  1. メインの目次ページ
  2. 個別アイテムページ
  3. 月別アーカイブ一覧ページ
  4. 月別アーカイブページ
  5. 検索ページ
  6. エラーページ
  7. メンバー詳細ページ
  8. 画像ポップアップウィンドウ

のようだ。

スキン=ブログの各ページの構造(レイアウト)を表すもので、標準で8種類のページパターンがある。blogger.comでいうテンプレート。

テンプレート=MySqlにしまわれているデータを流し込んで表示するブロック部分みたいなもの。blogger.comでいうページ要素。
...ということでよいのだろうか。

Nucleusの動く仕組みが分かってくれば理解できるのかも知れない。
  • 最初に読まれるのは、「index.php」
    index.phpは ..... config.phpを読む。

  • config.phpは ..... globalfunctions.phpを読む。

  • globalfunctions.phpは、以下を読む
    include($DIR_LIBS . 'mysql.php');
    include($DIR_LIBS . 'MEMBER.php');
    include($DIR_LIBS . 'ACTIONLOG.php');
    include($DIR_LIBS . 'MANAGER.php');
    include($DIR_LIBS . 'PLUGIN.php');

    include($DIR_LIBS . 'xmlrpc.inc.php'); // XML-RPC client classes
    include_once($DIR_LIBS . 'ADMIN.php');

    include($DIR_LIBS . 'PARSER.php');
     PARSER.phはrequire_once dirname(__FILE__) . '/BaseActions.php';

    include($DIR_LIBS . 'SKIN.php');
     SKIN.phpはrequire_once dirname(__FILE__) . '/ACTIONS.php';

    include($DIR_LIBS . 'TEMPLATE.php');
    include($DIR_LIBS . 'BLOG.php');
    include($DIR_LIBS . 'BODYACTIONS.php');
    include($DIR_LIBS . 'COMMENTS.php');
    include($DIR_LIBS . 'COMMENT.php');
    //include($DIR_LIBS . 'ITEM.php');
    include($DIR_LIBS . 'NOTIFICATION.php');
    include($DIR_LIBS . 'BAN.php');
    include($DIR_LIBS . 'PAGEFACTORY.php');
    include($DIR_LIBS . 'SEARCH.php');
    include($DIR_LIBS . 'entity.php');

    include_once($DIR_LIBS . 'ACTION.php');

    include($filename); //apacheとphpのトークンみたい

    include($DIR_LANG . ereg_replace( '[\\|/]', '', $language) . '.php');
    include($DIR_LIBS . 'PLUGINADMIN.php');

    include_once($DIR_LIBS.'mb_emulator/mb-emulator.php');
    ..............
    いろいろ進んで...
    ..............
  • globalfunctions.phpの中のselector()が呼び出される。
    ..............

    $skinFile = $DIR_SKINS . $skinFileRaw . '/skinbackup.xml';
    $xml_file = $dir . $filename . '/skinbackup.xml';

  • ともあれ skinbackup.xml、skindata.xmlにたどり着く。
    nucleus/libs/ADMIN.phpや、nucleus/libs/skinie.phpが、skinbackup.xml、skindata.xmlを読み込む。
  • スキン & テンプレートにあるように、skinbackup.xmlがスキンのかなめになる。(らしい)

nucleus/libs/TEMPLATE.phpに

function fill($template, $values) {

if (sizeof($values) != 0) {
// go through all the values
for(reset($values); $key = key($values); next($values)) {
$template = str_replace("<%$key%>",$values[$key],$template);
}
}

// remove non matched template-tags
return preg_replace('/<%[a-zA-Z]+%>/','',$template);
}

があった。ここが Nucleus変数/テンプレート変数が、解釈される第一歩か。
ACTION.php、ADMIN.php、BLOG.php、MEMBER.php、BODYACTIONS.phpでfill()を呼んでいる。
細かいことまで理解する必要はないけど、動作概念くらいは知っておきたいもんだ。
.