public function output(\Pagemill_Data $data, \Pagemill_Stream $stream) { if ($this->hasAttribute('template')) { $template = Typeframe_Skin::TemplatePath($data->parseVariables($this->getAttribute('template'))); $this->setAttribute('file', $template); } if ($this->getAttribute('select')) { $select = $this->getAttribute('select'); $temp = new Pagemill_Stream(true); parent::output($data, $temp); $xml = Pagemill_SimpleXmlElement::LoadString($temp->clean()); $parts = $xml->select($select); foreach ($parts as $part) { $stream->puts($part->asXml()); } } else { parent::output($data, $stream); } }
public static function FindTemplate($template) { return Typeframe_Skin::TemplatePath($template); }
public static function StylesheetsFor($template, $uri = null) { $stylesheets = array(); $tmplXml = Pagemill_SimpleXmlElement::LoadFile(Typeframe_Skin::TemplatePath($template, $uri)); if (strpos($tmplXml->asXml(), '<pm:html') !== false) { if (is_null($uri)) { $skin = self::Current(); } else { $skin = self::At($uri); } $skinXml = Pagemill_SimpleXmlElement::LoadFile(TYPEF_DIR . '/skins/' . $skin . '/skin.html'); self::_GetStylesheetsFromElement($skinXml, $stylesheets); } self::_GetStylesheetsFromElement($tmplXml, $stylesheets); return $stylesheets; }
Typeframe::Redirect('Invalid page.', $typef_app_dir, -1); return; } if ($page['application'] == 'Content') { // get template from settings; expand to its full value $settings = $page['settings']; $template = @$settings['template']; if (!$template) { $template = 'generic.html'; } $template = "/content/{$template}"; $full_template = TYPEF_SOURCE_DIR . "/templates{$template}"; } else { $response = Typeframe_Response::At(TYPEF_WEB_DIR . $page['uri']); $template = $response->getPageTemplate(); $full_template = Typeframe_Skin::TemplatePath($template, $response->applicationUri()); } // cannot edit content if template does not exist if (!file_exists($full_template)) { Typeframe::Redirect("Unable to find page template ({$template}).", $typef_app_dir, -1); return; } $skin = Typeframe_Skin::At(TYPEF_WEB_DIR . $page['uri']); $stylesheets = Typeframe_Skin::StylesheetsFor($template, TYPEF_WEB_DIR . $page['uri']); $pm->setVariable('stylesheets', $stylesheets); // load inserts and groups for template $inserts = Insertable::ElementsFrom($full_template, TYPEF_WEB_DIR . $page['uri']); $groups = Insertable::GroupsFrom($full_template, null, $skin); // get revision id, if any $revisionid = @$_REQUEST['revisionid']; // process form