ECCUBEのブロックでPOSTが使えない件

私はECUBEでページを作成するときに、
固定ページの作成であっても、
空のページを作ってからそこにブロックを使って作成します。
まぁどこかで使う可能性とか考えるとそっちの方がのちのち便利かなと・・・

で、ECCUBEを2.11.1にしてから(実際には2.11からかな?)
ブロックでPOSTができない問題がおきた。
データを送信しすると
「不正なページ移動です」となってしまう。

で、何が問題かというと
トランザクションIDを送信してないのが問題で、
Formタグの中に下を追加すればいいって問題だけじゃ済まなかった。

<input type=”hidden” name=”<!–{$smarty.const.TRANSACTION_ID_NAME}–>” value=”<!–{$transactionid}–>” />

実際には
トランザクションIDが取得できていないので
上の$transactionidはNULLになってしまっている。
この問題はブロックのみに起きている問題で固定ページには問題が起きない。

固定ページとブロックでは継承するクラスが違うため
固定ページの場合はデフォルトでトランザクションIDを取得しているのに対して
ブロックでは取得してない。

そのため、ブロックのロジックファイルに

$this->doValidToken();
$this->setTokenTo();

を追加すればトランザクションIDを取得するので
POSTした際に不正なページでなくなる。

wordpressにトラックバックURLを表示する

今まで自分のブログにトラックバックURLが表示されていないことに気づいたw
「トラックバックする」って項目まであるのに・・・・

自分が削除してしまったのか
テンプレートから元々なかったかわからないけど、
まぁ消してしまったのかもしれないなw

トラックバックURLの表示の仕方は

<?php trackback_url(); ?>

をテンプレートに書けばOKです。

どこに書くかは自由ですが
コメントやトラックバックはcomments.phpに書かれています。
(使用したテーマによって違いはあると思いますが。)
そこの下の方に書けばいいと思います。

下のコードをコピペすれば、
このブログの個別ページのような感じで表示されます。
後は適当に文字を追加したりCSSで整えたりすれば利用できます。

<div class=”trackback” style=”float:left;”>
<?php if (‘open’ == $post->ping_status) : ?>
<h3 id=”trackback-url”><?php _e(‘Trackback URL’, ‘hoge’) ?></h3>
<p class=”trackback-comment”></p>
<input onfocus=”this.select()” readonly=”readonly” value=”<?php trackback_url(); ?>” class=”tb_url” id=”tb_url” name=”tb_url” accesskey=”x”/>
<?php endif; ?>
</div>

ロリポップにPEARをインストールする

ロリポップにpearをインストールしたいと思います。

ロリポップはPEARをインストールする権限が与えられないですが
ブラウザ経由でならインストールすることができます。

ここからソースコードをDLします。
名前を付けて保存なり、コピペなりして保存してください。
名前に意味があるかは分かりませんがgo-pear.phpで保存すればいいと思います。

サーバーに適当なディレクトリを作成してファイルを保存してください。
(自分はCacheとしました)

ブラウザでhttp://ドメイン名/保存ディレクトリ/go-pear.phpに
アクセスするとインストール画面がでます。

後は適当に進めます。

自分はここでエラーが出てしまいました。
index.phpの8行目に問題があるみたいです。

8行目
$pear_dir = ‘@pear_dir@’; // default of install

どうも、
$pear_dirのパスが悪いみたいなので以下のように変更しました。
$pear_dir = ’/フルパス/Cache/PEAR’;
自分の場合はこんな感じになります。
$pear_dir = ‘/home/users/2/main.jp-nigolf/web/Cache/PEAR’;

で、もう一度エラーが出たところでリロードすれば
インストール完了します。

赤枠で警告が出ていますがよくわかないので無視。
もう、これでPEARのインストールは完了です。

ですが、インストールしたCacheフォルダをこのままにしておくと
誰もがアクセスできるようになってしまい
インストールされたり、いろいろまずいです。

そのため、Cacheディレクトリに.htaccessを設定します。
中には
deny from all
と書くだけでokです。
これを設置するとブラウザからアクセスした場合に403のエラーとなります。
(PHPからアクセスする場合は問題なく動作します)