人間工学キーボード

Microsoft Comfort Keyboard 2000
愛用のマイクロソフト キーボード Comfort Curve Keyboard 2000 B2L-00009

以前、キーが効かなくなったので、
これが、二代目。

なんだかんだで、もう10年近く使っているだろうか?

 

先日、Shift+9が反応しない事件があり、
次の予備がないので、そろそろ代え用意しておいてもいいかもと。

※F10が、物によって押されていたのが原因だった。

 

残念ながら、このMS Confort 2000は、廃盤で、
中古なら、先ほどAmazonで見つけたが、
人が使ったテカテカのキーボードだけは、どうも使う気にはなれない!
こんな高額なキーボードなら、妥協して他のを探すw

ノートなんかは、キーボードシートを張っているので、
キーボードはどれも、新品同様w

 

デスクトップキーボードは、交換が可能なので、
テカリは気にしていないが、

なかなか、代えとなると、難しい。

[クーポン利用で10000円以上(税別)のご購入時に送料無料!!]マイクロソフト キーボード Comfort ...マイクロソフト キーボード Comfort Keybord 2000
価格:16,502円(税込、送料別)

同種だけど、高すぎる・・・

 

人間工学キーボード型となると、余り数はなく、必然的に、
これが、最有力候補となる。

 

ページ送りとか、ズームとか、追加機能もついてる高性能版!

 

あと、マウスは、WEB系をしていると、
どうしてもクリックする指が痛くなってしまうので、
左利き専用マウスを使っていたが、

それでも、指がいたくなったので、

トラックボールに落ち着いている。

とりま、っていうなら↑が安いのでオススメ。
でも、2つとも、クリックの反応が悪くなったので、
↓に交換。もうすぐ2年目だけど、ホント快適!w

-

サブディレクトリのEccubeを、.htaccessでトップにダイレクト

※この方法では、カート > 購入のところで、動きませんでした。

設計上、同じ処理になってないんでしょうね・・・
残念です。

 

今回、SSLが別ディレクトリー運用できない
GMOの腐ったサーバーだったので、

仕方なく、サブディレクトリで運用。

でも、URLが、不格好・・・

 

で、いろいろ、試してみた。
※実際には、サブディレクトリ「eccube」にあるものとする

> /data/config/config.php

  • define(‘HTTP_URL’, ‘https://shoroji.com/’);
  • define(‘HTTPS_URL’, ‘https://shoroji.com/’);
  • define(‘ROOT_URLPATH’, ‘/’);

と設定した場合、リンク先は、すべてルートを見に行くが、
ファイルが存在しないので、表示がされないので、

.htaccessでリダイレクトしてやる。

  • RewriteCond %{REQUEST_FILENAME} !-f
  • RewriteCond %{REQUEST_FILENAME} !-d
  • RewriteRule ^.*$ /eccube%{REQUEST_URI} [L]

ま、これは、わけないが、
実際には、外郭のテンプレートは表示されるものの、
メインであるボディーが表示されない。

エラーをみると、

2015/09/02 17:06:41 [/*/products/list.php] Warning(E_USER_WARNING): ページ情報を取得できませんでした。 on [C:\*\_data\class\helper\SC_Helper_PageLayout.php(58)] from 0.0.0.0
2015/09/02 17:06:41 [/*/products/list.php] Warning(E_USER_WARNING): メイン部のテンプレートが存在しません。[C:/*/_data/Smarty/templates/*/.tpl] on [C:\*\_data\class\helper\SC_Helper_PageLayout.php(65)] from 0.0.0.0
2015/09/02 17:06:41 [/*/products/list.php] Warning(E_USER_WARNING): Smarty error: unable to read resource: "C:/*/_data/Smarty/templates/*/.tpl" on [C:\*\_data\module\Smarty\libs\Smarty.class.php(1094)] from 0.0.0.0

問題点は、.tplの前がなく、
つまり、テンプレートファイルが見つからないというエラー。

 

/eccube/にインストールしている場合、
通常であれば、

  • $_SERVER[‘SCRIPT_NAME’] = /eccube/index.php
  • ROOT_URLPATH = /eccube/

となるので、
結果として、「index.php」が取り出されるのだけど、

今回、ルートで運用したいので、ROOT_URLPATH = /
としているため、処理がうまく出来ていない。

 

では、どうしたらいいか?

というと、
その書き換えをしている「SC_Helper_Pagelayout.php」を修正します。

実際には、function getPageProperties に与えられる、
第4パラメーター「$arrParams」に、
/eccube/index.php のまま渡されてくるので、これを、書き換えてやります。

 

↓を、「SC_Helper_Pagelayout_ex.php」(拡張クラス)に、追加。

class SC_Helper_PageLayout_Ex extends SC_Helper_PageLayout
{
 public function getPageProperties($device_type_id = DEVICE_TYPE_PC, $page_id = null, $where = '', $arrParams = array())
 {

## begin
 if (count($arrParams) > 0) {
 #var_dump(ROOT_URLPATH_redirect);
 #var_dump($_SERVER['SCRIPT_NAME']);
 $arrParams[0] = preg_replace('|^'. preg_quote(ROOT_URLPATH_redirect). '|', '', $_SERVER['SCRIPT_NAME']);
 }
 ## end

 $objQuery =& SC_Query_Ex::getSingletonInstance();
 $where = 'device_type_id = ? ' . (SC_Utils_Ex::isBlank($where) ? $where : 'AND ' . $where);
 if ($page_id === null) {
 $where = 'page_id <> ? AND ' . $where;
 $page_id = 0;
 } else {
 $where = 'page_id = ? AND ' . $where;
 }
 $objQuery->setOrder('page_id');
 $arrParams = array_merge(array($page_id, $device_type_id), $arrParams);
 #var_dump($arrParams);

 return $objQuery->select('*', 'dtb_pagelayout', $where, $arrParams);
 }
}

大事な部分は、 begin~endの

$arrParams[0] = preg_replace('|^'. preg_quote(ROOT_URLPATH_redirect). '|', '', $_SERVER['SCRIPT_NAME']);

LC_Page.php [102行目]で、
$_SERVER[‘SCRIPT_NAME’]が第4パラメーターに渡され、
SC_Helper_PageLayout.php [50行目]で、
ROOT_URLPATH を置換して、

dtb_pagelayout上のテンプレート名を
引っ張ってきているという流れなので、

 

ROOT_URLPATHを、Eccube上関係ない定数
「ROOT_URLPATH_redirect」に置き換えて、URLを補正した次第です。

 

※ROOT_URLPATH_redirectは、環境によって異なるだろうから、
/data/config/config.phpで、定義しています。

  • define(‘ROOT_URLPATH_redirect’, ‘/eccube/’);

以上。

しかし、

ずいぶん、Eccube通になってきたww

PS.
答えじゃなくて、ヒントになる程度に、書いてます。
見る人が見たら、答えなんだけどw

.

-