2008年2月29日金曜日

Nucleus アーカイブをリスト表示 + NP_ListArticlesByNameプリフィックス対応

Nucleusでもアーカイブのリスト表示

wordPressでできたんだから、Nucleusでもアーカイブをリストで表示したい。

プラグインを探しにいこう。
プラグイン一覧(機能カテゴリー別)iには無いらしい。本家にいってみる。
「プラグイン・カテゴリ別」の中にanandさんが作った
NP_ListArticlesByName.php
   A plugin which will allow you to list recent articles by name.
があった。フォーラムに置いてあると書いてある。
フォーラムにはphpのコードと説明が載っている。「(コード)をコピーして、『NP_ListArticlesByName.php』という名前でセーブしろ」と書いてあった。
早速その通りにしてファイル「NP_ListArticlesByName.php」を作る。

ftpで nucleus/plaginにNP_ListArticlesByName.phpアップロードして、[サイト管理][プラグイン管理]で「プラグインのインストール」をすると、エラーがでた。
Parse error: syntax error, unexpected '"', expecting ',' or ';' in /home/nucleususer/www/nucleus/plugins/NP_ListArticlesByName.php on line 40

40: echo "<a href=¥"".$itemlink."¥">".$row['title']."</a>";
UTFで保存したので、¥がだめそう。
40: echo '<a href="'.$itemlink.'">'.$row['title'].'</a>';
に変更し、他の場所も同じように直す。
「プラグインの管理」ページを再読み込みすると、「List articles by name」のプラグインが増えた。

スキンの書き換え

サイドバーにArchiveのタイトルを表示したい。
「NP_ListArticlesByName」はスキン変数だから、スキンにいれるんだろう。
[プラグイン]の[スキンファイル]で、今使っているスキン grey_gradient の sidebar.incにコードを挿入してみる。

作者のanandは挿入するコードを、
  <%plugin(ListArticlesByName(50))%>...(50アイテム表示なら)
と書いていたが、あとで Trentが
  <%ListArticlesByName(50)%>
がいいと書いていた。Trentのコードを使うことにする。

「ファイルの編集 sidebar.inc」でコードを見るけど、Navigationという場所が沢山あってどこにいれたらいいか迷ってしまう。
<!-- search: navigation -->
<%if(skintype,search)%>
<dd><a href="<%todaylink%>" title="Today's entry">Today</a></dd>
<dd><a href="<%archivelink%>" title="Archives">Archives</a></dd>
<%endif%>

<dd><%ListArticlesByName(50)%></dd>//ここに入れてみる。

<!-- admin link, only visible if logged in -->
<%if(loggedin)%>
<dd><a href="<%adminurl%>" title="Admin Area">Admin</a></dd>
<%endif%>
</dl>
</div>

「保存」を押す。
....「メッセージ: ファイル sidebar.inc を保存しました。」と表示された。

最初はこんな。


さて、ページを再読み込みすると、
おーっ! リストだぁ。やったね。

まだローカルのテストマシンで動かしているので、実際に見てもらえなくてごめんなさい。

「NP_ListArticlesByName」は55行のプラグインなのでコードが一目瞭然だから、Nucleusの動きが少しわかったような...。
「プラグインのインストール」を押すと、プラグインを追加するプログラムがコードを確かめて、NP_を外した「ListArticlesByName」をどっかの定義場所に追加しているみたいだ。プラグインは、MySqlのnucleusのデータベースのテーブルnucleus_pluginに登録されてるらしい。Nucleusのタグを解釈しながらページを組み立ててるんだ。きっと。
ページを表示するとき、<%ListArticlesByName(50)%> があったら、NP_ListArticlesByName.phpをIncludeするとかそういうことかな。
登録してあるNP_ListArticlesByName.phpを無理矢理削除すると、アーカイブリストが表示されなくなるから、nucleus/plagin/NP_ListArticlesByName.phpを、表示のたびに読んでいるらしい。

今後の課題:
wordPressでやったように、NP_ListArticlesByName.phpに <select>要素を書けば、ドロップダウンで表示できるかも。

不具合発見:
「grey_gradient」の「Navigation」の「Previous Item」と「Next Item」は表示が逆みたいだ。
「Previous Item」をクリックすると、次のアイテムが表示されちゃう。
後で直さなきゃ。

あれ?:
www2.blogger.comは昨日の11:40ごろ(日本時間2008.02.28 11:40)サーバーが反応なかったけど何かあったのかな。気のせいかその後動きが少し悪いような気がして。


追加:プリフィックスをつけたテーブルがあると不具合
別のマシンでNP_ListArticlesByName.phpをテストをしたら、
Error!

プラグインが読み込めませんでした。もくは、使用中の Nucleus 上で動作させるために必要な機能が、プラグインでサポートされていません。(管理操作履歴に詳細があります。)
というエラーが出てプラグインとして組込めない。

管理操作履歴には
2008-03-01 20:14:43 [sample1] Plugin NP_ListArticlesByName was not loaded (does not support SqlTablePrefix)
と書かれていた。
NP_ListArticlesByName.phpは プリフィックスに対応していないらしく、プリフィックスチェックが行われていないようだ。

NP_ListArticlesByName.phpに
function supportsFeature($feature) {
switch($feature) {
case 'SqlTablePrefix':
return 1;
default:
return 0;
}
}
を挿入する。
これでエラーが消え、NP_ListArticlesByName.phpがインストールされた。

実行時(表示時かな)すると、プリフィックスをつけたテーブルにより不具合がでる。
mySQL error with query SELECT i.inumber as itemid, i.ititle as title FROM nucleus_item as i WHERE i.iblog=1 and i.idraft=0 and i.itime<="2008-03-01 21:31:07" ORDER by itime DESC LIMIT 0,50: Table 'nucleus.nucleus_item' doesn't exist <- ホントは'nucleus.nc1_nucleus_item'

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/sample1/web/nucleus/nucleus/plugins/NP_ListArticlesByName.php on line 45
 35: . ' FROM nucleus_item as i'

 35: . ' FROM '.$MYSQL_PREFIX . 'nucleus_item as i'
に変更し、

 global $MYSQL_PREFIX;

を追加してupload。「登録リストのアップデート」をクリックして、登録し直す。



追加:プリフィックスをつけたテーブルがあると不具合を増やしたので、
以前このページに置いていた調べたついでは、いずれ別ページに掲載の予定。

2008年2月27日水曜日

WordPress アーカイブをリストで表示したい

サイドバーでアーカイブの年月を表示しているのは、
<?php //wp_get_archives('type=monthly'); ?>
type=monthlyで年月がでるなら
type=listとかなんとかできないないものか。

探したら、Main_PageのDesign and Layout
Template TagsのGeneral tagsに、wp_get_archives()の説明があった。


  1. 12ヶ月を表示するなら、
    <p><?php wp_get_archives('type=monthly&limit=12'); ?></p>

  2. 15日表示するなら、
    <p><?php wp_get_archives('type=daily&limit=15'); ?></p>

  3. 最後の投稿20個なら
    <p><?php wp_get_archives('type=postbypost&limit=20&format=custom'); ?></p>

  4. ドロップダウンボックスは
    <select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'>
    <option value=""><?php echo attribute_escape(__('Select Month')); ?></option>
    <?php wp_get_archives('type=monthly&format=option&show_post_count=1'); ?> </select>

と書いてある。
それぞれを、
<?php //wp_get_archives('type=monthly'); ?>
と入れ替えてみるとしっかり動く。

ということは、全部の記事をドロッブダウンさせるには、
<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'>
<option value=""><?php echo attribute_escape(__('Select Month')); ?></option>
<?php wp_get_archives('type=postbypost&format=custom'); ?>
</select>
でいけるかも。


さっそくsidebar.phpの
<?php //wp_get_archives('type=monthly'); ?>
の場所に入れてみる。



<?php //wp_get_archives('type=postbypost&limit=20&format=custom'); ?>

<select name="archive_option" onChange='document.location.href=this.options[this.selectedIndex].value;'>
<option>Archives</option>
<?php wp_get_archives("format=option&type=postbypost"); ?>
</select>

こういう選択場所が現れた。

wp_get_archives2.png

ここで選ぶとそのページが表示される。
ごきげん!

2008年2月26日火曜日

Nucleus プラグインを追加する(2)

簡単なプラグインでウォーミングアップしてみる。
「カレンダーをスキンに追加する」これが今回の目標。

プラグインをインストール

np_calendar_v085.zip をダウンロードする。

インストール方法
 1. Zipファイルを展開して、中身をサーバーのプラグインディレクトリにアップロードします
 2. 管理画面からプラグインをインストールします
 3. スキンの適当な場所に、”<%Calendar%>”を挿入します

だって。「 <%Calendar%>」を書き込めばよさそうだ。

ftpで nucleus/plaginにアップロードする。
[サイト管理][プラグイン管理]で「プラグインのインストール」をする。


「Calendar Plugin」のプラグインが増えた。


せっかくだから「編集」で中をのぞいてみる。

とりあえずdefaultのままにしておく。

スキンかテンプレートの書き換え

よく見かけるやつ。サイドバーにカレンダーを置きたい。
[プラグイン]の[スキンファイル]で、今使っている grey_gradient のフォルダをクリックする。

サイドバーはsidebar.incなように思える。

カレンダーを置くために、sidebar.inc の「編集」をクリックする。
「 <%Calendar%>」を入れたい場所に書く。...まだよく理解していないけど。 (--);
「Search」の下「Log in」の上あたりに入れたいもんだ。
sidebar.incを変更したくても、パーミッションが変更可能になっていないと[アクション]が空白になって、「編集」が選べない。
chown -R www-data grey_gradient



<!-- search: navigation -->
<%if(skintype,search)%>
<dd><a href="<%todaylink%>" title="Today's entry">Today</a></dd>
<dd><a href="<%archivelink%>" title="Archives">Archives</a></dd>
<%endif%>

<!-- admin link, only visible if logged in -->
<%if(loggedin)%>
<dd><a href="<%adminurl%>" title="Admin Area">Admin</a></dd>
<%endif%>
</dl>
</div>

「search」「logged in」という部分があった。ここに入れてみる。

<%Calendar%>だけじゃ寂しいので上下に合わせて書きたいが、条件分岐の条件のskintypeがわからないので <!-- bloglist-->の真似をする。
だめだったら戻せばいいのだ。

<!-- search: navigation -->
<%if(skintype,search)%>
<dd><a href="<%todaylink%>" title="Today's entry">Today</a></dd>
<dd><a href="<%archivelink%>" title="Archives">Archives</a></dd>
<%endif%>

<!-- admin link, only visible if logged in -->
<%if(loggedin)%>
<dd><a href="<%adminurl%>" title="Admin Area">Admin</a></dd>
<%endif%>
</dl>
</div>

カレンダーがでた。

でもタイトルの部分が消えちまった!
だめじゃん。

タイトルが消えたgrey_gradientを戻す

まずは元の状態に戻したい。
sidebar.incから該当部分を削除したが、カレンダーは消えたけどタイトルも消えたままだ。
greygradient_skin.zipをもう一度 unzipするがやっぱり元に戻らない。

[レイアウト編集]の[読込/書出]でもう一度「greygradient」を読み込む。

スキンとテンプレートを読み込もうとしています
情報:
ファイル内のスキン: greygradient
ファイル内のテンプレート: greygradient/index and greygradient/item
次のスキン名がぶつかります: greygradient
次のテンプレート名がぶつかります: greygradient/index and greygradient/item

と出たが「はい、これを読み込みます」をクリックする。

[管理ホーム]でブログの[設定]で、「greygradientを」選ぶ。
greygradientが直ってタイトルが表示された。

defaultのスキンの sidebar.incに同じ方法で設定してみる。

<!-- Calendar -->
<div class="sidebar">
<dl class="sidebardl">
<dt>Calendar</dt>
<%Calendar%>
</dl>
</div>


カレンダーが表示された。タイトルも問題なく表示されている。

気を取り直してもう一度 greygradient の sidebar.incに同じコードを設定してみる。

<!-- Calendar -->
<div class="sidebar">
<dl class="sidebardl">
<dt>Calendar</dt>
<%Calendar%>
</dl>
</div>

うまく表示された。なぜだかはわからない。


カレンダーの表示を整える

カレンダーの数字の位置が左寄せになっている。
np_calendar_v085.zip にあった、

Tips and Tricks
To customize the output, please add similar code to the CSS file
table.calendar {
font-size: small;
color: black;
}

tr.calendardateheaders {
font-size: small;
color: red;
}

td.days {
text-align: center;
}

td.today {
text-align: center;
color: green;
background-color: whitesmoke;
}


を入れれば直りそう。


default_right.cssに

/* Menu lists */
.sidebardl

と書いてある。サイドバーはこいつが管理しているらしい。ここの一番下に入れると文字の表示が変わった。

環境

Debian GNU/Linux Etch 2.6.18
mysql- 5.0.32
phpmyadmin 2.9.1
nucleus 3.3
wordpress 2.3.3

2008年2月25日月曜日

Wordpress プラグインを追加する

一方 Wordpress は....プラグインの追加

決まったページをトップページとして表示したい。
Static Front Pageがあった。
はじめはこんな。


wp-content/pluginsにプラグイン「Static Front Page」をアップロードする

ftpが Permission deniedでアップロードできないときは所有者かパーミッションを変える。

# chown sample1:sample1 plugins/

# ls -l
-rw-r--r-- 1 root root 30 May 5 2007 index.php
drwxr-xr-x 2 root root 1024 Feb 6 20:06 languages
drwxr-xr-x 3 sample1 sample1 1024 Feb 6 20:06 plugins
drwxr-xr-x 8 sample1 sample1 1024 Feb 21 22:17 themes
drwxrwxrwx 3 www www 1024 Feb 21 22:26 uploads


# ls -l plugins/
drwxr-xr-x 2 root root 1024 Feb 6 20:06 akismet
-rw-r--r-- 1 root root 2136 Feb 6 20:06 hello.php
drwxr-xr-x 2 sample1 sample1 1024 Feb 22 22:26 sem-static-front

ページをリロードするとアップロードしたプラグインが表示される。

動かすには「使用する」をクリックする。

こうなる。


新しいページを追加してみる。
ヒントはStatic Front Pageにあった、
Defult Usage

Create a static page (Write / Page) called "Home", and another called "Blog".

That's it, you're done…

You can safely rename the two pages after you've created them: What really counts are the pages' slugs, which needs to be "home" and "blog" respectively.

The plugin removes the home page from page lists, and changes its permalink to your blog's url to avoid duplicate content.

Your site will resume to its default behavior if no home page is available.

「Home」というページを作って、スラッグに「home」と入れてみる。

ブログを表示すると、「Home」というページが現れた。


WordPressのスキン、プラグインは、入れればうごくお手軽タイプみたいだ。

Static Front Pageには、
DAdvanced Usage
Customizing the template

You can assign a template to the home page as you would for any other static page.

If you do not, the plugin will resume with your theme's home.php template, if any.

When you are customizing other php files, note that the home page answers to is_home() rather than is_page().

The blog page searches for a blog.php file in your template folder.
というのもあったけど、そのうちに。

環境

Debian GNU/Linux Etch 2.6.18
mysql- 5.0.32
phpmyadmin 2.9.1
nucleus 3.3
wordpress 2.3.3

Wordpress テーマを追加する

一方 Wordpress は....テーマの追加

Wordpress のテーマは、Nucleusではスキン、blogger.comではテンプレートといわれるもの。目的や機能が同じなのに呼び方が変わるとどうもややこしい。Wordpress のテーマがある場所はここら。

http://www.wpthemesfree.com/
Wordpress Themes ... 地平線の向こうまでどのくらいあるかわからない

http://themes.wordpress.net/
Theme Viewer .... 1200以上のテーマがありそう

「Theme Viewer」からいくつか使わせてもらう

fluid-blue-10.zip
anvys-10.zip
cutline-3-column-split-11.zip
borderline-chaos-13.zip
shade-of-gray-01.zip
white-as-milk-10.zip
Ads_prosense.zip

ダウンロードして展開し、wp-content/にディレクトリごとアップロードする。
# ls -l /wordpress/wp-content/themes/
drwxr-xr-x 4 sample1 sample1 1024 Feb 21 22:17 anvys-10
drwxr-xr-x 3 sample1 sample1 1024 Feb 21 22:17 borderline-chaos-13
drwxr-xr-x 2 root root 1024 Feb 6 20:06 classic
drwxr-xr-x 3 root root 1024 Feb 6 20:06 default
drwxr-xr-x 2 sample1 sample1 1024 Feb 21 22:17 fluid-blue-10
drwxr-xr-x 2 sample1 sample1 1024 Feb 21 22:17 white-as-milk-10

ftpが Permission deniedでアップロードできないときは所有者かパーミッションを変える。

# chown sample1:sample1 themes/

# ls -l
-rw-r--r-- 1 root root 30 May 5 2007 index.php
drwxr-xr-x 2 root root 1024 Feb 6 20:06 languages
drwxr-xr-x 3 sample1 sample1 1024 Feb 6 20:06 plugins
drwxr-xr-x 8 sample1 sample1 1024 Feb 21 22:17 themes
drwxrwxrwx 3 www www 1024 Feb 21 22:26 uploads


初期状態のテーマの画面はこんな様子。


テーマをアップロードすると、テーマが増えて表示される。

使いたいテーマをクリックすると、ページがそのテーマのレイアウトに変わる。

テーマ white-as-milk にするとこうなる。


defaultのテーマだとこんな表示。これはみんな知ってるよね。


環境

Debian GNU/Linux Etch 2.6.18
mysql- 5.0.32
phpmyadmin 2.9.1
nucleus 3.3
wordpress 2.3.3

2008年2月24日日曜日

Nucleus プラグインを追加する

独立ページを作りたい

NucleusでもStatic Front Pageのように独立ページを使いたい。
NucleusのプラグインといえばNucleus CMS Japan Wikiが総本山。そこにNP_ExtraSkinJPというのがあった。
Nucleusのテンプレートやスキン変数を自由に呼び出せる独立ページを作る機能があるらしい。
「部品を作る機能と独立ページを作る機能」とあるので、WordPressのプラグイン Static Front Pageの「プラグインをアップロード -> 即ページ反映」みたいのではなくて、Nucleusのことだから、「NP_ExtraSkinJP使ってページスキンを作ろう」という風に考えておくほうがよさそうだ。

  1. プラグインを入れる
    まずはディレクトリの準備。
    # chown sample1 /home/nuleususer/www/plugins

    この部分は間違いだった。

    /home/nuleususer/www/pluginsにNP_ExtraSkinJP047.zipをアップロードする
    /home/nuleususer/www/pluginsでプラグインNP_ExtraSkinJP047.zipを展開する。

    # unzip NP_ExtraSkinJP047.zip

    # ls -l /home/nuleususer/www/plugins
    total 76
    -rw-r--r-- 1 sample1 sample1 31139 Feb 22 17:13 NP_ExtraSkinJP047.zip
    -rw-r--r-- 1 root root 3516 Feb 3 2007 NP_SkinFiles.php
    -rw-r--r-- 1 root root 18351 Feb 15 2006 gpl.txt
    -rw-r--r-- 1 root root 261 Feb 28 2005 index.html
    drwxr-xr-x 2 root root 4096 Feb 22 17:14 pageskin
    drwxr-xr-x 3 root root 4096 Feb 22 17:14 plugins
    -rw-r--r-- 1 root root 719 Oct 10 15:50 readme_jp.txt
    drwxr-xr-x 2 root root 4096 Apr 30 2007 skinfiles

    になってしまった。
    pluginsの中にpluginsは、なんかおかしい。

    readme_jp.txtを読むと
    NP_ExtraSkinJPには挿入部品機能とページスキン機能の2つがあります。

    挿入部品機能のみを利用する場合はpluginsフォルダの中身を通常のようにnucleus/pluginsにコピーしインストールしてください。

    ページスキン機能を利用する場合は、pageskinフォルダの中身をサイトのindex.phpと同じ階層にコピーしてください。URLまわりの設定をしていない場合はextra.phpのほうを、FancyURL設定を施している場合はextraをコピーします。NP_CustomURLを利用している場合はpageskinフォルダの中身は不要です。

    Nucleus本体に同梱のextraフォルダを同じ階層に置いている場合はページスキン機能の稼働を保証できません。extraフォルダは削除しても本体の稼働には影響ありませんので削除してください。

    http://japan.nucleuscms.org/wiki/plugins:extraskinjp

    だそうだ。

  2. 先に展開しておいて、そのフォルダをreadme_jp.txtにしたがってアップロードする。
    /home/nuleususer/www/pluginsにアップロードする
    plugins
     extraskinjp
     NP_ExtraSkinJP.php

    こっちは/home/nuleususer/www/に入れる。
    pageskin
     extra.php
     extra

さて.......?...管理ページに変化がない


...[プラグイン]の[スキンファイル]の下に現れるのを期待していたのに。
違うらしい。

スキンをインストールしたときは、[レイアウト]の[読込/書出]でファイルを読み込んだから、ブラグインも同じような方法かも。

[サイト管理]に[ブラグイン管理]があった。

「プラグインのインストール」がある。

これでExtraskinを選び「プラグインのインストール」をクリックする。


Extraskinが増えた。


左のナビにも、Extraskinが増えた。


[Extraskin]をクリック


「スキンの作成」を押すと次に進む。

とりあえず、プラグインは入った。
あとは使い方。

環境

Debian GNU/Linux Etch 2.6.18
mysql- 5.0.32
phpmyadmin 2.9.1
nucleus 3.3
wordpress 2.3.3

2008年2月23日土曜日

Nucleus スキンを変える

スキンの変更

  1. スキンを手に入れる
    ここらに沢山あるスキンをダウンロードする。
    http://skins.nucleuscms.org/

  2. ftpでアップロードする。
    /home/nuleususer/www/skinsにアップロードする

  3. zipファイルを展開する。
    unzip dusplic_skin.zip
    unzip themissingpiece_skin.zip
    unzip silverside_skin.zip
    unzip coffeencream_skin.zip
    unzip motherearth_skin.zip
    unzip bookish_skin.zip
    unzip nonzero_skin.zip
    unzip elitecircle_skin.zip
    unzip greygradient_skin.zip
    unzip enlighten_skin.zip

    先に展開してからフォルダごとアップロードでもよい。
    ftpが Permission deniedでアップロードできないときは、所有者やパーミッションを変更する。
    # chown sample1:sample1 skins

    アップロードすれば[プラグイン]の[スキンファイル]に表示されると思ったけどハズレだった。

  4. スキンを読み込む
    [レイアウト設定][読込/書出]の「ローカルファイルから読み込み:」でスキンを選び、「読み込み」をクリックする。
    [スキンとテンプレートを読み込もうとしています]で、「はい、これを読み込みます」をクリックする。

  5. スキンを変えるBlogを選ぶ
    [管理ホーム]をクリックしてブログを表示して、スキンを変えたいブログの「設定」をクリックする。

  6. スキンを変更する
    「標準のスキン」でスキンを選択する。
    下の方の「設定の変更」をクリックして変更情報を登録する。

  7. ページを表示して確認する
    これが標準


    ページを再読み込みする。
    変わった! めでたいっ!


    こーゆーのもやってみた。
    絵の位置が期待と違うけど....。

環境

Debian GNU/Linux Etch 2.6.18
mysql- 5.0.32
phpmyadmin 2.9.1
nucleus 3.3
wordpress 2.3.3

2008年2月22日金曜日

Nucleus 画像のアップロードと配置

Nucleusで画像を表示する


右のような感じで画像を入れてみたい。

掲載される画像について

Nucleusは、画像サイズの変更、サムネールの制作を行わない。
アップロードした画像が素のまま掲載されるのであらかじめ画像サイズを調整しておく。
gdライブラリ使った画像アップロード用のプラグインがありそうだけど...?


画像アップロードの最初のステップ

  • 新規投稿なら左のナビの[アイテム追加]の下のブログを選択する。
    .....「アイテムの追加: 」ページが表示される。

  • すでに投稿したアイテムに画像を追加するなら、
     1.「あなたのアイテム」で「アイテム」(ページ)の一覧を表示する。
     2.画像を載せたいアイテムの「編集」をクリックする。
      .....「アイテムの編集」ページが表示される。

.....既に投稿したページに画像を追加する例で説明。


上の画面のアイコンで画像の配置の指定とアップロードができる。

    (1) ... 文字を強調する。<b>要素が挿入される。(<strong>がよさげだけど)
    (2) ... 文字を斜体にする。<i>要素が挿入される。
    (3) ... リンクが追加される。<a>要素が挿入される。
    (4) ... 左配置。<div style="text-align: left"</div>が挿入される。
    (5) ... 右配置。<div style="text-align: right"></div>が挿入される。
    (6) ... センター配置。<div style="text-align: center"></div>が挿入される。
    (7) ... 右画像の文字左流し込み。<div class="leftbox">></div>が挿入される。
    (8) ... 左画像の文字右流し込み。<div class="rightbox"></div>が挿入される。
    (9) ... 画像のアップロードにすすむ。

アップロード操作

上のアイコン(9)をクリックする。
.....すでにアップロードされている画像があれば表示される。
「埋め込み」は、アイテムに画像を埋め込んで表示する。(普通のやつ)
「ポップアップ」は、リンクが張られクリックで新しくウインドウを開いて画像を表示する。
さらに画像をアップロードするときは、「新規アップロード」をクリックする。
「ファイルを選択」をクリックし、アップロードするファイルを指定したら「アップロード」をクリックする
「フィルター適応」は表示ファイルの絞り込みに使う。
拡張子が「jpg」のファイルだけを表示したければ、「フィルター」窓に「jpg」と入力し、「フィルター適応」をクリックする。

「現在のコレクション」は、画像をしまっておくフォルダのこと。
「Private Collection」は今表示しているユーザがアクセスできる画像群。
「share」は他のユーザと共有する画像群のこと。
....この画面では「share」はないので「Private Collection」が固定されている。

アイテムへの画像掲載

画像をアイテムに掲載するときは、ファイル名をクリックする。
.....「Text to display?」の入力窓が表示される。

.......入力すると、img要素のalt属性に文字列が書かれる。
   alt属性=画像にカーソルをあわせたときに表示される文字列

「OK」をクリックすると、「アイテムの編集」ページの「本文」入力窓に画像を掲載するコードが自動的に入る。
画像の配置を行う場合は、アイコンの(7)、(8)をクリックして、「本文」入力窓に位置を指定するコードを入れてから調整する。

画像の削除

画像は、Necleusのディレクトリの中の「media」の中のディレクトリ(例えば 「1」)にある。
rmコマンド、ftpなどで、このディレクトリの中の画像ファイルを削除する。

画像の手動追加

Necleusのディレクトリの中の「media」の中のディレクトリにftpで画像をアップロードする。
mediaディレクトリとその下のディレクトリ(実際に画像ファイルが入るディレクトリ)は、httpでアクセスできてftpもできる所有者にすると、ブラウザでアップロードできてftpもできるので取り回しが楽になる。
例. #chown -R www:ftpgroup media


環境

Debian GNU/Linux Etch 2.6.18
mysql- 5.0.32
phpmyadmin 2.9.1
nucleus 3.3
wordpress 2.3.3

2008年2月21日木曜日

WordplessとNucleus データベース・ユーザの変更

実験を進めやすくするためにWordplessとNucleusのデータベースのユーザを再設定する。

管理ユーザ再設定

mysql -uroot -rootpassword

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| mysql |
| nucleus1 |
| wordpless1 |
+--------------------+

ユーザの確認
mysql> SELECT Host, User, Password FROM mysql.user;

ユーザ削除
mysql> use mysql;
mysql> delete from user where user='OldNucleusUser' and host='localhost';
mysql> delete from user where user='OldWordplessUser1' and host='localhost';

ユーザ削除を確認
mysql> SELECT Host, User, Password FROM mysql.user;

新ユーザの設定
mysql> grant ALL on nucleus1.* to NewUserN1@localhost identified by 'newpasswd1n';
mysql> grant ALL on wordpress1.* to NewUserW1@localhost identified by 'newpasswd1w';

ユーザの確認
mysql> show grants for NewUserN1@localhost;
mysql> show grants for NewUserW1@localhost;

ユーザの確認
mysql> SELECT Host, User, Password FROM mysql.user;
+-----------+------------------+-------------------------------------------+
| Host | User | Password |
+-----------+------------------+-------------------------------------------+
| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| localhost | supervisor | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| localhost | NewUserN1 | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| localhost | NewUserW1 | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+-----------+------------------+-------------------------------------------+

WordPress データベース・ユーザ変更

以前のユーザを削除すると、WordPressがデータベースの認証に失敗する。
http://www.example.com/wordpress/

エラー: データベースに接続できません

新しいデータベース・ユーザに変更する。
wp-config.php
define('DB_NAME', 'wordpress1'); // データベース名
define('DB_USER', 'NewUserW1'); // ユーザー名
define('DB_PASSWORD', 'newpasswd1w'); // パスワード

Nucleus データベース・ユーザ変更

以前のユーザを削除したので、Nucleusがデータベースの認証に失敗する。
http://www.example.com/~nucleus/index.php?blogid=1

Connect Error

Could not connect to MySQL database.

新しいデータベース・ユーザに変更する。
config.php
// mySQL connection information
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'NewUserN1';
$MYSQL_PASSWORD = 'newpasswd1n';
$MYSQL_DATABASE = 'nucleus1';
$MYSQL_PREFIX = '';


疑問:でも大丈夫なんだろうか。
ユーザ名とパスワードを平文で書くことには抵抗がある。
SQLインジェクションならこれがわかれば一発だもんねぇ。

しかも パーミンションも644
とりあえず
# chown www config.php
# chmod 400 config.php
(でも、アタックはブラウザ経由なので、ザルには変わりない)
されど、httpのユーザ wwwが読めなきゃ動かんし。

とりあえず実験中は、
/etc/apache2/conf.d/cms.confでアクセスを規制する。
Alias /cms /home/cms/www/wordpress
<Location /cms>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0
</Location>

環境

Debian GNU/Linux Etch 2.6.18
mysql- 5.0.32
phpmyadmin 2.9.1