■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

ウィジットエリアのプルダウン表示方法

 

 1  |  2   | 次のページ>

seto > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/31 12:29
blog_monthly_archives.php の中の $postedDates を見ると、ブログ記事の月ごとのリストが入っているので、この配列を元にURLを作成できそうです。

考え方としては、まずcakePHPでは p という関数を使うことで配列の中身を見ることが出来ます。

p($postedDates);


一度、postedDatesの構造を見てみて、どのようにURLのリストを作ればいいか考えてみてください。

以前私が投稿したカテゴリのURLリストの取得方法や、blog_monthly_archives.phpが参考になると思います。
Nori > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/30 15:52
おかげさまで、セレクタエリアの初期値設定は問題なく対応できました!

しかし、月間アーカイブの方がどこをどう参考にして、
今回お力添え頂いたカテゴリのプルダウンの奴に反映させればいいか全然わかりません。

宜しくお願いいたします。

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

seto > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/30 10:16
月間アーカイブは、こちらが参考になりそうですね。
/lib/Baser/Plugin/Blog/View/Elements/widgets/blog_monthly_archives.php

セレクトエリアの初期値を設定したい場合は、BcForm->selectのオプションで empty を指定してください。
Nori > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/29 16:16
echo $this->BcForm->select('test', $categoryList, array('onChange' => 'location.href=value;'));


とすることで自動ジャンプ対応できました!

月間アーカイブの方も引き続き自分で考えてみますが、
もしアドバイス頂けるようでしたら宜しくお願いいたします。

あと、出来れば最初の状態で「カテゴリを選択」などのように文字列入れること出来ますでしょうか?

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

Nori > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/29 15:34
seto 様


ありがとうございます!
おかげで表示させたいようにできました!

ちなみにこれを月別アーカイブに対応させるにはどの部分を変更させればよいでしょうか?

カテゴリ選択後の自動ジャンプはこれから改めて挑戦しますので、
またわからないことあればお力添え頂ければ幸いですm(_ _)m

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

seto > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/29 12:58
こんな感じになりました。
$this->Blog->getCategories() だけだと、全てのブログのカテゴリを取得できてしまったので、blogContentIdでブログを指定しています。

$categories = $this->Blog->getCategories(['blogContentId' => $this->request->params['Content']['entity_id']]);
$categoryList = [];
foreach ($categories as $category) {
	$categoryList['http://xxxxx/works/archives/category/' . $category['BlogCategory']['name']] = $category['BlogCategory']['title'];
}
echo $this->BcForm->select('test', $categoryList);
Nori > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/29 10:57
アドバイスを基に修正しましたが、
ご指摘の通り正常には作動しませんでした…

<select name="data[test]" id="test">
<option value=""></option>

<option value="title">プレスリリース</option>
<option value="name">release</option>
<optgroup label="BlogCategory">
</optgroup><optgroup label="1">
</optgroup>
<option value="title">テスト</option>
<option value="name">test</option>
<optgroup label="BlogCategory">
</optgroup>
<optgroup label="2">
</optgroup>
<option value="title">カテゴリ名?</option>
<option value="name">categoryname</option>
<option value="id">3</option>
<optgroup label="BlogCategory">
</optgroup>
</select>


既に削除したはずのカテゴリ名が出てきていたり、nameやidもリストに出てきている次第です。

引用:
取得したカテゴリのデータを元にurlのリストを生成する必要があります。


こちらの部分でアドバイス頂ければ幸いです。
宜しくお願いいたします。

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

seto > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/29 10:18
getCategory ではなく getCategories です。
こんな風に使います。
$categories = $this->Blog->getCategories();


また、取得したカテゴリを$this->BcForm->selectにそのまま入れるだけだとダメです。
取得したカテゴリのデータを元にurlのリストを生成する必要があります。
Nori > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/26 18:29
ver4/関数リファレンス/getCategory
を確認し、以下のように書き換えてみましたが…

<?php
$category = $this->Blog->getCategory($post,array(false)); echo h($category[‘title’]);
echo $this->BcForm->select('test', $categories );
?>


これだとプルダウン自体は出るのですが、選択肢は何も出力されませんでした…

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

seto > Re: ウィジットエリアのプルダウン表示方法 @ 2018/10/26 16:25
getCategoryList ではなく getCategories です。
しかし、wikiを見るとページが作成されていないですね....

こちらの関数のことです。
https://github.com/baserproject/basercms/blob/dev-4/lib/Baser/Plugin/Blog/View/Helper/BlogHelper.php#L1232

 

 1  |  2   | 次のページ>

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
31 人のユーザが現在オンラインです。 (31 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 31