本文整理汇总了PHP中XMLDBField::setDecimals方法的典型用法代码示例。如果您正苦于以下问题:PHP XMLDBField::setDecimals方法的具体用法?PHP XMLDBField::setDecimals怎么用?PHP XMLDBField::setDecimals使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLDBField
的用法示例。
在下文中一共展示了XMLDBField::setDecimals方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: invoke
//.........这里部分代码省略.........
/// Clear some spaces
$enumarr[$key] = trim($enumelement);
$enumelement = trim($enumelement);
/// Calculate needed length
$le = strlen(str_replace("'", '', $enumelement));
if ($le > $maxlength) {
$maxlength = $le;
}
/// Skip if under error
if ($enumerr) {
continue;
}
/// Look for quoted strings
if (substr($enumelement, 0, 1) != "'" || substr($enumelement, -1, 1) != "'") {
$enumerr = true;
}
}
} else {
$enumerr = true;
}
if ($enumerr) {
$errors[] = $this->str['enumvaluesincorrect'];
} else {
$enumvalues = $enumarr;
}
if ($length < $maxlength) {
$errors[] = $this->str['wronglengthforenum'];
}
}
if (!empty($errors)) {
$tempfield = new XMLDBField($name);
$tempfield->setType($type);
$tempfield->setLength($length);
$tempfield->setDecimals($decimals);
$tempfield->setUnsigned($unsigned);
$tempfield->setNotNull($notnull);
$tempfield->setSequence($sequence);
$tempfield->setEnum($enum);
$tempfield->setEnumValues($enumvalues);
$tempfield->setDefault($default);
/// Prepare the output
$site = get_site();
$navlinks = array();
$navlinks[] = array('name' => $this->str['administration'], 'link' => '../index.php', 'type' => 'misc');
$navlinks[] = array('name' => 'XMLDB', 'link' => 'index.php', 'type' => 'misc');
$navigation = build_navigation($navlinks);
print_header("{$site->shortname}: XMLDB", "{$site->fullname}", $navigation);
notice('<p>' . implode(', ', $errors) . '</p>
<p>' . $tempfield->readableInfo(), 'index.php?action=edit_field&field=' . $field->getName() . '&table=' . $table->getName() . '&dir=' . urlencode(str_replace($CFG->dirroot, '', $dirpath)));
die;
/// re-die :-P
}
/// Continue if we aren't under errors
if (empty($errors)) {
/// If there is one name change, do it, changing the prev and next
/// atributes of the adjacent fields
if ($fieldparam != $name) {
$field->setName($name);
if ($field->getPrevious()) {
$prev =& $table->getField($field->getPrevious());
$prev->setNext($name);
$prev->setChanged(true);
}
if ($field->getNext()) {
$next =& $table->getField($field->getNext());
$next->setPrevious($name);
示例2: xmldb_block_curr_admin_upgrade
//.........这里部分代码省略.........
$result = $result && add_field($table, $field);
//populate data, assuming that the user who received the notification is the one whose
//criteria spawned it
//NOTE: this fudges data and the side-effect implies that if someone had received a notification
//for another user and satisfy the same criteria for the same instance for themself, they will not
//receive a similar notification
$sql = "UPDATE {$CFG->prefix}crlm_notification_log\n SET fromuserid = userid";
$result = $result && execute_sql($sql);
if ($result) {
/// Define field certificatecode to be added to crlm_curriculum_assignment
$table = new XMLDBTable('crlm_curriculum_assignment');
$field = new XMLDBField('certificatecode');
$field->setAttributes(XMLDB_TYPE_CHAR, '40', null, null, null, null, null, null, 'locked');
/// Launch add field autocreated
$result = $result && add_field($table, $field);
/// Define index userid_ix (not unique) to be added to crlm_wait_list
$index = new XMLDBIndex('certificatecode_ix');
$index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('certificatecode'));
$result = $result && add_index($table, $index);
}
}
if ($result && $oldversion < 2011050204) {
$table = new XMLDBTable('crlm_notification_log');
$index = new XMLDBIndex('event_inst_fuser_ix');
$index->setAttributes(XMLDB_INDEX_NOTUNIQUE, array('fromuserid', 'instance', 'event'));
$result = add_index($table, $index);
}
if ($result && $oldversion < 2011050205) {
// Update the ELIS class enrolment grade value and completion score grade values so they store float
// (decimal) values
$table = new XMLDBTable('crlm_class_enrolment');
$field = new XMLDBField('grade');
$field->setAttributes(XMLDB_TYPE_NUMBER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
$field->setDecimals(5);
$result = change_field_type($table, $field);
$table = new XMLDBTable('crlm_class_graded');
$result = $result && change_field_type($table, $field);
/*
* Find all of the completion grades that are synchronised from Moodle grade items that are not locked and
* where the ELIS completion score does not match the value in the Moodle gradebook and delete those
* completion scores so they can be re-synchronised from Moodle with the correct float values stored.
*/
// Attempt to handle different DBs in the most efficient way possible
if ($CFG->dbfamily == 'postgres') {
$sql = "DELETE FROM {$CFG->prefix}crlm_class_graded\n WHERE id IN (\n SELECT ccg.id\n FROM mdl_crlm_user cu\n INNER JOIN {$CFG->prefix}crlm_class_enrolment cce ON cce.userid = cu.id\n INNER JOIN {$CFG->prefix}crlm_class_graded ccg ON (ccg.userid = cce.userid AND ccg.classid = cce.classid)\n INNER JOIN {$CFG->prefix}crlm_course_completion ccc ON ccc.id = ccg.completionid\n INNER JOIN {$CFG->prefix}crlm_class_moodle ccm ON ccm.classid = ccg.classid\n INNER JOIN {$CFG->prefix}user u ON u.idnumber = cu.idnumber\n INNER JOIN {$CFG->prefix}course c ON c.id = ccm.moodlecourseid\n INNER JOIN {$CFG->prefix}grade_items gi ON (gi.courseid = c.id AND gi.idnumber = ccc.idnumber)\n INNER JOIN {$CFG->prefix}grade_grades gg ON (gg.itemid = gi.id AND gg.userid = u.id)\n WHERE ccg.locked = 0\n AND ccc.idnumber != ''\n AND gi.itemtype != 'course'\n AND ccg.grade != gg.finalgrade\n AND gg.finalgrade IS NOT NULL\n )";
$result = $result && execute_sql($sql);
} else {
if ($CFG->dbfamily == 'mysql') {
$sql = "DELETE ccg\n FROM mdl_crlm_user cu\n INNER JOIN {$CFG->prefix}crlm_class_enrolment cce ON cce.userid = cu.id\n INNER JOIN {$CFG->prefix}crlm_class_graded ccg ON (ccg.userid = cce.userid AND ccg.classid = cce.classid)\n INNER JOIN {$CFG->prefix}crlm_course_completion ccc ON ccc.id = ccg.completionid\n INNER JOIN {$CFG->prefix}crlm_class_moodle ccm ON ccm.classid = ccg.classid\n INNER JOIN {$CFG->prefix}user u ON u.idnumber = cu.idnumber\n INNER JOIN {$CFG->prefix}course c ON c.id = ccm.moodlecourseid\n INNER JOIN {$CFG->prefix}grade_items gi ON (gi.courseid = c.id AND gi.idnumber = ccc.idnumber)\n INNER JOIN {$CFG->prefix}grade_grades gg ON (gg.itemid = gi.id AND gg.userid = u.id)\n WHERE ccg.locked = 0\n AND ccc.idnumber != ''\n AND gi.itemtype != 'course'\n AND ccg.grade != gg.finalgrade\n AND gg.finalgrade IS NOT NULL";
$result = $result && execute_sql($sql);
} else {
$sql = "SELECT ccg.id, ccg.grade\n FROM mdl_crlm_user cu\n INNER JOIN {$CFG->prefix}crlm_class_enrolment cce ON cce.userid = cu.id\n INNER JOIN {$CFG->prefix}crlm_class_graded ccg ON (ccg.userid = cce.userid AND ccg.classid = cce.classid)\n INNER JOIN {$CFG->prefix}crlm_course_completion ccc ON ccc.id = ccg.completionid\n INNER JOIN {$CFG->prefix}crlm_class_moodle ccm ON ccm.classid = ccg.classid\n INNER JOIN {$CFG->prefix}user u ON u.idnumber = cu.idnumber\n INNER JOIN {$CFG->prefix}course c ON c.id = ccm.moodlecourseid\n INNER JOIN {$CFG->prefix}grade_items gi ON (gi.courseid = c.id AND gi.idnumber = ccc.idnumber)\n INNER JOIN {$CFG->prefix}grade_grades gg ON (gg.itemid = gi.id AND gg.userid = u.id)\n WHERE ccg.locked = 0\n AND ccc.idnumber != ''\n AND gi.itemtype != 'course'\n AND ccg.grade != gg.finalgrade\n AND gg.finalgrade IS NOT NULL";
if ($rs = get_recordset_sql($sql)) {
while ($cg = rs_fetch_next_record($rs)) {
$result = $result && delete_records('crlm_class_graded', 'id', $cg->id);
}
rs_close($rs);
}
}
}
// Force a re-synchronization of ELIS class grade data
require_once $CFG->dirroot . '/curriculum/lib/lib.php';
cm_synchronize_moodle_class_grades();
}
if ($result && $oldversion < 2011050206) {
/// Define table crlm_field_data to be dropped