1

我正在使用PHP.Gt 框架,我注意到有一个用于博客的页面工具。我确信连接起来真的很容易(其他一切都在 PHP.GT 中!),但我需要知道我应该在我的 html 中设置哪些 ID 和数据模板,以便 PageTool 为我呈现博客.

如果我可以避免的话,我宁愿不通过代码来寻找它们,而且我在 github 上的文档中找不到博客工具 - 它是否记录在其他地方?

4

1 回答 1

0

Github wiki 上的教程 #4将在编写完成后准确回答您的问题。文档中还有一个专门用于 Blog PageTool 的特定页面。虽然文档是 WIP,但我将使用源代码和评论在这里回答。

你需要做两件事来自动输出一个典型的博客:

  1. data-template在具有属性的元素中创建虚拟博客的标记。这将被放入/Blog/_Dynamic.htmlPageView
  2. 调用go博客页面工具上的函数。

数据库将在需要时自动部署。然后,您将能够使用 CSS/SCSS 编写文章和设置博客样式。

要更具体地回答您的问题:

根元素可以是模板名称为“文章”的任何标签类型。将此标签作为文章元素是有意义的。

在文章元素中,您可以根据要创建的博客类型的需要放置尽可能多或尽可能少的内容。以下元素是最典型的:

  • article > header > h1 > a- 文章的标题,将提供一个永久链接回到它本身。
  • article > header > p.date- 发布日期,带有data-format用于提供PHP 日期格式字符串的可选属性。
  • article > header > p.comments- 评论数。
  • article > header > ul.tags- 与文章关联的当前标签的列表容器。
  • article > header > ul.tags li[data-template='ArticleTagLink']- 为每个关联标签输出的模板化列表项。li应该至少包含一个元素a,以链接到标签列表。
  • article > div.content- 实际博客内容将输出到的位置。

注释可以放置在不同的元素容器中。在容器内,输出评论的实际列表应该有一个 id 为“commentsList”的元素,其中一个li元素的数据模板属性为“Comment”。

这是一个示例博客 PageView (_Dynamic.html)。

<section id="st_article">
    <article data-template="Article">
        <header>
            <h1>
                <a href="/Articles/{Y}/{M}/{D}/{Id}-{Title}.html">
                    Article header goes here. A bit longer title so it breaks onto 
                    the line below the current one.
                </a>
            </h1>
            <p class="date">
                <time datetime="1970-01-01">1st January 1970</time>
            </p>
            <p class="comments">
                <a href="/Articles/{Y}/{M}/{D}/{ID}-{Title}.html#Comments">
                    <span class="commentCount">0</span> comments
                </a>
            </p>
            <ul class="tags">
                <li data-template="ArticleTagLink">
                    <a href="/Articles/Tagged/{TagName}">Tag1</a>
                </li>
            </ul>
        </header>
        <div class="content">
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </div>
        <footer>
            <p>
                <a href="/Articles/{Y}/{M}/{D}/{Id}-{Title}.html">
                    Continue reading...
                </a>
            </p>
        </footer>
    </article>
</section>

<a name="Comments"></a>

<section id="st_article_comments">
    <h1><span id="commentCount">0</span> comments</h1>
    <form method="post" id="postCommentForm">
        <input name="Name" placeholder="Your name" required>
        <input name="Website"
            placeholder="Your website">
        <input name="Email" class="email"
            placeholder="Your email (not shown, used to receive replies)">
        <textarea name="Comment" placeholder="Your comment" required
        ></textarea>
        <button type="submit" id="btn_submitComment">
            Submit comment
        </button>
    </form>
    <div id="signIn">
        <p>
            Please 
            <a href="/Authenticate.html">sign in</a> 
            to post a comment.
        </p>
    </div>
    <ul id="commentsList">
        <li data-template-no="Comment">
            <p class="name">
                <a name="Comment-" href="#Comment-">
                    John Smith
                </a>
            </p>
            <p class="message">
                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
                tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
            </p>
            <time datetime="1970-01-01 00:00:00">
                January 1st 1970, 0:00am
            </time>
        </li>
    </ul>
</section>

...并自动将 PageView 与博客工具挂钩,您需要调用go()Blog PageTool。这必须在_Common.php文件中完成,因为每个博客的实际请求 URL 会有所不同。

<?php class _Common extends PageCode {

public function go($api, $dom, $template, $tool) {
    $tool->go("Blog");
}

}?>
于 2013-02-23T12:15:03.157 回答