SamsonCMS API 模块

0.0.10 2017-02-13 16:18 UTC

README

#SamsonCMS API 模块

Latest Stable Version Build Status Code Coverage Scrutinizer Code Quality Total Downloads Stories in Ready

SamsonCMS API 用于与材料、字段和结构交互。

##附加字段表 在创建相应的 表结构 并设置其 附加字段 后,您可以获取特定 \samsoncms\api\Material 祖先所需的附加字段表对象(\samsoncms\api\field\Table)。您需要创建一个扩展生成的附加字段表的类

class MyTable extends \samsoncms\api\MyGeneratedTable
{
    protected $indexView = 'specify a path to index view file';
    protected $rowView = 'specify a path to row view file';
}

// Creating an instance, with QueryInterface, ViewInterface and Entity identifier
$table = new MyTable($query, $this, $material->MaterialID)

此类将包含生成的通用方法,用于检索具有相应字段名的表格列值的集合,例如,如果您有一个名为 age 的附加字段,则会生成 age() 方法来获取所有表格行中的 age 值的集合。

###渲染自定义附加字段表 SamsonCMS 将自动生成所有创建的 表结构 以简化您的代码创建,唯一需要做的事情是扩展这些生成的类并创建输出视图。

请记住,\samsoncms\api\field\Table 依赖于 \samsonframework\core\ViewInterface 实例,并使用它来渲染其视图,因此视图的路径和视图本身应位于此实例中。

###默认索引视图文件 默认情况下,索引视图将所有渲染的行渲染到名为 \samsoncms\api\field\Table::ROWS_VIEW_VAR - rows 的视图变量中

<div class='my-table'>
    <h2>Table title<h2>
    <div class="my-table-rows">
        <?php echo $rows ?>
    </div>
</div>

###默认行视图文件 默认情况下,\samsoncms\api\field\Row 祖先视图对象存储在 \samsoncms\api\field\Table::ROW_VIEW_VAR - row

<?php /** @var \myapplication\MyTableRow $row */?>
<div class="my-row">
    <div class="name"><?php echo $row->field1 ?></div>
    <div class="name"><?php echo $row->field2 ?></div>
    <div class="name"><?php echo $row->field3 ?></div>
</div>

为生成的 \samsoncms\api\field\Row 祖先提供类型提示,IDE 将帮助输出所需的行数据。

#导航

#材料

添加了创建/更新材料附加字段的方法 public function setFieldByID($fieldID, $value, $locale = DEFAULT_LOCALE) 通过字段标识符在数据库中查找字段记录,并接收其类型以正确存储附加字段值。

#字段 您可以使用提供的方法之一找到附加字段 samsonframework\orm\RecordInterface 对象

  • 通过其标识符 \samsoncms\api\Field::byID($query, $identifier, &$return = null)
  • 通过其名称 \samsoncms\api\Field::byName($query, $name, &$return = null)
  • 通过其名称或标识符 \samsoncms\api\Field::byNameOrID($query, $identifier, &$return = null)

所有这些方法都需要第一个参数 samsonframework\orm\QueryInterface 实例来执行数据库查询。

常规使用示例

/** @var \samsoncms\api\Field $fieldRecord Try to find additional field record */
$fieldRecord = \samsoncms\api\Field::byNameOrID('image')
if (isset($fieldRecord)) {
    // Additional field has been found
}

最后一个参数是可选的,应用于创建简单而美观的条件

/** @var \samsoncms\api\Field $fieldRecord Try to find additional field record */
if (\samsoncms\api\Field::byNameOrID('image', $fieldRecord)) {
    // Additional field has been found
}

#字段值