何らかの理由で、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 リストを作成できます。
以上