CPGの改造
Coppermine Photo Galleryは写真を管理するウェブアプリケーションです。
ブログとの連携
ブログと組み合わせると便利なのですが、写真のリンクソースを表示させる改造をします。
- editOnePic.php
// If this is the users gallery icon then check it
と書いてある行の前に下記のソースを挿入。
$homepage = $CONFIG['site_url']; print <<<EOT <tr> <td class="tableb" style="white-space: nowrap;">リンクのソース</td> <td width="100%" class="tableb" valign="top" colspan="2" > <input type="text" style="width: 100%" name="user4" maxlength="255" value='<a href="$homepage$thumb_link"><img src="$homepage$thumb_url" class="image" border="0" alt="{$CURRENT_PIC['title']}"/></a>' class="textinput" /> </td> </tr> EOT;
これをUTF-8で保存。
- editpics.php
function form_options() { global $CURRENT_PIC, $lang_editpics_php; $isgalleryicon_selected = … $isgalleryicon_disabled = …
の後に下記のソースを挿入
$thumb_url = get_pic_url($CURRENT_PIC, 'thumb'); $thumb_link = 'displayimage.php?&pos='.(-$CURRENT_PIC['pid']); $homepage = $CONFIG['site_url']; print <<<EOT <tr> <td class="tableb" style="white-space: nowrap;">リンクのソース</td> <td width="100%" class="tableb" valign="top" colspan="2" > <input type="text" style="width: 100%" name="user4" maxlength="255" value='<a href="$homepage$thumb_link"><img src="$homepage$thumb_url" class="image" border="0" alt="{$CURRENT_PIC['title']}"/></a>' class="textinput" /> </td> </tr> EOT;
globalを追加
global $CONFIG;
xreaのデータベース対策
include/function.inc.php
function cpg_db_connect() { global $CONFIG; $result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']); if (!$result) { return false; } mysql_query("SET NAMES utf8", $result); if (!mysql_select_db($CONFIG['dbname'])) return false; return $result; }
キーワードのデリミタを適切にする
キーワードは、半角スペースで区切ります。 全角で入力してしまった場合、一括で置換しましょう。
UPDATE cpg132_pictures SET keywords=REPLACE(keywords,' ',' ')
CPGのコメントスパム対策
Coppermine Photo Galleryは写真を管理するウェブアプリケーションです。 このコメントスパム対策をします。 元の記事は http://coppermine-gallery.net/forum/index.php?topic=33827.0
ダウンロード
- Akismet API keyを入手する http://wordpress.com/api-keys/
- ライブラリを入手
- 解凍した中にあるAkismet.class.phpをCPGのルートへアップロードする。
設定
db_input.phpを開く
- 最初の方に
include 'Akismet.class.php';
を加える。
- $insert = cpg_db_queryを含む行が2つありますが、その最初の方の行の前に
$WordPressAPIKey = 'your Akismet API key goes here'; $MyBlogURL = 'http://www.example.com/coppermine_root_dir/'; $name = $msg_author; $comment = $msg_body; $akismet = new Akismet($MyBlogURL ,$WordPressAPIKey); $akismet->setCommentAuthor($name); $akismet->setCommentAuthorEmail($email); $akismet->setCommentAuthorURL($url); $akismet->setCommentContent($comment); $akismet->setPermalink('http://www.example.com/blog/alex/someurl/'); if($akismet->isCommentSpam()) // store the comment but mark it as spam (in case of a mis-diagnosis) cpg_die(ERROR, $lang_errors['perm_denied'], __FILE__, __LINE__); else
を挿入する。
- このelseの後ろで、
$insert = cpg_db_query("INSERT INTO {$CONFIG…
という行が実行される。