2009年10月28日水曜日

 

【XOOPS】gnaviモジュールを基にした不動産物件サイト構築モジュール - ielog

gnaviモジュールを不動産屋向けに改造さえてもらいました。画像・項目追加版 - XOOPS Cube日本サイト
デモ:家log
配布サイト:Xoopsの不動産会社向けモジュールや、テーマのご紹介ページです。

インストール

配布サイトからモジュールをダウンロード。既にGnaviが導入されていれば「xoops_trust_path モジュール名 IELOG」の方をダウンロード。
解凍して出来たディレクトリ(「Gnavi-plus-ielog-turu-ielog.」など)内のディレクトリを2つアップロードする。

・「html/modules/ielog/」ディレクトリ
 →「xoops/modules/」ディレクトリ以下にアップ
・「xoops_trust_path/modules/ielog/」ディレクトリ
 →「xoops_trust_path/modules/」」ディレクトリ以下にアップ

管理メニューからモジュールをインストールする。

正式版がでるまでのつなぎとしてお考えくださればOKです。

と仰ってますが使用に十分耐え得ると思う。Gnaviカスタマイズの参考にもなる。
もしかしたら、テンプレート・ファイルの文字コードによるエラーが出たり、ディレクトリが存在しないエラーが出るかもしれない。
エラーログを参考にファイルの修正や権限の変更など適宜対応。

ラベル:


 

【XOOPS】picoカスタマイズ - 入力項目の追加

pico の 任意追加フィールド機能(extra_fields) - Xoops Users Group Japan

ラベル:


 

【XOOPS】グルメなどリンク集サイトを運営するためのモジュール

WEBリンク集サイトを構築するモジュール。GoogleMapの連動やリンク切れチェック、RSS管理なども可能。

インストール

以下リンク先から、ダウンロード・解凍して出来た「weblinks/」ディレクトリを「xoops/modules」にアップロードして管理画面からモジュールインストール。
同サイトで配布している「HappyLinux モジュール」が必須。

WebLinks モジュール 1.95 - はっぴぃ・りなっくす
必須:XOOPS HappyLinux モジュール 1.50

設定が凄い多い。カスタマイズすれば可能だろうが、WEBリンク集モジュールなので投稿にURLが必須で、飲食店ポータルサイトにそのまま使うことは出来ない。
画像アップロード機能がないので、画像を使いたい場合は工夫が必要。
他の画像管理モジュール等を利用して、リンクの投稿記事内に「<img>」タグで埋め込むといった方法など。

構築事例

うい・らぶ・だいびんぐ - We Love Scuba Diving
リヒテンシュタインの歩き方

ラベル:


2009年10月16日金曜日

 

【EC-CUBE】“商品ごと”や“重量別”など送料カスタマイズ

EC-CUBEには商品ごとの送料設定の項目が中途半端に実装されており、コメントアウトされているとのこと(管理画面のパラメータに設定するところはある)。
それを使用する。

『商品送料』の項目は『商品管理』にはデフォルトで存在しないので、リンクの「EC-CUBE Trac」を順番に実装にしてから、その他リンクを参考に。
「チェンジセット 17970」には誤りがあるので「チェンジセット 18114」を参考に修正。
「data/class/helper/SC_Helper_DB.php」や「data/class_extends/helper_extends/SC_Helper_DB_Ex.php」を修正して送料を計算している。

参考

EC-CUBE Trac
チェンジセット 17970
チェンジセット 17971
チェンジセット 18114
都道府県・重量別送料 - [EC-CUBE メモ]
送料カスタマイズ|EC-CUBE覚え書き - あじわい館 - オンラインショップ担当日記

ラベル:


2009年10月8日木曜日

 

【Python】外部モジュールの利用

CGIとして使う場合。

その1

スクリプトの先頭付近で「sys.path」に外部モジュールのインストール先のパスを追加してから「import」する。

import sys
sys.path.append('/home/foo/lib/python')
import spam

その2

環境変数 PYTHONPATH をセットする。

#!/usr/bin/env PYTHONPATH=/home/foo/lib/python python
import spam
「さくらのレンタルサーバ」で Python 外部モジュールを使う 改訂版 -

ラベル:


 

【Python】『UnicodeEncodeError』とUnicode型について【Unicode】

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
これは、(unicode型である)u1と比較するために、(str型である)s1を文字コード'ascii'でデコードしてunicode型にしようとしたのですが、できませんでした、というエラー

以下のコードはUnicode型を宣言するものであって文字コードがUTF-8ではない。

/* Unicode型変換 */
u'テスト'
unicode(s1)
 // システムのデフォルト文字コード(ascii)になる

文字コードを変換するならば次の様にする。

/* str型の変数を文字コードUTF-8に変換 */
s1.encode('utf_8')

UTF-8にする場合は次のように明記する。

/* 文字コードがUTF-8のUnicode型に変換 */
unicode(s1, 'utf_8')

unicode型を使わずに、str型に特定の文字コードのバイト列を格納してプログラムを書くことも可能だが、どの変数にどの文字コード列が格納されているのかを常に意識しなければならない。

/* 文字コードによるバイト列の違いとUnicode型 */
# EUC-JPなソースコードでは
>>> len("あ")
2
# UTF-8なソースコードでは
>>> len("あ")
3
# unicode型なら
>>> len(u"あ")
1

他にも正規表現の扱いや、文字コードの誤認識によるセキュリティなども気をつけなければならない。
Pythonでは国際化されているライブラリやアプリケーション等では、unicode型での入出力を前提にしている。

入力された文字列はなるべく早い段階でunicode型に変換し、その文字列は出力されるぎりぎりまでunicode型で保持するようにこころがけ、上記のような暗黙に変換されるような処理を書かないよう工夫するのがベストだと私は思います。

詳しいことは以下を参考。よくあるはまりどころと解決策が載っている。

参考

PythonのUnicodeEncodeErrorを知る - HDEラボ
UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。 - SumiTomohikoの日記
UnicodeとUTF-8の違い - WeekBuildのHACK日記

ラベル: ,


This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google