Exemplo n.º 1
0
 public static function new_record($tab, $values = array())
 {
     self::init($tab);
     $user = Acl::get_user();
     $for_processing = $values;
     foreach (self::$table_rows as $field => $args) {
         if ($args['type'] === 'multiselect') {
             if (!isset($for_processing[$args['id']]) || !$for_processing[$args['id']]) {
                 $for_processing[$args['id']] = array();
             }
         } elseif (!isset($for_processing[$args['id']])) {
             $for_processing[$args['id']] = '';
         }
     }
     $values = self::record_processing($tab, $for_processing, 'add');
     if ($values === false) {
         return;
     }
     self::init($tab);
     $fields = 'created_on,created_by,active';
     $fields_types = '%T,%d,%d';
     $vals = array(date('Y-m-d H:i:s'), $user, 1);
     foreach (self::$table_rows as $field => $args) {
         if ($args['type'] == 'calculated' && preg_match('/^[a-z]+(\\([0-9]+\\))?$/i', $args['param']) === 0) {
             continue;
         }
         // FIXME move DB definiton to *_field table
         if (!isset($values[$args['id']]) || $values[$args['id']] === '') {
             continue;
         }
         if (!is_array($values[$args['id']])) {
             $values[$args['id']] = trim($values[$args['id']]);
         }
         if ($args['type'] == 'long text') {
             $values[$args['id']] = Utils_BBCodeCommon::optimize($values[$args['id']]);
         }
         if ($args['type'] == 'multiselect' && empty($values[$args['id']])) {
             continue;
         }
         if ($args['type'] == 'multiselect') {
             $values[$args['id']] = self::encode_multi($values[$args['id']]);
         }
         $fields_types .= ',' . self::get_sql_type($args['type']);
         $fields .= ',f_' . $args['id'];
         if (is_bool($values[$args['id']])) {
             $values[$args['id']] = $values[$args['id']] ? 1 : 0;
         }
         $vals[] = $values[$args['id']];
     }
     DB::Execute('INSERT INTO ' . $tab . '_data_1 (' . $fields . ') VALUES (' . $fields_types . ')', $vals);
     $id = DB::Insert_ID($tab . '_data_1', 'id');
     if ($user) {
         self::add_recent_entry($tab, $user, $id);
     }
     if (Base_User_SettingsCommon::get('Utils_RecordBrowser', $tab . '_auto_fav')) {
         DB::Execute('INSERT INTO ' . $tab . '_favorite (user_id, ' . $tab . '_id) VALUES (%d, %d)', array($user, $id));
     }
     self::init($tab);
     foreach (self::$table_rows as $field => $args) {
         if ($args['type'] === 'multiselect') {
             if (!isset($values[$args['id']])) {
                 $values[$args['id']] = array();
             } elseif (!is_array($values[$args['id']])) {
                 $values[$args['id']] = self::decode_multi($values[$args['id']]);
             }
         }
         if ($args['type'] === 'autonumber') {
             $autonumber_value = self::format_autonumber_str($args['param'], $id);
             self::update_record($tab, $id, array($args['id'] => $autonumber_value), false, null, true);
             $values[$args['id']] = $autonumber_value;
         }
     }
     $values['id'] = $id;
     self::record_processing($tab, $values, 'added');
     if (Base_User_SettingsCommon::get('Utils_RecordBrowser', $tab . '_auto_subs') == 1) {
         Utils_WatchdogCommon::subscribe($tab, $id);
     }
     Utils_WatchdogCommon::new_event($tab, $id, 'C');
     return $id;
 }
Exemplo n.º 2
0
<?php

/**
 * @author Arkadiusz Bisaga <*****@*****.**>
 * @copyright Copyright &copy; 2008, Telaxus LLC
 * @license MIT
 * @version 1.0
 * @package epesi-utils
 * @subpackage watchdog
 */
if (!isset($_POST['id']) || !isset($_POST['state']) || !isset($_POST['element']) || !isset($_POST['cat']) || !isset($_POST['cid'])) {
    die('Invalid request: ' . print_r($_POST, true));
}
define('JS_OUTPUT', 1);
define('CID', $_POST['cid']);
define('READ_ONLY_SESSION', true);
require_once '../../../include.php';
ModuleManager::load_modules();
$id = json_decode($_POST['id']);
$cat = json_decode($_POST['cat']);
$state = json_decode($_POST['state']);
$element = json_decode($_POST['element']);
if (!Acl::is_user()) {
    die('alert("Unauthorized access");');
}
if ($state) {
    Utils_WatchdogCommon::subscribe($cat, $id);
} else {
    Utils_WatchdogCommon::unsubscribe($cat, $id);
}
print 'jq("#' . $element . '").html("' . Epesi::escapeJS(Utils_WatchdogCommon::get_change_subscription_icon_tags($cat, $id)) . '");';