オープンソース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();