■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。
このフォーラムは閲覧専用のアーカイブです。

固定ページのキーワード用のメタタグの個別設定について

s_eggplant > 固定ページのキーワード用のメタタグの個別設定について @ 2013/12/13 13:46
お世話になります。マイグレーションの件有り難うございました。
カラム追加する事が出来ました。

さて、質問させて下さい。固定ページで キーワードを個別設定したいと思い pages テーブルにkeyword というカラムを追加しました。

しかし、同じメタタグの description で は実現されていますが、カラムを追加した後にどの様な手順で反映させれば良いか分かりませんでしたのでご教授頂けませんでしょうか。

現状固定ページを保存後に 出力されたヘッダーは以下の様になっています。

=== index.php

BcBaser->setTitle('このページのタイトル') ?>
BcBaser->setDescription('説明文(トップページ)') ?>
BcBaser->setPageEditLink(1) ?>

=== index.php


動作環境
===
■ BaserCMSのバージョン:3
■ 開発環境: Mac OS X
■ スマートURLの利用: ON
■ 設置フォルダ: ドキュメントルート
■ 利用しているデータベース: MySQL
====

以上です。宜しくお願い致します。
goichi > Re: 固定ページのキーワード用のメタタグの個別設定について @ 2013/12/15 23:59
はじめまして、こんにちは。
引用:
カラムを追加した後にどの様な手順で反映させれば良いか分かりません

どの程度のレベルで回答をお求めかによるのですが、baserCMSではページ保存の際、/app/webroot/pages/以下にページファイルを生成して保存していると思いますので(実際の表示ではこのページファイルを見にいく)、ファイルが生成される際に任意のキーワードが表示されるよう、このページに関数をセットするように機能拡張すればOKだと思います。
具体的には(すでにお気づきの通り、デフォルトで)、$this->BcBaser->setTitle()、$this->BcBaser->setDescription()、$this->BcBaser->setPageEditLink()、の3つが書き込まれていますので、ここに関数「$this->BcBaser->setKeywords()」を追加します。
ページ生成の際に、これらの書き込み内容を処理をしているのは、/Baser/Model/Pages.phpの666行目付近「addBaserPageTag()」内です。
既にDBテーブルにカラムを追加しておられるということなので、Viewファイルを編集してフォームを作り、そこに入力さた内容を、上記のModelを調整して保管できるようにすれば良いのではないかと思います。
試したわけではないので、不確実な情報を含んでいますが、参考までに書き込んでおきます。
s_eggplant > Re: 固定ページのキーワード用のメタタグの個別設定について @ 2013/12/16 15:32
回答有り難うございます。


ページ生成の際に、これらの書き込み内容を処理をしているのは、/Baser/Model/Pages.phpの666行目付近「addBaserPageTag()」内です。


有り難うございます。確認しました。

現状は /Baser/Model/Pages.phpを上書きして /app/Model/Pages.phpを作っておりますのでそちらに実装致しました


public function addBaserPageTag($id, $contents, $title, $description, $code) {
$tag = array();
$tag[] = '';
$tag[] = 'BcBaser->setTitle(\''.$title.'\') ?>';
$tag[] = 'BcBaser->setDescription(\''.$description.'\') ?>';
if (isset($this->data['Page']['keyword']) and $this->data['Page']['keyword']){
$tag[] = 'BcBaser->setDescription(\''.$this->data['Page']['keyword'].'\') ?>';
}


という形で実装をし、出力PHPに反映される事が確認出来ました。


Viewファイルを編集してフォームを作り、そこに入力さた内容を、上記のModelを調整して保管できるようにすれば良いのではないかと思います。


はい、こちらの作業は既に完了しております。保存は出来ているのですが、反映する方法が分かりませんというのが
質問の趣旨でした。分かりづらくて申し訳ありません。丁寧に有り難うございます

重ね重ね 有り難うございました。