CuCustomFieldプラグイン

・baserCMSのバージョン:Baser4.4.7
・レンタルサーバー名:ロリポップ
・使用テーマ:ratio_3_2
・PHPスキル(自己評価):ほとんどわからない
エディタ:BurgerEditor

国産!心強いおもいで利用させて頂いております。
メンバー紹介のblogを作成しようと
CuCustomFieldプラグインに13個の新規フィールド定義追加。
blog新規記事追加ファイル上で13個の新規フィールドを満たし、本文には何も書かないと本番には反映されないのでしょうか?
blogのフィールド一覧だけが表示、反映されれば良いのですが。そのようなな利用法は間違っていますか?
様々なCuCustomFieldプラグイン説明を見ますがどうしても分からないので ご教授頂けないかとすがる思いで書き込みました。

こんにちは。

上記のURLに記載されてる以下の箇所に該当するファイルを確認してもらうといいかとおもいます。

基本は、そのサンプルに倣って、お使いのテーマ内の/Blog/default/single.phpやら/Blog/default/index.phpやら/Blog/default/archive.phpやらにコードを追記しないといけないと思います。

その前提で、

とおっしゃっているイメージが、ビジュアルで共有できれば、そもそも、CuCustomFieldプラグイン を使用して実現することなのか、別の方法があるのか、どなたかにアドバイスしていただける気がするのですが。
手書きのワイヤーフレームでいいので「こんな感じの表示がしたい」というイメージを書いて、写メで貼ってもらうとか。
いかがでしょう?

1 Likes

早速にお返事頂戴しまして有難うございます。

矢張り、phpを修正しないといけないのですね!
誰で出来る!と思っていたBaser、管理画面から操作出来ればどんなに楽だったか,
自信は無いのですが、頑張ってphpファイルと格闘してみます。

因みに希望するイメージを添付させて頂きます。今年いっぱいで閉鎖予定の他CMSアプリで作成したphpファイルです。
フィールドだけで構成された黄色枠線を表示したく、部員1年生~4年生を含む6つのカテゴリ別に吐き出せて、学年分けで閲覧表示出来ればBEST!
そんな利用の仕方は望めないでしょうか?
PHP超初心者にはハードルが高すぎて :sob:

諦める方が良いでしょうか…?

@yocco
まったく諦める必要ないと思いますよ :wink:

あきらめないために、二、三質問したいのですが、

のフィールドとは、何を指しているのでしょうか?

6つのカテゴリーというのは、男子1年、男子2年、男子3年、男子4年、女子部、スタッフ、という意味ですね?

また、「カテゴリー別に吐き出せて」というのはどういう意味でしょうか?
「学年別に閲覧表示できる」という要件と「カテゴリー別に吐き出せて」という要件の違いがよくわかりません。

最後に、このブログは、部員およびスタッフの紹介のためだけに作成するものという理解で大丈夫でしょうか?
つまり、「部員日誌」のようなまさにブログのような用途のものと併用するわけではありませんね?

フィールドだけで構成された黄色枠線を表示したく、
のフィールドとは、何を指しているのでしょうか?

作成したフィールドは
フィールドタイプ=テキストの
「フィールド定義名:name 入力欄ラベル:名前」
「フィールド定義名:name_2 入力欄ラベル:よみかた」
「フィールド定義名:roll 入力欄ラベル:役割」
「フィールド定義名:hometown 入力欄ラベル:出身県」
「フィールド定義名:high-school 入力欄ラベル:出身高校」
等々の12このフィールド と

フィールドタイプ=ファイルアップロードの
「フィールド定義名:image 入力欄ラベル:image」を1つ
合計13個のフィールドを作成しました。

これ等の名前、顔写真等13個のフィールドを ひな形に、各個人の情報を新入生が入る度に毎年入力更新していく部員紹介ブログを作成したく。

部員1年生~4年生を含む6つのカテゴリ別に吐き出せて、学年分けで閲覧表示出来ればBEST!
6つのカテゴリーというのは、男子1年、男子2年、男子3年、男子4年、女子部、スタッフ、という意味ですね?

はい、その通りです。
1つのフォルダ中で、カテゴリを「男子1年」「男子2年」「男子3年」「男子4年」「女子部」「スタッフ」
の6つのカテゴリを作成しましたので、カテゴリ別に分類して表示・閲覧出来れば大変便利なのです。

最後に、このブログは、部員およびスタッフの紹介のためだけに作成するものという理解で大丈夫でしょうか?つまり、「部員日誌」のようなまさにブログのような用途のものと併用するわけではありませんね?

はい、その通りです、日記用には別のblogを入れています。

こんな素人にご対応頂きまして有難うございます。このBaserに喰らいついていこうかと意欲が出てきました、有難うございます。

おおよそ、理解できました。

もう少し、質問です。
「学年わけで閲覧表示」という要件には、「男子1年」+「女子1年」を「1年」として表示させるという意味でしょうか?
となると、ご指摘のカテゴリーわけでは、難しいと思いますが。。。

あと、スタッフとして表示させる項目は、部員と違うように思うのですが、それは、どのように扱うお考えでしょうか?
カスタムフィールドプラグインで、学生用に作成した表示項目(フィールド)、例えば「出身校」「出身県」「戦績」などといったもので、スタッフの場合には空欄となってしまうものも結構な数あるでしょうし、逆にスタッフ特有の項目もあるのでは?と思うのですが。。。

空欄の場合は、項目自体、非表示という感じでしょうか?

あと、1点、気になった点が、そもそもの記事としてのタイトル(利用するのがブログですので)は、空欄というわけにはいかないと思いますので、便宜上、部員名をタイトル欄に入力され、タイトル名=部員名(スタッフ名)とされることをお勧めします。

「男子1年」+「女子1年」をマージして1年生として表示させるという要件がないのであれば、blog出力用のレイアウトファイルに各フィールドを出力するためのコードを記載することと、実際の表示画面をレイアウトするためのCSSの記載(クラスの追加)などの軽微な作業で、対応できると思います :grin:

「男子1年」+「女子1年」をマージして1年生として表示させるという要件に対応しなければならないのであれば、カテゴリーを「1年生」「2年生」「3年生」「4年生」「スタッフ」の5項目にし、タグを使って男子、女子の区別をするなどすれば、簡易には対応できるかと思います。

同フィールドを入れた 男子部員1年、男子部員2年、男子部員3年、男子部員4年、女子部員 の5つのカテゴリ。(女子部には1~4年生を纏めて入れたく)
と、少し変わりあるフィールドを入れたい「スタッフ」の1つのカテゴリ、合計6つのカテゴリ別に分けられれば良いと思うのですが。

5つのカテゴリ分のフィールドは
タイトル(名前)
1,image
2,ローマ字で読み仮名
3,役割
4,出身県
5.出身校
6.学部/学年
7,研究会
8.ポジション
9,入部動機
10,メッセージ
11,前年度の戦績
12,自己PR

「スタッフ」のカテゴリ中のフィールドは
タイトル(名前)
1,image
2,ローマ字で読み仮名
3,役割
4,出身県
5,出身校
6.学部/学年
7,勤務先
8,メッセージ

スタムフィールドプラグインで、学生用に作成した表示項目(フィールド)、例えば「出身校」「出身県」「戦績」などといったもので、スタッフの場合には空欄となってしまうものも結構な数あるでしょうし、逆にスタッフ特有の項目もあるのでは?と思うのですが

そうですね その方が良いので良いのでしょうが、その分PHPファイルに追記や削除修正が必要となると…もう分からなくなるので、
スタッフとの違いを「必須項目」にしない事で(空欄のままでも)対応出来ないでしょうか?

フィールドは、共通で01から13で良いと思います。

タイトル(名前)
01. image
02. ローマ字で読み仮名 ※必須
03. 役割
04. 出身県 ※必須
05. 出身校
06. 学部/学年 ※必須
07. 研究会
08. 勤務先
09. ポジション ※必須
10. 入部動機
11. メッセージ
12. 前年度の戦績
13. 自己PR(本文欄) ※必須

13を本文欄を使われたらどうでしょうか?検索でヒットした時のために。

必須は、こんな感じでもいいかもしれません。全部必須にしてしまうと、登録する時に大変だと思いますので。後から、おいおい追記できる感じがいいのではないですか?

baserCMSの機能だと通常、index.phpで一覧、archive.phpでカテゴリー別出力一覧、single.phpで詳細表示、という棲み分けです。
その流れでページを考えると、index.phpの一覧、archive.phpのカテゴリー別出力一覧の中身は、共通で、上記項目から主要な項目を抜粋、
single.phpの詳細表示で01から13を全網羅する、といった感じでしょうかね?

index.phpの一覧、archive.phpのカテゴリー別出力一覧で表示する画像は、代表する1枚(普通は証明写真チックなやつですかね?w面白くないけど)でアイキャッチとして登録、
01をsingle.phpの詳細表示でアイキャッチ画像と一緒に2枚見せるとサンプルと同じイメージになるかと。。。

そんな感じですかね :grin:

  1. 自己PR(本文欄) ※必須
    13を本文欄を使われたらどうでしょうか?

確かにそうです!本文スペースが有ることを失念していました。そのようにします。
問題は恐怖のPHPなのですが

何とか頑張ってチャレンジしてみます、有難うございました。
大変お世話になりまして有難うございました。

1 Likes

@yocco まずは、single.php にて次のタグを貼り付けて、詳細ページでどう表示されるか確認してみてください。

<?php echo $this->CuCustomField->get($post, 'hometown') ?>

index.php や、 archives.php においては、 foreach の行と endforeach の行の間に貼り付ければ大丈夫なはずです。

頑張ってください、またわからなかったら質問してみてください。

私も気になって、テストしてみましたが、なぜかラベル名がうまく出力しないです。

<td><?php echo $this->CuCustomField->getFieldAttribute($post, $fieldName) ?></td>

@GUSSAN ご指摘ありがとうございます。再現できました、バグです。

ので、修正しました。

1 Likes

@ryuring さん
アドバイスありがとうございます。
ご指摘いただいた方法で、無事に詳細ページにフィールドが表示されました。ありがとうございます!

重ねて、質問させていただきたいのですが、
<?php echo $this->CuCustomField->get($post, 'hometown') ?>
の詳細ページでの出力(表示、非表示)を$postの属するカテゴリーの違いによって、条件分岐させたいのでがどのようにすればよろしいでしょうか。

また、フィールドが空欄の場合にラベル名を含めた全体を非表示にしたいのですが。試しに以下のようにしてみましたが、うまくいきません。

<?php if (!empty($post['CuCustomField']['hometown'])): ?>
	<tr>
		<td class="cf-label"><?php echo $this->CuCustomField->getFieldAttribute($post, 'hometown'); ?></td>
		<td class="cf-field"><?php echo $this->CuCustomField->get($post, 'hometown'); ?></td>
	</tr>
<?php endif; ?>

ご教示くださると嬉しいです。よろしくお願いいたします。

こちらでいけると思います。

<?php if($this->Blog->getCategoryName($post) === 'category_name'): ?>
<?php endif ?>

フィールドが空欄の場合にラベル名を含めた全体を非表示にしたい

こちらでいかがでしょう?

<?php if(!empty($this->CuCustomField->get($post, 'hometown'))): ?>
<?php endif ?>
1 Likes

思ったようにできました、有難うございました。

1 Likes