$this->addField(['name' => 'page_product',
'label' => 'Page produit',
'type' => 'SelectFromArray',
- 'options' => self::products(request()->query('locale') ?? $this->defaultLang),
+ 'options' => self::getDataByModel('catalog_products'),
'multiple' => false,
'default' => ''
]);
$this->addField(['name' => 'page_page',
'label' => 'Page generale',
'type' => 'SelectFromArray',
- 'options' => self::pages(request()->query('locale') ?? $this->defaultLang),
+ 'options' => self::getDataByModel('cubist_cms_pages'),
'multiple' => false,
]);
$this->addField(['name' => 'page_news',
'label' => 'Page actualités',
'type' => 'SelectFromArray',
- 'options' => self::news(request()->query('locale') ?? $this->defaultLang),
+ 'options' => self::getDataByModel('cubist_news'),
'multiple' => false,
]);
}
- public function news($local) {
- return DB::table('cubist_news')->whereNotNull("title->$local")->pluck("title->$local AS title",'id');
- }
+ public function getDataByModel($table) {
+ $column = 'title';
+ $local = request()->query('locale') ?? $this->defaultLang;
- public function products($local) {
- return DB::table('catalog_products')->whereNotNull("name->$local")->pluck("name->$local AS name",'id');
- }
+ if($table === 'catalog_products') $column = 'name';
- public function pages($local) {
- return DB::table('cubist_cms_pages')->whereNotNull("title->$local")->pluck("title->$local AS title",'id');
+ return DB::table($table)->whereNotNull("$column->$local")->pluck("$column->$local AS $column",'id');
}
}