public function testForEquality(PhpType $that) { $rs = parent::testForEquality($that); if (null !== $rs) { return $rs; } // Objects are comparable to objects only (by comparing their property // values). The no object type represents a generic object. if ($that->isObjectType() || $that->isNoObjectType()) { return TernaryValue::get('unknown'); } // If the other value is no object, then PHP will raise a warning in // most cases, and if not the comparison is false. return TernaryValue::get('false'); }
public function removeAttributes($kList) { if ($this->isNoResolvedType()) { return parent::removeAttributes($kList); } $this->referencedType = $this->referencedType->removeAttributes($kList); return $this; }
/** * Campsite Map function plugin * * Type: function * Name: count * Purpose: Triggers a statistics counting request * * @param array * $p_params List of parameters from template * @param object * $p_smarty Smarty template object * * @return * string The html content */ function smarty_function_count($p_params, &$p_smarty) { global $Campsite; $campsite = $p_smarty->getTemplateVars('gimme'); $content = ''; $art_number = 0; $art_language_num = 0; $art_language_code = ''; if (isset($p_params['article']) && is_numeric($p_params['article'])) { $art_number = $p_params['article']; } if (isset($p_params['language'])) { $langs = array(); if (is_numeric($p_params['language'])) { $langs = \Language::GetLanguages($p_params['language']); } else { $langs = \Language::GetLanguages(null, $p_params['language']); } if (!isset($langs[0])) { return ''; // 'no lang' } $art_language_obj = $langs[0]; $art_language_num = $art_language_obj->getLanguageId(); $art_language_code = $art_language_obj->getCode(); } $count_automatically = true; if (isset($p_params['dont_count_automatically'])) { $count_automatically = false; } if (!$art_number || !$art_language_num) { $meta_article = $campsite->article; if ($meta_article->defined) { if (!$art_number) { $art_number = $meta_article->number; } if (!$art_language_num) { $art_language_meta = $meta_article->language; $art_language_num = $art_language_meta->number; $art_language_code = $art_language_meta->code; } } } if (!$art_language_num) { $art_language_meta = $campsite->language; $art_language_num = $art_language_meta->number; $art_language_code = $art_language_meta->code; } if (!$art_number || !$art_language_num) { return ''; // 'no art_num or lang' } $article = new \Article($art_language_num, $art_number); if (!$article->exists()) { return ''; // 'no art' } try { $requestObjectId = $article->getProperty('object_id'); $updateArticle = empty($requestObjectId); $objectType = new \ObjectType('article'); $object_type_id = $objectType->getObjectTypeId(); if ($updateArticle) { $requestObject = new \RequestObject($requestObjectId); if (!$requestObject->exists()) { $requestObject->create(array('object_type_id' => $objectType->getObjectTypeId())); $requestObjectId = $requestObject->getObjectId(); } $article->setProperty('object_id', $requestObjectId); } // statistics shall be only gathered if the site admin set it on (and not for editor previews) if (!$campsite->preview) { $stat_web_url = $Campsite['WEBSITE_URL']; if ('/' != $stat_web_url[strlen($stat_web_url) - 1]) { $stat_web_url .= '/'; } $article_number = $article->getProperty('Number'); $name_spec = '_' . $article_number . '_' . $art_language_code; $content .= \Statistics::JavaScriptTrigger(array('count_automatically' => $count_automatically, 'name_spec' => $name_spec, 'object_type_id' => $object_type_id, 'request_object_id' => $requestObjectId)); } } catch (\Exception $ex) { return ''; } return $content; }
<?php require_once '../../includes/initialize.php'; //inti code $object_type = new ObjectType(); $complaint_type = new ComplaintType(); $bp_role = new BusPersonnelRole(); $routes = BusRoute::find_all(); $stops = BusStop::find_all(); $buses = Bus::find_all(); $bus_personnel = BusPersonnel::find_all(); $q = $_GET['q']; $selected_complaint_type = $complaint_type->find_by_id($q); $related_obj_type = $object_type->find_by_id($selected_complaint_type->related_object_type); echo '<option value="' . $related_obj_type->id . '">' . $related_obj_type->display_name . '</option>';
/** * Visit a node with kind `\ast\AST_NEW` * * @param Node $node * A node of the type indicated by the method name that we'd * like to figure out the type that it produces. * * @return UnionType * The set of types that are possibly produced by the * given node */ public function visitNew(Node $node) : UnionType { $class_name = AST::classNameFromNode($this->context, $this->code_base, $node); if (empty($class_name)) { return ObjectType::instance()->asUnionType(); } $class_fqsen = FullyQualifiedClassName::fromStringInContext($class_name, $this->context); if ($this->code_base->hasClassWithFQSEN($class_fqsen)) { return $this->code_base->getClassByFQSEN($class_fqsen)->getUnionType(); } /* assert(false, "Class $class_fqsen not found at {$this->context}"); */ return ObjectType::instance()->asUnionType(); }
/** * Returns the content of the given subtitles of the article body field. * * @param array $p_subtitles * @return string */ private function getContent(array $p_subtitles = array()) { global $Campsite; $printAll = count($p_subtitles) == 0; $content = ''; foreach ($this->m_subtitles as $index => $subtitle) { if (!$printAll && array_search($index, $p_subtitles) === false) { continue; } $content .= $index > 0 ? $subtitle->formatted_name : ''; $content .= $subtitle->content; } if ($this->m_articleTypeField->isContent()) { $objectType = new ObjectType('article'); $requestObjectId = $this->m_parent_article->getProperty('object_id'); $updateArticle = empty($requestObjectId); try { if ($updateArticle) { $requestObject = new RequestObject($requestObjectId); if (!$requestObject->exists()) { $requestObject->create(array('object_type_id' => $objectType->getObjectTypeId())); $requestObjectId = $requestObject->getObjectId(); } $this->m_parent_article->setProperty('object_id', $requestObjectId); } // statistics shall be only gathered if the site admin set it on (and not for editor previews) $context = CampTemplate::singleton()->context(); if (SystemPref::CollectStatisticsAuto() && !$context->preview) { $stat_web_url = $Campsite['WEBSITE_URL']; if ('/' != $stat_web_url[strlen($stat_web_url) - 1]) { $stat_web_url .= '/'; } $article_number = $this->m_parent_article->getProperty('Number'); $language_obj = new MetaLanguage($this->m_parent_article->getProperty('IdLanguage')); $language_code = $language_obj->Code; $name_spec = '_' . $article_number . '_' . $language_code; $object_type_id = $objectType->getObjectTypeId(); $content .= Statistics::JavaScriptTrigger(array('name_spec' => $name_spec, 'object_type_id' => $object_type_id, 'request_object_id' => $requestObjectId)); } } catch (Exception $ex) { $content .= "<p><strong><font color=\"red\">INTERNAL ERROR! " . $ex->getMessage() . "</font></strong></p>\n"; // do something } } return $content; }
public function testFromStringWithObject() { $this->assertSame(ObjectType::getInstance(), MixedType::fromString("object")); }
/** * 与えられた値を、指定された型に変換して返します。 * @link https://heycam.github.io/webidl/#idl-types Web IDL (Second Edition) * @link https://www.w3.org/TR/WebIDL/#idl-types Web IDL * @param string $type * @param mixed $value * @param array $pseudoTypes callback interface 型、列挙型、callback 関数型、または dictionary 型の識別子をキーとした型情報の配列。 * @return mixed */ public static function to($type, $value, $pseudoTypes = null) { switch ($type) { case 'any': $returnValue = $value; break; case 'boolean': $returnValue = BooleanType::toBoolean($value); break; case '[EnforceRange] byte': $returnValue = IntegerType::toByte($value, '[EnforceRange]'); break; case '[Clamp] byte': $returnValue = IntegerType::toByte($value, '[Clamp]'); break; case 'byte': $returnValue = IntegerType::toByte($value); break; case '[EnforceRange] octet': $returnValue = IntegerType::toOctet($value, '[EnforceRange]'); break; case '[Clamp] octet': $returnValue = IntegerType::toOctet($value, '[Clamp]'); break; case 'octet': $returnValue = IntegerType::toOctet($value); break; case '[EnforceRange] short': $returnValue = IntegerType::toShort($value, '[EnforceRange]'); break; case '[Clamp] short': $returnValue = IntegerType::toShort($value, '[Clamp]'); break; case 'short': $returnValue = IntegerType::toShort($value); break; case '[EnforceRange] unsigned short': $returnValue = IntegerType::toUnsignedShort($value, '[EnforceRange]'); break; case '[Clamp] unsigned short': $returnValue = IntegerType::toUnsignedShort($value, '[Clamp]'); break; case 'unsigned short': $returnValue = IntegerType::toUnsignedShort($value); break; case '[EnforceRange] long': $returnValue = IntegerType::toLong($value, '[EnforceRange]'); break; case '[Clamp] long': $returnValue = IntegerType::toLong($value, '[Clamp]'); break; case 'long': $returnValue = IntegerType::toLong($value); break; case '[EnforceRange] unsigned long': $returnValue = IntegerType::toUnsignedLong($value, '[EnforceRange]'); break; case '[Clamp] unsigned long': $returnValue = IntegerType::toUnsignedLong($value, '[Clamp]'); break; case 'unsigned long': $returnValue = IntegerType::toUnsignedLong($value); break; case '[EnforceRange] long long': $returnValue = IntegerType::toLongLong($value, '[EnforceRange]'); break; case '[Clamp] long long': $returnValue = IntegerType::toLongLong($value, '[Clamp]'); break; case 'long long': $returnValue = IntegerType::toLongLong($value); break; case '[EnforceRange] unsigned long long': $returnValue = IntegerType::toUnsignedLongLong($value, '[EnforceRange]'); break; case '[Clamp] unsigned long long': $returnValue = IntegerType::toUnsignedLongLong($value, '[Clamp]'); break; case 'unsigned long long': $returnValue = IntegerType::toUnsignedLongLong($value); break; case 'float': $returnValue = FloatType::toFloat($value); break; case 'unrestricted float': $returnValue = FloatType::toUnrestrictedFloat($value); break; case 'double': $returnValue = FloatType::toDouble($value); break; case 'unrestricted double': $returnValue = FloatType::toUnrestrictedDouble($value); break; case 'DOMString': $returnValue = StringType::toDOMString($value); break; case 'ByteString': $returnValue = StringType::toByteString($value); break; case 'USVString': $returnValue = StringType::toUSVString($value); break; case 'object': $returnValue = ObjectType::toObject($value); break; case 'Date': $returnValue = ObjectType::toInterface($value, 'DateTimeInterface'); break; case 'RegExp': $returnValue = RegExpType::toRegExp($value); break; case 'Error': $returnValue = self::to('(esperecyan\\webidl\\Error or DOMException)', $value, $pseudoTypes); break; case 'DOMException': $returnValue = ObjectType::toInterface($value, 'DOMException'); break; default: $pattern = '/^(?:(?<nullable>.+)\\?|sequence<(?<sequence>.+)>|(?<array>.+)\\[]|(?<union>\\(.+\\))|FrozenArray<(?<FrozenArray>.+)>)$/u'; if (preg_match($pattern, $type, $matches) === 1) { if (!empty($matches['nullable'])) { $returnValue = NullableType::toNullable($value, $matches['nullable'], $pseudoTypes); } elseif (!empty($matches['sequence'])) { $returnValue = SequenceType::toSequence($value, $matches['sequence'], $pseudoTypes); } elseif (!empty($matches['array'])) { $returnValue = SequenceType::toArray($value, $matches['array'], $pseudoTypes); } elseif (!empty($matches['union'])) { $returnValue = UnionType::toUnion($value, $matches['union'], $pseudoTypes); } elseif (!empty($matches['FrozenArray'])) { $returnValue = SequenceType::toFrozenArray($value, $matches['FrozenArray'], $pseudoTypes); } } elseif (isset($pseudoTypes[$type])) { $pseudoType = $pseudoTypes[$type]; switch ($pseudoType) { case 'callback interface': case 'single operation callback interface': $returnValue = ObjectType::toCallbackInterface($value, $pseudoType === 'single operation callback interface'); break; case 'callback function': $returnValue = ObjectType::toCallbackFunction($value); break; default: if (is_string($pseudoType) || isset($pseudoType[0])) { $returnValue = StringType::toEnumerationValue($value, $type, $pseudoType); } else { $returnValue = DictionaryType::toDictionary($value, $type, $pseudoTypes); } } } else { $returnValue = ObjectType::toInterface($value, $type); } } return $returnValue; }
/** * @param integer|float $value * @expectedException \InvalidArgumentException * @expectedExceptionMessage Expected a callback function (a callable), got * @dataProvider invalidInterfaceProvider * @dataProvider invalidCallbackFunctionProvider */ public function testInvalidCallbackFunction($value) { ObjectType::toCallbackFunction($value); }
<?php require_once '../../includes/initialize.php'; //init code $object_type = new ObjectType(); $bp_role = new BusPersonnelRole(); $bus_route_object = new BusRoute(); $bus_object = new Bus(); $object_type_object = new ObjectType(); $routes = BusRoute::find_all(); $stops = BusStop::find_all(); $buses = Bus::find_all(); $bus_personnel = BusPersonnel::find_all(); $q = $_GET['q']; $selected_object_type = $object_type_object->find_by_id($q); if ($selected_object_type->object_type_name == 'route') { echo '<label for="bus_route_id" class="control-label">Bus Route</label>'; echo '<div class="controls">'; echo '<select name="bus_route_id">'; foreach ($routes as $route) { echo '<option value="' . $route->id . '">'; echo $route->route_number; echo '</option>'; } echo '</select>'; echo '</div>'; } else { if ($selected_object_type->object_type_name == 'stop') { echo '<label for="stop_id" class="control-label">Bus Stop</label>'; echo '<div class="controls">'; echo '<select name="stop_id">';
<?php //init code $routes = BusRoute::find_all(); $stops = BusStop::find_all(); $buses = Bus::find_all(); $bus_personnel = BusPersonnel::find_all(); $complaint_types = ComplaintType::find_all(); $complaint_status = ComplaintStatus::find_all(); $object_types = ObjectType::find_all(); //check login if ($session->is_logged_in()) { if ($session->object_type == 5) { //admin_user $user = $admin_user_object->find_by_id($_SESSION['id']); $profile_picture = $photo_object->get_profile_picture($session->object_type, $user->id); } else { if ($session->object_type == 4) { //bus_personnel $user = $bus_personnel_object->find_by_id($_SESSION['id']); $profile_picture = $photo_object->get_profile_picture($session->object_type, $user->id); } else { //everyone else $session->message("Error! You do not have sufficient priviledges to view the requested page. "); redirect_to("index.php"); } } if (isset($_POST['submit'])) { $complaint_to_create = new Complaint(); if (isset($_POST['bus_route_id'])) { $complaint_to_create->related_object_type = 1;
public function __construct($series, $release_date = 'now', $duration = 0) { parent::__construct($release_date, $duration); if (ObjectType::isValidString($series)) { $this->series = $series; } }
private function set($fieldName, $fieldValue, $maxLength) { if (ObjectType::isValidString($fieldValue)) { $fieldValue = trim($fieldValue); if (strlen($fieldValue) > $maxLength) { $fieldValue = substr($fieldValue, 0, $maxLength); } $this->{$fieldName} = $fieldValue; } return $this; }
/** * Visit a node with kind `\ast\AST_NEW` * * @param Node $node * A node of the type indicated by the method name that we'd * like to figure out the type that it produces. * * @return UnionType * The set of types that are possibly produced by the * given node */ public function visitNew(Node $node) : UnionType { try { $class_name = AST::classNameFromNode($this->context, $this->code_base, $node); } catch (TypeException $exception) { return ObjectType::instance()->asUnionType(); } if (empty($class_name)) { return ObjectType::instance()->asUnionType(); } $class_fqsen = FullyQualifiedClassName::fromStringInContext($class_name, $this->context); if ($this->code_base->hasClassWithFQSEN($class_fqsen)) { return $this->code_base->getClassByFQSEN($class_fqsen)->getUnionType(); } return ObjectType::instance()->asUnionType(); }