Drupal で、サイトを複製する方法

Drupal は、設定ファイル settings.php を除き、設定情報やコンテンツはすべてデータベースに入っているので、リファレンスモデルとなるサイトを作って(すなわち、インストールした直後または、少しの修正をほどこしたサイト)、そこでできたデータベースまたはテーブルをコピーすればよい。 まずは雛形となるサイト(https://template.yourdomain.com など)を作る。その後、settings.php の内容を修正したものを適切なディレクトリにコピーしてから、https://newsite.yourdomain.com/install.php を走らせる。 以下はサイトを複製する SQL スクリプト。仕様としては、
  • コピー元となるサイト
    • データベース名: drupal
    • テーブル名のプリフィックス: template_
  • コピー先のサイト
    • データベース名: drupal
    • テーブル名のプリフィックス: newsite_
このスクリプトを実行するとサイトを大量生産できるのだ。
Drupal は、設定ファイル settings.php を除き、設定情報やコンテンツはすべてデータベースに入っているので、リファレンスモデルとなるサイトを作って(すなわち、インストールした直後または、少しの修正をほどこしたサイト)、そこでできたデータベースまたはテーブルをコピーすればよい。 まずは雛形となるサイト(https://template.yourdomain.com など)を作る。その後、settings.php の内容を修正したものを適切なディレクトリにコピーしてから、https://newsite.yourdomain.com/install.php を走らせる。 以下はサイトを複製する SQL スクリプト。仕様としては、
  • コピー元となるサイト
    • データベース名: drupal
    • テーブル名のプリフィックス: template_
  • コピー先のサイト
    • データベース名: drupal
    • テーブル名のプリフィックス: newsite_
このスクリプトを実行するとサイトを大量生産できるのだ。

PHP で、多角形(ポリゴン)の重心(中心)を求める。

多角形、たとえば四角形^^; (x1, y1) ... (x4, y4) の中心を求める。正確には、多角形の重心の座標を求める。 データとしては 4つの座標データがセミコロン(;)で区切られている、
$data = '242.18,525.87;243.16,581.93;294.83,580.61;294.00,525.50;';
みたいな初期データを考える(それぞれの x1, y1 の座標はさらにカンマで区切られている)。 で、多角形の中心点の座標の求め方 (https://okwave.jp/qa2534558.html) で議論されている内容を PHP 化すると、以下のようになると思う(本当にいいのだろうか?)。
多角形、たとえば四角形^^; (x1, y1) ... (x4, y4) の中心を求める。正確には、多角形の重心の座標を求める。 データとしては 4つの座標データがセミコロン(;)で区切られている、
$data = '242.18,525.87;243.16,581.93;294.83,580.61;294.00,525.50;';
みたいな初期データを考える(それぞれの x1, y1 の座標はさらにカンマで区切られている)。 で、多角形の中心点の座標の求め方 (https://okwave.jp/qa2534558.html) で議論されている内容を PHP 化すると、以下のようになると思う(本当にいいのだろうか?)。
Posted on 2007-09-09 by yas |

MySQL で、テーブル名を変更する方法 (ALTER TABLE ... RENAME TO ...)

ALTER TABLE 既存のテーブル名 RENAME TO 新しいテーブル名;
でテーブル名は変更できるのだが、テーブルが1つにとどまらない場合、テキストファイルでまずは1行に1テーブル名のリストを作って、後は秀丸エディタを使って置換する。 たとえば、Drupal でテーブル名にプリフィックス yourname_ を使っていたとして、 本来のテーブル名はそのままで、myname_ のプリフィックスに変えたい場合、秀丸エディタを使って置換するときは、正規表現を有効にして、置換前の文字列を
ALTER TABLE 既存のテーブル名 RENAME TO 新しいテーブル名;
でテーブル名は変更できるのだが、テーブルが1つにとどまらない場合、テキストファイルでまずは1行に1テーブル名のリストを作って、後は秀丸エディタを使って置換する。 たとえば、Drupal でテーブル名にプリフィックス yourname_ を使っていたとして、 本来のテーブル名はそのままで、myname_ のプリフィックスに変えたい場合、秀丸エディタを使って置換するときは、正規表現を有効にして、置換前の文字列を

Drupal で、Leech を設定する方法

YouTube (https://youtube.com/watch?v=nRmd6whQFlY) に設定の仕方ビデオもあるけど、私なりの方法をまとめてみた。 参考:Drupal で、Leech って一体何なんだ?
  1. Leech 用のコンテンツタイプを新規に作成 https://yourdomain.com/admin/content/types/add にアクセスする。
    • 名前:RSS フィード(←私はそのように名付けている。または、Leech としてもいいと思う)
    • タイプ:rss (または、leech)
    • 説明:すでにご自身のブログをお持ちの場合は、URL 欄に RSS フィードのアドレス (URL) を入力すると、タイトルなどに自動的にサイトの情報が反映されます。
    • デフォルトオプション:掲載 オン(デフォルト)
    • フロントページに掲載: オン(デフォルト)
    • 掲載位置をリスト上部に固定: オフ(デフォルト)
    • 新しいリビジョンの作:オフ(デフォルト)
    • コメントのデフォルト設定:無効(←任意、好みに応じて)
    • Enable leech:オン
    • 更新間隔:15分
    • Generate GUIDs:オフ
    • Publish news items:オン
    • Update already existing news items:オン
    • Delete news items older than:しない
    • Promote items:All
    • Use dates found in feed (if possible):オン
    • Show "original article"/ "visit site" link:Always
    コンテンツタイプを保存する。
  2. (上で定義した)RSSフィードのコンテンツを作成 コンテンツタイプ名を rss とした場合は、https://yourdomain.com/node/add/rss にアクセスする。
    • タイトル:RSS フィードテンプレート(←私はこのような名前をつけているが、任意でよい)
    • 本文:(空のまま)
    • 掲載:オフ
    • フロントページに掲載:オフ
    このままいったん保存する。
  3. そのまま、このコンテンツを編集する https://yourdomain.com/node/1/edit にアクセスする。 template タブで、Saving PHP code: のところに
    <?php
      $node
    ->field_body[0]['value'] .= $node->body;
    ?>
    と書いて、Create ボタンを押す。
  4. RSS フィードの作成 これで Leech したい RSS を見つけてきて、RSSフィードを新規作成し、URL をコピーする。 設定が正しくされていれば、URL を貼りつけてカーソルのフォーカスを移動したときに、タイトルやその他の情報が自動取得され、各フィールドに埋め込まれる。
  5. これで動かなかったら、
    • アクセスコントロールの権限をチェックする。
    • cron の設定を確かめる。Leech は、cron.php に依存するので、Leech をセットアップしたサイトでは cron が正しく動いていなければならない。
YouTube (https://youtube.com/watch?v=nRmd6whQFlY) に設定の仕方ビデオもあるけど、私なりの方法をまとめてみた。 参考:Drupal で、Leech って一体何なんだ?
  1. Leech 用のコンテンツタイプを新規に作成 https://yourdomain.com/admin/content/types/add にアクセスする。
    • 名前:RSS フィード(←私はそのように名付けている。または、Leech としてもいいと思う)
    • タイプ:rss (または、leech)
    • 説明:すでにご自身のブログをお持ちの場合は、URL 欄に RSS フィードのアドレス (URL) を入力すると、タイトルなどに自動的にサイトの情報が反映されます。
    • デフォルトオプション:掲載 オン(デフォルト)
    • フロントページに掲載: オン(デフォルト)
    • 掲載位置をリスト上部に固定: オフ(デフォルト)
    • 新しいリビジョンの作:オフ(デフォルト)
    • コメントのデフォルト設定:無効(←任意、好みに応じて)
    • Enable leech:オン
    • 更新間隔:15分
    • Generate GUIDs:オフ
    • Publish news items:オン
    • Update already existing news items:オン
    • Delete news items older than:しない
    • Promote items:All
    • Use dates found in feed (if possible):オン
    • Show "original article"/ "visit site" link:Always
    コンテンツタイプを保存する。
  2. (上で定義した)RSSフィードのコンテンツを作成 コンテンツタイプ名を rss とした場合は、https://yourdomain.com/node/add/rss にアクセスする。
    • タイトル:RSS フィードテンプレート(←私はこのような名前をつけているが、任意でよい)
    • 本文:(空のまま)
    • 掲載:オフ
    • フロントページに掲載:オフ
    このままいったん保存する。
  3. そのまま、このコンテンツを編集する https://yourdomain.com/node/1/edit にアクセスする。 template タブで、Saving PHP code: のところに
    <?php
      $node
    ->field_body[0]['value'] .= $node->body;
    ?>
    と書いて、Create ボタンを押す。
  4. RSS フィードの作成 これで Leech したい RSS を見つけてきて、RSSフィードを新規作成し、URL をコピーする。 設定が正しくされていれば、URL を貼りつけてカーソルのフォーカスを移動したときに、タイトルやその他の情報が自動取得され、各フィールドに埋め込まれる。
  5. これで動かなかったら、
    • アクセスコントロールの権限をチェックする。
    • cron の設定を確かめる。Leech は、cron.php に依存するので、Leech をセットアップしたサイトでは cron が正しく動いていなければならない。