freoのカスタマイズ
08/17 : No input file specified.について書きました。
このブログシステムがfreoですが
いじってる時に気がついたことを少しメモっておきます。
改ページ挿入時の「続きを読む」をタイトル+続きを読むに変える
internal/default/default.htmlの112行目あたり
internal/view/default.htmlの42行目あたり
<p><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}?continue=1#continue" title="No.{$entry.id}の続き">続きを読む</a></p>
これを下のように変える
<p><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}?continue=1#continue" title="No.{$entry.id}の続き">{$entry.title}の続きを読む</a></p>
続きを読むの直後や記事の最後にワンポイントを挿入
広告や告知などを記事中に挿入したいい場合
internals/view/default.htmlのソースから
{$entry_text.more|smarty:nodefaults}を見つけて下のように変更してください。
htmlタグが使えます。というかhtmlタグで書いてください。
<b>続きを読むの直後に挿入されます</b>
{$entry_text.more|smarty:nodefaults}
<b>記事の最後に挿入されます</b>
不要なページを検索結果から削除する
freoのログイン画面やパスワード再発行画面まで
グーグル検索が拾って検索結果に表示してしまいます。
ログイン画面なんか検索で表示されても
誰も興味はないですし検索から除外してしまいましょう。
削除したページがいつまでも検索結果に出てしまってる
という場合にも有効です。
robots.txtを作成し、ドメインのトップに置く。
私の環境だと↓がドメインのトップになります。
https://blog.psocafe.com/robots.txt
※ レンタルサーバーはドメインのトップに置けない場合があります。
例) http://example.com/ユーザーID/index.html
こんな感じになってる人だと
トップのドメインはhttp://example.com/robots.txtになります。
ユーザーがファイルを置ける位置は
http://example.com/ユーザーID/robots.txtですから
置いてもグーグルはrobots.txtを見てくれません。
こんな場合はrobots.txtでの検索拒否はできません。
robots.txtに書く内容は以下。
User-agent: *
Disallow: /login
Disallow: /reissue
Allow: /
Allow: /の下には改行を入れてください。
理由は・・・謎です。
そうしたほうがいいということなので、そうしてください。
freoのログインまでの相対パスは人によって代わります。
Disallow: /loginの人もいればDisallow: /index.php/loginみたいな人もいます。
自分の環境に合わせてrobots.txtの内容を変更してください。
robots.txtに書いても
検索結果には結構長いこと残ってることもあるようなので
ウェブマスターツールからURLの削除も並行して行うと24時間程で削除されます。
FireFoxを使うとコピペができない
FireFoxの仕様です。
自分のブログを許可することでコピペできるようになります。
user.jsというファイルを作成し、
以下のhttp://www.mozilla.orgの部分に自分のブログのURLを入れて保存。
user_pref("capability.policy.policynames", "allowclipboard");
user_pref("capability.policy.allowclipboard.sites", "http://www.mozilla.org");
user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess");
user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess");
複数のサイトを登録する場合は、
user_pref("capability.policy.allowclipboard.sites", "http://www.mozilla.org http://example.com");
というように、半角スペースを入れてURLを追加してください。
Vista / Windows7
C:Users/ユーザ名/AppData/Roaming/Mozilla/Firefox/Profiles****.default
2000 / XP
C:Documents and Settings/ユーザ名/Application Data/Mozilla/Firefox/Profiles****.default
この****(ここは人によって違います).defaultフォルダにuser.jsを入れてください。
AppDataはディフォルトで非表示になってます。
見えない場合は表示するようにしてください。
Win7の場合だと、フォルダを開いて、上にあるメニューバーの
整理→フォルダーと検索のオプション→表示の項目の中に入ってます。
最後にFireFox再起動
SQLite3のデータベース編集
TinyMCEの影響でYouTubeの動画が貼り付けられなかったり
投稿や編集をするとたまっていくログ閲覧のログを消去したり
そんなデータベースの編集を簡単に行えるツールがあります。
PupSQLite
http://www.vector.co.jp/soft/winnt/business/se449564.html
データベースの編集機能の他に最適化が行えます。
最適化を行うとファイルサイズが若干小さくなるためサーバーにやさしいです。
ファビコン追加
templates/header.htmlの<header>から</header>までの間に以下を追加
<link rel="shortcut icon" href="http://ファビコンまでのURL/favicon.ico">
Smartyの機能を使った書き方
public_html/favicon.icoに置いた場合
<link rel="shortcut icon" href="{$freo.core.http_url}favicon.ico" />
public_html/templates/favicon.icoに置いた場合
<link rel="shortcut icon" href="{$freo.core.http_url}{$smarty.const.FREO_TEMPLATE_DIR}favicon.ico" />
メッセージ登録プラグインに投稿キーを付ける
メッセージ登録プラグのmessage/default.htmlに投稿キーのタグを付ける。
投稿キープラグインのconfig.postkey.phpを開き
//beginファイルの読み込み設定にmessageを追加する
define('FREO_PLUGIN_POSTKEY_LOAD_BEGIN', 'page,regist,view,message');
メモ帳でテンプレートファイルを書き換えない
2010/06/01に公式のトラブルシューティングに追加されました。
windows付属のメモ帳で書き換えるとレイアウトが崩れる事があります。
間違ってないのにあれ?あれ?っとなってちょっと戸惑いました。
文字コードの問題のようですので
TeraPadなどの対応したテキストエディタを使うことで回避できます。
TeraPad
http://www5f.biglobe.ne.jp/~t-susumu/
templatesファイルが更新されると書き換えが面倒
改造したテンプレートを使っている場合
freoのバージョンアップでテンプレートに更新が入ると
テンプレートの更新ファイルに対して改造部分を移植する必要が出てきます。
何も使わずに手作業で移植をするとこれが実に手間がかかるわけです。
書き換えのミスにも繋がりますし。
そこで便利なのがWinMergeです。
テキスト内容の差分を比較して視覚的にわかりやすくしてくれるツールです。
https://blog.psocafe.com/view/14
テンプレートにJavaスクリプトを挿入するとエラーになる
Javaスクリプト内のタグに { } が含まれているとエラーがでます。
smartyがJavaスクリプト内の{}まで読み込んで処理しようとしてしまうことが原因です。
{literal}{/literal}で囲い込むと回避できます。
{literal}
<script language="JavaScript" type="text/javascript">.....</script>
{/literal}
エントリー登録しようとすると「不正なアクセス」と表示されます
投稿の直前に他のページを開くと「不正な遷移があった」とみなしてエラーにします。
不正アクセスによる攻撃(CSRF)を防ぐため、どうしても現在の仕様になってしまいます…。
とのことでセキュリティ上の配慮からのもので正常な挙動のようです。
http://www.favorite-labo.org/view/260
No input file specified.と表示される
PHPのセーフモードによる制約を回避するため、
CGI版PHPで動かそうとする時に発生します。
coreserverの場合は.htaccessに以下を追記します。
# CGI版PHP
AddHandler application/x-httpd-phpcgi .php
# No input file specified.対策
mod_gzip_on Off