Varlıklar - Blog ekranı

Blog eklemek ve düzenlemek için Varlıklar ekranında bulunan Blog kısmı kullanılabilir. Burada hem blogların listelenmesi hem de blogların ekleme ve düzenleme işlemleri CoreDB tarafından sağlanmaktadır.

Öncelikle buradaki formu kullanarak birkaç blog kaydı ekleyelim.

Örnek yazı bulabilmek amacıyla Lorem Ipsum kullanabilirsiniz.

 

Ekte görünebileceği gibi eklenen kayıtlar görüntülenmektedir. Ancak Gövde kısmında bulunan HTML karakterler saflaştırıldığı için güzel görünmemektedir. Ayrıca Gövde kısmı uzun metin olduğu için bu kolon çok çok uzun kayıtlar da barındırabilir. Bu da bu ekranın çok uzun sürelerde yüklenmesine sebep olabilir. Buna engel olmak için bu kolonun görünümünü tabloldan kaldırmalıyız.

Bunun için bu tablodan hem gövde başlığını hem de gövdeyi kayıt sorgusundan kaldırmamız gerekiyor.

Blog varlık sınıfında "body" kolonunu tablo başlığından kaldırmak için getResultHeaders() ve tablo sorgusundan kaldırmak içinde getResultQuery() metodlarını yeniden yazacağız.

Son durumda Blog sınıfı aşağıdaki gibidir.

<?php

namespace App\Entity;

use CoreDB\Kernel\Model;
use CoreDB\Kernel\Database\DataType\ShortText;
use CoreDB\Kernel\Database\DataType\LongText;
use CoreDB\Kernel\Database\DataType\Checkbox;
use CoreDB\Kernel\Database\SelectQueryPreparerAbstract;

/**
 * Object relation with table blog
 * @author mbakiyucel
 */

class Blog extends Model
{
    /**
     * @var ShortText $title
     * Blog başlığı
     */
    public ShortText $title;
    /**
     * @var LongText $body
     * Blog içeriğinin HTML'i
     */
    public LongText $body;
    /**
     * @var Checkbox $published
     * Blog yayında mı?
     */
    public Checkbox $published;

    /**
     * @inheritdoc
     */
    public static function getTableName(): string
    {
        return "blog";
    }

    public function getResultHeaders(bool $translateLabel = true): array
    {
        $headers = parent::getResultHeaders($translateLabel);
        unset($headers["body"]);
        return $headers;
    }

    public function getResultQuery(): SelectQueryPreparerAbstract
    {
        return \CoreDB::database()->select(self::getTableName(), "b")
            ->select("b", [
                "ID as edit_actions", // edit_actions düzenleme ve silme butonları için gereklidir.
                "ID",
                "title",
                "published",
                "created_at",
                "last_updated"
            ]);
    }
}

 

Son durumda tablo aşağıdaki gibidir.

 

Blog table