» 2010 » 10月のブログ記事

コメント投稿時に、画像もアップロードできるようにするWordPressプラグインはあまりないようである。

他にもComment-Imagesjk25kと言う物もみつけたが、私の環境ではなぜかうまく行かなかった。

ダウンロードはこちらから「Comment Image

オプションの説明

<Image selection field>

  1. Image selection field:画像選択フィールドの挿入方法
  2. Inject via WordPress hook:WordPressのフックを使用して挿入。
  3. Inject via Javascript:Javascriptを使用して挿入。
  4. Do not inject, manually added:自動的に画像選択フィールドを挿入しない。

「Do not inject, manually added」を選んだ時は、
「comment.php」のtextareaの下に次のコードを挿入。

<input type="file" name="image" />

<Image field label>

画像挿入欄の横に出る説明文を記入

<Thumbnail width>

表示画像の横幅を指定する。

説明にはJPGのみとなっていたが、そのほかにもGIF、PINもOKでした。
ただ、それ以外の形式のファイルの場合はエラーのなるので、plugin.phpの215行目付近を次の様にした。

default:
//$src_img = imagecreatefromjpeg($file);
    wp_die( ('添付画像は、JPEG形式でお願いします。') );
  }

これで、非対応形式のファイルの場合でもエラーにはならず、メッセージが出るようにはなったが、コメントの文章でだけは投稿されてしまうので改善の余地有り。


ユーザーのログイン履歴や行動を記録できるプラグイン。
Tamucha Collageさんのページを参考にさせて頂きました。

会員制サイトの管理に役立つ。

利用者のログインの状況やページの閲覧記録のほか、どの管理者がどの記事をいつ作成し、削除したかとか、いつユーザーを登録したかとか、管理画面での作業内容もと記録できる。

■Actions to monitor

  • File attachments (ファイルのアップロード操作を記録)
  • Audit Trail actions (Audit Trailの操作を記録)
  • Category management(カテゴリーの操作を記録)
  • Comment management (コメントの操作を記録)
  • Link management(リンクの操作を記録)
  • Post & page management(投稿とページの操作を記録)
  • Theme switching(テーマの切替操作を記録)
  • User profiles & logins (ユーザープロフィールの操作とログイン・ログアウトを記録)
  • Registered user page visits(ユーザーのページ閲覧を記録)

■Version display

  • Display versions when editing posts(投稿の編集履歴を表示)
  • Display versions in ascending date order

■Other options

  • Plugin Support(サポートする/寄付する)
  • Auto-expire after [XX] days (0 for no expiry) (XX日後に記録を自動削除(0で削除しない))
  • Ignore users (記録しないユーザーのuser IDを指定 )

Audit Trailの閲覧、設定やcsvダウンロードの権限は’edit_plugins’ と ‘audit_trail’の権限を持つユーザーが可能になっている。

<時差の補正>

時間の表示が9時間ずれていた。

管理ページの「一般設定のタイムゾーン」を「UTC+9」にしているのになぜかダメだ。

解決策として、
WordPressのトップにある「wp-settings.php」の35行目付近の記述を次のように変更した。

変更前

// Set default timezone in PHP 5.
if ( function_exists( 'date_default_timezone_set' ) )
	date_default_timezone_set( 'UTC' );

変更後

// Set default timezone in PHP 5.
if ( function_exists( 'date_default_timezone_set' ) )
	date_default_timezone_set( 'UTC+9' );
 

しかし、この設定変更は、Wordpresのバージョンアップを行った場合、再度同じ書き換えが必要。


<li><h2>ログイン</h2>
<?php if (is_user_logged_in()) : ?>
	Welcome! <?php global $current_user; echo $current_user->display_name ?>さん<br />
	ログアウトは &raquo; <a href="<?php echo wp_logout_url() ?>&amp;redirect_to=<?php echo esc_attr($_SERVER['REQUEST_URI']) ?>">こちら</a>
<?php else : ?>
	<form method="post" action="<?php echo wp_login_url() ?>?redirect_to=<?php echo esc_attr($_SERVER['REQUEST_URI']) ?>">
		<p><label for="login_username">ユーザー名:</label><br />
		<input type="text" name="log" id="login_username" value="" /></p>
		<p><label for="login_password">パスワード:</label><br />
		<input type="password" name="pwd" id="login_password" value="" /></p>
		<p><input type="submit" value="ログイン" /></p>
	</form>
<?php endif; ?>
</li>

ユーザー名、パスワードを8行目の⟨?php echo wp_login_url() ?⟩に渡す。
ログイン直後に管理画面へ移行しないようにするに、「redirect_to」というパラメータを与える。
ログインしたときと同じ表示ページに戻るように、⟨?php echo esc_attr($_SERVER['REQUEST_URI']) ?⟩を指定する。

ログインに成功したら、ユーザー名を表示し、ログアウトへのリンクを張る。(4行目)


エクスプローラー風のツリー表示スクリプトを利用した、WordPress のサブカテゴリーリストのツリー化プラグインをがしたらいくつが見つかった。

しかし、やりた事、

  1. サブカテゴリの折りたたみ
  2. 特定カテゴリの非表示
  3. カテゴリの順番変更

の条件を満たす物はなかなか見つからなかったが、あった。

小粋空間さんでご紹介いただいてるプラグイン:dTreeHandler

プラグインを有効にしてプラグインメニューに現れるdTree Handlerからオプションを設定する。

各オプションの意味は次の通り。

オプション 意味 デフォルト
Use Icons. アイコン使用 false
Use Cookies. クッキーによる折りたたみ状態保持 true
Fold Status is open. ツリーを常に開いた状態にする場合にチェック(クッキーによる状態保持を無効にしている場合のみチェックボックスを表示) false
Use Lines. ツリー画像表示 ture
Use Selection. 選択されたカテゴリー名を反転 false
Use StatusText. ステータスバーにカテゴリー名表示(IE) false
Use dl-dt-dd element at sidebar. サイドバーのマークアップに定義リストが用いられている場合にチェック false
Title of category list. カテゴリーリストのタイトル Categories

そして表示したい所に

<h2>Categories</h2>
<ul>
<!--?php wp_list_cats('orderby=order&style=list&hide_empty=1&title_li=&child_of=18'); ?-->
</ul>

の様に記述する。

注意点としたは、h2の要素内容とオプションで設定しているTitle of category list.の記述を一致させておく必要があることだ。

特定カテゴリの非表示はwp_get_archives、カテゴリの順番変更はCategory Orderが有効で希望どうりだ。


functions.phpに、

//管理者でない時に管理メニューを隠す
function remove_menus () {
	if (!current_user_can('level_10')) { //level10以下のユーザーの場合メニューをunsetする
		global $menu;
		unset($menu[5]);//投稿
		unset($menu[15]);//リンク
		unset($menu[20]);//ページ
		unset($menu[70]);//プロフィール
		unset($menu[75]);//ツール
	}
}
add_action('admin_menu', 'remove_menus');

のように書き込む。

その他unsetしたいメニューがある場合はwp-adminの中のmenu.phpの中を見ていけばわかる。


WordPressは2.7からコメントがスレッドに対応した。
これを利用して掲示板を作る。

まず、ページを作成する。
勿論コメントは受け付ける設定にしておく。

管理画面のディスカッションで次の様に設定する。

スレッド設定

クリックで拡大

そして、comments.phpの任意の場所に、

<?php paginate_comments_links(); ?>

を追加すると、« 前ページへ 1 2 3 次ページへ »と言うリンクが表示される。

Brian’s Threaded Commentsプラグインの導入。
ただし、Brian’s Threaded Commentsに同梱されている、comments.phpは使用せず、デザインのみを使用する。

これで掲示板は完成だが、次の様なプラグインの導入した。

クイックタグを追加できるプラグイン
Comment Form Quicktags « WordPress Plugins

参考ページ:f40.aaa.livedoor.jp/~benjamin/?p=1299

スマイリーアイコン入力用のボタンを表示するプラグイン
WP Smilies« WordPress Plugins

参考ページ:www.grafain.com/wordpress/2009/01/29/2372/

コメント欄

クリックで拡大


ソースコードをきれいに表示してくれるWPプラグイン。

ダウンロードSyntaxHighlighter Evolved

使い方は、コードの部分をこのソースにあった記述で囲む。

[php] PHP用ソースコード [/php]
[css] CSS用ソースコード [/css
[code lang="js"] ソースコード [/code]

言語名 指定する値
Bash/shell bash, shell
C# c-sharp, csharp
C++ cpp, c, c++
CSS css
Delphi delphi, pas, pascal
Diff diff, pach
Groovy groovy
JavaScript js, jscript, javascript
Java java
Perl perl, pl
PHP php
Plain Text plain, text
Python py, python
Ruby rails, ror, ruby
Scala scala
SQL sql
Visual Basic vb, vbnet
XML xml, xhtml, xslt, html, xhtml

使用できるパラメーター

パラメータ 説 明
firstline=”10″ 開始行番号指定
highlight=”15,16″ 強調ライン指定(複数可)
wraplines=”false” 自動折返し無し
autolinks=”false” URLオートリンク無し
toolbar=”false” ツールバー無し
gutter=”false” 行番号無し
ruler=”true” ルーラー表示
collapse=”true” 折り畳み
light=”true” シンプル表示

header.phpに⟨?php wp_head(); ?⟩とfooter.phpに⟨?php wp_footer(); ?⟩がないと動かないので注意。


ウエブメールやツイッターなどで複数アカウントを持っていてそれぞれで同時にログインしようとすると、一つはFirefox、もう一つはIEと言うふうにする必要がある。

しかし、それを同時にFirefoxでできるのはこのアドオン「Multifox」である。

ダウンロード:Multifox(mozdev.org)

こアドオンを導入し、メニューバーの「ファイル」をクリックするとその中のプルダウンメニューに[Open in a New Identity Profile]と言う項目が追加さされている。
これをクリックすると新しいFirefoxが起動する。

ブックマークツールバーの項目を右クリックしても同じメニューが現れる。

ロケーションバーには2つめのプロセスであることを示す「2」マークが表示され、現在どのプロセスにいるのかが判別できる。

この方法でいくつでも起動できる。


見積ナンバーを入力するテキストボックスの更新前処理イベントを利用して、既に入力済みの見積ナンバーであるか否かをチェックした二重入力を防ぐ。
無視して続行するかどうかを選択するバージョン。

Private Sub 見積ナンバー_BeforeUpdate(Cancel As Integer)

    Dim msg As String
    Dim varV As Variant

    msg = "この氏名の社員は既に入力済みです。このまま入力を続けますか?"
    varV = DLookup("[見積ナンバー]", "T_見積", "[見積ナンバー] ='" & Me.見積ナンバー & "'")

    If Not IsNull(varV) Then
        Select Case MsgBox(msg, 17)
            Case 1
                Cancel = False
            Case Else
                Cancel = True
                Me.Undo
        End Select
    Else
        Cancel = False
    End If

End Sub

見積ナンバーを入力するテキストボックスの更新前処理イベントを利用して、既に入力済みの見積ナンバーであるか否かをチェックした二重入力を防ぐ。

Private Sub 見積ナンバー_BeforeUpdate(Cancel As Integer)

    Dim msg As String
    Dim varV As Variant

    msg = "この見積ナンバーは既に入力済みです。"
    varV = DLookup("[見積ナンバー]", "T_見積", "[見積ナンバー] ='" & Me.見積ナンバー & "'")

    If Not IsNull(varV) Then

       If vbOK = MsgBox(msg, 16) Then

         Cancel = False
         Me.Undo

    End If

  Else

    Cancel = False

  End If

End Sub

KUMAOの押入TOP

  • Total : 85638
  • Today :79
  • Yesterday : 194
  • 7days:1402
  • now:1

カレンダー

2010年10月
« 9月   3月 »
 123
45678910
11121314151617
18192021222324
25262728293031

カテゴリー

最近のコメント

アーカイブ

年間アーカイブ

Twitter

Get Adobe Flash player