コード例 #1
0
ファイル: AbstractSearch.php プロジェクト: tillk/vufind
 /**
  * Support function to display spelling suggestions.
  *
  * @param string                          $msg     HTML to display at the top of
  * the spelling section.
  * @param \VuFind\Search\Base\Results     $results Results object
  * @param \Zend\View\Renderer\PhpRenderer $view    View renderer object
  *
  * @return string
  */
 public function renderSpellingSuggestions($msg, $results, $view)
 {
     $spellingSuggestions = $results->getSpellingSuggestions();
     if (empty($spellingSuggestions)) {
         return '';
     }
     $html = '<div class="' . $this->getContainerClass() . '">';
     $html .= $msg;
     foreach ($spellingSuggestions as $term => $details) {
         $html .= '<br/>' . $view->escapeHtml($term) . ' &raquo; ';
         $i = 0;
         foreach ($details['suggestions'] as $word => $data) {
             if ($i++ > 0) {
                 $html .= ', ';
             }
             $html .= '<a href="' . $results->getUrlQuery()->replaceTerm($term, $data['new_term']) . '">' . $view->escapeHtml($word) . '</a>';
             if (isset($data['expand_term']) && !empty($data['expand_term'])) {
                 $url = $results->getUrlQuery()->replaceTerm($term, $data['expand_term']);
                 $html .= $this->renderExpandLink($url, $view);
             }
         }
     }
     $html .= '</div>';
     return $html;
 }
コード例 #2
0
ファイル: OEmbed.php プロジェクト: patrova/omeka-s
 public function render(PhpRenderer $view, MediaRepresentation $media, array $options = [])
 {
     $data = $media->mediaData();
     if ($data['type'] == 'photo') {
         $url = $data['url'];
         $width = $data['width'];
         $height = $data['height'];
         if (!empty($data['title'])) {
             $title = $data['title'];
         } else {
             $title = $url;
         }
         return sprintf('<img src="%s" width="%s" height="%s" alt="%s">', $view->escapeHtml($url), $view->escapeHtml($width), $view->escapeHtml($height), $view->escapeHtml($title));
     } else {
         if (!empty($data['html'])) {
             return $data['html'];
         } else {
             $source = $media->source();
             if (!$empty($data['title'])) {
                 $title = $data['title'];
             } else {
                 $title = $source;
             }
             return $view->hyperlink($title, $source);
         }
     }
 }
コード例 #3
0
ファイル: ItemList.php プロジェクト: patrova/omeka-s
 public function render(PhpRenderer $view, SitePageBlockRepresentation $block)
 {
     $attachments = $block->attachments();
     if (!$attachments) {
         return '';
     }
     $html = '';
     foreach ($attachments as $attachment) {
         $html .= '<div>';
         $item = $attachment->item();
         if ($item) {
             $html .= '<h2>' . $item->link($item->displayTitle()) . '</h2>';
             $media = $attachment->media();
             if (!$media) {
                 $media = $item->primaryMedia();
             }
             if ($media) {
                 $thumbnailType = $this->getData($block->data(), 'thumbnail_type', 'square');
                 $html .= '<h3>' . $media->link($media->displayTitle()) . '</h3>';
                 $html .= '<img src="' . $view->escapeHtml($media->thumbnailUrl($thumbnailType)) . '">';
             }
         }
         $caption = $attachment->caption();
         if ($caption) {
             $html .= '<p>' . $caption . '</p>';
         }
         $html .= '</div>';
     }
     return $html;
 }
コード例 #4
0
ファイル: Youtube.php プロジェクト: patrova/omeka-s
 public function render(PhpRenderer $view, MediaRepresentation $media, array $options = [])
 {
     if (!isset($options['width'])) {
         $options['width'] = self::WIDTH;
     }
     if (!isset($options['height'])) {
         $options['height'] = self::HEIGHT;
     }
     if (!isset($options['allowfullscreen'])) {
         $options['allowfullscreen'] = self::ALLOWFULLSCREEN;
     }
     // Compose the YouTube embed URL and build the markup.
     $data = $media->mediaData();
     $url = new HttpUri(sprintf('https://www.youtube.com/embed/%s', $data['id']));
     $url->setQuery(['start' => $data['start'], 'end' => $data['end']]);
     $embed = sprintf('<iframe width="%s" height="%s" src="%s" frameborder="0"%s></iframe>', $view->escapeHtml($options['width']), $view->escapeHtml($options['height']), $view->escapeHtml($url), $options['allowfullscreen'] ? ' allowfullscreen' : '');
     return $embed;
 }
コード例 #5
0
 /** {@inheritdoc} */
 public function renderFieldset(\Zend\View\Renderer\PhpRenderer $view, \Zend\Form\Fieldset $fieldset)
 {
     $output = '';
     if ($fieldset->has('Groups')) {
         $groups = $fieldset->get('Groups');
         if ($groups->count()) {
             $output = "<div>\n";
             foreach ($groups as $element) {
                 if ($element instanceof \Zend\Form\Element\Radio) {
                     $label = $view->htmlTag('a', $view->escapeHtml($element->getLabel()), array('href' => $view->consoleUrl('group', 'general', array('name' => $element->getLabel()))));
                     $output .= $view->htmlTag('fieldset', "<legend>{$label}</legend>\n" . $view->formRadio($element));
                 }
             }
             $output .= $view->formRow($fieldset->get('Submit'));
             $output .= "\n</div>\n";
         }
     }
     return $output;
 }
コード例 #6
0
ファイル: AudioRenderer.php プロジェクト: patrova/omeka-s
 public function render(PhpRenderer $view, MediaRepresentation $media, array $options = [])
 {
     return sprintf('<audio src="%s" controls>%s</audio>', $view->escapeHtml($media->originalUrl()), $view->hyperlink($media->filename(), $media->originalUrl()));
 }
コード例 #7
0
ファイル: ImageRenderer.php プロジェクト: patrova/omeka-s
 public function render(PhpRenderer $view, MediaRepresentation $media, array $options = [])
 {
     return sprintf('<img src="%s">', $view->escapeHtml($media->originalUrl()));
 }
コード例 #8
0
ファイル: ClientConfig.php プロジェクト: hschletz/braintacle
 /** {@inheritdoc} */
 public function renderFieldset(\Zend\View\Renderer\PhpRenderer $view, \Zend\Form\Fieldset $fieldset)
 {
     $name = $fieldset->getName();
     if ($name) {
         $default = $view->translate('Default');
         $effective = $view->translate('Effective');
         $yes = $view->translate('Yes');
         $no = $view->translate('No');
         switch ($name) {
             case 'Agent':
                 $legend = $view->translate('Agent');
                 break;
             case 'Download':
                 $legend = $view->translate('Download');
                 break;
             case 'Scan':
                 $legend = $view->translate('Network scanning');
                 break;
         }
         $output = "<div class='table'>\n";
         foreach ($fieldset as $element) {
             if ($element->getAttribute('disabled')) {
                 continue;
             }
             preg_match('/.*\\[(.*)\\]$/', $element->getName(), $matches);
             $option = $matches[1];
             if ($option == 'scanThisNetwork') {
                 $row = '';
             } else {
                 $defaultValue = $this->_object->getDefaultConfig($option);
                 if ($element instanceof Element\Checkbox) {
                     $defaultValue = $defaultValue ? $yes : $no;
                 }
                 $row = sprintf('%s: %s', $default, $defaultValue);
                 if ($this->_object instanceof \Model\Client\Client) {
                     $effectiveValue = $this->_object->getEffectiveConfig($option);
                     if ($element instanceof Element\Checkbox) {
                         $effectiveValue = $effectiveValue ? $yes : $no;
                     }
                     $row .= sprintf(', %s: %s', $effective, $effectiveValue);
                 }
                 $row = $view->escapeHtml("({$row})");
             }
             if ($element->getMessages()) {
                 $element->setAttribute('class', 'input-error');
             }
             $row = $view->htmlElement('span', $view->formElement($element) . $row, array('class' => 'values'));
             $row = $view->htmlElement('span', $view->translate($element->getLabel()), array('class' => 'label')) . $row;
             $output .= $view->htmlElement('label', $row);
             if ($element->getMessages()) {
                 $output .= $view->htmlElement('span', null, array('class' => 'cell'));
                 $output .= $view->formElementErrors($element, array('class' => 'error'));
             }
         }
         $output .= "</div>\n";
         $output = $view->htmlElement('fieldset', $view->htmlElement('legend', $legend) . $output);
     } else {
         $output = "<div class='table'>\n";
         foreach ($fieldset as $element) {
             if ($element instanceof \Zend\Form\Fieldset) {
                 $output .= $this->renderFieldset($view, $element);
             }
         }
         $output .= $view->formRow($fieldset->get('Submit'));
         $output .= "</div>\n";
     }
     return $output;
 }
コード例 #9
0
 /** {@inheritdoc} */
 public function renderFieldset(\Zend\View\Renderer\PhpRenderer $view, \Zend\Form\Fieldset $fieldset = null)
 {
     $output = '';
     $name = $fieldset->getName();
     switch ($name) {
         case 'inspect':
             $output .= "<div class='textcenter'>\n";
             $output .= $view->formRow($fieldset->get('inspect'), 'append') . "\n";
             $output .= "</div>\n";
             break;
         case 'existing':
             $table = '';
             foreach ($this->_definedValues as $value) {
                 $id = $value['Id'];
                 $element = $fieldset->get("value_{$id}_name");
                 $row = $view->htmlElement('td', $view->formElement($element) . $view->formElementErrors($element, array('class' => 'errors')));
                 $row .= $view->htmlElement('td', $view->escapeHtml($element->getLabel()));
                 $row .= $view->htmlElement('td', $view->htmlElement('a', $view->translate('Delete'), array('href' => $view->consoleUrl('preferences', 'deleteregistryvalue', array('name' => $value['Name'])))));
                 $table .= $view->htmlElement('tr', $row);
             }
             $output .= $view->htmlElement('table', $table);
             break;
         case 'new_value':
             $output .= parent::renderFieldset($view, $fieldset);
             break;
         default:
             if ($fieldset == $this) {
                 $output .= $this->renderFieldset($view, $fieldset->get('inspect'));
                 if (count($this->_definedValues)) {
                     $output .= $view->htmlElement('h2', $view->translate('Values'));
                     $output .= $this->renderFieldset($view, $fieldset->get('existing'));
                 }
                 $output .= $view->htmlElement('h2', $view->translate('Add'));
                 $output .= $this->renderFieldset($view, $fieldset->get('new_value'));
             }
             break;
     }
     return $output;
 }
コード例 #10
0
 /** {@inheritdoc} */
 public function renderFieldset(\Zend\View\Renderer\PhpRenderer $view, \Zend\Form\Fieldset $fieldset)
 {
     $headers = array('Id' => 'ID', 'Name' => $view->translate('Name'), 'NetworkInterface.MacAddress' => $view->translate('MAC address'), 'Serial' => $view->translate('Serial number'), 'AssetTag' => $view->translate('Asset tag'), 'LastContactDate' => $view->translate('Last contact'));
     $renderCriteria = function ($view, $client, $property) {
         $value = $client[$property];
         if ($value === null) {
             // NULL values are never considered for duplicates and cannot be blacklisted.
             return;
         }
         if ($property == 'NetworkInterface.MacAddress') {
             $property = 'MacAddress';
         }
         // Hyperlink to blacklist form
         return $view->htmlElement('a', $view->escapeHtml($value), array('href' => $view->consoleUrl('duplicates', 'allow', array('criteria' => $property, 'value' => $value))), true);
     };
     $renderCallbacks = array('Id' => function ($view, $client) {
         // Display ID and a checkbox. Render checkbox manually because
         // ZF's MultiCheckbox element does not handle duplicate values.
         // $_POST['clients'] will become an array of selected
         // (possibly duplicate) IDs.
         return sprintf('<input type="checkbox" name="clients[]" value="%d">%d', $client['Id'], $client['Id']);
     }, 'Name' => function ($view, $client) {
         // Hyperlink to "customfields" page of given client.
         // This allows for easy review of the information about to be merged.
         return $view->htmlElement('a', $view->escapeHtml($client['Name']), array('href' => $view->consoleUrl('client', 'customfields', array('id' => $client['Id']))), true);
     }, 'NetworkInterface.MacAddress' => $renderCriteria, 'Serial' => $renderCriteria, 'AssetTag' => $renderCriteria);
     $formContent = $view->table($this->getOption('clients'), $headers, array('order' => $this->getOption('order'), 'direction' => $this->getOption('direction')), $renderCallbacks);
     $formContent .= "<div>\n";
     foreach ($this as $element) {
         $formContent .= $view->formRow($element, 'append') . "\n";
     }
     $formContent .= "</div>\n";
     return $formContent;
 }