public function GetAllShorts() { $all = array(); $db = $arr_all = ShortControlDatabase::Instance()->GetDatabase(); $db->createFileIfNotExists(); $arr_all = $db->getConfig(); foreach ($arr_all as $name => $data) { $s = new Short(); $s->Build($name, $data); array_push($all, $s); } return $all; }
/** * The class is loaded either with an id (from the spine table) or the path to the file * In the first case, when it is beeing loaded from the Controller, $parent actually contains the alias * of the file itself. * The function cascades the __construct call to it's parent * @param mixed $fullpath Contains id or path * @param mixed $parent Contains (possibly) parent folder * @return void */ function __construct($fullpath = false, $parent = false) { global $DB, $Controller, $CONFIG; $id = false; if (is_numeric($fullpath)) { $id = $fullpath; } else { if ($parent === false) { if ($fullpath === $this->rootDir()) { $id = $Controller->fileRoot(OVERRIDE)->ID; } elseif (substr($fullpath, 0, strlen($this->rootDir())) == $this->rootDir()) { $parent = Folder::open(dirname($fullpath)); } else { return false; } $this->_path = $fullpath; } if (!$id) { if (!($id = $DB->files->getCell(array('parent' => $parent === 0 ? 0 : $parent->ID, 'name' => pathinfo($fullpath, PATHINFO_BASENAME)), 'id'))) { $id = $DB->spine->insert(array('class' => $this->Type)); $DB->files->insert(array('parent' => $parent === 0 ? 0 : $parent->ID, 'name' => pathinfo($fullpath, PATHINFO_BASENAME), 'id' => $id)); } } } parent::__construct($id); if ($this->isImage()) { $this->editable['ImageEditor'] = EDIT; } Short::registerFilter(array(__CLASS__, 'contentFilter')); }
public static function init() { self::$classCRC32Cache = new IdentityHashMap(); self::$CLASS_TO_SERIALIZER_INSTANCE = new IdentityHashMap(); self::$NO_SUCH_SERIALIZER = new SerializabilityUtilEx_NoSuchSerializer(); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES = new HashMap(); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES = new HashSet(); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Boolean::typeClass()->getFullName(), "Z"); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Byte::typeClass()->getFullName(), "B"); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Character::typeClass()->getFullName(), "C"); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Double::typeClass()->getFullName(), "D"); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Float::typeClass()->getFullName(), "F"); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Integer::typeClass()->getFullName(), "I"); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Long::typeClass()->getFullName(), "J"); self::$SERIALIZED_PRIMITIVE_TYPE_NAMES->put(Short::typeClass()->getFullName(), "S"); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Boolean::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Byte::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Character::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Double::clazz()); //TODO Exception class //self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Exception::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Float::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Integer::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Long::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Object::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Short::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(String::clazz()); self::$TYPES_WHOSE_IMPLEMENTATION_IS_EXCLUDED_FROM_SIGNATURES->add(Classes::classOf('Throwable')); }
/** * Display a combined form for date and time * @param $label Label of the form * @param $name name of the form fields * @param $datetime Value of the fields, in unix time * @param $postOverride If the POST variable should override the value in the form * @return string */ function datetime($label, $name, $datetime = false, $postOverride = true) { if ($postOverride && ($r = Short::parseDateAndTime($name, $datetime))) { $datetime = $r; } return new Li(new Datepicker($label, $name . '[date]', $datetime), new Timepickr(false, $name . '[time]', $datetime)); }
public static function init() { self::$TYPE_NAMES[' Z'] = Boolean::typeClass(); self::$TYPE_NAMES[' B'] = Byte::typeClass(); self::$TYPE_NAMES[' C'] = Character::typeClass(); self::$TYPE_NAMES[' D'] = Double::typeClass(); self::$TYPE_NAMES[' F'] = Float::typeClass(); self::$TYPE_NAMES[' I'] = Integer::typeClass(); self::$TYPE_NAMES[' J'] = Long::typeClass(); self::$TYPE_NAMES[' S'] = Short::typeClass(); }
function render() { $id = idfy($this->name); if (is_array($this->value)) { $value = Short::parseDateAndTime($this->value); } global $CONFIG; JS::loadjQuery(true); JS::lib('jquery/jquery.timePicker'); Head::add('timePicker', 'css-lib'); Head::add('$(function(){$("input.time").timePicker();});', 'js-raw'); return '<span class="formelem">' . ($this->label === false ? '' : '<label for="' . $id . '">' . $this->label . '</label>') . '<input name="' . $this->name . '" id="' . $id . '" class="time' . ($this->validate ? ' ' . $this->validate : '') . ($this->class ? ' ' . $this->class : '') . '" value="' . (is_numeric($this->value) ? date('H:i', $this->value) : $this->value) . '" />' . (strpos($this->validate, 'required') !== false ? '<span class="reqstar">*</span>' : '') . ($this->description ? '<span class="description">' . $this->description . '</span>' : '') . '</span>'; }
function saveChanges() { $_POST->setType('title', 'string'); $_POST->setType('template', 'string'); $_POST->setType('alias', 'string'); $_POST->setType('commentsEnabled', 'bool'); if (!$_POST['title']) { return false; } $this->that->Name = $_POST['title']; $this->that->resetAlias(explode(',', $_POST['alias'])); $this->that->setActive(Short::parseDateAndTime('activate'), Short::parseDateAndTime('deactivate')); $this->that->settings['comments'] = isset($_POST['commentsEnabled']); if ($_POST['template']) { $this->that->template = $_POST['template']; } Flash::queue(__('Your changes were saved'), 'confirmation'); return true; }
function saveChanges() { $_POST->setType('etitle', 'string'); $_POST->setType('etxt', 'string'); $_POST->setType('estart', 'any'); $_POST->setType('eend', 'any'); if (!$_POST['etitle']) { Flash::create(__('Please enter a title')); return; } if (!$_POST['etxt']) { Flash::create(__('Please enter a text')); return; } $this->that->Name = $_POST['etitle']; $this->that->Image = $_POST['eimg']; $this->that->setActive(Short::parseDateAndTime('estart'), Short::parseDateAndTime('eend', false)); $this->that->saveContent(array('Text' => $_POST['etxt'])); $Controller->forceReload($this->that); Flash::create(__('Your data was saved'), 'confirmation'); }
private static function printTypeName(Clazz $type) { // Primitives // if ($type === Integer::typeClass()) { return 'int'; } else { if ($type === Long::typeClass()) { return 'long'; } else { if ($type === Short::typeClass()) { return 'short'; } else { if ($type === Byte::typeClass()) { return 'byte'; } else { if ($type === Character::typeClass()) { return 'char'; } else { if ($type === Boolean::typeClass()) { return 'boolean'; } else { if ($type === Float::typeClass()) { return 'float'; } else { if ($type === Double::typeClass()) { return 'double'; } } } } } } } } // Arrays // if ($type->isArray()) { $componentType = $type->getComponentType(); return self::printTypeName($componentType) . '[]'; } // Everything else // return str_replace('$', '.', $type->getName()); }
public function readShort() { $value = $this->extract(); try { return Short::parseShort($value); } catch (NumberFormatException $e) { throw $this->getNumberFormatException($value, 'short', Short::MIN_VALUE, Short::MAX_VALUE); } }
public static function init() { self::$JS_CHARS_ESCAPED[chr(0)] = '0'; self::$JS_CHARS_ESCAPED[""] = 'b'; self::$JS_CHARS_ESCAPED["\t"] = 't'; self::$JS_CHARS_ESCAPED["\n"] = 'n'; self::$JS_CHARS_ESCAPED["\f"] = 'f'; self::$JS_CHARS_ESCAPED["\r"] = 'r'; self::$JS_CHARS_ESCAPED[self::JS_ESCAPE_CHAR] = self::JS_ESCAPE_CHAR; self::$JS_CHARS_ESCAPED[self::JS_QUOTE_CHAR] = self::JS_QUOTE_CHAR; self::$CLASS_TO_VALUE_WRITER = new IdentityHashMap(); self::$CLASS_TO_VECTOR_WRITER = new IdentityHashMap(); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('boolean[]'), SSSW_VectorWriter::$BOOLEAN_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('byte[]'), SSSW_VectorWriter::$BYTE_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('char[]'), SSSW_VectorWriter::$CHAR_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('double[]'), SSSW_VectorWriter::$DOUBLE_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('float[]'), SSSW_VectorWriter::$FLOAT_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('int[]'), SSSW_VectorWriter::$INT_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('long[]'), SSSW_VectorWriter::$LONG_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('Object[]'), SSSW_VectorWriter::$OBJECT_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('short[]'), SSSW_VectorWriter::$SHORT_VECTOR); self::$CLASS_TO_VECTOR_WRITER->put(Classes::classOf('String[]'), SSSW_VectorWriter::$STRING_VECTOR); self::$CLASS_TO_VALUE_WRITER->put(Boolean::typeClass(), SSSW_ValueWriter::$BOOLEAN); self::$CLASS_TO_VALUE_WRITER->put(Byte::typeClass(), SSSW_ValueWriter::$BYTE); self::$CLASS_TO_VALUE_WRITER->put(Character::typeClass(), SSSW_ValueWriter::$CHAR); self::$CLASS_TO_VALUE_WRITER->put(Double::typeClass(), SSSW_ValueWriter::$DOUBLE); self::$CLASS_TO_VALUE_WRITER->put(Float::typeClass(), SSSW_ValueWriter::$FLOAT); self::$CLASS_TO_VALUE_WRITER->put(Integer::typeClass(), SSSW_ValueWriter::$INT); self::$CLASS_TO_VALUE_WRITER->put(Long::typeClass(), SSSW_ValueWriter::$LONG); self::$CLASS_TO_VALUE_WRITER->put(Object::clazz(), SSSW_ValueWriter::$OBJECT); self::$CLASS_TO_VALUE_WRITER->put(Short::typeClass(), SSSW_ValueWriter::$SHORT); self::$CLASS_TO_VALUE_WRITER->put(String::clazz(), SSSW_ValueWriter::$STRING); }
public function writeValue(Clazz $clazz, $instance) { if ($clazz === Boolean::typeClass()) { $this->writeObject(new Boolean($instance)); } else { if ($clazz === Byte::typeClass()) { $this->writeObject(new Byte($instance)); } else { if ($clazz === Character::typeClass()) { $this->writeObject(new Character($instance)); } else { if ($clazz === Double::typeClass()) { $this->writeObject(new Double($instance)); } else { if ($clazz === Float::typeClass()) { $this->writeObject(new Float($instance)); } else { if ($clazz === Integer::typeClass()) { $this->writeObject(new Integer($instance)); } else { if ($clazz === Long::typeClass()) { $this->writeObject(new Long($instance)); } else { if ($clazz === Short::typeClass()) { $this->writeObject(new Short($instance)); } else { if ($clazz === String::clazz()) { $this->writeString($instance); } else { if ($clazz->isEnum()) { $this->writeEnum($clazz, $instance); } else { $this->writeObject($instance); } } } } } } } } } } }
/** * @return string */ private function mainView() { global $USER, $CONFIG, $DB, $Controller; $form = new Form('newEvent'); $calendarSettings = new Accordion(__('Calendar settings'), new Set(new Checkbox(__('Insert into calendar'), 'einscal'), Short::datetime(__('Starts'), 'cstart'), Short::datetime(__('Ends'), 'cend'))); $calendarSettings->params = 'collapsible:true,active:false'; return new Tabber('flows', __('New item'), $form->collection($calendarSettings, new Hidden('esave', 1), new Hidden('edit', $_REQUEST['edit'] ? $_REQUEST['edit'] : 'new'), new Set(new Select(__('Language'), 'lang', google::languages($CONFIG->Site->languages), $_POST['lang'] ? $_POST['lang'] : $USER->settings['language']), new Input(__('Title'), 'etitle', $_POST['etitle']), new ImagePicker(__('Image'), 'eimg'), new Li(Short::datetime(__('Publish'), 'estart', $_POST['estart']), $this->mayI(PUBLISH) ? new Minicheck(__('Activate post'), 'activated', true) : null), Short::datetime(__('Hide'), 'eend', $_POST['eend']), new TagInput(__('Flow'), 'flows', Flow::flows(), $_POST['flows'] ? $_POST['flows'] : '', true, false, 'required'), new htmlfield(_('Text'), 'etxt', $_POST['etxt']))), __('Flows'), $this->flowList()); }
function attendanceStatistics() { $attending = $this->getAttendance(); global $CONFIG, $Controller; if (!is_array($ig = $this->attending_groups)) { $ig = array(); } $counter = array('yes' => array(), 'no' => array()); $tcounter = array('yes' => 0, 'no' => 0); foreach ($attending as $id => $a) { ++$tcounter[$a['attending']]; } $unknown = array(); foreach ($ig as $gid) { $group = $Controller->get($gid, OVERRIDE); $counter['yes'][$group->Name] = 0; $counter['no'][$group->Name] = 0; $unknown[$group->Name] = count($group->memberUsers(true, true)); if ($group) { foreach ($attending as $id => $a) { if ($group->isMember($id)) { $counter[$a['attending']][$group->ID] = @$counter[$group->Name] + 1; --$unknown[$group->Name]; } } } } $colspan = 2 * count($ig) + 1; $r = '<table cellpadding="0" cellspacing="0" border="0">' . '<tr><th>' . __('Contact') . '</th>' . '<td colspan="' . $colspan . '">' . $this->contact . '</td>' . '</tr>' . '<tr><th>' . __('When') . '</th>' . '<td colspan="' . $colspan . '">' . Short::datespan($this->start, $this->end) . '</td>' . '</tr>' . '<tr><th>' . __('Last registration date') . '</th>' . '<td colspan="' . $colspan . '">' . date('Y-m-d', $this->soft_deadline) . '</td>' . '</tr>' . '<tr><th>' . __('Attending') . '</th>' . '<td>' . $tcounter['yes'] . '</td>'; ksort($counter['yes']); foreach ($counter['yes'] as $g => $count) { $r .= '<td class="groupcol">' . $g . '</td><td>' . $count . '</td>'; } $r .= '</tr><tr><th>' . __('Not attending') . '</th>' . '<td>' . $tcounter['no'] . '</td>'; ksort($counter['no']); foreach ($counter['no'] as $g => $count) { $r .= '<td class="groupcol">' . $g . '</td><td>' . $count . '</td>'; } $r .= '</tr><tr><th>' . __('Unknown') . '</th>' . '<td>' . array_sum($unknown) . '</td>'; ksort($unknown); foreach ($unknown as $g => $count) { $r .= '<td class="groupcol">' . $g . '</td><td>' . $count . '</td>'; } $r .= '</tr></table>'; return $r; }
Classes::register('Byte', new JavaClazz('Byte', $objClass)); Classes::register('Long', new JavaClazz('Long', $objClass)); Classes::register('Short', new JavaClazz('Short', $objClass)); Classes::register('Integer', new JavaClazz('Integer', $objClass)); Classes::register('Character', new JavaClazz('Character', $objClass)); Classes::register('String', new JavaClazz('String', $objClass)); Classes::register('Float', new JavaClazz('Float', $objClass)); Classes::register('Double', new JavaClazz('Double', $objClass)); Classes::register('Void', new JavaClazz('Void', $objClass)); // Aliases Classes::registerAlias('string', String::clazz()); Classes::registerAlias('bool', Boolean::typeClass()); // Signatures Classes::registerSignature(Boolean::SIGNATURE, Boolean::typeClass()); Classes::registerSignature(Byte::SIGNATURE, Byte::typeClass()); Classes::registerSignature(Character::SIGNATURE, Character::typeClass()); Classes::registerSignature(Double::SIGNATURE, Double::typeClass()); Classes::registerSignature(Float::SIGNATURE, Float::typeClass()); Classes::registerSignature(Integer::SIGNATURE, Integer::typeClass()); Classes::registerSignature(Long::SIGNATURE, Long::typeClass()); Classes::registerSignature(Short::SIGNATURE, Short::typeClass()); // Assignable From Long::typeClass()->registerAssignableFrom(array(Double::typeClass(), Integer::typeClass(), Character::typeClass(), Short::typeClass(), Byte::typeClass())); Integer::typeClass()->registerAssignableFrom(array(Character::typeClass(), Short::typeClass(), Byte::typeClass())); Character::typeClass()->registerAssignableFrom(array(Integer::typeClass(), Short::typeClass(), Byte::typeClass())); Short::typeClass()->registerAssignableFrom(array(Integer::typeClass(), Byte::typeClass())); Byte::typeClass()->registerAssignableFrom(array(Integer::typeClass())); Double::typeClass()->registerAssignableFrom(array(Float::typeClass())); Float::typeClass()->registerAssignableFrom(array(Double::typeClass())); Character::typeClass()->registerAssignableFrom(array(String::clazz())); String::clazz()->registerAssignableFrom(array(Character::typeClass()));
} //-------------------------------------Создаём соединение с БД ------------------------------------------------- if ($can_url == "index.html") { //----------Соединение и объявление переменных, если вошли с index.html-------------- $long_url = $_POST["url"]; // Длинная ссылка $own_url = $_POST["own"]; // Короткая ссылка, заданная пользователем $time = $_POST["time"]; // Время жизни ссылки try { $pdo = new PDO('mysql:host=localhost', 'root', ''); $pdo->exec("CREATE DATABASE IF NOT EXISTS url_base"); $pdo = new PDO('mysql:host=localhost;dbname=url_base;charset=UTF8', 'root', ''); $pdo->exec("CREATE TABLE IF NOT EXISTS table_url(\n\t\t\t\t\tlong_url VARCHAR(150) NOT NULL,\n\t\t\t\t\tshort_url CHAR(7) NOT NULL PRIMARY KEY,\n\t\t\t\t\ttime_del DATETIME\n\t\t)"); } catch (\PDOException $e) { trigger_error("Невозможно соединиться с базой данных"); exit; } $link = new Short($pdo); echo $link->makeShort($long_url, $own_url, $time, $host); } else { //--------------------------Соединение, если вошли с index.php---------------------- try { $pdo = new PDO('mysql:host=localhost;dbname=url_base;charset=UTF8', 'root', ''); } catch (\PDOException $e) { trigger_error("Невозможно соединиться с базой данных"); exit; } $link = new Short($pdo); }
function edit() { global $Controller; $groups = $Controller->getClass('Group'); $startshow = $this->that->getActive(); $startshow = @$startshow['start']; return array(new Formsection(__('Event details'), new Input(__('Title'), 'etitle', $_POST['etitle'] ? $_POST['etitle'] : $this->that->Name), new Select(__('Calendar'), 'calendar', $Controller->getClass('Calendar'), $this->that->calendar), Short::datetime(__('Starts'), 'estart', $this->that->start), Short::datetime(__('Ends'), 'eend', $this->that->end)), new Formsection(__('Description'), new ImagePicker(__('Image'), 'eimg', $_POST['eimg'] ? $_POST['eimg'] : $this->that->Image), new HTMLField(__('Text'), 'etxt', $_POST['etxt'] ? $_POST['etxt'] : $this->that->text)), new Formsection(__('Visibility'), Short::datetime(__('Show from'), 'active', $startshow), new Select(__('Visibility'), 'visibility', $groups, $this->getGroups(), true)), new Formsection(__('Attendance'), new Checkbox(__('Request registration'), 'attendance', $this->that->attendance), new Datepicker(__('Soft deadline'), 'sdeadline', $this->that->soft_deadline, false, __('Blank field disables')), new Datepicker(__('Hard deadline'), 'hdeadline', $this->that->hard_deadline, false, __('Blank field disables')), new Select(__('Contact group'), 'contact', $groups, $_POST['contact'], false, true), new TextArea(__('Attendance information'), 'attinfo', $this->that->attendance_info), new Select(__('Expected attendance'), 'attending_groups', $groups, $this->that->attending_groups, true), new Checkbox(__('Reminder'), 'reminder', $this->that->reminder))); }
public static function init() { $JRE_BLACKLIST = array(Boolean::clazz(), Byte::clazz(), Clazz::clazz(), Double::clazz(), Float::clazz(), Integer::clazz(), Long::clazz(), Short::clazz(), String::clazz(), Classes::classOf('ArrayList'), Classes::classOf('Date'), Classes::classOf('HashMap'), Classes::classOf('HashSet'), Classes::classOf('Stack'), Classes::classOf('Vector')); self::$JRE_BLACKSET = new HashSet(self::$JRE_BLACKLIST); self::$sInstance = new LegacySerializationPolicy(); }
public static function jsniName(Clazz $clazz) { if ($clazz->isPrimitive()) { if ($clazz === Boolean::typeClass()) { return 'Z'; } else { if ($clazz === Byte::typeClass()) { return 'B'; } else { if ($clazz === Character::typeClass()) { return 'C'; } else { if ($clazz === Short::typeClass()) { return 'S'; } else { if ($clazz === Integer::typeClass()) { return 'I'; } else { if ($clazz === Long::typeClass()) { return 'J'; } else { if ($clazz === Float::typeClass()) { return 'F'; } else { if ($clazz === Double::typeClass()) { return 'D'; } } } } } } } } throw new RuntimeException('Unhandled primitive tye ' + $clazz->getName()); } else { if ($clazz->isArray()) { return '[' . self::jsniName($clazz->getComponentType()); } else { return 'L' . str_replace('.', '/', $clazz->getFullName()) . ';'; } } }
/** * This method handles every error from PHP and decides * wether this is a real error or not. The type hinting of * native types, widening and auto boxing is supported through this method. * * @access private * @param int $errorLevel * @param string $errorMessage * @return boolean False if an error occured, otherwise true */ public static function systemErrorHandler($errorLevel, $errorMessage, $errorFile, $errorLine, &$errorContext) { switch ($errorLevel) { case E_USER_ERROR: // User error // User error case E_WARNING: // Runtime warnings // Runtime warnings case E_USER_WARNING: // User warning // User warning case E_NOTICE: // This could be used for operator overloading but the errorContext does not provide references to the objects // var_dump($errorContext); // $keys = array_keys($errorContext); // $errorContext[$keys[count($keys) - 1]] = $errorContext[$keys[count($keys) - 1]]->toNative(); // var_dump($errorContext); // return true; // Runtime notices // This could be used for operator overloading but the errorContext does not provide references to the objects // var_dump($errorContext); // $keys = array_keys($errorContext); // $errorContext[$keys[count($keys) - 1]] = $errorContext[$keys[count($keys) - 1]]->toNative(); // var_dump($errorContext); // return true; // Runtime notices case E_USER_NOTICE: // User notice // User notice case E_DEPRECATED: case E_USER_DEPRECATED: case E_STRICT: break; // return false; // return false; case E_RECOVERABLE_ERROR: $ok = false; $matches = null; if (array_key_exists($errorMessage, self::$cachedHints)) { $matches = self::$cachedHints[$errorMessage]; } else { preg_match('/^Argument (?<argNumber>\\d+) passed to (?<namespace>(([a-zA-Z_]{1}[a-zA-Z0-9_]+)\\\\)+)?[:a-zA-Z0-9_]+\\(\\) must (be an instance of|be an|implement interface) (?<hintName>[a-zA-Z0-9_\\\\]+), (instance of )?(?<typeName>[a-zA-Z0-9_\\\\]+) given/AUD', $errorMessage, $matches); } if ($matches !== null) { if ($matches['typeName'] === 'null') { throw new NullPointerException(); } $argNumber = (int) $matches['argNumber'] - 1; $args = self::getArgsOfErrorCall(); switch ($matches['hintName']) { case 'boolean': if ($matches['typeName'] === 'blaze\\lang\\Boolean') { var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; } else { $ok = $matches['typeName'] === 'boolean'; } break; case 'blaze\\lang\\Boolean': if ($matches['typeName'] === 'boolean') { $args[$argNumber] = new Boolean($args[$argNumber]); $ok = true; } break; case 'byte': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; case 'integer': case 'double': $ok = Byte::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = (int) $args[$argNumber]; } } break; case 'blaze\\lang\\Byte': if ($matches['typeName'] === 'integer' || $matches['typeName'] === 'double') { $ok = Byte::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new Byte($args[$argNumber]); } } break; case 'short': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; case 'integer': case 'double': $ok = Short::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = (int) $args[$argNumber]; } } break; case 'blaze\\lang\\Short': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': $args[$argNumber] = new Short($args[$argNumber]->toNative()); $ok = true; break; case 'integer': case 'double': $ok = Short::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new Short($args[$argNumber]); } } break; case 'int': switch ($matches['typeName']) { case 'integer': $ok = true; break; case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; case 'double': $ok = Integer::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = (int) $args[$argNumber]; } } break; case 'blaze\\lang\\Integer': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': $args[$argNumber] = new Integer($args[$argNumber]->toNative()); $ok = true; break; case 'integer': case 'double': $ok = Integer::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new Integer($args[$argNumber]); } } break; case 'long': switch ($matches['typeName']) { case 'integer': $ok = true; break; case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': case 'blaze\\lang\\Long': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; case 'double': $ok = Long::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = (double) $args[$argNumber]; } } break; case 'blaze\\lang\\Long': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': $args[$argNumber] = new Long($args[$argNumber]->toNative()); $ok = true; break; case 'integer': case 'double': $ok = Long::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new Long($args[$argNumber]); } } break; case 'float': switch ($matches['typeName']) { case 'integer': $ok = true; break; case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': case 'blaze\\lang\\Long': case 'blaze\\lang\\Float': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; case 'double': $ok = Float::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = (double) $args[$argNumber]; } } break; case 'blaze\\lang\\Float': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': case 'blaze\\lang\\Long': $args[$argNumber] = new Float($args[$argNumber]->toNative()); $ok = true; break; case 'integer': case 'double': $ok = Float::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new Float($args[$argNumber]); } } break; case 'double': switch ($matches['typeName']) { case 'integer': $ok = true; break; case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': case 'blaze\\lang\\Long': case 'blaze\\lang\\Float': case 'blaze\\lang\\Double': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; case 'double': $ok = Double::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = (double) $args[$argNumber]; } } break; case 'blaze\\lang\\Double': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': case 'blaze\\lang\\Long': case 'blaze\\lang\\Float': $args[$argNumber] = new Double($args[$argNumber]->toNative()); $ok = true; break; case 'integer': case 'double': $ok = Double::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new Double($args[$argNumber]); } break; } break; case 'char': switch ($matches['typeName']) { case 'string': $ok = Character::isNativeType($args[$argNumber]); break; case 'blaze\\lang\\Character': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; } break; case 'blaze\\lang\\Character': if ($matches['typeName'] === 'string') { $ok = Character::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new Character($args[$argNumber]); } } break; case 'string': switch ($matches['typeName']) { case 'integer': case 'double': $args[$argNumber] = (string) $args[$argNumber]; $ok = true; break; case 'blaze\\lang\\String': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; } break; case 'blaze\\lang\\String': if ($matches['typeName'] === 'string') { $args[$argNumber] = new String($args[$argNumber]); $ok = true; } break; case 'array': switch ($matches['typeName']) { case 'object': if (!$args[$argNumber] instanceof \blaze\collections\ArrayI) { break; } case 'blaze\\collections\\arrays\\ArrayObject': var_dump('Unboxing does not work yet!'); $args[$argNumber] = $args[$argNumber]->toNative(); $ok = true; break; } break; case 'blaze\\collections\\ArrayI': case 'blaze\\collections\\arrays\\ArrayObject': if ($matches['typeName'] === 'array') { $ok = \blaze\collections\arrays\ArrayObject::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new \blaze\collections\arrays\ArrayObject($args[$argNumber]); } } break; case 'blaze\\math\\BigInteger': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': case 'blaze\\lang\\Long': var_dump('Unboxing does not work yet!'); $args[$argNumber] = new \blaze\math\BigInteger($args[$argNumber]->toNative()); $ok = true; break; case 'integer': case 'double': case 'string': $ok = \blaze\math\BigInteger::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new \blaze\math\BigInteger($args[$argNumber]); } } break; case 'blaze\\math\\BigDecimal': switch ($matches['typeName']) { case 'blaze\\lang\\Byte': case 'blaze\\lang\\Short': case 'blaze\\lang\\Integer': case 'blaze\\lang\\Long': case 'blaze\\lang\\Float': case 'blaze\\lang\\Double': case 'blaze\\math\\BigInteger': var_dump('Unboxing does not work yet!'); $args[$argNumber] = new \blaze\math\BigDecimal($args[$argNumber]->toNative()); $ok = true; break; case 'integer': case 'double': case 'string': $ok = \blaze\math\BigDecimal::isNativeType($args[$argNumber]); if ($ok) { $args[$argNumber] = new \blaze\math\BigDecimal($args[$argNumber]); } } break; case 'blaze\\lang\\Reflectable': case 'blaze\\lang\\Object': switch ($matches['typeName']) { case 'boolean': $args[$argNumber] = new Boolean($args[$argNumber]); $ok = true; break; case 'integer': case 'double': if (($class = Number::getNumberClass($args[$argNumber])) != null) { if (Integer::isNativeType($args[$argNumber])) { $className = 'blaze\\lang\\Integer'; } else { if (Double::isNativeType($args[$argNumber])) { $className = 'blaze\\lang\\Double'; } else { $className = $class->getName()->toNative(); } } $args[$argNumber] = $className::asWrapper($args[$argNumber]); $ok = true; } break; case 'string': if (\blaze\math\BigInteger::isNativeType($args[$argNumber])) { $args[$argNumber] = new \blaze\math\BigInteger($args[$argNumber]); } else { if (\blaze\math\BigDecimal::isNativeType($args[$argNumber])) { $args[$argNumber] = new \blaze\math\BigDecimal($args[$argNumber]); } else { $args[$argNumber] = new String($args[$argNumber]); } } $ok = true; break; case 'array': $args[$argNumber] = new \blaze\collections\arrays\ArrayObject($args[$argNumber]); $ok = true; break; } break; default: $ok = false; } if ($ok) { self::$cachedHints[$errorMessage] = $matches; return true; } return false; } } return false; }
public static function getShortHash($value) { $value = Short::asNative($value); return $value; }
function medit() { global $Templates; __autoload('Form'); return new Formsection(__('Edit section'), new Hidden('oldname', $_REQUEST['editSection']), new Input(__('Section name'), 'newname', $this->that->alias), Short::selectTemplate($_REQUEST['template'] ? $_REQUEST['template'] : @$this->that->template)); }
public function shortValue() { return Short::asNative($this->value); }
function listCalendars() { global $Controller; return Short::toolList($Controller->getClass('Calendar')); }
private function decodeCommand() { $command = $this->next(); if ($command == NL_CHAR) { $command = $this->next(); } $token = $this->token(); switch ($command) { case BOOLEAN_TYPE: $this->pushScalar(new BooleanValueCommand($token == '1')); break; case BYTE_TYPE: $this->pushScalar(new ByteValueCommand(Byte::valueOf($token))); break; case CHAR_TYPE: $this->pushScalar(new CharValueCommand(Character::chr(intval($token)))); break; case DOUBLE_TYPE: $this->pushScalar(new DoubleValueCommand(Double::valueOf($token))); break; case FLOAT_TYPE: $this->pushScalar(new FloatValueCommand(Float::valueOf($token))); break; case INT_TYPE: $this->pushScalar(new IntValueCommand(Integer::valueOf($token))); break; case LONG_TYPE: $this->pushScalar(new LongValueCommand(Long::valueOf($token))); break; case VOID_TYPE: $this->pushScalar(NullValueCommand::INSTANCE()); break; case SHORT_TYPE: $this->pushScalar(new ShortValueCommand(Short::valueOf($token))); break; case STRING_TYPE: // "4~abcd $length = Integer::valueOf($token); $value = $this->nextCount($length); if ($this->next() != RPC_SEPARATOR_CHAR) { throw new RuntimeException('Overran string'); } $this->pushString(new StringValueCommand($value)); break; case ENUM_TYPE: // ETypeSeedName~IOrdinal~ $ordinal = $this->readCommand('IntValueCommand')->getValue(); $clazz = $this->findClass($token); $x = new EnumValueCommand($clazz); $this->pushIdentity($x); $x->setValue($ordinal); break; case ARRAY_TYPE: // Encoded as (leafType, dimensions, length, ...) $leaf = $this->findClass($token); $numDims = $this->readCommand('IntValueCommand')->getValue(); $clazz = null; if ($numDims > 1) { $clazz = ArrayType::clazz($leaf, $numDims); } else { $clazz = $leaf; } $x = new ArrayValueCommand($clazz); $this->pushIdentity($x); $length = $this->readCommand('IntValueCommand')->getValue(); for ($i = 0; $i < $length; $i++) { $x->add($this->readCommand('ValueCommand')); } break; case OBJECT_TYPE: // LTypeSeedName~3... N-many setters ... $clazz = $this->findClass($token); $x = new InstantiateCommand($clazz); $this->pushIdentity($x); $this->readSetters($clazz, $x); break; case INVOKE_TYPE: // !TypeSeedName~Number of objects written by CFS~...CFS objects...~ // Number of extra fields~...N-many setters... $clazz = $this->findClass($token); $serializerClass = null; $manualType = $clazz; while ($manualType != null) { $serializerClass = SerializabilityUtil::hasCustomFieldSerializer($manualType); if ($serializerClass != null) { break; } $manualType = $manualType->getSuperClass(); } if ($serializerClass == null) { throw new IncompatibleRemoteServiceException('Class [' . $clazz->getName() . '] has no custom serializer on server'); } $x = new InvokeCustomFieldSerializerCommand($clazz, $serializerClass, $manualType); $this->pushIdentity($x); $this->readFields($x); $this->readSetters($clazz, $x); break; case RETURN_TYPE: // R4~...values... $this->toReturn = new ReturnCommand(); $toRead = Integer::valueOf($token); for ($i = 0; $i < $toRead; $i++) { $this->toReturn->addValue($this->readCommand('ValueCommand')); } break; case THROW_TYPE: // T...value... $this->toThrow = $this->readCommand('ValueCommand'); break; case BACKREF_TYPE: // @backrefNumber~ $x = $this->backRefs[Integer::valueOf($token)]; assert($x != null); array_push($this->commands, $x); break; case RPC_SEPARATOR_CHAR: throw new RuntimeException('Segmentation overrun at ' + $this->idx); default: throw new RuntimeException('Unknown Command ' + $command); } }
public function getTargetType() { return Short::typeClass(); }
/** * Display the toolbar for section actions * @return string */ private function sectionForm() { global $Templates; return Form::quick(false, __('Create'), new Formsection(__('New menusection'), new Hidden('action', 'newSection'), new Input(__('Section name'), 'newName'), Short::selectTemplate())); }
/** * get a url by hash * * @param $hash * @return mixed */ public function getUrl($hash) { return Short::where('hash', $hash)->pluck('url'); }
function viewRevisions($page, $l, $sectionMap = false) { global $DB, $Controller; if (is_numeric($page)) { $page = $Controller->{(string) $page}(EDIT); } $lang = google::languages($l); $revisions = array(); $_REQUEST->setType('rev1', 'numeric', true); $_REQUEST->setType('rev2', 'numeric', true); //FIXME: Move to CSS Head::add('ins {background: lightgreen;} del {background: pink;} .revlegend {text-align: right;display:inline;margin: 0 0 0 45px;} .revlegend ins,.revlegend del {margin: 0 5px;}', 'css-raw'); $r1 = false; $r2 = false; $r = $DB->content->get(array('id' => $this->that->ID, 'language' => $l), false, false, 'revision DESC'); while ($rev = Database::fetchAssoc($r)) { $revisions[$rev['section']][$rev['revision']] = strftime('%c', $rev['revision']); if ($_REQUEST['rev1'][$rev['section']] === $rev['revision']) { $r1[$rev['section']] = $rev; } if ($_REQUEST['rev2'][$rev['section']] === $rev['revision']) { $r2[$rev['section']] = $rev; } } $revArray = array(); if ($revisions) { foreach ($revisions as $sectionName => $sectContent) { $revArray[] = new Tab($sectionMap && isset($sectionMap[$sectionName]) ? $sectionMap[$sectionName] : $sectionName, new Li(new Select('View revision', 'rev1[' . $sectionName . ']', $sectContent, $_REQUEST['rev1'][$sectionName], false, __('None')), new Submit('Revert to this', 'revert1[' . $sectionName . ']')), new Li(new Select('Compare to', 'rev2[' . $sectionName . ']', $sectContent, $_REQUEST['rev2'][$sectionName], false, __('None')), new Submit('Revert to this', 'revert2[' . $sectionName . ']')), isset($r1[$sectionName]) ? '<div class="revlegend"><ins>' . strftime('%c', $r1[$sectionName]['revision']) . '</ins>' . (isset($r2[$sectionName]) ? '<del>' . strftime('%c', $r2[$sectionName]['revision']) . '</del></div>' . '<div id="revdiff">' . diff($r2[$sectionName]['content'], $r1[$sectionName]['content']) . '</div>' : '<div id="revdiff">' . strip_tags($r1[$sectionName]['content'], '<p><div>') . '</div>') : null); } $rForm = new Form('revisionsForm', url(null, array('id', 'edit', 'view', 'lang'), false)); return '<div class="nav">' . Short::backn() . '</div>' . $rForm->collection(new Hidden('lang', $l), new Tabber('r' . $l, $revArray)); } else { return '<div class="nav">' . Short::backn() . '</div>' . __('There are no saved revisions for this page and language'); } }