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

Re: 特定の親カテゴリーIDに属する子カテゴリーのリストで、[カテゴリ検索]は出来ないでしょうか?

well > Re: 特定の親カテゴリーIDに属する子カテゴリーのリストで、[カテゴリ検索]は出来ないでしょうか? @ 2014/7/7 20:28
自己レスです。
個人的にbaserCMSのデータベースで事故り、多くのテーブルを手動で直す作業で難儀しましたが、
おかげでbaserCMSについてまた少し知識が向上したようで、上記の一つの課題が解決しました。
1行追加しただけですが、初めてコアを弄ることもあり、備忘録として記させていただきます。

引用:

セレクトボックスに表示されるリストが、想定していた「配列順」ではなく、
どうやら「文字のコード番号の昇順」に表示されていることです。
これは、ウィジェットに乗せたリストの順序と異なりますので困ってしまいました。
これも解決は難しそうですね。


検索窓の横につくカテゴリー検索のセレクトボックスですが、idの昇順にするには、
まず、
\lib\Baser\Model\Behavior\BcContentsManagerBehavior.php を
\app\Model\Behavior\BcContentsManagerBehavior.php に複写し、このファイルに以下の修正を加える。


<updateContentMetaメソッドを修正>

	public function updateContentMeta(Model $model) {
		$db = ConnectionManager::getDataSource('baser');
		$contentCategories = array();
		$contentTypes = array();
		if ($db->config['datasource'] == 'Database/BcCsv') {
			// CSVの場合GROUP BYが利用できない(baserCMS 2.0.2)
			$contents = $this->Content->find('all', array('conditions' => array('Content.status' => true),
 'order' => array('Content.id' => 'asc'))); // ●追加:'order' => array('Content.id' => 'asc')●
			foreach ($contents as $content) {
				if ($content['Content']['category'] && !in_array($content['Content']['category'], $contentCategories)) {
					$contentCategories[$content['Content']['category']] = $content['Content']['category'];
				}
				if ($content['Content']['type'] && !in_array($content['Content']['type'], $contentTypes)) {
					$contentTypes[$content['Content']['type']] = $content['Content']['type'];
				}
			}
		} else {
			$contents = $this->Content->find('all', array('fields' => array('Content.category'), 'group' => array('Content.category'), 'conditions' => array('Content.status' => true),
 'order' => array('Content.id' => 'asc'))); //●追加:'order' => array('Content.id' => 'asc')●
			foreach ($contents as $content) {
				if ($content['Content']['category']) {
					$contentCategories[$content['Content']['category']] = $content['Content']['category'];
				}
			}
			$contents = $this->Content->find('all', array('fields' => array('Content.type'), 'group' => array('Content.type'), 'conditions' => array('Content.status' => true)));
			foreach ($contents as $content) {
				if ($content['Content']['type']) {
					$contentTypes[$content['Content']['type']] = $content['Content']['type'];
				}
			}
		}

		$siteConfigs['SiteConfig']['content_categories'] = BcUtil::serialize($contentCategories);
		$siteConfigs['SiteConfig']['content_types'] = BcUtil::serialize($contentTypes);
		$SiteConfig = ClassRegistry::init('SiteConfig');
		return $SiteConfig->saveKeyValue($siteConfigs);
	}


以上でidの昇順になりました。

■ BaserCMS:3.0.6.1
■ サーバー名:CentOS 6.5 on VirtualBox(PHP 5.4.x / MySQL 5.5.x)
■ スマートURL:ON
■ 設置フォルダ: [ドキュメントルート]
■ PHPスキル:C
■ IDE:NetBeans7.4

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


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

検索

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

フォーラムガイド


関連リンク

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

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