[Yii Framework] Membuat Forum Sederhana(1)

Salah satu fitur yang biasa ada di dalam web app adalah forum tanya jawab. Yah, saya akan coba paparkan sedikit step-step membuat forum tanya jawab sederhana dengan menggunakan Yii Framework. Sekali lagi, ini hanya forum sederhana yak, bukan forum canggih sejenis kaskus.us😀 ….

Pertama, buatlah sebuah database yang di dalamnya terdapat 3 buah tabel yaitu:

  • Tabel “User” untuk menyimpan informasi user yang melakukan tanya jawab pada suatu forum
  • Tabel “Pertanyaan” untuk menyimpan seluruh pertanyaan yang di ajukan oleh user
  • Tabel “Jawaban” untuk menyimpan seluruh jawaban yang di buat oleh user.
Sedangkan entitas masing-masing akan saya buat seperti berikut:
  • User : id, username, password, saltPassword
  • Pertanyaan : id, pertanyaan,id_penanya
  • Jawaban : id, jawaban, id_pertanyaan, id_penjawab
Aturan dari tabel tersebut adalah “user” memiliki “pertanyaan” dan “jawaban”. Sedangkan “Pertanyaan” memiliki “Jawaban”.  Anda dapat menambahkan entitas di atas sesuai dengan keinginan dan kebutuhan anda. Tabel dan attribut-attribut di atas adalah persyaratan minimal yang saya penuhi untuk membuat suatu forum. Jika memang harus di kembangkan menjadi lebih besar dan kompleks, kenapa tidak😀 …
Okeh, setelah anda sudah membuat semua hal di atas, silahkan buat project anda. Lalu lakukan generate code CRUD untuk ketiga tabel tersebut. Setelah itu buatlah operasi login, logout, dan register yang sudah terhubung ke database anda(bisa anda lihat disini). Jika sudah selesai, pastikan operasi login, logout, dan register berjalan dengan benar. Lalu pastikan juga operasi CRUD untuk tabel pertanyaan dan jawaban sudah bisa berjalan dengan baik dan benar.
Jika semua hal di atas sudah anda lakukan, sekarang kita akan modifikasi agar ketiga tabel tersebut terhubung dan bisa menjadi sebuah forum. Pertama-tama, mari kita perindah tampilan dan permudah user dalam menginput pertanyaan dan jawaban dengan menggunakan sebuah editor untuk menginput pertanyaan.  Ada banyak editor dalam PHP seperti tinyMCE, CKeditor, dll… Tapi saya sendiri menggunakan cleditor yang bisa anda lihat disini. Cleditor sendiri saya pilih karena ukurannya yang sangat ringan dan  fitur nya sudah cukup memenuhi kebutuhan saya. Berikut step-step mengintegrasikan cleditor pada aplikasi kita:
  • Download cleditor dari link yang saya kasih di atas
  • Ekstrak hasil downloadan anda di folder “projectAnda/protected/extensions”
  • Pada form pertanyaan dan jawaban, masukkan code berikut pada attribut yang ingin sisipi cleditor nya:
               <?php	$this->widget('application.extensions.cleditor.ECLEditor', array(
			'model'=>$model,
			'attribute'=>'jawaban',
			'options'=>array(
				'width'=>'600',
				'height'=>250,
				'useCSS'=>true,
			),
			'value'=>$model->jawaban,));
		?>

Penjelasan: code di atas akan membuat inputan yang sebelumnya textbox/textarea menjadi sebuah editor dimana user dapat dengan mudah melakukan input dan edit suatu text ke dalamnya.

Pada code hasil generate dari Yii Framework, anda akan menemukan pada form entry “pertanyaan” dan “jawaban” ada input nilai “id_penanya” dan “id_penjawab”. Kedua attribute di atas adalah sebuah informasi yang seharusnya bisa kita input secara otomatis tanpa user perlu memasukkan nilainya.  Caranya adalah dengan cara menangkap informasi user yang sedang login pada web aplikasi kita. Silahkan anda buat hal tersebut menjadi otomatis, langkah-langkah nya sendiri sudah saya paparkan disini. Jika sudah selesai, silahkan anda coba dan pastikan berjalan dengan baik dan benar..

Nah, berhubung perut saya sedang lapar.. saya mau makan dlu yak😀 …  nanti akan saya sambung lagi materi ini di bagian kedua..

Silahkan anda coba otak-atik apa yang anda buat tadi dengan kreasi anda sendiri..

Selamat mencoba, semoga membantu…

Semoga bermanfaat😀

11 Responses to [Yii Framework] Membuat Forum Sederhana(1)

  1. ariratic says:

    om Sabit..Saya coba bikin login, logout, register dari ebook om Sabit yg terkenal itu tuuh,,tp saya ada kendala saat untuk ke /user/index , /user/admin, /user/creat dll itu masih kena error seperti ini :

    CWebUser and its behaviors do not have a method or closure named “getLevel”.

    C:\xampp\htdocs\starmix\framework\base\CComponent.php(265)

    253 public function __call($name,$parameters)
    254 {
    255 if($this->_m!==null)
    256 {
    257 foreach($this->_m as $object)
    258 {
    259 if($object->getEnabled() && method_exists($object,$name))
    260 return call_user_func_array(array($object,$name),$parameters);
    261 }
    262 }
    263 if(class_exists(‘Closure’, false) && $this->canGetProperty($name) && $this->$name instanceof Closure)
    264 return call_user_func_array($this->$name, $parameters);
    265 throw new CException(Yii::t(‘yii’,'{class} and its behaviors do not have a method or closure named “{name}”.’,
    266 array(‘{class}’=>get_class($this), ‘{name}’=>$name)));
    267 }
    268
    269 /**
    270 * Returns the named behavior object.
    271 * The name ‘asa’ stands for ‘as a’.
    272 * @param string $behavior the behavior name
    273 * @return IBehavior the behavior object, or null if the behavior does not exist
    274 */
    275 public function asa($behavior)
    276 {
    277 return isset($this->_m[$behavior]) ? $this->_m[$behavior] : null;

  2. ariratic says:

    apa yg saya harus perbuat om Sabit..mohon pencerahannya..please om

  3. ariratic says:

    sudah solved ..makasih om sabit😀

  4. ariratic says:

    kalo gitu ada pertanyaan lagi deh😀..kalo bikin alert bahwa username “sudah ada yg punya” gimana ya soalnya yg saat ini alert dari database server-nya …trus cara jalanin code ini ?: public function status($ii)
    {
    if($ii==0)
    return ‘Belum Aktif / Banned’;
    else
    return ‘Aktif’;
    }

    makasih om Sabit

  5. di validation Yii udah ada validasi untuk ngecek uniq nya suatu field.. pake itu aja langsung di function rules nya gan..

  6. ariratic says:

    om ..maaf ..saya masih nubi..code sample-nya seperti apa ya om

  7. lebih baik liat yang di ebook saya mas.. disana malah lebih lengkap paparannya..

  8. Ridwan Pramanta says:

    men mau nanya ni.
    karna masih newbie jadi masih bingung men.
    buat ngacak2 coding pake yii biasanya editor nya pake apa yaa ?
    pake DW apa netbeans ?
    mohon bantuannya suhu.

  9. saya biasa pake notepad atau sublime text gan..

  10. xy says:

    ada yang tau judul buku yang membahas tentang json gak???

  11. henry says:

    mas klo saya ketemu error “Alias “application.extensions.cleditor.ECLEditor” is invalid” ini mesti gimana yah?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: