ドキュメントの一括置換え  【解決済み】

質問全般・改善要望
返信する
nakahi
メンバー
メンバー
記事: 131
登録日時: 2010年8月04日(水) 20:23

ドキュメントの一括置換え  【解決済み】

投稿記事 by nakahi »

MODxでサイト作成させて頂いていますが、このような場合どうすれば良いのか、何か簡便な方法がないかと始めて質問させて頂きます。

htmlファイルでサイト作成し、FTPでアップロードしている場合は、複数ファイルの共通部分の一部を置き換えしたい場合、ローカルで複数ファイルをアプリケーションなどを使い一括置換えした後に、FTPでミラーリングアップロードすれば修正したい部分が一括で置き換わります。

これをMODxで作成したサイトでも同じように、複数のドキュメントの一部を置き換えしたい場合はどのようにすれば出来ますでしょうか。

同じ事を考えた方がいらっしゃって、簡単に解決されていたのでは?と思い質問させて頂きました。
宜しくお願いいたします。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ドキュメントの一括置換え

投稿記事 by sama55 »

1.MODxにおけるコードの共通化

チャンク(例:chunk)を定義し共通化させたいコードを記述します。
リソース側では、{{chunk}}と書くことで、チャンク(共通化されたコード)が展開されます。

参考:http://blog.modxclub.net/archives/1903  ※2.1/2.2を参照

2.ページ(リソース)の共通部分の置換(コンテンツを移入した後の対処)

MODx内のリソースが少ないようなら(100以下?)マニュアルで置き換えた方が良いかもしれません。
リソ-スが多大な場合(数百・数千~?)は、phpMyAdminなどでDBにSQLを送り込んで置換する手があります。
また、HTMLの平打ちやHomepageBuilderやDreamweaverなどで作られたサイトをMODxにコンバートする場合は、MODxに取り込む前に当該オーサリングツール内で共通化し、ページと共通部分を、それぞれリソースとチャンクとしてMODxに別々に取り込むことをお勧めします。

参考:http://www.google.co.jp/search?q=phpmya ... E%E6%8F%9B

nakahi さんのサイトの状態や処理条件が分からないので概念的なことを書いてみました。外してたらすみません。
上記以外にも方法はあると思いますが、ご参考まで。
最後に編集したユーザー sama55 [ 2010年8月05日(木) 20:31 ], 累計 2 回
nakahi
メンバー
メンバー
記事: 131
登録日時: 2010年8月04日(水) 20:23

Re: ドキュメントの一括置換え

投稿記事 by nakahi »

sama55様 ありがとうございました。

>1.MODxにおけるコードの共通化
最初からチャンクを作成して共通化させておけば良かったんですね!
ご指摘されると「あっそうか!」と思ってしまいます。
作成段階では何も気づかずに作成しているので、今後は変更する可能性のありそうなところはすべてチャンクで共通化させようと思います。

>2.ページ(リソース)の共通部分の置換
phpMyAdminなどでDBにSQLを送り込んで置換する手があります。
参考になるページまでご紹介頂きまして有難うございました。
300ページ程度ありますので、この方法で置換えにチャレンジしてみたいと思っています。

>サイトの状態や処理条件が分からないので・・・・・
そうですよね!質問の仕方が悪くて申し訳ございませんでした。
それでもsama55さんの説明された方法で十分解決いたします。

ご丁寧に有難うございました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: ドキュメントの一括置換え

投稿記事 by yama »

共通部分の管理は、テンプレートを使う方法とチャンクを使う方法の2通りがあって、普通はテンプレートを用いるのではと思います。たとえばヘッダやフッタ、サイドバーなど定型枠に相当する部分ですね。チャンクを使うのは、たとえばページによって使ったり使わなかったりすることがある場合です。たとえばバナーなどに用います。変わった使い方としては、デザイン要素だけでなく、たとえば{{担当者名}}といった文字列専門な使い方をすることもあると思います。短いスパンでローテーションで担当者が変わるようなケースに用いると、サイト内の全ての担当者名記述を一度に変更できるので便利です。こういう使い方はテンプレートではできません。

実際には、ヘッダ・フッタ・サイドバーをチャンク化したうえで、これをテンプレートから呼び出すような複合的な使い方をすることもよくあると思います。そうするとテンプレートのコードを見た目にすっきり構造化できるからです。

Dreamweaverのテンプレートライブラリの概念がそのまま参考になると思います。ライブラリに相当するのがチャンクです。用語としては耳慣れない感じがしますが、MODx独特の概念ではなく、サイト構築手法としてはわりと昔からある汎用的な考え方と言えますね。

http://modxblog.com/resource/item/doc_finder_module/
データの一括置換にはDocFinderというモジュールを使うと手軽かも。ミスをすると元に戻せないので、事前のバックアップ推奨です。phpMyAdminのほうがより詳細な指定ができます。
nakahi
メンバー
メンバー
記事: 131
登録日時: 2010年8月04日(水) 20:23

Re: ドキュメントの一括置換え

投稿記事 by nakahi »

yama様

御丁寧な解説を頂きまして、有難うございました。

何も考えずにリソースの一部にバナーを貼っていたのですが、それを削除して別のバナーと変えたいと思って始めましたが、一つずつでは気が遠くなりそうなので悩んでいました。

フッタやサイドバーはチャンクを使って、テンプレートに埋め込んでいますが、同じように将来的に変更する可能性のある部分については、チャンクを作成してテンプレートから呼び出す方法をとらなければいけないと身に滲みました。

本当に上手く使えば、サイトの更新も非常に手軽に楽に出来ると直感して、またある程度使ってみて結構恩恵に与ってきたのですが今回は大失敗でした。

また、Doc Finder Moduleもご紹介頂きまして有難うございました。
このようなモジュールとかスニペットとかプラグインなどの何かがありそうな気がしていたのですが探し方が悪かったようで分かりませんでした。
ただ、DLしましたが使い方がよく分からないので、今回はsama55さんに教えていただいたようにphpMyAdminを使って置換えしましたが、どうやら無事成功したようです。

本当にありがとうございました!
MODxを使いこなすような技量ではありませんが、MODxでサイト作成を始めてから飛躍的にサイト更新が簡単になり喜んで使わせて頂いています(Evolutionの方です)。

公式フォーラムも活発に活動されていて、某CMSのように内部分裂する様子もないですし、良さそうではあっても情報も少なくフォーラムも不活発で使用に不安がある、なんてこともなく、これからも安心して取り組んでいけるCMSだと今まで以上に確信いたしました。

志のある方のボランティア活動に、おんぶに抱っこで申し訳ございませんがこれからも是非宜しくお願いいたします。
返信する