concrete5のBlockを作成 : concrete5

Pocket

勉強のために1行テキストを保存、編集するBlockを作成したメモ。

» Creating a new block
» 新規ブロックタイプを開発する :: concrete5 Japan 日本語公式サイト

下記は勉強のために作成しています。入力検証など大切な処理は入っていません。

一行入力域の値を表示、編集するブロックです。

application/blocks/my_textフォルダへファイルを作成しました。

|--application
    |
    |-- blocks
        |
        |-- my_text
            |
            |-- add.php
            |-- controller.php
            |-- db.xml
            |-- edit.php
            |-- icon.png
            |-- view.php

controller.php

Blockの設定を行います。既存のBlockを参考に下記のように設定しました。

<?php
namespace Application\Block\MyText;

use Concrete\Core\Block\BlockController;

class Controller extends BlockController 
{
    protected $btTable = 'btMyText';
    protected $btInterfaceWidth = "640";
    protected $btInterfaceHeight = "480";

    public function getBlockTypeDescription() {
        return t( "This block display one line text." );
    }

    public function getBlockTypeName() {
        return t( "My Text" );
    }

}

add.php, edit.php

基本は<input type=”text” name=”content”>でbtMyTextテーブルのcontentフィールドへ値を保存します。

add.php

<?php
defined('C5_EXECUTE') or die("Access Denied.");
print '<input type="text" name="content">';
?>

edit.php

<?php
defined('C5_EXECUTE') or die("Access Denied.");
print '<input type="text" name="content" value="' . $content . '">';
?>

view.php

btMyTextテーブルのcontentフィールドの値を表示します。

<?php defined('C5_EXECUTE') or die("Access Denied.");
echo '<div>' . $content . '</div>';
?>

db.xml

今回作成したブロックはbtMyTextテーブルへ値を保存します。
btMyTextテーブルはBlockインストール時に自動で作成されます。

<?xml version="1.0" encoding="UTF-8"?>
<schema
        xmlns="http://www.concrete5.org/doctrine-xml/0.5"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.concrete5.org/doctrine-xml/0.5 http://concrete5.github.io/doctrine-xml/doctrine-xml-0.5.xsd">

    <table name="btMyText">
        <field name="bID" type="integer">
            <unsigned/>
            <key/>
        </field>
        <field name="content" type="text"/>
    </table>

</schema>

BlockをアンインストールするとbtMyTextのレコードは空になりますが、テーブル自体は削除されませんでした。

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。