Manajemen User Sederhana

Buat agan-agan sesama new comer Yii,

Sekarang saatnya maju dari static-user demo/demo, admin/admin ke dynamic berbasis database (mis MySQL) menggunakan module yii-user (lihat atau lebih baru sih mending ke).

Gak perlu buat tabel mysql, karena sudah disiapkan schema.mysql.sql di file yg akan didownload. Tinggal diimport saja.

Langkah step by step (yang sdh berhasil saya implementasi di web, silahkan dicoba lagsung):

  1. download source di.

  2. ekstrak dan letakkan semua file satu folder /modules ke direktori /protected

  3. edit /protected/config/main.php sbb:




..

        'import'=>array(

		...,

                ....,

                'application.modules.user.models.*',

                'application.modules.user.components.*',

	),

        'modules'=>array(

		'user' => array(

                            'tableUsers' => 'tbl_users',

                            'tableProfiles' => 'tbl_profiles',

                            'tableProfileFields' => 'tbl_profiles_fields',

                            ),

                  // uncomment the following to enable the Gii tool

                   /*

                    'gii'=>array(

                        'generatorPaths' => array('bootstrap.gii'),

			 'class'=>'system.gii.GiiModule',

			 'password'=>$ini_array['system']['Password'],

			// If removed, Gii defaults to localhost only. Edit carefully to taste.

			'ipFilters'=>array('127.0.0.1','::1'),

             		),

                   */

         	),

        // application components

	'components'=>array(

		'user'=>array(

			// enable cookie-based authentication

			'allowAutoLogin'=>true,

                        'loginUrl' => array('/user/login'),

		),

...



  1. buka aplikasi mysql (mis. phpmyadmin), lalu Import utk buat tabel2 yg diperlukan, arahkan ke /protected/modules/user/data dan pilih schema.mysql lalu GO.

  2. Terakhir tambahkan (bisa juga disesuikan dg existing layout Anda) /protected/views/layouts/main.php:




..

array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'visible'=>Yii::app()->user->isGuest),

array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("Register"), 'visible'=>Yii::app()->user->isGuest),

array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'visible'=>!Yii::app()->user->isGuest),

array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest),

...



  1. Kalau mau merubah tampilan view, mis tampilan form Register langsung ke /protected/modules/user/views/user/registration.php. Demikian juga utk controller dan model hrs ke /protected/modules/user/controller dan /protected/modules/user/models, bukan ke protected/controller atau protected/models.

  2. That’s it…semoga berhasil ya…

  3. Testing time…! Klo gak ada error waktu web dpanggil dengan broser, akan muncul link Login. Coba username: demo/demo atau admin/admin. Lalu klik link Profile utk mengubah semua data user.

Catatan: Jika semua sdh jalan, layout yg sdh jalan sebelumnya tidak terganggu. DI web saya menggunakan ekstensi mbmenu dan gak ada pengaruh.

Salam hangat,

mh

–rev.1.10-02

saya barusan nyoba…

tapi ada error seperti ini, knp ya ??

"include(Controller.php): failed to open stream: No such file or directory"

::)

Boleh tahu lebih detail? Error terjadi waktu buka apa?

Salam,

MH

itu buat apaan yah gan, saya masih kurang paham baru belajar bgt yii soal.a heh

Alhamdulillah saya berhasil. Mkasih untuk sharenya.

Selanjutnya, untuk edit VCM usernya saya lom paham, hehee… :D

(Kebetulan saya coba di Yii Heart, tidak ada trouble). Hanya lom bisa tampil form registrasi. Masih login dengan demo/demo; admin/admin.

Sya coba lagi, tengkiu master…

ini utk membuat web kita punya pengelolaan user. user bisa register dan activasi sendiri. kita bisa administrasi user. dst…selamat memulai deh

Klo untuk edit hak user, source code di protected/views/layout/main.php modif jadi gini, sesuaikan dg kebutuhan aja:




<div id="mainMbMenu">


<?php Yii::app()->getModule('user');

if(UserModule::isAdmin()) {

$this->widget('application.extensions.mbmenu.MbMenu',array(

			'items'=>array(

				array('label'=>'Berita', 'url'=>array('/berita/')),

				array('label'=>'Galeri Foto', 'url'=>array('/foto/')),

				array('label'=>'Layar Video', 'url'=>array('/video/')),

				array('label'=>'Aktivitas', 

                                    'items'=>array(

				array('label'=>'Climbing Academy', 'url'=>array('')),

				array('label'=>'Indonesian Climbing Expedition', 'url'=>('https://www.facebook.com/pages/INDONESIA-CLIMBING-EXPEDITION/204331689690387'),'linkOptions'=>array('target'=>'_BLANK')),

				array('label'=>'Pendataan Tebing', 'url'=>('http://katalog.panjattebing.org'),'linkOptions'=>array('target'=>'_BLANK')),

				array('label'=>'Wisata Panjat Tebing', 'url'=>array('')),

				array('label'=>'Konservasi Tebing', 'url'=>array('')),

				array('label'=>'Vertical Rescue Network', 'url'=>array('')),

                                        ),

                                    ),

				array('label'=>'Tentang Kita', 

                                      'items'=>array(

                               // array('label'=>'Organisasi', 'url'=>array('')),

				//array('label'=>'Komisariat', 'url'=>array('')),

                                array('label'=>'Sekretariat', 'url'=>array('/site/page', 'view'=>'address')),

                                array('label'=>'Hubungi Kami', 'url'=>array('/site/contact')),

                                //array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'visible'=>Yii::app()->user->isGuest),

//				array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),

				          ),

                                    ),

                                array('label'=>'mp-S.T.O.R.E', 

                                    'items'=>array(

				array('label'=>'Alat Panjat', 'url'=>array('/store/alatpanjat')),

				array('label'=>'Pakaian Manjat', 'url'=>array('/store/pakaian')),

				array('label'=>'Aksesori Manjat', 'url'=>array('/store/aksesori')),

                                array('label'=>'Pelatihan Panjat Tebing', 'url'=>array('/store/pelatihan')),

                                array('label'=>'Trip Manjat', 'url'=>array('/store/adventure')),

                                        ),

                                    ),

                               // array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("SignUp?"), 'visible'=>Yii::app()->user->isGuest),

                                array('label'=>'Menu '.Yii::app()->user->name.'', 

                                      'items'=>array(

				array('label'=>'Admin News/Foto/Video',

                                            'items'=>array(

                                                array('label'=>'Daftar N/F/V', 'url'=>array('/news/admin'), 'visible'=>!Yii::app()->user->isGuest),

                                                array('label'=>'Moderate Tulisan', 'url'=>array('/publish/admin'), 'visible'=>!Yii::app()->user->isGuest),

                                                array('label'=>'Input N/F/V', 'url'=>array('/news/create'), 'visible'=>!Yii::app()->user->isGuest),

                                             ),

                                            ),

                                array('label'=>'Admin Store',

                                            'items'=>array(

                                                array('label'=>'Daftar Barang', 'url'=>array('/store/admin'), 'visible'=>!Yii::app()->user->isGuest),

                                                array('label'=>'Display Barang', 'url'=>array('/store/create'), 'visible'=>!Yii::app()->user->isGuest),

                                             ),

                                            ),

                                array('label'=>'Admin Surat',

                                            'items'=>array(

                                                array('label'=>'Daftar Surat', 'url'=>array('/surat/admin'), 'visible'=>!Yii::app()->user->isGuest),

                                                array('label'=>'Buat Surat', 'url'=>array('/surat/create'), 'visible'=>!Yii::app()->user->isGuest),

                                             ),

                                            ),

                                array('label'=>'Admin Keuangan',

                                            'items'=>array(

                                                array('label'=>'Daftar Jurnal', 'url'=>array('/jurnal/admin'), 'visible'=>!Yii::app()->user->isGuest),

                                                array('label'=>'Jurnal Keluar', 'url'=>array('/jurnal/create'), 'visible'=>!Yii::app()->user->isGuest),

                                                array('label'=>'Jurnal Masuk', 'url'=>array('/jurnal/masuk'), 'visible'=>!Yii::app()->user->isGuest),

                                             ),

                                            ),

array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'visible'=>!Yii::app()->user->isGuest),

array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest),

//                                array('label'=>'Logout', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest),

                                       ),

                                ),

			),

		));

}

else

{

 ?>


		<?php $this->widget('application.extensions.mbmenu.MbMenu',array(

			'items'=>array(

				array('label'=>'Berita', 'url'=>array('/berita/')),

				array('label'=>'Galeri Foto', 'url'=>array('/foto/')),

				array('label'=>'Layar Video', 'url'=>array('/video/')),

				array('label'=>'Aktivitas', 

                                    'items'=>array(

				array('label'=>'Climbing Academy', 'url'=>array('')),

				array('label'=>'Indonesian Climbing Expedition', 'url'=>('https://www.facebook.com/pages/INDONESIA-CLIMBING-EXPEDITION/204331689690387'),'linkOptions'=>array('target'=>'_BLANK')),

				array('label'=>'Pendataan Tebing', 'url'=>('http://katalog.panjattebing.org'),'linkOptions'=>array('target'=>'_BLANK')),

				array('label'=>'Wisata Panjat Tebing', 'url'=>array('')),

				array('label'=>'Konservasi Tebing', 'url'=>array('')),

				array('label'=>'Vertical Rescue Network', 'url'=>array('')),

                                        ),

                                    ),

				array('label'=>'Tentang Kita', 

                                      'items'=>array(

                               array('label'=>'Sekretariat', 'url'=>array('/site/page', 'view'=>'address')),

                                array('label'=>'Hubungi Kami', 'url'=>array('/site/contact')),

                                //array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'visible'=>Yii::app()->user->isGuest),

//                                array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("Register"), 'visible'=>Yii::app()->user->isGuest),

//				array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),

				          ),

                                    ),

                                array('label'=>'mp-S.T.O.R.E', 

                                    'items'=>array(

				array('label'=>'Alat Panjat', 'url'=>array('/store/alatpanjat')),

				array('label'=>'Pakaian Manjat', 'url'=>array('/store/pakaian')),

				array('label'=>'Aksesori Manjat', 'url'=>array('/store/aksesori')),

                                array('label'=>'Pelatihan Panjat Tebing', 'url'=>array('/store/pelatihan')),

                                array('label'=>'Trip Manjat', 'url'=>array('/store/adventure')),

                                        ),

                                    ),

                                //array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("SignUp?"), 'visible'=>Yii::app()->user->isGuest),

                                array('label'=>'Menu '.Yii::app()->user->name.'', 

                                      'items'=>array(

				array('label'=>'Admin News/Foto/Video',

                                            'items'=>array(

                                                array('label'=>'Daftar N/F/V', 'url'=>array('/news/admin'), 'visible'=>!Yii::app()->user->isGuest),

                                                array('label'=>'Input N/F/V', 'url'=>array('/news/create'), 'visible'=>!Yii::app()->user->isGuest),

                                             ),

                                            ),

array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'visible'=>!Yii::app()->user->isGuest),

array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest),

//                                array('label'=>'Logout', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest),

                                       ),

                                ),

			),

		));

} //end-else

 ?>


	</div><!-- mainMbMenu-->



Siap. Terima kasih master, saya coba-coba dahulu, jika berhasil saya share.

(Mf jika respon saya lama).

waktu akan install melalui url nya, sy dapat warning spt ini "include(Controller.php): failed to open stream: No such file or directory" mohon bantuannya.

master sekalian share database nya biar enak nyoba nya??? plizz

hi agan agan, ane mau nanya nih. Mohon bantuan dan bimbingannya ya. Agak OOT mungkin

ane ngikutin tutorial disini :

http://www.yiiframework.com/wiki/63/organize-directories-for-applications-with-front-end-and-back-end-using-webapplicationend-behavior#add-comment

tapi begitu dijalanin ada error seperti ini :

Fatal error: Uncaught exception ‘CException’ with message ‘Application base path “C:\xampp\htdocs\tes\protected\config\/main.php” is not a valid directory.’ in C:\xampp\htdocs\yii\framework\base\CApplication.php:262 Stack trace: #0 C:\xampp\htdocs\yii\framework\base\CApplication.php(136): CApplication->setBasePath(‘C:\xampp\htdocs…’) #1 C:\xampp\htdocs\yii\framework\YiiBase.php(125): CApplication->__construct(‘C:\xampp\htdocs…’) #2 C:\xampp\htdocs\yii\framework\YiiBase.php(98): YiiBase::createApplication(‘CWebApplication’, ‘C:\xampp\htdocs…’) #3 C:\xampp\htdocs\tes\index.php(13): YiiBase::createWebApplication(‘C:\xampp\htdocs…’) #4 {main} thrown in C:\xampp\htdocs\yii\framework\base\CApplication.php on line 262

Kira kira apa yag salah ya ? makasih mastah mastah :D