本文整理汇总了PHP中String::withValue方法的典型用法代码示例。如果您正苦于以下问题:PHP String::withValue方法的具体用法?PHP String::withValue怎么用?PHP String::withValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类String
的用法示例。
在下文中一共展示了String::withValue方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: searchAssets
/**
* Get the ids of the assets that match the search criteria
*
* @param mixed $searchCriteria
* @return array
* @access public
* @since 11/2/04
*/
function searchAssets($searchCriteria)
{
$matchingIds = array();
$recordMgr = Services::getService("RecordManager");
$schemaMgr = Services::getService("SchemaManager");
$drMgr = Services::getService("Repository");
$schemaIDs = $schemaMgr->getAllSchemaIDs();
$includeFieldTypes = array("string", "shortstring");
$assetContentID = "edu.middlebury.harmoni.repository.asset_content";
// Create the search criteria object
$criteria = new OrSearch();
// create one string value
$stringValue = String::withValue($searchCriteria);
foreach ($schemaIDs as $schemaID) {
if ($schemaID != $assetContentID) {
$schema = $schemaMgr->getSchemaByID($schemaID);
$schema->load();
$ids = $schema->getAllFieldIDs();
foreach ($ids as $id) {
$fieldType = $schema->getFieldType($id);
if (in_array($fieldType, $includeFieldTypes)) {
// add to the field criteria for this schematype/label
$criteria->addCriteria(new FieldValueSearch($schemaID, $schema->getFieldLabelFromID($id), $stringValue, SEARCH_TYPE_CONTAINS));
}
}
}
}
// Get the asset Ids to limit to.
$allAssets = $this->_dr->getAssets();
$idStrings = array();
while ($allAssets->hasNext()) {
$asset = $allAssets->next();
$id = $asset->getId();
$idStrings[] = $id->getIdString();
}
// Run the search
$matchingIds = array_unique($recordMgr->getRecordSetIDsBySearch($criteria, $idStrings));
$idManager = Services::getService("Id");
// Include Searches of displayname and description
$displayNameSearch = new DisplayNameSearch($this->_dr);
$displayNameResults = $displayNameSearch->searchAssets($searchCriteria);
for ($i = 0; $i < count($displayNameResults); $i++) {
$matchingIds[] = $displayNameResults[$i]->getIdString();
}
$descriptionSearch = new DescriptionSearch($this->_dr);
$descriptionResults = $descriptionSearch->searchAssets($searchCriteria);
for ($i = 0; $i < count($descriptionResults); $i++) {
$matchingIds[] = $descriptionResults[$i]->getIdString();
}
// Ensure uniqueness and convert the ids to id objects.
$matchingIds = array_unique($matchingIds);
sort($matchingIds);
$idManager = Services::getService("Id");
for ($i = 0; $i < count($matchingIds); $i++) {
$matchingIds[$i] = $idManager->getId($matchingIds[$i]);
}
// Return the array
return $matchingIds;
}
示例2: getPartObject
/**
* creates appropriate object from given ids
*
* @param Id $structureId
* @param Id $partStructureId
* @param String $part
* @return object mixed
* @access public
* @since 7/21/05
*/
function getPartObject($structureId, $partStructureId, $part)
{
$structure = $this->_destinationRepository->getRecordStructure($structureId);
$partStructure = $structure->getPartStructure($partStructureId);
$type = $partStructure->getType();
$typeString = $type->getKeyword();
switch ($typeString) {
case "shortstring":
case "string":
$obj = String::withValue($part);
return $obj;
break;
case "integer":
$obj = Integer::withValue($part);
return $obj;
break;
case "boolean":
$obj = Boolean::withValue($part);
return $obj;
break;
case "float":
$obj = Float::withValue($part);
return $obj;
break;
case "datetime":
$obj = DateAndTime::fromString($part);
return $obj;
break;
case "type":
$obj = HarmoniType::fromString($part);
return $obj;
break;
default:
$this->addError("Unsupported PartStructure DataType: " . HarmoniType::typeToString($type) . ".");
$false = false;
return $false;
}
}
示例3: loadFeedXml
/**
* Load feed data, convert and clean it, and return its string value.
*
* @param string $url
* @return string RSS xml
* @access protected
* @since 7/8/08
*/
protected function loadFeedXml($url)
{
$feedData = @file_get_contents($url);
if (!strlen($feedData)) {
throw new OperationFailedException("Could not access feed, '" . $url . "'.");
}
$feed = new DOMDocument();
// If the encoding is not UTF-8, convert the document
if (preg_match('/^<\\?xml .*encoding=[\'"]([a-zA-Z0-9-]+)[\'"].*\\?>/m', $feedData, $matches)) {
$encoding = $matches[1];
if (strtoupper($encoding) != 'UTF8' && strtoupper($encoding) != 'UTF-8') {
$feedData = mb_convert_encoding($feedData, 'UTF-8', strtoupper($encoding));
$feedData = preg_replace('/^(<\\?xml .*encoding=[\'"])([a-zA-Z0-9-]+)([\'"].*\\?>)/m', '\\1UTF-8\\3', $feedData);
}
}
// Convert any non-UTF-8 characters
$string = String::withValue($feedData);
$string->makeUtf8();
$feedData = $string->asString();
if (!@$feed->loadXML($feedData)) {
throw new OperationFailedException("Invalid feed data: \"" . $feedData . "\" for URL: " . $url);
}
// Handle any format conversions
$feed = $this->convertToRss($feed);
// Validate Feed.
// $tmpFeed = $feed;
// $feed = new Harmoni_DOMDocument;
// $feed->loadXML($tmpFeed->saveXML());
// unset($tmpFeed);
// $feed->schemaValidateWithException(dirname(__FILE__).'/rss-2_0-lax.xsd');
// Run through the titles, authors, and descriptions and clean out any unsafe HTML
foreach ($feed->getElementsByTagName('title') as $element) {
$element->nodeValue = strip_tags(htmlspecialchars_decode($element->nodeValue));
}
foreach ($feed->getElementsByTagName('author') as $element) {
$element->nodeValue = strip_tags(htmlspecialchars_decode($element->nodeValue));
}
foreach ($feed->getElementsByTagName('comments') as $element) {
$element->nodeValue = htmlentities(strip_tags(html_entity_decode($element->nodeValue)));
}
foreach ($feed->getElementsByTagName('link') as $element) {
$element->nodeValue = htmlentities(strip_tags(html_entity_decode($element->nodeValue)));
}
foreach ($feed->getElementsByTagName('description') as $description) {
$html = HtmlString::fromString(htmlspecialchars_decode($description->nodeValue));
$html->cleanXSS();
$description->nodeValue = htmlspecialchars($html->asString());
}
// Move the feed into a dom document.
$tmpFeed = $feed;
$feed = new Harmoni_DOMDocument();
$feed->loadXML($tmpFeed->saveXML());
unset($tmpFeed);
// Validate the feed again
// $feed->schemaValidateWithException(dirname(__FILE__).'/rss-2_0-lax.xsd');
// Just ensure a few basic things:
if (!$feed->documentElement->nodeName == 'rss') {
throw new DOMDocumentException("Feed root must be an rss element");
}
// Check for channels
foreach ($feed->documentElement->childNodes as $element) {
if ($element->nodeType == 1 && $element->nodeName != 'channel') {
throw new DOMDocumentException("'" . $node->nodeName . "' is not expected, expecting 'channel'.");
}
}
// Check dates
foreach ($feed->getElementsByTagName('pubdate') as $element) {
if (!preg_match('/(((Mon)|(Tue)|(Wed)|(Thu)|(Fri)|(Sat)|(Sun)), *)?\\d\\d? +((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)) +\\d\\d(\\d\\d)? +\\d\\d:\\d\\d(:\\d\\d)? +(([+\\-]?\\d\\d\\d\\d)|(UT)|(GMT)|(EST)|(EDT)|(CST)|(CDT)|(MST)|(MDT)|(PST)|(PDT)|\\w)/', $element->nodeValue)) {
throw new DOMDocumentException("'" . $element->nodeValue . "' is not a valid date.");
}
}
return $feed->saveXMLWithWhitespace();
}
示例4: getVersionXml
/**
* Answer the XML document that describes this version.
*
* @return DOMDocument
* @access public
* @since 1/7/08
*/
public function getVersionXml()
{
if (!isset($this->versionXml)) {
$query = new SelectQuery();
$query->addTable('segue_plugin_version');
$query->addWhereEqual('version_id', $this->getVersionId());
$query->addColumn('version_xml');
$dbc = Services::getService('DBHandler');
$result = $dbc->query($query, IMPORTER_CONNECTION);
$this->versionXml = new Harmoni_DOMDocument();
$xmlString = String::withValue($result->field('version_xml'));
$xmlString->makeUtf8();
$this->versionXml->loadXML($xmlString->asString());
}
return $this->versionXml;
}
示例5: saveWizard
/**
* Save our results. Tearing down and unsetting the Wizard is handled by
* in {@link runWizard()} and does not need to be implemented here.
*
* @param string $cacheName
* @return boolean TRUE if save was successful and tear-down/cleanup of the
* Wizard should ensue.
* @access public
* @since 4/28/05
*/
function saveWizard($cacheName)
{
$wizard = $this->getWizard($cacheName);
// Make sure we have a valid Repository
$authZ = Services::getService("AuthZ");
$idManager = Services::getService("Id");
$repositoryManager = Services::getService("Repository");
$repository = $repositoryManager->getRepository($idManager->getId("edu.middlebury.concerto.exhibition_repository"));
$slideshowAsset = $repository->getAsset($idManager->getId(RequestContext::value('slideshow_id')));
$properties = $wizard->getAllValues();
$status = new StatusStars(_("Saving Slideshow"));
$status->initializeStatistics(count($properties['slidestep']['slides']) + 2);
// First, verify that we chose a parent that we can add children to.
if ($authZ->isUserAuthorized($idManager->getId("edu.middlebury.authorization.modify"), $slideshowAsset->getId())) {
$slideshowAssetId = $slideshowAsset->getId();
$this->_slideshowAssetId = $slideshowAssetId;
// Update the Name and description
if ($properties['namedescstep']['display_name']) {
$slideshowAsset->updateDisplayName($properties['namedescstep']['display_name']);
}
if ($properties['namedescstep']['description']) {
$slideshowAsset->updateDescription($properties['namedescstep']['description']);
}
// Update the effective/expiration dates
// if ($properties['datestep']['effective_date'])
// $slideshowAsset->updateEffectiveDate(
// DateAndTime::fromString(
// $properties['datestep']['effective_date']));
// if ($properties['datestep']['expiration_date'])
// $slideshowAsset->updateExpirationDate(
// DateAndTime::fromString(
// $properties['datestep']['expiration_date']));
// --- Slides ---
$slideAssetType = new HarmoniType("Asset Types", "edu.middlebury.concerto", "Slide", "Slides are components of Slide-Shows that contain captions and may reference media Assets.");
$slideRecordStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure");
$targetIdPartStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure.edu.middlebury.concerto.slide_record_structure.target_id");
$textPositionPartStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure.edu.middlebury.concerto.slide_record_structure.text_position");
$displayMetadataPartStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure.edu.middlebury.concerto.slide_record_structure.display_metadata");
$setManager = Services::getService("Sets");
$pSlideOrder = $setManager->getPersistentSet($slideshowAssetId);
$slideIterator = $slideshowAsset->getAssets();
// ---- Add/Update Slides in new order (hopefully)
$existingSlides = array();
while ($slideIterator->hasNext()) {
$currentSlide = $slideIterator->next();
$id = $currentSlide->getId();
$existingSlides[] = $id->getIdString();
}
$pSlideOrder->removeAllItems();
$status->updateStatistics();
foreach ($properties['slidestep']['slides'] as $slideProperties) {
// print get_class($slideProperties['slideId']).": ".$slideProperties['title'];
if (!isset($slideProperties['slideId'])) {
// ---- Clean the inputs ----
if (isset($slideProperties['title'])) {
$title = $slideProperties['title'];
} else {
$title = '';
}
if (isset($slideProperties['caption'])) {
$caption = $slideProperties['caption'];
} else {
$caption = '';
}
if (isset($slideProperties['text_position'])) {
$textPosition = String::withValue($slideProperties['text_position']);
} else {
$textPosition = String::withValue('');
}
if (isset($slideProperties['show_target_metadata'])) {
$displayMetadata = Boolean::withValue($slideProperties['show_target_metadata']);
} else {
$displayMetadata = Boolean::false();
}
if (isset($slideProperties['_assetId'])) {
$targetId = String::withValue($slideProperties['_assetId']->getIdString());
} else {
$targetId = String::withValue('');
}
// ---- Create the asset ----
$slideAsset = $repository->createAsset($title, $caption, $slideAssetType);
$slideAssetId = $slideAsset->getId();
$slideshowAsset->addAsset($slideAssetId);
// Add it to the order field
$pSlideOrder->addItem($slideAssetId);
// ---- Set the additional info ----
$slideRecord = $slideAsset->createRecord($slideRecordStructId);
$slideRecord->createPart($textPositionPartStructId, $textPosition);
$slideRecord->createPart($displayMetadataPartStructId, $displayMetadata);
$slideRecord->createPart($targetIdPartStructId, $targetId);
//.........这里部分代码省略.........
示例6: getElementNS
/**
* Answer an element with a text section
*
* @param string $elementName
* @param string $data
* @return DOMElement
* @access protected
* @since 1/17/08
*/
protected function getElementNS($namespaceURI, $elementName, $data)
{
$string = String::withValue($data);
$string->makeUtf8();
$element = $this->doc->createElementNS($namespaceURI, $elementName, $string->asString());
// $element->appendChild($this->doc->createCDATASection($data));
return $element;
}
示例7: deletePartStructure
/**
* Delete a PartStucture
*
* @param object Id $partStructureId
* @return void
* @access public
* @since 6/8/06
*/
function deletePartStructure(Id $partStructureId)
{
// Delete the Structure
$schemaMgr = Services::getService("SchemaManager");
$recordMgr = Services::getService("RecordManager");
$partStructure = $this->getPartStructure($partStructureId);
$dummyValues = array(String::withValue('4000-02-05'));
$recordIdsWithValues = $recordMgr->getRecordSetIDsBySearch(new FieldValueSearch($this->_schema->getID(), $this->_schema->getFieldLabelFromID($partStructureId->getIdString()), new HarmoniIterator($dummyValues), SEARCH_TYPE_NOT_IN_LIST));
if (count($recordIdsWithValues)) {
throwError(new Error(RepositoryException::OPERATION_FAILED() . " when deleting RecordStructure: '" . $recordStructureId->getIdString() . "', Records exist for this RecordStructure.", "Repository", 1));
}
$sm = Services::getService("SchemaManager");
$this->_schema->deleteField($partStructureId->getIdString());
$sm->synchronize($this->_schema);
$partStructure = null;
}
示例8: saveWizard
/**
* Save our results. Tearing down and unsetting the Wizard is handled by
* in {@link runWizard()} and does not need to be implemented here.
*
* @param string $cacheName
* @return boolean TRUE if save was successful and tear-down/cleanup of the
* Wizard should ensue.
* @access public
* @since 4/28/05
*/
function saveWizard($cacheName)
{
$wizard = $this->getWizard($cacheName);
// Make sure we have a valid Repository
$authZ = Services::getService("AuthZ");
$idManager = Services::getService("Id");
$repositoryManager = Services::getService("Repository");
$repository = $repositoryManager->getRepository($idManager->getId("edu.middlebury.concerto.exhibition_repository"));
$exhibitionAsset = $repository->getAsset($idManager->getId(RequestContext::value('exhibition_id')));
$properties = $wizard->getAllValues();
$status = new StatusStars(_("Saving Slideshow"));
$status->initializeStatistics(count($properties['slidestep']['slides']) + 2);
// First, verify that we chose a parent that we can add children to.
if ($authZ->isUserAuthorized($idManager->getId("edu.middlebury.authorization.add_children"), $exhibitionAsset->getId())) {
$slideshowAssetType = new HarmoniType("Asset Types", "edu.middlebury.concerto", "Slideshow", "Slide-Shows are ordered collections of slides that contain captions and may reference media Assets.");
$slideshowAsset = $repository->createAsset($properties['namedescstep']['display_name'], $properties['namedescstep']['description'], $slideshowAssetType);
$slideshowAssetId = $slideshowAsset->getId();
$this->_slideshowAssetId = $slideshowAssetId;
// Update the effective/expiration dates
// if ($properties['datestep']['effective_date'])
// $slideshowAsset->updateEffectiveDate(
// DateAndTime::fromString($properties['datestep']['effective_date']));
// if ($properties['datestep']['expiration_date'])
// $slideshowAsset->updateExpirationDate(
// DateAndTime::fromString($properties['datestep']['expiration_date']));
$exhibitionAsset->addAsset($slideshowAssetId);
// --- Slides ---
$slideAssetType = new HarmoniType("Asset Types", "edu.middlebury.concerto", "Slide", "Slides are components of Slide-Shows that contain captions and may reference media Assets.");
$slideRecordStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure");
$targetIdPartStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure.edu.middlebury.concerto.slide_record_structure.target_id");
$textPositionPartStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure.edu.middlebury.concerto.slide_record_structure.text_position");
$displayMetadataPartStructId = $idManager->getId("Repository::edu.middlebury.concerto.exhibition_repository::edu.middlebury.concerto.slide_record_structure.edu.middlebury.concerto.slide_record_structure.display_metadata");
$setManager = Services::getService("Sets");
$slideOrder = $setManager->getPersistentSet($slideshowAssetId);
$status->updateStatistics();
foreach ($properties['slidestep']['slides'] as $slideProperties) {
// ---- Clean the inputs ----
if (isset($slideProperties['title'])) {
$title = $slideProperties['title'];
} else {
$title = '';
}
if (isset($slideProperties['caption'])) {
$caption = $slideProperties['caption'];
} else {
$caption = '';
}
if (isset($slideProperties['text_position'])) {
$textPosition = String::withValue($slideProperties['text_position']);
} else {
$textPosition = String::withValue('');
}
if (isset($slideProperties['show_target_metadata'])) {
$displayMetadata = Boolean::withValue($slideProperties['show_target_metadata']);
} else {
$displayMetadata = Boolean::false();
}
if (isset($slideProperties['_assetId'])) {
$targetId = String::withValue($slideProperties['_assetId']->getIdString());
} else {
$targetId = String::withValue('');
}
// ---- Create the asset ----
$slideAsset = $repository->createAsset($title, $caption, $slideAssetType);
$slideAssetId = $slideAsset->getId();
$slideshowAsset->addAsset($slideAssetId);
$slideOrder->addItem($slideAssetId);
// ---- Set the additional info ----
$slideRecord = $slideAsset->createRecord($slideRecordStructId);
$slideRecord->createPart($textPositionPartStructId, $textPosition);
$slideRecord->createPart($displayMetadataPartStructId, $displayMetadata);
$slideRecord->createPart($targetIdPartStructId, $targetId);
$status->updateStatistics();
}
// Log the success or failure
if (Services::serviceRunning("Logging")) {
$loggingManager = Services::getService("Logging");
$log = $loggingManager->getLogForWriting("Concerto");
$formatType = new Type("logging", "edu.middlebury", "AgentsAndNodes", "A format in which the acting Agent[s] and the target nodes affected are specified.");
$priorityType = new Type("logging", "edu.middlebury", "Event_Notice", "Normal events.");
$item = new AgentNodeEntryItem("Create Node", "Slideshow added");
$item->addNodeId($slideshowAssetId);
$item->addNodeId($exhibitionAsset->getId());
$log->appendLogWithTypes($item, $formatType, $priorityType);
}
$status->updateStatistics();
return TRUE;
} else {
return FALSE;
}
//.........这里部分代码省略.........