PowerCMS X Q&A

PowerCMS Xを用いてWebサイトを構築する際の技術的なヒントや解決策をご紹介します。

登録済の多数の記事をまとめて編集したいのですがよい方法はありますか?

例えば データ移行機能(HTMLImporterプラグイン)で取り込んだ全ての記事に対して何らかの編集を行いたい場合などは、自作のツールを作成してコマンドラインで実行することにより一括で編集を行うことができます。

実装例として全ての記事タイトルに自動でふりがなを振って保存するコードを示します。「 PHPによるプログラミング・ガイド (データベース編) | PowerCMS X」が参考になります。

<?php
require_once 'class.Prototype.php';

$app = new Prototype( ['id' => 'Worker'] );
$app->logging = true;
$app->init();
$app->get_scheme_from_db( 'entry' );

// 必要なプラグインを取得
$plugin = $app->component( 'SimplifiedJapanese' );

// 条件を設定してオブジェクトを取得
$terms = [
    'status' => 4,
    'rev_type' => 0,
];
$args = [];
$objects = $app->db->model( 'entry' )->load( $terms, $args );

// オブジェクトをループして必要な処理を行う
foreach ( $objects as $object ) {
    $kana = $plugin->filter_hiragana( $object->title, 1, $app->ctx );
    echo $kana . PHP_EOL;

    $object->furigana( $kana );  // 値をセット
    $object->save();             // オブジェクトを保存
}

上記コードはリビジョンに対応していませんが、リビジョンを作成するコードを追加することも可能です。

PHPが書けるエンジニアがいない場合はCSVエクスポート・インポートとExcel・エディタでの編集にて対応することになります。

関連するQ&A