/** * Изменение существующего виджета-компонента * @param mixed номер виджет-компонента или его keyword * @param array поля виджет-компонента * @return bool */ public function edit_widgetclass($id, $params) { global $AUTH_USER_ID; $nc_core = $this->core; $db = $nc_core->db; if (!$this->widgetclasses_loaded) { $this->load(); } $File_Mode = $this->widgetclasses[$id]['File_Mode']; if ($File_Mode) { $widget_editor = new nc_widget_editor($nc_core->WIDGET_TEMPLATE_FOLDER, $db); $widget_editor->load($id); $widget_editor->save_fields(null, true); $fs_params = $params; $params['AddForm'] = $params['EditForm'] = $params['AfterSaveAction'] = $params['BeforeSaveAction'] = ''; } foreach ($params as $p => $value) { $query[] = "`" . $p . "`='" . $this->core->db->escape(addslashes($params[$p])) . "'"; } $this->core->event->execute('editWidgetClassPrep', $this->get_id($id)); $query = "UPDATE `Widget_Class` SET " . implode(',', $query) . $this->get_where($id) . ""; $this->assistant('edit', array($id, $File_Mode ? $fs_params : $params)); $db->query($query); $this->core->event->execute('editWidgetClass', $this->get_id($id)); if (!$this->widgets_loaded) { $this->load('widgets'); } foreach ($this->widgets as $w) { if ($w['Widget_Class_ID'] == $id) { $this->generate(intval($w['Widget_Class_ID']), '', 1, intval($w['Widget_ID'])); } } return true; }