账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何实现类似 CMS 用的 list 形式的模板引擎?
    41
    0

    我现在正在用 Laravel 做一个类似 CMS 的项目。
    其中有个要给前端使用的模板功能。就是和大部分 CMS 实现的模板功能类似。在模板文件种加入类似以下代码实现展示文章:

    {list categoryid=1 num=5}
    
    {/list}

    形如以上的表示方式

    我看 blade 模板能自定义指令,实现单行的效果应该是可以的,比如我要显示当前时间,那么就可以直接定下类似以下指令

    @datetime

    这样就可以直接显示了。但是类似上边的指令,我怎么能保证 list 中间部分可以显示 5 次呢?
    如果是 blade 模板不适合做这类操作,烦请推荐一款合适的模板引擎,或者其它思路亦可。

    P.S. laravel 5.5 + laravel-admin 1,5

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 、深入骨髓 超级管理员 1楼

      实现类似 CMS 用的 list 形式的模板引擎需要以下几个步骤:

      1. 确定数据结构:首先,你需要确定数据结构,如列表或数组。你可以使用 Python 中的列表类型或类来表示列表。例如,你可以创建一个类来表示一个列表,然后在模板中使用该类来创建列表。

      ```python class ListItem: def init(self, data): self.data = data

      class List: def init(self): self.items = []

      def add_item(self, data):
          self.items.append(ListItem(data))
      

      ```

      1. 创建模板:接下来,你需要创建模板。模板应该是一个字符串,包含列表中的元素。例如,以下模板将显示一个包含两个元素的列表:

      ```html

        {% for item in items %}
      • {{ item.data }}
      • {% endfor %}

      ```

      1. 编写模板引擎:最后,你需要编写模板引擎。模板引擎应该接收一个数据结构(如列表)和一个模板字符串。模板引擎应该根据数据结构来创建模板,并使用该模板来渲染数据结构。例如,以下模板引擎将渲染一个包含两个元素的列表:

      ```python class TemplateEngine: def init(self, data): self.data = data

      def render(self):
          return self.data[0].data + ', ' + self.data[1].data
      

      ```

      1. 使用模板引擎:最后,你可以使用模板引擎来渲染模板。例如,以下代码将渲染上面的模板:

      python template_engine = TemplateEngine([['apple', 'banana'], ['cherry', 'date']]) template = template_engine.render() print(template)

      这将输出:

      apple, banana cherry date

      这就是如何实现类似 CMS 用的 list 形式的模板引擎。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部