XOOPSPOLL(投票モジュール)1.00をXCL2.1.6で使う
XOOPS2.016に同梱されている「xoopspoll」モジュールを「XCL2.1.6」に導入してみました。
ところが、投票ブロックの下に表示されるボタンが
「投票」ボタンが「_PL_VOTE」
「結果」ボタンが「_PL_RESULTS」
と表示されてしまい、日本語の文字をひっぱってこれないようです。が、「投票モジュール」としてはちゃんと機能はしているようです。
と、同じことを考えてる方は居るもんで、さっそく助けてもらいました。
ぶぅちゃんの「セツヤクモオシャレノウチ」さん
modules/xoopspoll/blocks/xoopspoll.php
内の
include_once XOOPS_ROOT_PATH.’/modules/xoopspoll/class/xoopspoll.php’;
の前に
global $xoopsConfig;
を入れるとOKなようです。
XCLで自然とログアウトされてしまう-時間延長
XCL2.1Xにアップデートして困ったことがありました。以前の2.0系では問題無かったのですが、管理者でログインしていると設定時間よりも早くセッションがタイムアウトしてしまいログアウトされてしまうんですね。
設定時間というのはご存知、
全般設定>セッションがタイムアウトするまでの時間
の項目ですね。XCL2.1Xではこの設定が生きないんですね。もちろん「セッションの設定をカスタマイズする」は「はい」になってます。
とりあえずPHPのセッションタイムアウト設定をしてみることにしました。方法は「.htaccess」ファイルに以下のように記述します。
php_value session.gc_maxlifetime 86400
上記例の「86400」は秒数で24時間ということになります。一日って86400秒しかないんですね(笑)
ってことで、この「.htaccess」ファイルをXOOPSルートパスにアップロードします。
ってことで、あっさり解決しました。ただ、色々調べてみると、この方法はどのサーバーでも使えるわけではなさそうです。まあ、アップロードだけなんで簡単に試せますし、他への影響も少なそうです。
あーそもそも、セッションタイムアウトが短いとなぜ私は不便かといいますと、ある管理しているサイトには「アマゾン」やら「Google AdSense」が貼ってあるのですが、管理者ログインしている状態では表示されないようにブロック設定してあるんですね。だから、むやみに管理者アクセスで表示させたくないわけです。
それと、いちいちログインしなおすのが面倒くさいと。そういうことです。まあ、セキュリティー上は良くないことはわかっているのですが、面倒臭さには勝てません。
フォームなどから「Google Apps」のメールに受信する方法(その後)
以前書いた記事で間違った解釈をしておりました。要約すると、独自ドメインで運用しているサイトのメールを「Google Apps」で管理していると、そのWebサイトに設置してあるメールフォームやら「sendmail」からのメールが届かなくなる。という問題。
これは、「Google Apps」の仕様だそうです。
実は、あまり理解してないんですが、ダメなものはダメってことで。
で、色々調べていると解決策をお持ちの方のページを発見!!
「Heartfield」さんのページ
ドメインエリアスを追加する方法だそうです。つまり、そのサイトとは「別ドメイン」と思わせることで対処してるのかな??
ってことで、「XOOPS」限定になりますが、私も別の方法が見つかりました。これは、「XOOPS」サイトにユーザー登録があった場合に管理人を送られるメールや標準モジュールである「contact」からのメールが正しく届く設定です。
XCLなら「XOOPS コンフィグ」→「メール設定」を開き
「メール送信方法」を「SMTPAuth」
「SMTPサーバアドレス 」を「ssl://smtp.gmail.com:465」
「SMTPAuthユーザ名 」を「Google Apps」で設定されたアドレスのユーザ名
「SMTPAuthパスワード 」を「Google Apps」で設定されたアドレスのパスワード
上記4ヶ所を設定するだけでした。どうしてこんな簡単な設定だけで「つまずいて」いたのかわかりません。
また、どうしてこんな簡単な設定だけで届くようになるのかも不明です。まあ、結果オーライってことで。
ポイントはSMTPサーバの設定に「ssl://smtp.gmail.com:465」このような設定ができるのか?「SMTP Auth」に対応した設定ができるのか?ってことだと思います。この条件を満たすのであれば「XOOPS」でなくても「CGI」や「PHP」スクリプトのメールフォームから「Google Apps」の「Gmail」にメールを送ることができそうです。
ちなみに、これらの解決策はあくまでも、独自ドメインのメールを「Google Apps」で運用していて、かつ、その同じ独自ドメインのウェブサイトで動いているメールフォームプログラムから正常にメールを受け取る方法です。
「WordPress」でログインしてるか否かで表示・非表示を切り替える
このブログは「XOOPS版 WordPress」からの乗り換えて「普通のWordPress」にしたわけですが、管理人がアクセスした場合には「Google AdSense」の広告などは表示させたくないわけです。
「XOOPS」なら管理人がログイン状態でアクセスした場合は、「AdSense」表示に設定したブロックを表示させないだけで済むのですが、「WordPress」の場合は以下のようなPHPスクリプトを記述します。
<?php if(is_user_logged_in()){ ?>
ログインしているユーザー向けコンテンツ
<?php }else{ ?>
ログインしてないユーザー向けコンテンツ(AdSenseのコードなど)
<?php } ?>
このスクリプトは応用範囲が広そうですね。
もう1つ、「普通のWordPress」は標準状態(又は多くのテーマ)ではトラックバック用のURLがエントリー内に表示されません。関数(?)としては用意されているのですが、テンプレートには組み込まれていないんですよね。何でなんでしょう?他のサイトからはトラックバックされたくない仕様?
ってことで、「Tech de Go」さんのサイトを参考にさせて頂いて組み込んでみました。
<?php if (‘open’ == $post->ping_status) : ?>
こんな感じのスクリプトを「comments.php」あたりの好きな位置に組み込むんですね。
いやー色々勉強になります。
ブログの引越しをしました
ってことで、このブログも5年目を迎え、ホスティングサーバの移動とプログラムの変更をしました。 とりあえず、自分のためのメモ書きってことで。
目的は、表示スピードの遅さ&古いプログラムへの不安ですね。速くなったでしょうか?
サーバ:「80code.com」→「coreserver.jp」
CMS:「XOOPS版WordPress」→「普通のWordPress」
まず、「CORESERVER」で「WordPress」をインストールしたわけですが、少々問題があります。「xrea」のサーバでは「php」スクリプトをセーフモードで動かすため(?)「WordPress」のファイルアップロード機能で自動的に作成されたフォルダの所有者が「apache」になってしまい正常にファイルをアップロードできません。そこで、サーバーのコントロールパネル内「ツール」→「ファイル所有者の修正」で「apache」→「ユーザ」になるようにします。
それと、併用して必要と思われるのが、「php」を「cgi」として動作させるということです。これは「wp-admin」ディレクトリーに以下の内容で「.htaccess」を設置します。
<files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>
<files plugin-install.php>
AddHandler application/x-httpd-phpcgi .php
</files>
<files update-core.php>
AddHandler application/x-httpd-phpcgi .php
</files>
<files update.php>
AddHandler application/x-httpd-phpcgi .php
</files>
ってことで、まずはブログ記事のバックアップです。これは以前書いた記事通りで、別に一応データベース(MySQL)のバックアップもしておきましたが、RSSのエクスポートで済ませました。
で、出力したファイルを「ダッシュボード」→「インポート」→「RSS」からインポートして完了です。記事内でリンクされたピクチャーへのハイパーリンクは「XOOPS」用の「/modules/wordpress/wp-content/uploads」を指していますので、エディターの一括置き換えを使い「/wp-content/uploads」にインポート前に変更しておくと良いと思います。
ってことで、無事引越し&プログラム変更をして一安心なのですが、日々試行錯誤しております。しかし、ブログに特化しているだけのことはあり「WordPress」は良いですね。ブログ専門のサイトは以前から「WordPress」で作っていたのですが、会員登録などの要素がコンテンツに含まれる場合は私には「XOOPS」しか選択肢がありません(笑)










