core/api/modules/fast-edit/class.php

46 lines
2.0 KiB
PHP
Raw Permalink Normal View History

2022-12-11 13:55:49 +05:00
<?php
class main{
var $db; // Здесь объект для работы с MySQL
var $id;
function __construct($smarty, $settings, $db){
$this->db=$db;
}
function clear($text){
$old1 = array('"');
$new1 = array('\"');
$text = str_replace($old1, $new1, $text);#Собсно сама замена =)^M
return $text;
}
/* обновляем строки в таблице content */
function updateString($post){
$db=$this->db;
//если нет поля, пробуем создать
$db->free_sql2("ALTER TABLE `content` ADD `" . $post['name'] . "` varchar(254) COLLATE 'utf8_general_ci' NULL;");
//узнаем ид и содержимое и обновляем таблицу
unset($a);
$a[$post['name']]=$post['txt'];
$db->update('content', $post['id'], $a);
}
/* обновляем json */
function updateJson($post){
$db=$this->db;
//вынимаем массив
$a['id']=$post['id'];
$json=unserialize($db->get_val('content', $a, 'json'));
//меняем переменную в нужном ключе
$json[$post['name']]=$post['txt'];
//сохраняем массив
$db->free_sql2('UPDATE `content` SET `json` = "' . $this->clear(serialize($json)) . '" WHERE `id` = ' . $post['id'] . ';');
}
/* ------------------------------------------------------------------------------------------------------------------------- */
function update($post, $file=''){ // Точка входа
//Определяем тип контента... строка, текст ареа или json, может быть когда нибудь и xml и base64
if ($post['type']=="string")$this->updateString($post);
if ($post['type']=="json")$this->updateJson($post);
if ($post['type']=="textarea")$this->updateTextarea($post);
if ($file)$this->upload($file);
}
}
?>