setLayout() публичный Метод

public setLayout ( $layout )
Пример #1
0
 public function onDocuments(CarewEvent $event)
 {
     $document = new Document();
     $document->setLayout('index.atom.twig')->setPath('feed/atom.xml')->setFilePath('feed/atom');
     $documents = $event->getSubject();
     $documents[$document->getFilePath()] = $document;
     $event->setSubject($documents);
     $globals = $event['globals'];
     $globals->documents = array_replace($globals->documents, $documents);
 }
Пример #2
0
 public function onDocuments(CarewEvent $event)
 {
     $documents = $event->getSubject();
     $globals = $event['globals'];
     foreach ($globals->tags as $tagName => $documentList) {
         $documentList = array_filter($documentList, function (Document $document) {
             return $document->isTypePost();
         });
         $document = new Document();
         $document->setLayout('index.atom.twig')->setPath(sprintf('tags/%s/feed/atom.xml', $this->inflector->urlize($tagName)))->setFilePath(sprintf('tags/%s/feed/atom', $tagName))->setVar('post', $documentList);
         $documents[$document->getFilePath()] = $document;
     }
     $event->setSubject($documents);
     $globals->documents = array_replace($globals->documents, $documents);
 }
 /**
  * @param Author $author
  * @return Document[]
  */
 public function generateAuthorIndices(Author $author)
 {
     $indexes = array();
     foreach ($this->getLayouts() as $layout) {
         $file = $layout->getBasename();
         preg_match('#authors\\.(.+?)\\.twig$#', $file, $match);
         $format = $match[1];
         $document = new Document();
         $document->setLayout((string) $file);
         $document->setPath(sprintf('authors/%s.%s', $author->getHandle(), $format));
         $document->setTitle(sprintf('Author: %s (%s)', $author->get('name'), $author->getHandle()));
         $document->setVars(array('author' => $author));
         $indexes[] = $document;
     }
     return $indexes;
 }
Пример #4
0
 public function onDocuments(CarewEvent $event)
 {
     $documents = $event->getSubject();
     $globals = $event['globals'];
     $tags = array();
     foreach ($globals->tags as $tagName => $documentList) {
         $tagDocument = new Document();
         $tagDocument->setLayout('default.html.twig')->setBody('{{ render_documents(carew.documents) }}')->setPath(sprintf('tags/%s.html', $this->inflector->urlize($tagName)))->setTitle('Tag #' . $tagName)->setFilePath('tags/' . $tagName)->setNavigations(array('tags', 'sub-tags'))->setVar('documents', $documentList);
         $documents[$tagDocument->getFilePath()] = $tagDocument;
         $tags[$tagDocument->getFilePath()] = $tagDocument;
     }
     $tagsDocument = new Document();
     $tagsDocument->setLayout('default.html.twig')->setBody('{{ render_documents(carew.tags) }}')->setPath('tags/index.html')->setTitle('Tags')->setFilePath('tags')->setNavigations('tags')->setVar('tags', $tags);
     $documents[$tagsDocument->getFilePath()] = $tagsDocument;
     $globals->documents = array_replace($globals->documents, $documents);
     $event->setSubject($documents);
 }
Пример #5
0
    /**
     * @expectedException RuntimeException
     * @expectedExceptionMessage Unexpected "}" in a string template line 1.
     */
    public function testPreRenderThrowExceptionOnRender()
    {
        $document = new Document();
        $document->setLayout('default');
        $document->setBody(<<<EOL
Hello

{{ foobar }}

{% set text = '{{ foobar }' %}

{{ template_from_string(text) }}
EOL
);
        $event = new CarewEvent(array($document));
        $this->twigListenner->preRender($event);
        $this->assertSame('foobar', $document->getBody());
    }