オープンソースFAQシステム「phpMyFAQ」のカスタマイズ
オープンソースのFAQシステム「phpMyFAQ」
日本語化もされているけど、どうも情報が少ない…
カスタマイズはほとんどの場合テンプレートを編集すれば出来る。
公式:phpMyFAQ homepage - open source FAQ software | welcome
日本語サイト:phpMyFAQ.JP 日本語サイト - FAQシステム構築 by phpMyFAQ
テンプレート編集だけでは出来ない部分のカスタマイズメモ
バージョンは phpMyFAQ 2.7.2
検索ページのFAQ閲覧回数の非表示
/inc/Faq.php
444行目
$listItem = sprintf('<li>%s<span id="viewsPerRecord"><br /><span class="little">(%s)</span>%s</span></li>',
611行目
$listItem = sprintf('<li>%s<br /><span class="little">('.$this->plr->GetMsg('plmsgViews',$visits).')</span></li>',
以上2箇所のspanタグを削除する。
$listItem = sprintf('<li>%s</li>',
左サイドにタグクラウドを表示させる
/index.php
443行目あたりから始まる
$main_template_vars = array(
の中に以下を追加
'writeTagCloudHeader' => $PMF_LANG['msg_tags'], 'writeTags' => $oTag->printHTMLTagsCloud(),
テンプレートファイル index.tpl
<div id="leftContent"></div>
の中に以下を追加
<section> <header> <h3>{writeTagCloudHeader}</h3> </header> <div id="tagcloud-content"> {writeTags} </div> </section>
全ページに検索フォームをつける
どのページからも検索できるようにします。カテゴリーも選べるように。
もっとスマートな方法があるかもしれません…
記事ページはカテゴリー選択がうまくいきませんorz
/index.php
443行目あたりから始まる
$main_template_vars = array(
より上に以下を追加
$faqCategoryHelper = PMF_Helper_Category::getInstance(); $faqCategoryHelper->setCategory($category); $category->buildTree();
$main_template_vars = array(
の中に以下を追加
'selectCategories' => $PMF_LANG['msgSelectCategories'], 'allCategories' => $PMF_LANG['msgAllCategories'], 'printCategoryOptions' => $faqCategoryHelper->renderCategoryOptions($inputCategory), 'writeSendAdress' => '?'.$sids.'action=search', 'searchBox' => $PMF_LANG['msgSearch'], 'categoryId' => ($cat === 0) ? '%' : (int)$cat, 'msgSearch' => sprintf( '<a class="help" href="%sindex.php?action=search">%s</a>', $systemUri, $PMF_LANG["msgAdvancedSearch"])
テンプレートファイル index.tpl
ヘッダーやフッターやナビゲーション、お好きなところに以下の感じで追加
適宜CSSを編集して下さい。
<div> <form id="search" action="{writeSendAdress}" method="get"> <input type="hidden" name="action" value="search" /> <input type="search" name="search" id="searchfield" size="30" placeholder="{searchBox} ..." /> <select name="searchcategory" size="1"> <option value="%" selected="selected">{allCategories}</option> {printCategoryOptions} </select> <input type="submit" name="submit" value="{searchBox}" /> </form> </div>
検索ページでカテゴリー選択ボックスの中身が二重になってしまうので、
/search.php
117行目を削除
$category->buildTree();
拡張子.htmlで携帯XHTML対応&PHP動作させる (ロリポップ用)
ロリポップは自由にphp.iniを設定できないので、以下の方法では無理だった。
Google Analytics携帯電話向けコード(PHP)をXHTMLに埋め込むメモ - bass-inuのひとりごとメモ
■やりたいこと
まず.htaccess。
.htmlでphpを動かせるように設定する。
(ロリポップの場合)
AddHandler php5.2-script .html
(その他)
AddType x-httpd-php .html
各HTMLの最初に以下を記述。
<?php header("Content-type: application/xhtml+xml");?> <?php echo '<?xml version="1.0" encoding="Shift_JIS" ?>'."\n";?>
あとはいつも通りに携帯ページを作成。
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" /> <title>タイトル</title> </head> <body> 内容 </body> </html>
これでOKです。
Google Analytics携帯電話向けコード(PHP)をXHTMLに埋め込むメモ
アクセス解析のGoogle Analyticsが携帯に対応したので、さっそく全サイトにコードを埋め込んだ。
その中で、XHTMLで構築しているページに使用するときにつまづいたのでメモ。
■携帯サイトの環境
- 3キャリア対応のXHTMLページ
- 拡張子は.html (.htaccecss使用)
■サーバーの環境
- php.iniを編集することができる
■やりたいこと
まずは、php.iniの設定をする。
私の場合は既存のphp.iniをコピーし、以下の2箇所を修正。
モバイルサイトのディレクトリに修正したphp.iniを適用するよう設定した。
short_open_tag = Off default_mimetype = "application/xhtml+xml"
short_open_tag をOffにすることでPHPの省略形を使えなくする。
XHTML内で記述しているxml宣言
<?xml version="1.0" encoding="Shift_JIS"?>
がphpタグとみなされないようにするため。
次は.htaccessの編集。
.htmlでphpを動かせるように設定する。
AddType x-httpd-php .html
以下は削除する。
AddType application/xhtml+xml .html
これでほぼ完了。
次はGoogle Analyticsからアクセス解析のトラッキングコードを取得する。
説明に従って、ga.phpをダウンロードしてサーバーにアップ。
あとは各ページにトラッキングコードを貼付けるだけ。
ですが、先程php.iniをいじったので、トラッキングコードを少し修正する必要がある。
修正するのは