public function googleMap($divId = 'map', $options = array(), $attrs = array(), $center = array()) { if (!$center) { $center = array('latitude' => (double) get_option('geolocation_default_latitude'), 'longitude' => (double) get_option('geolocation_default_longitude'), 'zoomLevel' => (double) get_option('geolocation_default_zoom_level')); } if (!array_key_exists('params', $options)) { $options['params'] = array(); } if (!array_key_exists('uri', $options)) { // This should not be a link to the public side b/c then all the URLs that // are generated inside the KML will also link to the public side. $options['uri'] = url('geolocation/map.kml'); } if (!array_key_exists('mapType', $options)) { $options['mapType'] = get_option('geolocation_map_type'); } if (!array_key_exists('fitMarkers', $options)) { $options['fitMarkers'] = (bool) get_option('geolocation_auto_fit_browse'); } $class = 'map geolocation-map'; if (isset($attrs['class'])) { $class .= ' ' . $attrs['class']; } $options = js_escape($options); $center = js_escape($center); $varDivId = Inflector::variablize($divId); $divAttrs = array_merge($attrs, array('id' => $divId, 'class' => $class)); $html = '<div ' . tag_attributes($divAttrs) . '></div>'; $js = "var {$varDivId}" . "OmekaMapBrowse = new OmekaMapBrowse(" . js_escape($divId) . ", {$center}, {$options}); "; $html .= "<script type='text/javascript'>{$js}</script>"; return $html; }
public function itemGoogleMap($item = null, $width = '200px', $height = '200px', $hasBalloonForMarker = false, $markerHtmlClassName = 'geolocation_balloon') { $divId = "item-map-{$item->id}"; $location = get_db()->getTable('Location')->findLocationByItem($item, true); // Only set the center of the map if this item actually has a location // associated with it if ($location) { $center['latitude'] = $location->latitude; $center['longitude'] = $location->longitude; $center['zoomLevel'] = $location->zoom_level; $center['show'] = true; if ($hasBalloonForMarker) { $titleLink = link_to_item(metadata($item, array('Dublin Core', 'Title'), array(), $item), array(), 'show', $item); $thumbnailLink = !item_image('thumbnail') ? '' : link_to_item(item_image('thumbnail', array(), 0, $item), array(), 'show', $item); $description = metadata($item, array('Dublin Core', 'Description'), array('snippet' => 150), $item); $center['markerHtml'] = '<div class="' . $markerHtmlClassName . '">' . '<div class="geolocation_balloon_title">' . $titleLink . '</div>' . '<div class="geolocation_balloon_thumbnail">' . $thumbnailLink . '</div>' . '<p class="geolocation_balloon_description">' . $description . '</p></div>'; } $options = array(); $options['mapType'] = get_option('geolocation_map_type'); $center = js_escape($center); $options = js_escape($options); $style = "width: {$width}; height: {$height}"; $html = '<div id="' . $divId . '" class="map geolocation-map" style="' . $style . '"></div>'; $js = "var " . Inflector::variablize($divId) . ";"; $js .= "OmekaMapSingle = new OmekaMapSingle(" . js_escape($divId) . ", {$center}, {$options}); "; $html .= "<script type='text/javascript'>{$js}</script>"; } else { $html = '<p class="map-notification">' . __('This item has no location info associated with it.') . '</p>'; } return $html; }
/** * Iterate over hooks and filters, define callbacks. * * @return void */ public function addHooksAndFilters() { foreach (self::$_hooks as $hookName) { $functionName = Inflector::variablize($hookName); add_plugin_hook($hookName, array($this, $functionName)); } foreach (self::$_filters as $filterName) { $functionName = Inflector::variablize($filterName); add_filter($filterName, array($this, $functionName)); } }
public function __construct(Bbx_Model $parentModel, $childName, array $attributes) { $this->_childName = $childName; extract($attributes); $this->_parentTableName = $parentModel->getTable()->info('name'); $this->_parentModelName = get_class($parentModel); $this->_type = Inflector::variablize(substr(get_class($this), 22)); if (isset($select)) { $this->_originalSelect = $select; $this->_select = $select; } if (isset($polymorphic)) { // belongsTo only $this->_polymorphic = true; $this->_polymorphicKey = Inflector::singularize($childName) . '_id'; $this->_polymorphicType = Inflector::singularize($childName) . '_type'; $this->_childModelName = Inflector::classify($parentModel->{$this->_polymorphicType}); } else { // could do this out of registry $this->_childName = isset($source) ? $source : $childName; $this->_childModelName = Inflector::classify($this->_childName); } $this->_childTableName = Bbx_Model::load($this->_childModelName)->getTableName(); if (isset($through)) { $this->_throughName = $through; $this->_throughModelName = Inflector::classify($through); $this->_throughModel = Bbx_Model::load($this->_throughModelName, true); $this->_throughTableName = $this->_throughModel->getTableName(); } if (isset($as)) { // hasMany(Through) only $this->_polymorphic = true; $this->_polymorphicKey = $as . '_id'; $this->_polymorphicType = $as . '_type'; $polymorphicTable = isset($this->_throughTableName) ? $this->_throughTableName : $this->_childTableName; $this->_parentRefColumn = $as . '_id'; $type = Inflector::singularize(Inflector::underscore($this->_parentTableName)); $typeSelect = array('where' => array("`" . $polymorphicTable . "`.`" . $as . "_type` = '" . $type . "'")); $this->_originalSelect = array_merge_recursive((array) $this->_originalSelect, $typeSelect); } else { $this->_parentRefColumn = Inflector::singularize($this->_parentTableName) . '_id'; } $this->_models[$this->_childModelName] = Bbx_Model::load($this->_childModelName); $this->_originalSelect = $this->_mergeSelects($this->_convertForSelect($this->_models[$this->_childModelName]->getDefaultParams()), $this->_originalSelect); $this->_select = $this->_originalSelect; }
if ($harvest) { ?> <div class="harvest-status"> <?php if (empty($asText)) { ?> <a href="<?php echo url("oaipmh-harvester/index/status?harvest_id={$harvest->id}"); ?> "><?php echo html_escape(ucwords($harvest->status)); ?> </a> <?php } else { ?> <span class="status <?php echo $harvest->status == OaipmhHarvester_Harvest::STATUS_IN_PROGRESS ? 'progress' : Inflector::variablize($harvest->status); ?> "> <?php echo html_escape(__(ucwords($harvest->status))); ?> </span> <?php } ?> </div> <?php }
/** * Parses the HTTP query and dispatches to the correct verb handler. * * Checks arguments for each verb type, and sets XML request tag. * * @uses checkArguments() */ private function dispatchRequest() { $request = $this->document->createElement('request', OAI_PMH_BASE_URL); $this->document->documentElement->appendChild($request); $requiredArgs = array(); $optionalArgs = array(); if (!($verb = $this->_getParam('verb'))) { $this->throwError(self::OAI_ERR_BAD_VERB, 'No verb specified.'); return; } $resumptionToken = $this->_getParam('resumptionToken'); if ($resumptionToken) { $requiredArgs = array('resumptionToken'); } else { switch ($this->query['verb']) { case 'Identify': break; case 'GetRecord': $requiredArgs = array('identifier', 'metadataPrefix'); break; case 'ListRecords': $requiredArgs = array('metadataPrefix'); $optionalArgs = array('from', 'until', 'set'); break; case 'ListIdentifiers': $requiredArgs = array('metadataPrefix'); $optionalArgs = array('from', 'until', 'set'); break; case 'ListSets': break; case 'ListMetadataFormats': $optionalArgs = array('identifier'); break; default: $this->throwError(self::OAI_ERR_BAD_VERB); } } $this->checkArguments($requiredArgs, $optionalArgs); if (!$this->error) { foreach ($this->query as $key => $value) { $request->setAttribute($key, $value); } if ($resumptionToken) { $this->resumeListResponse($resumptionToken); } else { if ($verb == 'ListRecords' || $verb == 'ListIdentifiers') { $this->initListResponse(); } else { /* This Inflector use means verb-implementing functions must be the lowerCamelCased version of the verb name. */ $functionName = Inflector::variablize($verb); $this->{$functionName}(); } } } }
<?php if ($folder) { ?> <div class="folder-status"> <span class="status <?php echo Inflector::variablize($folder->status); ?> "> <?php switch ($folder->status) { case OaiPmhStaticRepository::STATUS_ADDED: $status = __('Folder added'); break; case OaiPmhStaticRepository::STATUS_RESET: $status = __('Status reset'); break; case OaiPmhStaticRepository::STATUS_QUEUED: $status = __('Process queued'); break; case OaiPmhStaticRepository::STATUS_PROGRESS: $status = __('Process in progress'); break; case OaiPmhStaticRepository::STATUS_PAUSED: $status = __('Process paused'); break; case OaiPmhStaticRepository::STATUS_STOPPED: $status = __('Process stopped'); break; case OaiPmhStaticRepository::STATUS_KILLED: $status = __('Process killed');
/** * Returns the google map code for an item * @param Item $item * @param int $width * @param int $height * @param boolean $hasBalloonForMarker * @return string **/ function geolocation_google_map_for_item($item = null, $width = '200px', $height = '200px', $hasBalloonForMarker = true, $markerHtmlClassName = 'geolocation_balloon') { if (!$item) { $item = get_current_item(); } $ht = ''; $divId = "item-map-{$item->id}"; ob_start(); if ($hasBalloonForMarker) { echo geolocation_marker_style(); } ?> <style type="text/css" media="screen"> /* The map for the items page needs a bit of styling on it */ #address_balloon dt { font-weight: bold; } #address_balloon { width: 100px; } </style> <?php $location = geolocation_get_location_for_item($item, true); // Only set the center of the map if this item actually has a location // associated with it if ($location) { $center['latitude'] = $location->latitude; $center['longitude'] = $location->longitude; $center['zoomLevel'] = $location->zoom_level; $center['show'] = true; if ($hasBalloonForMarker) { $center['markerHtml'] = geolocation_get_marker_html_for_item($item, $markerHtmlClassName); } $center = js_escape($center); $options = js_escape($options); ?> <div id="<?php echo $divId; ?> " style="width:<?php echo $width; ?> ; height:<?php echo $height; ?> ;" class="map"></div> <script type="text/javascript"> //<![CDATA[ var <?php echo Inflector::variablize($divId); ?> OmekaMapSingle = new OmekaMapSingle(<?php echo js_escape($divId); ?> , <?php echo $center; ?> , <?php echo $options; ?> ); //]]> </script> <?php } else { ?> <p class="map-notification">This item has no location info associated with it.</p> <?php } $ht .= ob_get_contents(); ob_end_clean(); return $ht; }
protected function _writeProcessAndSpecific($record) { $writer = $this->_writer; // Process data are not written, except the name, the record type and // the action. $attributes = array(); foreach ($record['process'] as $key => $value) { if (in_array($key, array('name', 'record type', 'action'))) { $attributes[$key] = $value; } } // The union keeps the former values. $attributes += $record['specific']; if (empty($attributes)) { return; } foreach ($attributes as $key => $value) { // Manage exceptions. // TODO Avoid these exceptions. // Exception for the file path. if ($key == 'path' && $record['process']['record type'] == 'File') { $key = 'file'; // The full path is checked, fully formatted and encoded. $value = $record['process']['fullpath']; } elseif ($key == 'item_type_name' && $record['process']['record type'] == 'Item') { $key = 'itemType'; } else { $key = Inflector::variablize($key); } // Normally, only for tags, but they are now moved into extra. if (is_array($value)) { $value = implode(',', $value); } $writer->writeAttribute($key, $value); } }