concrete5 サイト内のページ一覧をオートナビブロックのカスタムテンプレートを使って、CSV 形式で取得する方法

Katz Ueno
Katz Ueno

何らかの理由で、concrete5 サイトのページ名とページ一覧のリストを取得したい場合があります。そんな時は concrete5 のオートナビブロックのカスタムテンプレートで CSV 形式で出力できるブロックを作成しましょう。

お断り

  • 数千・数万ページあるサイトでは負荷がかかってできない場合があります。
  • レンタルサーバーでスペックが低いサイトもうまくいかない場合があります。

予めご了承ください。

 

1. オートナビブロックのカスタムテンプレートを作る

/application/blocks フォルダ内に autonav というフォルダを作り、その中に改めて templates というフォルダを作成する。

 

2. カスタムテンプレートを作成する

先程作ったディレクトリに csv_page_tree.php というテキストファイルを作成する。

テキストファイルの中に下記のコードを入れる。

<?php defined('C5_EXECUTE') or die("Access Denied.");

$navItems = $controller->getNavItems();
if (count($navItems) > 0) {
    $depth = 0;
    echo "\n========== COPY AFTER HERE ============\n\n";
    echo "URL, Page Name\n";
    foreach ($navItems as $ni) {
        echo '"' . $ni->url . '"' . ',';
        for ($i = 0; $i < $depth; $i++) {
            echo ',';
        }
        echo '"' . $ni->name . '"' . "\n";
        if ($ni->hasSubmenu) {
            $depth = $depth + 1;
        } else {
            for ($i = 0; $i < $ni->subDepth; $i++) {
                $depth = $depth - 1;
            }
        }
    }
    echo "\n========== COPY FINISH HERE ============\n";
} else if (is_object($c) && $c->isEditMode()) { ?>
        <div class="ccm-edit-mode-disabled-item"><?php echo t('Empty Auto-Nav Block.')?></div>
<?php }

 

3. ファイルをアップロード

さきほど作ったファイルをサーバーにアップロード

/application/blocks/autonav/templates/csv_page_tree.php

 

4. 空白ページを作る

シンプルなページを作ります。
Elemental の「空白 (Blank)」ページテンプレートなどでページを作ります。

 

5. オートナビブロックを設置する。

下記の設定でオートナビブロックを設置します。

項目 内容
ページ表示順 サイトマップ順
ページの権限をチェックする 希望に応じてチェック
オートナビ開始位置 トップから
子ページ すべてを表示
階層の深さ すべてを表示

※ サイトが重い場合は、表示開始位置を特定のページ以下などで設定して分割して出力できるようにすることも可能です。

 

6. カスタムテンプレートに変更する。

  • 設置したブロックをクリックしてポップアップメニューを表示します。
  • そこから「デザイン & カスタムテンプレート」をクリックします。
  • メニューバーが現れます
  • 歯車アイコン (キャンセルのすぐ左) をクリックします。
  • カスタムテンプレートのプルダウンメニューから「Csv Page Tree」を選択します
  • メニューバーの青い「保存」ボタンを押します
  • 左上の編集バーをクリックし「変更を保存」を押します。

このページを公開したくない場合は、きちんと権限設定を行ってください。

 

7. 出力されたページのソースコードを表示し CSV データを取り出す

  • ブラウザでオートナビブロックを設置したページのソースコードを表示します。
  • ========== COPY AFTER HERE ============ を探します。
  • その直下の URL, Page の行から、========== COPY FINISH HERE ============の直前までをコピーします。

 

8. CSV ファイルを作成しコピペ

  • ローカルの PC でテキスト編集ソフト (メモ帳など) を使って、さきほどコピーしたデータを貼り付けます。
  • そのファイルを (任意の名前).csv というファイル名で保存します。
  • 表計算ソフト (Excel や LibreOffice、 Numbers、Google Spreadsheet など) でファイルを開き、作業を続けます。

これで、concrete5 サイト URL & ページの一覧 CSV リストを作成できます。

 

以上