1: <?php defined('_JOOS_CORE') or exit();
2:
3: /**
4: * Работа с общесистемной корзиной
5: *
6: * @version 1.0
7: * @package Core\Libraries
8: * @subpackage Trash
9: * @category Libraries
10: * @author Joostina Team <info@joostina.ru>
11: * @copyright (C) 2007-2012 Joostina Team
12: * @license MIT License http://www.opensource.org/licenses/mit-license.php
13: * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
14: *
15: * */
16: class joosTrash extends joosModel
17: {
18: public $id;
19: public $obj_id;
20: public $obj_table;
21: public $title;
22: public $data;
23: public $user_id;
24: public $deleted_at;
25:
26: public function __construct()
27: {
28: parent::__construct('#__trash', 'id');
29: }
30:
31: /**
32: * Добавление копии удалённого объекта в корзину
33: *
34: * @global User $my - объект текущего пользователя
35: * @param stdClass $obj - удаляемый объект
36: *
37: * @return boolean результат сохранения копии удаляемого объекта в корзину
38: */
39: public static function add($obj_original)
40: {
41: $obj = clone $obj_original;
42:
43: // ключевое индексное поле объекта
44: $_tbl_key = $obj->_tbl_key;
45:
46: // если у удаляемого объекта отсутствует ключ - то объет не определён
47: if (!$obj_original->$_tbl_key) {
48: return false;
49: }
50:
51: // удаляем объект базы данных
52: unset($obj->_db, $obj->_error);
53:
54: // собираем данные для сохранения резервной копии
55: $trash = new self;
56: $trash->obj_id = $obj->$_tbl_key;
57: $trash->obj_table = $obj->_tbl;
58: $trash->title = isset($obj->title) ? $obj->title : $obj->$_tbl_key;
59: $trash->data = json_encode($obj);
60: $trash->user_id = modelUsers::instance()->id;
61: $trash->deleted_at = JCURRENT_SERVER_TIME;
62:
63: return (bool) $trash->store();
64: }
65:
66: }
67: