46 lines
2.0 KiB
PHP
46 lines
2.0 KiB
PHP
|
<?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);
|
|||
|
}
|
|||
|
}
|
|||
|
?>
|