在主题文件中写入查询

Write query in theme file

我是 concrete5 的新手。我想在主题文件中添加一个条件,即如果状态为真,那么我的代码将 运行。但是问题。我无法在主题 header.php 文件上创建数据库实例。 在我的主题路径下方,这里我想创建数据库实例并编写查询。

/public_html/packages/theme_stucco/themes/stucco/inc

根据您想要实现的目标,Concrete5 中有不同的解决方案。

页面属性
有页面属性。
https://documentation.concrete5.org/editors/dashboard/pages-and-themes/attributes
页面属性允许管理员或编辑者在页面上设置参数。
您可以通过调用从模板中轻松获取页面属性:

$response = $c->getAttribute('attribute_handle');

https://documentation.concrete5.org/developers/working-with-pages/getting-data-about-a-page

页面属性的一大好处是,编辑者可以更改页面设置中的值,也可以在创建页面时设置该值(请参阅页面模板和默认值)。

defaults(页面模板级别的属性)
如果您有一组要将参数设置为 true 的页面,您可以创建一个页面模板并将页面属性默认设置为 true。

查看仪表板 -> 页面和主题 -> 页面模板 -> 默认值
https://documentation.concrete5.org/editors/dashboard/pages-and-themes/page-templates/defaults

获取主题中的属性值是通过调用与上面相同的代码完成的。

自定义查询
如果您真的除了执行自定义查询别无选择,并且您真的想 运行 在您的主题中进行查询...请使用此代码:

<?php
  $db = \Database::connection();
  //get a single row
  $foo = $db->fetchAssoc('SELECT * FROM Pages WHERE cID = ?', array(184));

  //get a multiple rows
  $foo = $db->fetchAll('SELECT * FROM Pages');
  ?>

(此代码在最新的 concrete5 版本上测试8.x.x)