eclipse_juno_4.2

Eclipse Fails to Load: org.eclipse.swt.SWTException のエラー

eclipseで
「Eclipse Fails to Load: org.eclipse.swt.SWTException」云々のエラー。

こちらいろいろ調べてみるとどうやらワークベンチの設定ファイルが壊れているみたい。

ワークスペースの中の
\.metadata\.plugins\org.eclipse.e4.workbench\
ディレクトリの中を探ると「workbench.xmi」というのがあり、これを削除もしくはリネームして、念のためクリーンオプション(eclipseのインストールフォルダ内にある「eclipse」フォルダ内の「eclipse.exe -clean.cmd」をクリックして実行)で起動すればOKでございました。

 

eclipse_juno_4.2

eclipseにて「例外スタック・トレースが使用不可です。」のエラー

eclipse(juno)にてHTMLをコーディングしていてフォーマット(Ctlr+Shift+Alt+F)をやると「例外スタック・トレースが使用不可です。」のエラー。

原因を突き詰めるとエラーを起こすソースに全角スペースがあったから;
これまたソースによっては全然問題ないときがあったりするので前後の文字との関係でそうなるみたいです。

カゴヤの旧共用サーバ(プラン10とか20とか)から共用サーバー3Gに乗り換える

カゴヤの旧共用サーバ(プラン10とか20とか)ではデータベース作るたびに500円課金なので、サンプル用にCMS入れてクライアント様にプレゼンする場合などでもいろいろと出費が重なったりしてました。
(まぁ月末締めで請求なので月末までに消せばいいんですけどね。)

なので現行の共用サーバ(共用サーバー3G)に乗り換えたのです。

切り替えはカゴヤのコントロールパネルから申請すれば即時切り替わりでした。
注意点としてはサーバー上のファイルがすべて削除になってしまう点。
なのでFTPクラインとでファイルを全部ローカルに落とし、データベースもダンプを取ってから切り替え。

昨日なでしこJapanのサッカー中継見ながら切り替えて今朝方にはDNSも切り替わっておりました。

あと気になってたメールがらみなんですが、メールに関しては一切止まることなくそのまま移行しました。
まぁ止まったら逆に困るんですけどね;

これでDB作り放題なのでOpnePne(SSH叩けないので「OpnePne2」しかは入らないですけどね;)とかMoodleとかいろいろ入れてプレゼン用のサンプルサイト作らないとです。

modxロゴ

modx revo で同一ページにリンクする(Base URL Same-Page-Link Fix 改造)

久々にModxの話なんですけど。

うちのサイトもModx Revoサで動かしてたんですが、ver2.07とかそれくらいのバージョンから急にパッケージインストーラーが使えなくなって、アップデートしようにも上書きアップデートが出来なかったんです。
(テーブルのカラムとかが違うとか言われて;たぶんなんかのプラグインがDB書き換えたのか?;)

なのでサーバー変えたのをきっかけに2.0.7-plから2.2.4-plにアップデートしてみました。

アップデートと言っても中身は新規インストールでして、ダンプしたデータベースのSQLを現行のテーブルにあわせて書き換え、必要な部分だけリストア(コンテンツとテンプレート&チャンクとかプラグインの類は入れなおし)し、どうにか元に戻ったんですが、アンカーにリンク <a href=”#hoge”> とかが効かなくなってるんですよ。

もともと「Base URL Same-Page-Link Fix 」(http://modx.com/extras/package/baseurlsamepagelinkfix)を入れていて以前のmodxであれば問題なく動いてたんですけど、バージョン挙げたら急に効かなくなったんです。

そういえば別の案件でも同じようなことがあって、その時はそんなにアンカー使うこともなく

<a href=”[[*alias]].html#hoge”>hoge</a>

とかで切り抜けたんですけどやっぱり非生産的ですのでプラグインで何とかしたいと思ったわけです。

んで、Base URL Same-Page-Link Fixのソースを見てみていろいろと弄ってみたのですが、どうやらリソースの内容自体が取得できてなくて、さらに出力もされてなさげだったんですね。

Revoのプラグインとかでリソースの内容を丸ごと取得するのが以前は

$source = &$modx->documentOutput;

とかで出来ていたらしいんですが
(上記の場合$modx->documentOutputでコンテンツを取得し$sourceに代入)
どうやらこれが効いてないらしいのです。

なので上記の部分を

$source =$modx->resource->_output;

に置き換えてしまいます。
(modxのフォーラムでこんな記事を見つけました。「OnWebPagePrerender no longer modifies document output」)

あとはプラグインに書かれているようにリンク要素をstr_replace関数で置き換えることが出来ます。

最後にプラグインの一番最後に

$modx->resource->_output=$source;

として置き換えた内容($source)を $modx->resource->_output に戻してあげることで出力が完了です!

Google

Google Ajax Feeds APIでRSSのsummaryを書き出す。

近頃ブログとWebサイト&TwitterとFaceBookの連携をやることが多くて
大抵の場合同じサーバーにWordPressなんか入れてて同じドメイン内でjQueryのプラグインjfeedを使えば大抵のことはできるし、クロスドメインでもjfeedの中に入ってる「Prxoy.php」を通してやると大体大丈夫なんですが、前のエントリにも書いたホームページビルダー以下の機能のエディタを200万円で売りつけるボッタクリ会社のWebサーバーは設定も素敵すぎていて、いまだPHP4.3で文字コード周りの設定もいい加減、.htaccessもそれらを上書きできない感じで手詰まり。

もともとほかの作業のついででサービスでやってる部分なのであまり時間もかけられなく、外のAPI使って無難に終わらせることに。。

んでGoogle Ajax Feeds APIでやることにしました。
んで半日くらいつっかかってたのが10分で終了; でもほんとはサーバーの中だけで何とかしたかった。
1点引っかかったのはAtomのsummary部分が使いたくて「entry.summary」って書くもダメ、そのほか思いつくこといろいろ書いてたけどダメ。APIのリファレンスたどるもたどり着けず、そもそもパブリッシュした時間を「entry.publishedDate」って書くからそっちから当たってみたら、本文は「entry.content」で指定し、
summary(概要)を引っ張りたいときは「entry.contentSnippet」こっちは120文字以内と書いてあったような・・

まぁ任意の文字数で引っ張りたいなら

var 追加するノード = document.createTextNode(entry.contentSnippet.substring(0, 最大文字数));

みたいに書けばいいし。

FaceBookのファンページも管理者のアカウントにアプリ入れないとウォール弄ったりできないので、ちょいとメンドクサイと思う今日この頃。FBMLで書いちゃえばいいのかな?