Exemple #1
0
 /**
  * Вызывается перед сохранением в базу
  *
  * @param array $fld
  * @return array
  */
 function ElemRedactBefore($fld)
 {
     $fld = parent::ElemRedactBefore($fld);
     $error = "";
     $page_id = get('id', 0, 'gp');
     $page_pid = get('pid', 0, 'gp');
     if ($page_pid) {
         $parent = sql_getRow("SELECT dir, pids, level FROM " . $this->elem_table . " WHERE id=" . $page_pid);
     } else {
         $page_pid = sql_getValue("SELECT pid FROM `" . $this->elem_table . "` WHERE id=" . $page_id);
         $parent = sql_getRow("SELECT dir, pids, level FROM " . $this->elem_table . " WHERE id=" . $page_pid);
     }
     if (!$page_id) {
         // создание нового раздела
         $auto = sql_getRow("SHOW TABLE STATUS LIKE '" . $this->elem_table . "'");
         if ($auto['Auto_increment']) {
             $new_id = $auto['Auto_increment'];
         }
         if ($page_pid == $page_id) {
             $fld['level'] = 1;
         } else {
             $fld['level'] = $parent['level'] + 1;
         }
         $fld['priority'] = sql_getValue("SELECT MAX(priority) FROM `" . $this->elem_table . "` WHERE pid=" . $page_pid) + 1;
     }
     $page = $page_id ? $page_id : $new_id;
     if ($page_pid != $page_id) {
         # pids
         $pids = explode('/', $parent['pids']);
         if (!$pids[0]) {
             array_shift($pids);
         }
         if (!$pids[count($pids) - 1]) {
             array_pop($pids);
         }
         $pids[] = $page_pid;
         $fld['pids'] = '/' . join('/', $pids) . '/';
         # dir
         $fld['dir'] = $parent['dir'] . $page . '/';
     } else {
         # pids
         $fld['pids'] = '/' . $page_pid . '/';
         $fld['dir'] = '/' . $page . '/';
     }
     # изменим next у родителя
     sql_query("UPDATE tree SET next='1' WHERE id='" . (isset($parent['id']) ? $parent['id'] : $page_pid) . "'");
     # Проверка на существование dir
     $check = sql_getValue("SELECT id FROM " . $this->elem_table . " WHERE dir='" . $fld['dir'] . "'");
     if ($check && $check != $page_id) {
         $error_tab = $k;
         $error = "Раздел с таким URL уже существует";
     }
     return array('fld' => $fld, '_error_text' => $error);
 }
Exemple #2
0
 function ElemRedactBefore($fld)
 {
     if (!empty($fld['password']) && $fld['password'] == $fld['password2']) {
         $fld['password'] = md5($fld['password']);
         $this->elem_fields['columns']['password']['db_field'] = true;
     }
     if (!$fld['email']) {
         $fld['email'] = 'NULL';
     }
     return parent::ElemRedactBefore($fld);
 }
Exemple #3
0
 function ElemRedactBefore($fld)
 {
     if (isset($fld['root_id'])) {
         $root_id = $fld['root_id'];
         while ($pid = sql_getValue("SELECT pid FROM tree WHERE id = {$root_id}")) {
             if ($pid == $root_id) {
                 break;
             } else {
                 $root_id = $pid;
             }
         }
         $fld['root_id'] = $root_id ? $root_id : 'NULL';
     }
     return parent::ElemRedactBefore($fld);
 }
Exemple #4
0
 /**
  * Вызывается перед сохранением в базу
  *
  * @param array $fld
  * @return array
  */
 function ElemRedactBefore($fld)
 {
     $fld = parent::ElemRedactBefore($fld);
     $fld['footer_text'] = $fld['footer_text_radio'] ? $fld['footer_text_area'] : $fld['footer_text_fck'];
     return $fld;
 }