public function setRecord($data) { $data[blocktype] = $this->blocktype; $operation[$data[operation_id]] = array('date' => $data[action_date], 'comment_id' => sqltable_model::getCommentId($data[comment])); // если в поле для нового ввели номер сопроводиловки уже существующий в журнале // то будем править его $sql = "SELECT * FROM {$this->maintable} WHERE lanch_id='{$data[lanch_id]}'"; $res = sql::fetchOne($sql); if (empty($res)) { // гадство! тут нужен уникальный, а без коментариев будет получаться один sql::insert('coments', array(array("comment" => multibyte::Json_encode($operation)))); $data[coment_id] = sql::lastId(); } else { $coment = multibyte::Json_decode(sqltable_model::getComment($res[coment_id])); $coment[$data[operation_id]] = $operation[$data[operation_id]]; // заменить старый по ключу sql::insertUpdate('coments', array(array("id" => $res[coment_id], "comment" => multibyte::Json_encode($coment)))); $data[edit] = $res[id]; // если был такой его и правим $data[coment_id] = $res[coment_id]; } $data[lastoperation] = $data[operation_id]; parent::setRecord($data); return true; }
/** * Функция возвращает обработанный для фронтенда контент * @param $content string Текущий контент (то, что вывелось на страницу тем или иным образом) */ public static function process($content) { $json = multibyte::Json_encode(array( "js" => self::$result, "text" => "{$content}", ), self::$entityDecode); return $json; }
/** * Добавляет к блоку данные о проводниках и зазорах */ public function wideandgap($rec) { $rec = multibyte::cp1251_to_utf8($rec); // TODO duble code // update block size extract($rec); $sql = "SELECT id FROM customers WHERE customer='{$customer}'"; $rs = sql::fetchOne($sql); if (empty($rs)) { $sql = "INSERT INTO customers (customer) VALUES ('{$customer}')"; sql::query($sql); $customer_id = sql::lastId(); } else { $customer_id = $rs[id]; } $sql = "SELECT id,comment_id FROM blocks WHERE customer_id='{$customer_id}' AND blockname='{$board}'"; $rs = sql::fetchOne($sql); if (!empty($rs)) { $params = json_decode(multibyte::Unescape(sqltable_model::getComment($rs["comment_id"])), true); //получим текщий комент $params["wideandgaps"] = update_model::parsexstring($wideandgaps); $comment_id = sqltable_model::getCommentId(multibyte::Json_encode(multibyte::recursiveEscape($params))); $id = $rs["id"]; $sql = "UPDATE blocks SET comment_id='{$comment_id}' WHERE id='{$id}'"; sql::query($sql); echo json_encode($params); } /* если не нашелся такой блок, то не понятно как вызывался метод, блок создается раньше вызовом coppers и другими * wideandgaps вызывается для готовых блоков, не вижу смысла отрабатывать ситуацию когда блока нет */ }
public function setRecord($data) { extract($data); // в скрытых параметрах формы есть идентификатор коментария, заберем текущий и заменим в нем собственно коментарий $param = json_decode(multibyte::Unescape($this->getComment($comment_id)), true); $param["class"] = $data["class"]; $param[basemat] = $data["basemat"]; $param[sttkan] = $data["sttkan"]; $param[sttkankl] = $data["sttkankl"]; $param[sttkanrasp] = $data["sttkanrasp"]; $param[rtolsh] = $data["rtolsh"]; $param[filext] = $data["filext"]; $param[elkon] = $data["elkon"]; for ($i = 1; $i < 11; $i++) { $param["sl{$i}"] = $data["sl{$i}"]; $param["pr{$i}"] = $data["pr{$i}"]; $param["mat{$i}"] = $data["mat{$i}"]; } $param["coment"] = $comment; $data["comment_id"] = $this->getCommentId(multibyte::Json_encode(multibyte::recursiveEscape($param))); return parent::setRecord($data); }
public function getJson($data) { //header("CONTENT-TYPE: TEXT/X-JSON; CHARSET={$_SERVER[Encoding]}"); header("CONTENT-TYPE: APPLICATION/JSON; CHARSET={$_SERVER[Encoding]}"); echo multibyte::Json_encode($data, true); }