CMS:MODxの最近のブログ記事

MODX Revolutionで「sitemap.xml」を利用したいときには

管理画面の「システム」→「パッケージマネージャー」から
「パッケージ一覧」タブの「プロバイダーから取得」にチェックを入れて「次へ」ボタンを押下


パッケージ一覧から「sitemap」なんかで検索


すると「GoogleSiteMap」が出てくるのでインストール。

一連の作業がパッケージマネージャ出来るのでパーミッションやインストールディレクトリを調べなくても一発でインストール終わってしまうw Revolution超便利w

あとはサイトマップ用のリソースを作成
とりあえず「sitemap.xml」というファイル名にしたいので
ドキュメントの「エイリアス」を「sitemap」に、同リソースの「ページ設定」タブで
コンテンツタイプを「xml」に



「ドキュメントの作成・編集」タブに戻り
「リソースコンテンツ」はプラグインの呼び出し

[[!GoogleSiteMap? &containerTpl=`gcontainer_new` &excludeResources=`22,23,24`]]

/Modxインストールディレクトリ/core/components/googlesitemap/elements/chunks/gcontainer.chunk.tpl
以下にデフォルトのものがあるのでそれ以外のものが必要な場合は予めチャンクを作って

&containerTpl=`gcontainer_new`

みたいに呼び出せばよし。

サイトマップに入れたくないものがあればリソースIDを指定して

 &excludeResources=`22,23,24`

のように指定すればよし(これだとリソース22,23,24を除外する設定)


MODX Revolution だとプレイスフォルダが[+placeholder+] から [[+placeholder]] に代わってたり、リンクを[~5~]とかリソースidを使うときに[[~5]]に代わってたりします。 詳しくは新旧MODXタグの一覧を http://rtfm.modx.com//display/revolution20/Tag+Syntax でDittoでテンプレートをチャンクで作ってる時に
<li><a href="[+id+]">[+title+]</a></li>

みたいに書いてたのですが、リンクのほうがうまく動かなかったので
<li><a href="[[~[[+id]]]]">[[+title]]</a></li>

みたいに [[+id]] で一度リソースidを展開してそれをさらに[[~展開された番号]]でリンクとして適用してOKでした。
MODX Revolutionで試験運用しているサイトで ie5  ie6  ie7 でプレビューすると画像がリンク切れになってました。 ソース見てみるとBaseタグのhref属性が相対パスの「/」になってました。 (新しいブラウザだと相対パスでもみれますが、古いブラウザだとhttp://から始まるURLを指定してあげないとだめのようです) Evolutionだと[(base_url)]とかで設定されたURLが挿入されるわけですが Revolution の場合は一つのMODXで複数のサイトをコンテキスト単位で管理する為それらも割り当てなくてはならないようです。 1、「システム」メニューより「コンテキスト」メニューを選択 2、デフォルトでは「mgr」と「web」のコンテクストキーがありますが、「web」の項目を右クリックのメニューで「コンテキストを編集」を選択し(Revolutionの場合はメニューがないと思ったら項目の上で右クリックすると大概のことができます)、次の画面で「コンテキスト」タブを選択 3、ここで「新規作成」ボタンを押して「キー」「名前」の項目に「base_url」を、「値」項目には任意のbaseになるURLを記述し保存します その他にも、site_start ・http_host・site_urlのようなシステム変数的なものをここで定義・管理することができますのでテンプレート変数とうまく使い分ければ大変便利になると思います。
MODX Revolution のTinyMCEのリンク挿入機能でエラーが発生 そもそもMODX EvolutionのTinyMCEのリンク編集画面では プルダウンメニューでちゃんとリソースの一覧が表示されていたのですが Revolutionではそんなことができなかったので、リソース一覧からドラッグしたりしていたのですが (これでもリッチエディタではくテキストで編集しているときはリソース番号を[[~5]]のような感じで挿入できるからすごい^^) どうにもならなくて再度リンク編集画面を開いたらエラー どうやら 「/インストールディレクトリ/config.core.php」 が見つからないらしい・・ でも本当は 「/インストールディレクトリ/manager/config.core.php」 にあったりするので該当するファイルの中身をうちの環境のパスで書き換えてみた 書き換えるのは /インストールディレクトリ/assets/components/tinymce/jscripts/tiny_mce/plugins/modxlink/link.php の5行目あたり /インストールディレクトリ/assets/components/tinymce/jscripts/tiny_mce/plugins/modxlink/search.php の7行目あたり
require_once dirname(dirname(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))))).'/config.core.php';

みたいな記述があるので
require_once dirname(dirname(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))))).'/manager/config.core.php';

みたいに「manager」ディレクトリの中を探してもらうように変更 でもこんなに「dirname」で括ってあるとわかりにくいなぁ; でもこの二つの修正すると いままでプルダウンでダーッとリソースの一覧が表示されていたものが リソース名で検索してリンクを挿入できたりして結構便利なってましたね^^
近日切り替える予定ですが、現在自社のサイトを「MODX Revolution」で再構築してます。 インストールの方法は「MODX Evolution」 と同じでアップロードしてパーミッション変更して終了w で、インストール後に管理画面を確認しましたがデザインがかなり渋くなってましたw 本題はそれだけじゃなくて追加されたいろいろな機能 色々ありますが、気に入ったり驚かされたのは以下の機能。 1、ホスト名を振って複数のサイトが管理できる「コンテキスト」機能 通常一つのドメインで複数のサイトを運営する場合は、ルート以下にサイトの数だけCMSをインストールするか、 CMS側でリソース毎にテンプレートを設定しなおして、さも別のサイトのように編集する必要がありました。 ただその場合は、どうしてもルートのコンテンツの下位コンテンツのような印象になってしまったり 管理者を割り当てる場合も複雑にロールを組んだりと、ごちゃごちゃした作業が発生しておりました これをもっとすっきり管理できるように http://hi-kick.jpのほかにも http://fish.hi-kick.jpや http://blog.hi-kick.jp なんかのようにドメイン名の前に「ホスト名」をつけて別のホストで別のコンテンツとして運営してますよってことができるようになったみたいです。 無論管理画面も割り当てられたホストの中身しか表示できないようにできるためチームを組んでホスト毎(コンテキスト毎)で編集・管理をすることが可能です。 詳しくはhttp://modx.jp/demo.htmlの二つのサンプルサイトの例を確認いただければわかりやすいかと思いますが、管理画面の「システム」→「コンテキスト」を開いてもらうとホスト毎の「コンテキスト」が表示され、各コンテキストを右クリックで編集し「コンテキスト設定」を弄ってみるとURLやルートになるリソースを指定することができます。 2、簡単にプラグインやスニペットをインストールできる「パッケージマネージャー」機能 MODX EvolutionではFTPで指定されたディレクトリに拡張機能のファイルを転送し、いろいろと設定ファイルを弄る必要がありましたが、Linuxで追加パッケージをダウンロード&インストールイメージで、好きなものを選んでダウンロード&インストールをすべて管理画面で行えるようになりました。 削除もワンクリックなので何かあったらFTPをつなげるというひと手間がなくなりました^^ またインストール後もデフォルトの表示が外国語で、日本語の言語ファイルがないため設定ファイルをメモ帳で手書きしてアップロードするって事が多々あったのですが、このようなことも楽に解消できるのが次に紹介する「語彙トピックの管理」機能です。 3、もう言語ファイルを探す必要なし「語彙トピックの管理」機能 拡張機能をインストールした後従来であれば、表示されるテキストを探して全部日本語に直したりと言語の管理って結構大変だったりするのですが、MODX Revolutionからはそれらを「システム」→「語彙トピックの管理」で管理することができます。 語彙トピックを管理するネームスペースを管理して 語彙トピックを管理するネームスペースを管理 画面右上の「項目作成」ボタンでネームスペース内の語彙プロパティとその値を編集します ネームスペース内の語彙プロパティとその値を編集 申込フォームなどを作成するスニペットのeformの代替でformitというものを使ってますが、これで表示されるエラー表示はすべて英語だったので探してみましたがjaの語彙ファイルがなかったので、この方法でja用の語彙を作成しオーバーライドしてみたら全然問題なく動いてます!便利すぎる;; 以上またつかっていきながら色々報告します^^
仕事で他の人が作成したページをCMS(Modx)化してるのですが、その中でイメージマップにオンマウスすると小窓で拡大画像が表示されるというJavaScriptが仕込まれている部分がありまして

<map name="Map" id="Map"> 
<area shape="poly" coords="**,**,**,**" href="#画像のID" />
</map>
の様なソースで「#画像のID」に指定されたIDを振られた画像をページの読み込み時に "display:none" で隠しておいて、オンマウスした時にそのIDの画像を小窓で表示するものでした Modxに通常はページ内のアンカーが有効になるように 「BaseURL Same-Page-Link Fix」プラグインをいれてるので そのままModxに移植すると

<map name="Map" id="Map"> 
<area shape="poly" coords="**,**,**,**" href="ベースURLからの相対パス?id=**#画像のID" />
</map>
みたいなBaseタグを元にページの相対パスが「#」の前についてしまい、今回の場合では正しい画像のIDを渡す事が出来ませんでした。 でJavaScriptを弄るか、「BaseURL Same-Page-Link Fix」プラグインを弄るかいろいろと考えてたら「BaseURL Same-Page-Link Fix」のソースコードにはhrefのパラメーターを「'」で囲んだ時、「"」で囲んだ時の振り分けが出来るとかいてあり、今回の場合は「'」で囲んで無事「#画像のID」をそのまま渡す事が出来ました^^。
ご無沙汰です、何とか生きてます;; 今年度から週4日学校で講義が入ってるのでなかなか家で仕事する時間が少なくなってきました(ハプハプ;) んで「MODx」で仕事する機会が多くなってきたのですが、フォームを扱うスニペットで「cfFormMailer」というものがあるのですが、日本語も使えて超便利です^^ (MODxに同梱されているeFormも便利ですが確認画面が出ないので困り者) んで、いろいろと設定してたんですが、ふと確認画面に飛んで戻ってきた時にテキストエリアの値だけが消えていたり、入力値の検証が出来なかったりと、挙動が変でした; 配布元のクレファレイ・ファクトリーさんのブログでも ・バグ:エラー時や戻るボタンを押したときに偶数個目のtextareaの値が空になりますとの報告があり、修正したバージョンでやり直してみたのですがやっぱりダメ;; いろいろとソースを眺めていたら・・
<textarea id = "f_commente" name = "comment" rows="3" cols="40" valid="1::お問い合わせ内容></textarea>

みたいに「id」や「name」属性の「=」の両側にいつの間にか入っていた半角スペースがダメだったみたい; 削ったら治りました。 確認画面に値は渡されているので、てっきり確認画面でhiddenに値を上手く詰める事が出来てないのかな?と思いましたが 自分のソースが汚いだけでした。反省します; (ただMODxのチャンク編集画面は半角スペースがわかりにくいのです;)

このアーカイブについて

このページには、過去に書かれたブログ記事のうちCMS:MODxカテゴリに属しているものが含まれています。

次のカテゴリはIT・Webサービスです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。