Итак, я создал систему тегов, подобную той, которую использует WordPress.
В настоящее время я пытаюсь изменить свой фактический код в методе редактирования для сообщений.
Допустим, у меня есть дватаблицы:
Фактическое поведение заключается в том, что я выбираютермины из таблицы терминов, но они выбираются только в том случае, если они существуют.
Я хотел бы редактировать систему точно так же, как в WordPress .... возможность добавлять новые термины (если они не существуют)непосредственно из ввода.
Это то, что у меня есть в моем методе редактирования Контроллера:
// Get attached categories
$categories = array();
$categories[0] = 'Select Categories';
$categories_attached = $this->Post_model->the_categories($id);
if (is_array($categories_attached) || is_object($categories_attached))
{
foreach ($categories_attached as $cat)
{
$categories[$cat->term_id] = $cat->term_id;
}
}
$data['categories'] = $categories;
// Select Categories
$categories_options = array();
$categories_options[0] = 'Select Categories';
$categories_list = $this->Terms_model->get_list();
foreach($categories_list as $cat){
$categories_options[$cat->term_id] = $cat->title;
}
$data['categories_options'] = $categories_options;
Как вы могли видеть, один из способов заключается в извлечении прикрепленных категорий для определенного поста иВо-вторых, нужно выбрать категории из таблицы терминов в случае их использования.
У меня также есть это:
// Add/Remove term relationship
$this->Post_model->updateCats($id, $this->input->post('cat_id[]'));
wон заходит в мою модель Post и убивает вложенные категории, если я отменяю выбор любой из них:
это для редактирования сообщений:
// Add/Remove categories
public function updateCats($id, array $arrSkills)
{
//in case if the array is empty you can stop the process here
if (empty($arrSkills)) {
return false;
}
//kill all associated items
$this->db->where('post_id', $id);
$this->db->where('type', 'category');
$this->db->delete('ci_relationship');
//insert all items
$arrInsertData = [];
foreach($arrSkills as $strSkill)
{
$arrInsertData[] = [
'post_id' => $id,
'term_id' => $strSkill,
'status' => 'attached',
'type' => 'category'
];
}
$this->db->insert_batch('ci_relationship', $arrInsertData);
return true;
}
Есть идеи, как реализовать мою идею?