コード例 #1
0
 public static function provideNormalConversions()
 {
     $tests = array();
     $testHTML = function ($expectedHTML, $body, Request $request = NULL) use(&$tests) {
         $tests[] = array($expectedHTML, $body, ServiceResponse::HTML, $request);
     };
     $testJSON = function ($expectedJSON, $body, Request $request = NULL) use(&$tests) {
         $tests[] = array($expectedJSON, $body, ServiceResponse::JSON, $request);
     };
     $testHTML('<html><body><form></form></body></html>', '<html><body><form></form></body></html>');
     $testHTML('<input type="hidden" name="nix" />', \Psc\HTML\HTML::Tag('input', NULL, array('type' => 'hidden', 'name' => 'nix')));
     // php array
     $testJSON(json_encode(array('eins', 'zwei')), array('eins', 'zwei'));
     // php object
     $o = new \stdClass();
     $o->eins = 'v1';
     $o->zwei = 'v2';
     $testJSON(json_encode((object) array('eins' => 'v1', 'zwei' => 'v2')), $o);
     // interface JSON
     $testJSON(json_encode(array('eins' => TRUE, 'zwei' => 'f')), new ArrayCollection(array('eins' => TRUE, 'zwei' => 'f')));
     return $tests;
 }
コード例 #2
0
ファイル: Page.php プロジェクト: pscheit/psc-cms
 /**
  * Setzt ein Meta Attribut
  * 
  * wird <var>$content</var> leer gelassen oder auf NULL gesetzt, wird das Meta Attribut gelöscht
  * @param string $name der Name des Meta Attributes
  * @param string $content der Wert des Meta Attributes
  * @return Tag<meta>
  */
 public function setMeta($name, $content = NULL, $httpEquiv = FALSE, $scheme = NULL)
 {
     $meta = HTML::Tag('meta');
     $meta->setOption('selfClosing', TRUE);
     if ($content === NULL) {
         /* löschen */
         $this->removeMeta($name);
     } else {
         /* im W3C steht "may be used in place" ... d.h. man könnte auch name und http-equiv gleichzeitig benutzen 
               http://www.w3.org/TR/html4/struct/global.html#edef-META
            */
         if (isset($name)) {
             if (!$httpEquiv) {
                 $meta->setAttribute('name', $name);
             } else {
                 $meta->setAttribute('http-equiv', $name);
             }
         }
         if (isset($scheme)) {
             $meta->setAttribute('scheme', $scheme);
         }
         if ($content !== FALSE) {
             $meta->setAttribute('content', $content);
         }
         /* meta tags liegen im head in der root ebene, d.h. wir suchen ob es dort schon ein meta tag gibt,
               wenn es eins gibt ersetzen wir dies, ansonsten fügen wir es hinzu 
            */
         /* schlüssel des meta tags suchen (wenn vorhanden) */
         $key = NULL;
         foreach ($this->head->content as $itemKey => $item) {
             if ($item instanceof Tag && $item->getTag() == 'meta' && ($item->getAttribute('name') == $name || $item->getAttribute('http-equiv') == $name)) {
                 $key = $itemKey;
                 break;
             }
         }
         if ($key !== NULL) {
             $this->head->content[$key] =& $meta;
         } else {
             $this->head->content[] =& $meta;
         }
     }
     return $meta;
 }