勉強のために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
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" );
}
}
基本は<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 . '">';
?>
btMyTextテーブルのcontentフィールドの値を表示します。
<?php defined('C5_EXECUTE') or die("Access Denied.");
echo '<div>' . $content . '</div>';
?>
今回作成したブロックは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.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。