登録日
2010年12月13日

メンバー検索

  

build1024

名前(ニックネーム)
build
自分のconcrete5サイト
ホームページ
http://www.every-little.com/
自己紹介
2010年からオープンソースCMSを色々触っています。サイト制作経験のあるのはconcrete5, MODx, WordPress。
本家サイトでは別名義(hira)でやっています。concrete5の内容はconcrete5サイトに、それ以外は本家サイトに分ける予定(concrete5サイトは開発途上です)。
concrete5.org のユーザー名
concrete5 Slack Team ID
Twitterアカウント
@build_kobekko
フォーラム総投稿数
50

コミュニティバッジ

投稿

31から40までを表示 (計50)

Not Foundページの動作について

毎度お世話になります。

サイトマップより「Page Not Found」ページを訪問して編集モードにした後、存在しないURLにアクセスする(Not Foundを発生させる)と、そのページは編集できないのに「Mainに追加」などの文字列が表示されます。こういうものなのでしょうか?

もう1点、編集モードにした場合に限らず、存在しないURLにアクセスすると、titleタグの中にページタイトルに当たる部分が出力されなくなります。Not Foundページ自体を訪問した場合には問題ありません。
(「test site :: Page Not Found」のように出てくれたらいいけど、「test site ::」と表示されてしまう)

5.4.1.1時点で発生を確認しました。調査よろしくお願いします。

Posted on 2月 25, 2011 at 12:51 午後

Re: Re: Re: Re: ファイル名のマルチバイト文字対応

これ、MacやUnix使いの人たちは、Shift JISエンコードで圧縮されちゃうと、私たちが文字化けになっちゃう可能性ありですか?

ますます、ファイルマネージャー日本語対応を公式で行うことが怪しくなってきたという印象です。


正直言って、ZIP圧縮ダウンロードなどという機能があることに今日気づきました。自分でやっときながら、まさかこうも面倒なことになるとは、という感じです。

PHP Zipを使う場合はいいですけど、zipコマンドを使う場合は格納名がサーバーの文字エンコーディングに依存したりするんですかね?(よくわかりません)
心配事はクライアントOSばかりではないのかもしれません。だんだん訳が分からなくなってきました…。

お・・・そうだ。 site.php で、日本語エンコードの種類を define 設定できるようにするのもいいかもしれませんね。

そうだそうだ。それで解決するわ。


クライアントのOS判定などをしてみてもいいかもしれませんね。Windowsでアクセスした人にはShift-JISエンコーディングのZIPを返して、LinuxだとUTF-8にするとか(LinuxだからUTF-8という決め打ちもどうかと思いますが、例えばの話)。
その辺は後からまた練りましょうsmiling

他の方も、いい案があれば教えてください。ちょっと行き詰まってるところですんで;;

Posted on 2月 19, 2011 at 12:54 午前

Re: Re: Pythonを使わずにバージョン比較する

無料のサーバーでもPEAR実装されているところが出てきたんでしょうか?
私の印象では、無料サーバーではPEARが実装されていないような印象があったので・・・。

サーバーの実装ではなくて、PEARのライブラリの再配布という形で対応しています(ライブラリはLGPL)。PHPのコードですし、これならサーバーを選ばない…はずです。(ちょうど別スレッドのマルチバイト対応で書いた、Punycodeのライブラリと同じパターンです)

・PHPベースでいいのが見つからなかった
・他のライブラリーはテキストベースでHTMLベースで比較してくれるものが少ない
・自分達でつくろうと思ったが時間がかかったし効率悪い
・もう既にPythonで良いライブラリあるし〜

という理由で、htmldiff.py を使い続けています。


「バージョン比較だけPythonだなんて美しくない」という思いが自分に起こったのでしょうねwink
もっともそれが始まりではなくて、使っているサーバーがPythonは実行できないけどconcrete5は動くというサーバーだったためですが。

上記の Text_DIFF は、あくまでも、テキストのDIFFなので、本家では検討しましたが却下となりました。今後、大幅なバージョンアップと、レンタルサーバーなどでのバージョンアップが期待できない限り、本家で取り入れる予定はありません。


Pythonは読めないなりに読んでみたわけですが、「HTMLをタグで区切ってリストとして表し、テキスト比較をする」という処理をやっているように見えます。要するに

<div>hoge</div> → {"<div>", "hoge", "</div>"}


というイメージですね。それをhtmldiff.pyではhtml2listという関数が担当していて、Pythonのdifflibというのがリスト比較をしています。
そういうわけで、やっていることは実質的にテキスト比較ではないかと思うんです。そういうわけで、こちらでリスト変換のプログラムだけ書いておけば、Text_Diff(などのテキスト比較ライブラリ)で比較すればよかろう、という発想に至ったわけです。

htlmdiff.py と同等、もしくはそれ以上の機能を実装でき、MITライセンスとバッティングしない、PHPライブラリがある場合は、よろしくお願いします〜。


本家のhtmldiff.pyでも、テキスト比較ということで時々動作が怪しいときがありますね。例えば

<a href="/download_file/1">ダウンロード</a>
<a href="/download_file/2">ダウンロード</a>


の両者の比較だと、タグ単位での比較になるので、比較結果が

<del><a href="/download_file/1"></del><ins><a href="/download_file/2"></ins>ダウンロード</a>


という感じになります(アップしたPHPでの実装でも同じです)。タグの構造がおかしなことになっていますし、これは改善の余地ありかな、と思っています。
リスト変換を工夫すればできるのかもしれませんが、やりかけてややこしくなりそうだったので保留にしています(とりあえず現状ではhtmldiff.pyでもそうなってるからいいや、という感じです)。

ちなみに concrete5 本家や、私たち日本語公式サイトでも、無料サーバーでの運用を考えて開発していません。

有料サーバーで、月々250円のサーバーで立派に concrete5 が動くので、無料サーバーを使う利点が無くなっているというのが実情です。

無料サーバーは、

・機能の制約がありすぎる
・機能の制限があるから concrete5 インストール出来ない可能性が高い
・サーバーでユーザーサポートがないから
・ユーザーフォーラムでもサポートする人が足らない
・人手が足らない = ヘルプ作ってくれる人
・人手が足らない = 検証してくれる人
・人手が足らない = フォーラムでサポートしてくれる人


もしもよろしければ、build1024さん、無料サーバー担当を、お願いしていいですか ( ̄ー ̄)ニヤリ


結局「concrete5は動くけどPythonは動かない」というのがレアケースなんですよね。
今concrete5を設置して動作している無料サーバーが、symphonic-net.comと、海外になりますが000webhost.comの2つでして、両者とも見事にこのケースに該当しています(前者は非公式ながら動いていましたが、いつの間にか使えなくなっていました)。
いくつか気になる無料サーバーもあることですし、他のサーバーでも動作確認やってみようかな、と思いますsmiling

Posted on 2月 19, 2011 at 12:33 午前

Pythonを使わずにバージョン比較する

現状でバージョン比較機能にはPythonのライブラリ(htmldiff.py)が使われていますが、Pythonスクリプトが実行できないレンタルサーバーもあり(特に無料サーバー)、実際に自分で不便に感じたので、Pythonを使わない方法を実装してみました。
ハック配布しています。
http://hira.hopto.org/software/concrete5/htmldiff_php.xhtml

PEARのText_Diffを用いた実装で、完全にhtmldiff.pyの動作を模倣するわけではありませんが、一応動きますのでお困りの方はお試しあれ。

有料サーバーだとほとんどPythonが使えるし、無料サーバーでconcrete5が動くところが少ないため、実際のところ役に立つ事例がどれだけあるかわかりませんが。

Posted on 2月 18, 2011 at 6:03 午後

Re: Re: ファイル名のマルチバイト文字対応

ファイルマネージャで、チェックを付けて上部のコンボボックス「ダウンロード」をクリックするとZIPファイルとしてダウンロードできるようですが、PHP Zip (ZipArchiveクラス)が使えるときは使うように変更してみました。WindowsのXAMPPでも動くようになりました。
http://hira.hopto.org/software/concrete5/mb_filename.xhtml

そのときに気づいたのですが、現状ではzipコマンドで圧縮するとき、格納するファイル名がエンコードされた名前になってしまっています。
とりあえずPHP Zipを使うときは日本語名対応を済ませましたが、PHP Zipが使えなくてzipコマンドで圧縮するときは、どうしたものかと思案しております。いちいちファイルをコピーするのも考えものですし…。

Posted on 2月 18, 2011 at 5:44 午後

Re: Re: Re: Re: Re: 関西ユーザーグループ メンバー募集してます

2/23だけなのですね、わかりました。

Posted on 2月 11, 2011 at 11:47 午後

Re: Re: Re: 関西ユーザーグループ メンバー募集してます

私もここ1年、オープンソースCMSをいじりだしてからPHPを触っていますが、関数から何から検索しまくりの日々ですsmiling

それはそうと1つ質問させてください。
別スレッドに2/26の勉強会の予定が書いてありますが、これは2/23の勉強会とは別物なのでしょうか?会場は同じになっていますので、大阪のときのように平日と土曜日で同内容という感じなのでしょうか?
勉強会申し込みの参考にしたいと思いますので、よろしくお願いします。

Posted on 2月 11, 2011 at 11:01 午後

Re: 関西ユーザーグループ メンバー募集してます

いつの間にか関西ユーザーグループがかなり進展しているようで。

今度神戸で勉強会があるということですので、スケジュールが許せば参加してみたいと思っています。まだ申し込みはしてませんが(神戸が地元の関西人です)。

そしてこの機会に、関西ユーザーグループへの参加表明をさせていただきます!
勉強会でお会いすることがあるかもしれませんが、そのときはよろしくお願いいたします。

Posted on 2月 07, 2011 at 8:22 午後

ページパスが「install」だとページが表示できなくなる

毎度お世話になります。

concrete5ルートに、「ページパス」に「install」を指定してページを作成した場合、編集モードを抜けてしまうとそのページが表示できなくなります。
もう少し正確に言うと、システムのテーマでコンテンツが何も無し(画面上部にconcrete5のロゴがあるだけ)の状態で表示されてしまいました。XAMPPの環境では、「index.php?cID=xxx」で終わるURLのページ(管理画面の「サイトマップ」から「訪問」をクリックした場合など)については上の現象が発生し、プリティーURLで「/install/」で終わるURLだとサーバーの404ページ(concrete5の404ページではなくて)が表示されました。

冷静に考えてみれば、concrete/single_pagesディレクトリに「install.php」というファイルがありますし、ハンドル名の衝突か何かではないかと思うのですが、せめてエラーくらい出していただけるとありがたいという感じです。install以外でどうなるかはまだよく検証していません。

環境はWindows上のXAMPP 1.7.3 (PHP 5.3.1, MySQL 5.1.41)、それに000webhostのサーバー(PHP 5.2.11, MySQL 5.0.81)で確認しました。

取り急ぎご報告まで。

Posted on 1月 12, 2011 at 1:46 午前

ファイルマネージャでのテキストファイル表示

バグ情報として書くべきか、日本語版開発のところに書くべきか迷ったのですが…

管理画面の「ファイルマネージャ」からテキストファイルを表示する場合、そのファイルの文字コードがUTF-8でないと正しく表示できません。内容が一切表示されない場合もあります。
concrete/elements/files/view/text.php の中で、file_get_contents() の戻り値をそのまま Loader('text')->entities() に渡しているのが問題で、このファイルの6行目を例えば

print Loader::helper('text')->entities(mb_convert_encoding(file_get_contents($path), APP_CHARSET, 'EUC-JP,UTF-8,SJIS,JIS'));

とすればOKです(文字コードの誤認識の可能性は別として)。

日本語のみならず、欧米でもウムラウト付きアルファベットが書かれたISO 8859-1のファイルなどは部分的に文字化けしそうです。変換元文字コードは 'auto' に設定したほうが日本語版以外の場合にも対応できていいのかもしれません。あとWindowsのメモ帳などUTF-16で保存できるエディタがあったりするので、レアケースかもしれませんがそれにも対応できたほうがいいかもと思ったり。(いずれにしても文字コード指定の話です)

追記: Ver 5.4.1.1で問題を確認しています。

一応まとめ記事:http://hira.hopto.org/tips/concrete5/filemanager_text.xhtml

Posted on 1月 09, 2011 at 1:41 午前