本文整理汇总了PHP中custom_field_ensure_exists函数的典型用法代码示例。如果您正苦于以下问题:PHP custom_field_ensure_exists函数的具体用法?PHP custom_field_ensure_exists怎么用?PHP custom_field_ensure_exists使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了custom_field_ensure_exists函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: process
//.........这里部分代码省略.........
$t_custom_fields[++$i] = new stdClass();
}
switch ($reader->localName) {
default:
$field = $reader->localName;
$reader->read();
$t_custom_fields[$i]->{$field} = $reader->value;
}
}
}
break;
case 'bugnotes':
// store bug notes
$i = -1;
$depth_bn = $reader->depth;
while ($reader->read() && ($reader->depth > $depth_bn || $reader->nodeType != XMLReader::END_ELEMENT)) {
if ($reader->nodeType == XMLReader::ELEMENT) {
if ($reader->localName == 'bugnote') {
$t_bugnotes[++$i] = new stdClass();
}
switch ($reader->localName) {
case 'reporter':
$t_old_id = $reader->getAttribute('id');
$reader->read();
$t_bugnotes[$i]->reporter_id = $this->get_user_id($reader->value, $userId);
break;
case 'view_state':
$t_old_id = $reader->getAttribute('id');
$reader->read();
$t_bugnotes[$i]->private = $reader->value == VS_PRIVATE ? true : false;
break;
default:
$field = $reader->localName;
$reader->read();
$t_bugnotes[$i]->{$field} = $reader->value;
}
}
}
break;
case 'attachments':
// store attachments
$i = -1;
$depth_att = $reader->depth;
while ($reader->read() && ($reader->depth > $depth_att || $reader->nodeType != XMLReader::END_ELEMENT)) {
if ($reader->nodeType == XMLReader::ELEMENT) {
if ($reader->localName == 'attachment') {
$t_attachments[++$i] = new stdClass();
}
switch ($reader->localName) {
default:
$field = $reader->localName;
$reader->read();
$t_attachments[$i]->{$field} = $reader->value;
}
}
}
break;
default:
$field = $reader->localName;
//echo "using default handler for field: $field\n";
$reader->read();
$this->newbug_->{$field} = $reader->value;
}
}
}
// now save the new bug
$this->new_id_ = $this->newbug_->create();
// add custom fields
if ($this->new_id_ > 0 && is_array($t_custom_fields) && count($t_custom_fields) > 0) {
foreach ($t_custom_fields as $t_custom_field) {
$t_custom_field_id = custom_field_get_id_from_name($t_custom_field->name);
if (custom_field_ensure_exists($t_custom_field_id) && custom_field_is_linked($t_custom_field_id, $t_project_id)) {
custom_field_set_value($t_custom_field->id, $this->new_id_, $t_custom_field->value);
} else {
error_parameters($t_custom_field->name, $t_custom_field_id);
trigger_error(ERROR_CUSTOM_FIELD_NOT_LINKED_TO_PROJECT, ERROR);
}
}
}
// add bugnotes
if ($this->new_id_ > 0 && is_array($t_bugnotes) && count($t_bugnotes) > 0) {
foreach ($t_bugnotes as $t_bugnote) {
bugnote_add($this->new_id_, $t_bugnote->note, $t_bugnote->time_tracking, $t_bugnote->private, $t_bugnote->note_type, $t_bugnote->note_attr, $t_bugnote->reporter_id, false, $t_bugnote->date_submitted, $t_bugnote->last_modified, true);
}
}
// add attachments
if ($this->new_id_ > 0 && is_array($t_attachments) && count($t_attachments) > 0) {
foreach ($t_attachments as $t_attachment) {
// Create a temporary file in the temporary files directory using sys_get_temp_dir()
$temp_file_name = tempnam(sys_get_temp_dir(), 'MantisImport');
file_put_contents($temp_file_name, base64_decode($t_attachment->content));
$file_data = array('name' => $t_attachment->filename, 'type' => $t_attachment->file_type, 'tmp_name' => $temp_file_name, 'size' => filesize($temp_file_name), 'error' => UPLOAD_ERR_OK);
// unfortunately we have no clue who has added the attachment (this could only be fetched from history -> feel free to implement this)
// also I have no clue where description should come from...
file_add($this->new_id_, $file_data, 'bug', $t_attachment->title, $p_desc = '', $p_user_id = null, $t_attachment->date_added, true);
unlink($temp_file_name);
}
}
//echo "\nnew bug: $this->new_id_\n";
}
示例2: require_api
require_api('access_api.php');
require_api('authentication_api.php');
require_api('config_api.php');
require_api('custom_field_api.php');
require_api('form_api.php');
require_api('gpc_api.php');
require_api('helper_api.php');
require_api('html_api.php');
require_api('lang_api.php');
require_api('print_api.php');
require_api('string_api.php');
auth_reauthenticate();
access_ensure_global_level(config_get('manage_custom_fields_threshold'));
$f_field_id = gpc_get_int('field_id');
$f_return = strip_tags(gpc_get_string('return', 'manage_custom_field_page.php'));
custom_field_ensure_exists($f_field_id);
html_page_top();
print_manage_menu('manage_custom_field_edit_page.php');
$t_definition = custom_field_get_definition($f_field_id);
?>
<div id="manage-custom-field-update-div" class="form-container">
<form id="manage-custom-field-update-form" method="post" action="manage_custom_field_update.php">
<fieldset>
<legend><span><?php
echo lang_get('edit_custom_field_title');
?>
</span></legend>
<?php
echo form_security_field('manage_custom_field_update');
?>
示例3: custom_field_set_value
/**
* Set the value of a custom field for a given bug
* return true on success, false on failure
* @param integer $p_field_id Custom field identifier.
* @param integer $p_bug_id A bug identifier.
* @param mixed $p_value New custom field value.
* @param boolean $p_log_insert Create history logs for new values.
* @return boolean
* @access public
*/
function custom_field_set_value($p_field_id, $p_bug_id, $p_value, $p_log_insert = true)
{
custom_field_ensure_exists($p_field_id);
if (!custom_field_validate($p_field_id, $p_value)) {
return false;
}
$t_name = custom_field_get_field($p_field_id, 'name');
$t_type = custom_field_get_field($p_field_id, 'type');
$t_value_field = $t_type == CUSTOM_FIELD_TYPE_TEXTAREA ? 'text' : 'value';
# Determine whether an existing value needs to be updated or a new value inserted
$t_query = 'SELECT ' . $t_value_field . '
FROM {custom_field_string}
WHERE field_id=' . db_param() . ' AND
bug_id=' . db_param();
$t_result = db_query($t_query, array($p_field_id, $p_bug_id));
if ($t_row = db_fetch_array($t_result)) {
$t_query = 'UPDATE {custom_field_string}
SET ' . $t_value_field . '=' . db_param() . '
WHERE field_id=' . db_param() . ' AND
bug_id=' . db_param();
$t_params = array(custom_field_value_to_database($p_value, $t_type), (int) $p_field_id, (int) $p_bug_id);
db_query($t_query, $t_params);
history_log_event_direct($p_bug_id, $t_name, custom_field_database_to_value($t_row[$t_value_field], $t_type), $p_value);
} else {
$t_query = 'INSERT INTO {custom_field_string}
( field_id, bug_id, ' . $t_value_field . ' )
VALUES
( ' . db_param() . ', ' . db_param() . ', ' . db_param() . ')';
$t_params = array((int) $p_field_id, (int) $p_bug_id, custom_field_value_to_database($p_value, $t_type));
db_query($t_query, $t_params);
# Don't log history events for new bug reports or on other special occasions
if ($p_log_insert) {
history_log_event_direct($p_bug_id, $t_name, '', $p_value);
}
}
custom_field_clear_cache($p_field_id);
# db_query() errors on failure so:
return true;
}
示例4: custom_field_has_read_access_to_project
function custom_field_has_read_access_to_project($p_field_id, $p_project_id, $p_user_id = null)
{
custom_field_ensure_exists($p_field_id);
if (null === $p_user_id) {
$p_user_id = auth_get_current_user_id();
}
$t_access_level_r = custom_field_get_field($p_field_id, 'access_level_r');
return access_has_project_level($t_access_level_r, $p_project_id, $p_user_id);
}
示例5: custom_field_set_value
function custom_field_set_value($p_field_id, $p_bug_id, $p_value)
{
$c_field_id = db_prepare_int($p_field_id);
$c_bug_id = db_prepare_int($p_bug_id);
custom_field_ensure_exists($p_field_id);
$t_custom_field_table = config_get('mantis_custom_field_table');
$query = "SELECT name, type, possible_values, valid_regexp,\r\n\t\t\t\t access_level_rw, length_min, length_max, default_value\r\n\t\t\t\t FROM {$t_custom_field_table}\r\n\t\t\t\t WHERE id='{$c_field_id}'";
$result = db_query($query);
$row = db_fetch_array($result);
$t_name = $row['name'];
$t_type = $row['type'];
$t_possible_values = $row['possible_values'];
$t_valid_regexp = $row['valid_regexp'];
$t_access_level_rw = $row['access_level_rw'];
$t_length_min = $row['length_min'];
$t_length_max = $row['length_max'];
$t_default_value = $row['default_value'];
$c_value = db_prepare_string(custom_field_value_to_database($p_value, $t_type));
# check for valid value
if (!is_blank($t_valid_regexp)) {
if (!ereg($t_valid_regexp, $p_value)) {
return false;
}
}
if (strlen($p_value) < $t_length_min) {
return false;
}
if (0 != $t_length_max && strlen($p_value) > $t_length_max) {
return false;
}
if (!custom_field_has_write_access($p_field_id, $p_bug_id, auth_get_current_user_id())) {
return false;
}
$t_custom_field_string_table = config_get('mantis_custom_field_string_table');
# do I need to update or insert this value?
$query = "SELECT value\r\n\t\t\t\t FROM {$t_custom_field_string_table}\r\n\t\t\t\t WHERE field_id='{$c_field_id}' AND\r\n\t\t\t\t \t\tbug_id='{$c_bug_id}'";
$result = db_query($query);
if (db_num_rows($result) > 0) {
$query = "UPDATE {$t_custom_field_string_table}\r\n\t\t\t\t\t SET value='{$c_value}'\r\n\t\t\t\t\t WHERE field_id='{$c_field_id}' AND\r\n\t\t\t\t\t \t\tbug_id='{$c_bug_id}'";
db_query($query);
$row = db_fetch_array($result);
history_log_event_direct($c_bug_id, $t_name, custom_field_database_to_value($row['value'], $t_type), $p_value);
} else {
# Always store the value, even if it's the dafault value
# This is important, as the definitions might change but the
# values stored with a bug must not change
$query = "INSERT INTO {$t_custom_field_string_table}\r\n\t\t\t\t\t\t( field_id, bug_id, value )\r\n\t\t\t\t\t VALUES\r\n\t\t\t\t\t\t( '{$c_field_id}', '{$c_bug_id}', '{$c_value}' )";
db_query($query);
history_log_event_direct($c_bug_id, $t_name, '', $p_value);
}
custom_field_clear_cache($p_field_id);
#db_query() errors on failure so:
return true;
}
示例6: custom_field_set_value
/**
* Set the value of a custom field for a given bug
* return true on success, false on failure
* @param int $p_field_id custom field id
* @param int $p_bug_id bug id
* @param mixed $p_value
* @param boolean $p_log create history logs for new values
* @return bool
* @access public
*/
function custom_field_set_value($p_field_id, $p_bug_id, $p_value, $p_log_insert = true)
{
$c_field_id = db_prepare_int($p_field_id);
$c_bug_id = db_prepare_int($p_bug_id);
custom_field_ensure_exists($p_field_id);
if (!custom_field_validate($p_field_id, $p_value)) {
return false;
}
$t_name = custom_field_get_field($p_field_id, 'name');
$t_type = custom_field_get_field($p_field_id, 'type');
$t_custom_field_string_table = db_get_table('custom_field_string');
$t_value_field = $t_type == CUSTOM_FIELD_TYPE_TEXTAREA ? 'text' : 'value';
# Determine whether an existing value needs to be updated or a new value inserted
$query = "SELECT {$t_value_field}\n\t\t\t\t FROM {$t_custom_field_string_table}\n\t\t\t\t WHERE field_id=" . db_param() . " AND\n\t\t\t\t \t\tbug_id=" . db_param();
$result = db_query_bound($query, array($c_field_id, $c_bug_id));
if (db_num_rows($result) > 0) {
$query = "UPDATE {$t_custom_field_string_table}\n\t\t\t\t\t SET {$t_value_field}=" . db_param() . "\n\t\t\t\t\t WHERE field_id=" . db_param() . " AND\n\t\t\t\t\t \t\tbug_id=" . db_param();
db_query_bound($query, array(custom_field_value_to_database($p_value, $t_type), $c_field_id, $c_bug_id));
$row = db_fetch_array($result);
history_log_event_direct($c_bug_id, $t_name, custom_field_database_to_value($row[$t_value_field], $t_type), $p_value);
} else {
$query = "INSERT INTO {$t_custom_field_string_table}\n\t\t\t\t\t\t( field_id, bug_id, {$t_value_field} )\n\t\t\t\t\t VALUES\n\t\t\t\t\t\t( " . db_param() . ', ' . db_param() . ', ' . db_param() . ')';
db_query_bound($query, array($c_field_id, $c_bug_id, custom_field_value_to_database($p_value, $t_type)));
# Don't log history events for new bug reports or on other special occasions
if ($p_log_insert) {
history_log_event_direct($c_bug_id, $t_name, '', $p_value);
}
}
custom_field_clear_cache($p_field_id);
# db_query errors on failure so:
return true;
}