private function parsesidebar($s, $sidebar) { $result = array(); $default =& $this->default->templates['sidebars'][$sidebar]; if ($widget = $this->parsetag($s, 'widget', '$items')) { $this->parsewidget($result, 'widget', $sidebar, $widget); } else { $this->copywidget($result, 'widget', $default, 'widget'); } foreach (ttheme::getwidgetnames() as $name) { if ($widget = $this->parsetag($s, $name, '')) { $this->parsewidget($result, $name, $sidebar, $widget); } else { $this->copywidget($result, $name, $result, 'widget'); if ($name == 'posts' || $name == 'comments') { $result[$name . '.item'] = $default[$name . '.item']; } elseif ($name == 'meta') { $result['meta.classes'] = $default['meta.classes']; } } } $s = $this->deletespaces($s); //$result[0] = $s != '' ? $s : $default[0]; return $result; }
public function afterparse($theme) { $this->onfix($theme); $templates =& $this->theme->templates; $templates['menu.hover'] = isset($templates['menu.hover']) ? $templates['menu.hover'] == 'true' ? 'true' : ($templates['menu.hover'] == 'bootstrap' ? 'bootstrap' : 'false') : 'true'; if (!isset($templates['content.post.templatecomments'])) { $templates['content.post.templatecomments'] = ''; } if (!isset($templates['content.post.templatecomments.confirmform'])) { $this->error('tml not'); } $post = 'content.post.'; $excerpt = 'content.excerpts.excerpt.'; //normalize filelist foreach (array('file', 'image', 'audio', 'video', 'flash') as $name) { $key = $post . 'filelist.' . $name; $itemkey = $key . "s.{$name}"; if (!isset($templates[$key . 's'])) { $templates[$key . 's'] = '$' . $name; } //excerpt $keyexcerpt = $excerpt . 'filelist.' . $name; $itemkeyexcerpt = $keyexcerpt . "s.{$name}"; if (!isset($templates[$keyexcerpt])) { $templates[$keyexcerpt] = $templates[$key]; } if (!isset($templates[$keyexcerpt . 's'])) { $templates[$keyexcerpt . 's'] = $templates[$key . 's']; } } //fix preview $key = $post . 'filelist.preview'; $keyexcerpt = $excerpt . 'filelist.preview'; if (!isset($templates[$keyexcerpt])) { $templates[$keyexcerpt] = $templates[$key]; } foreach (array('date', 'filelist', 'filelist.file', 'filelist.image', 'filelist.preview', 'filelist.audio', 'filelist.video', 'filelist.flash', 'filelist.files', 'filelist.images', 'filelist.audios', 'filelist.videos', 'filelist.flashs', 'catlinks', 'catlinks.item', 'catlinks.divider', 'taglinks', 'taglinks.item', 'taglinks.divider') as $name) { if (empty($templates[$excerpt . $name])) { $templates[$excerpt . $name] = $templates[$post . $name]; } } $sidebars =& $this->theme->templates['sidebars']; $count = substr_count($this->theme->templates['index'], '$template.sidebar'); if (count($sidebars) > $count) { array_splice($sidebars, $count, count($sidebars) - $count); } for ($i = 0; $i < $count; $i++) { $sidebar =& $this->theme->templates['sidebars'][$i]; foreach (ttheme::getwidgetnames() as $widgetname) { foreach (array('', '.items', '.item', '.subcount', '.subitems') as $name) { if (empty($sidebar[$widgetname . $name])) { $sidebar[$widgetname . $name] = $sidebar['widget' . $name]; } } if ($this->fixsubcount && in_array($widgetname, array('widget', 'categories', 'tags', 'archives'))) { $v = $sidebar[$widgetname . '.item']; if (!strpos($v, '$subcount')) { $sidebar[$widgetname . '.item'] = str_replace('$subitems', '$subcount$subitems', $v); } } } if (is_string($sidebar['meta.classes'])) { $sidebar['meta.classes'] = self::getmetaclasses($sidebar['meta.classes']); } } //add spaces foreach (array('content.excerpts.excerpt.taglinks.divider', 'content.post.taglinks.divider', 'content.excerpts.excerpt.catlinks.divider', 'content.post.catlinks.divider') as $k) { if (substr($templates[$k], -1) != ' ') { $templates[$k] .= ' '; } } $templates['content.post.templatecomments.confirmform'] = str_replace('$lang.formhead', '$lang.checkspam', $templates['content.post.templatecomments.confirmform']); $form = 'content.post.templatecomments.form'; $templates[$form] = trim(str_replace('<script type="text/javascript" src="$site.files$template.jsmerger_comments"></script>', '', $templates[$form])); if (!strpos($templates[$form], '$mesg')) { $templates[$form] = '<div id="before-commentform">$mesg</div>' . $templates[$form]; } $regform = 'content.post.templatecomments.regform'; if (!in_array($regform, $this->parsedtags) && in_array('content.admin.editor', $this->parsedtags)) { $editor = strtr($templates['content.admin.editor'], array('$lang.$name' => $this->replacelang ? tlocal::i('comment')->content : '$lang.content', '$name' => 'content', '$value' => '')); $templates[$regform] = ' <div id="before-commentform">$mesg</div> <h4 id="respond">$lang.leavereply</h4> <form action="$site.url/send-comment.php" method="post" id="commentform">' . $editor . '<p> <input type="hidden" name="postid" value="$postid" /> <input type="hidden" name="antispam" value="$antispam" /> <input type="submit" name="submitbutton" id="submitcomment" value="' . ($this->replacelang ? tlocal::i()->send : '$lang.send') . '" /></p> </form>'; } $comment = 'content.post.templatecomments.comments.comment'; $templates[$comment] = str_replace('$moderate', '<div class="moderationbuttons" data-idcomment="$comment.id" data-idauthor="$comment.author"></div>', $templates[$comment]); if ($this->stylebefore) { foreach (array('index', 'index.home', 'index.post', 'index.tag') as $k) { if (strpos($templates[$k], '$template.cssmerger_default')) { continue; } //insert css merger before theme css if ($i = strpos($templates[$k], '.css')) { $i = strrpos(substr($templates[$k], 0, $i), '<'); $css = '<link type="text/css" href="$site.files$template.cssmerger_default" rel="stylesheet" />'; $templates[$k] = substr_replace($templates[$k], $css, $i - 1, 0); } } //fix $template.head // ignore on installling (class not exists) if (!defined('litepublisher_mode') || litepublisher_mode != 'install') { $t = ttemplate::i(); if (false !== strpos($t->heads, $css) && false === strpos($t->heads, "<!--{$css}-->")) { $t->heads = str_replace($css, "<!--{$css}-->", $t->heads); $t->save(); } } } //reuse templates foreach ($templates as $k => $v) { if (is_string($v) && !strbegin($v, '<') && isset($templates[$v]) && is_string($templates[$v])) { $templates[$k] = $templates[$v]; } } }
public static function gettemplates() { $result = array(); $lang = tlocal::i('widgets'); $result['widget'] = $lang->defaulttemplate; foreach (ttheme::getwidgetnames() as $name) { $result[$name] = $lang->{$name}; } return $result; }