Yii Framework Forum: Yii Admin Panel - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Yii Admin Panel

#1 User is offline   mrex 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 01-September 12

Posted 01 September 2012 - 08:57 AM

Selamlar,

bende yeni yeni yii ile çalışmaya başladım ancak Admin panel yapımı konusunda pek döküman bulamadım. Bu konu hakkında bilgi verebilecek var mı ?

Teşekkürler,
0

#2 User is offline   Hasan YILDIZ 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 7
  • Joined: 09-February 12

Posted 02 September 2012 - 05:45 PM

Merhaba admin panel ile alakalı yii direk bir çözüm sunmaz fakat. Yii ile beraber gelen gii modülü size crud işlemleri için çok ayrıntılı yardımcı olur. Gii ile ürettiğiniz sayfalardan bir admin panel oluşturabilirsiniz. Gerçi neye yönelik bir admin panel olacağını bilmeden kesin konuşmak zor. Gii modülü ile ilgili ayrıntılı döküman Gii Module. Takıldığınız noktada sorabilirsiniz.
0

#3 User is offline   mrex 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 01-September 12

Posted 03 September 2012 - 02:43 PM

Teşekkürler cevap için,

söylediklerinizden admin paneli yii framework kullanmadan salt php ile geliştirmeliyim anlamını mı çıkarmalıyım.

Benim sözünü ettiğim panel normal bir sitenin paneli olacak, içeriğin duyuruların eklendiği bir panel.

Aslında ben bu konuda çok vakit kaybetmeden hazır yapılmış doküman veya tutorial bulabilir miyim diye buraya yazdım.

tekrar teşekkürler cevap için
0

#4 User is offline   Yahya Sönmez 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 45
  • Joined: 26-October 11
  • Location:Ankara

Posted 04 September 2012 - 02:09 AM

Merhaba @mrex.
"söylediklerinizden admin paneli yii framework kullanmadan salt php ile geliştirmeliyim anlamını mı çıkarmalıyım."
sadece admin paneli için değil projenin hiç bir aşaması için bu şekilde düşünülmemeli.

admin paneli database e erişerek arayüzdeki değişikliklerin kolayca kontrol edilmesini sağlayan bir birim olarak düşünürsek, bu birimin nasıl çalışacağı kodlayanlar tarafından belirlenir.

"... panel normal bir sitenin paneli olacak..."; sizin projenizin normları bana göre farklı olduğu gibi benim projemin normlarıda size göre farklıdır, her projenin kendine özgü bir çalışma yapısı veya işleyiş farkı vardır.
örneğin bana göre kurumsal portal siteleri normal bir site, shopping farklı bir site, reklam amaçlı 8-10 sayfadan oluşan tanıtım sitesi basit bir site iken başkasına göre daha da farklı olabilir.

bu durumda kurumsal portal sitelerinin admin paneli ile, shopping cart admin panelinin aynı olması beklenemez.

Kısacası öncelikle bu birimin nasıl çalışıp ne işler yapması gerektiğini belirleyip ona göre kodlamalısınız.
daha sonra ihtiyaçlar doğrultusunda widget , extension veya module ler ile de geliştirmeye devam edebilirsiniz.

+ @Hasan Yıldız arkadaşımızın söyledikleri de kesinlikle size fayda sağlayacaktır.

iyi çalışmalar.
~ α ѕєηισя ѕoғтwαяє dє√єʟσρєя ~
0

#5 User is offline   mrex 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 01-September 12

Posted 04 September 2012 - 07:49 AM

Cevaplar için teşekkürler,

Güzel anlatmışsınız ancak ben işin daha çok başındayım. o yüzden basic te olsa panel yapımı ile ilgili bir tutorial benim için çok faydalı olurdu. maalesef yii ile ilgili böyle bir doküman bulamadım.

size durumumu şöyle özetlersem hem benim için iyi olur hemde bundan sonra bu konuda bilgi arayan arkadaşlar buraya bakıp istifade edebilirler.

Şöyle ki;

www.siteadi.com/admin şeklinde bir giriş olacak ve burdan girince bir dashboard çıkacak, duyuru ekliycek falan. çok basit birşeyden bahsediyorum. ben sadece mantığı anlamaya çalışıyorum sonrası benim hayal gücüme kalmış.

şimdi bunu nasıl yapmalıyım? bir tane extension buldum buradan o extension protected dizinine /modules diye bir dizin oluşturup içine controller, model, view ne varsa oluşturmuş. main.php içinde de module array olarak tanımlamış. ben bunu kullanabilirim ancak benim amacım hazır kullanmak değil kendim yapmak istiyorum, o yüzden de mantığını öğrenmem lazım.
0

#6 User is offline   Hasan YILDIZ 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 7
  • Joined: 09-February 12

Posted 06 September 2012 - 05:51 AM

Tamam biraz daha temelden anlatmaya çalışalım o zaman. Öncelikli tavsiyem mvc yapısı hakkında türkçe kaynaklar okumanız çünkü yii nin de dahil olduğu birçok framework bu paradigmayı kullanır. Admin paneli olayına gelince. Yii framework size bir altyapı işleyiş biçimi sunuyor. Örneğin kurumsal web sitesini baz alarak anlatmaya devam edeyim. Sayfalarımız şuanlar olsun.

-Anasayfa -Ürünlerimiz -Galeri -İletişim

Şimdi anasayfamızda genel çok değişmeyen bilgiler olacağını varsayarak bu sayfayı view/index.php yi düzenleyerek yapıyoruz. Fakat .net teki masterpage kavramı gibi birde layouts klsörümüzde bir main.php miz var. Örnek olarak main.php yapısını aşağıda gösterdiğim gibi kabul edelim.

main.php
<-her sayfada bulunması gereken css js ve diğer bildirimler ->
<-her sayfada bulunacak sabit sayfa elemanları ->
<-content çağırımı ->
<-sayfanın alt bölgesinde tüm sayfalarda bulunacak genel içerikler(örneğin footer bölümü vs.) ->


bu noktada main.php nin içerisinde ki content in olduğu bölge çağrılacak sayfanın içeriği render edilerek basılacaktır.


Peki ya admin panel. Daha önce Yahya arkadaşımızın ve benim bahsettiğim gibi standart bir admin arayüzü yoktur olamaz fakat sizin direktiflerinizle bir admin sayfası ortaya çıkabilir.

Bunun içinde ürünlerimiz sayfasını ele alalım. Ürünlerimiz bilgilerini mysql de tutacağımızı varsayıyorum.
Mysql için yiinin gelişmiş crud(database e create read update delete işlemlerinin kısa adı) öperatörü vardır.
Peki bu crud generator bize neler sağlar. Biz yiinin kendi yapısını yada salt php kodları ile database den veri okuyup yazabiliriz fakat yii bize bunu hem bir bütün halinde bir çok hatadan arındırılmış hazırlayabilir hemde çok esnek kullanabiliriz.

Yine bir örnek yapı ile devam edelim.Database imizde tbl_urunler adında bir tablo oluşturalım.

bu tabloda da

id, urun_adi, urun_fotosu, urun_aciklamasi

alanları olsun. Şimdi eğer config dosyasından gii yi aktif etmiş isek gii ye giriş yapalım. Giriş yaptıktan sonra sol bölümde model genarator vardır. bu model generator bize database e bağlanıp oradaki tablo yapısına uygun model dosyasını üretecektir. Sonra model oluştu ise crud generator kısmına gelip az önce oluşturduğumuz model ismini vererek crud kodlarının oluşmasını sağlayacağız.

Buraya kadar yaptığımız işlemde yii bizim için
controller/UrunlerController.php
models/Urunler.php
views/admin.php
views/create.php
views/index.php
views/_form.php
views/_search.php
views/update.php
views/view.php
views/_view.php

dosyalarını üretti bu yapıyı bir admin paneli olarak kullanabilirsiniz. Örnek olarak ürünler linkine tıklandığında urunler/index linkine gönderirseniz ürünleriniz sayfası ekrana basılacak. Admin sayfası içinde controller ı içerisinde yetki tanımlamaları var hangi yetki düzeylerinin admin create gibi işlemlere yetkisi olacağını belirlerseniz yetkisiz işlemde yapılamaz. Kullanıcı girişi bölümünden admin olarak giriş yapıp urunler/admin e giderseniz size urunler ile alakalı tüm kayıtları listeler bunlarla ilgili silme düzeltme ve yeni kayıt ekleme kısımlarını gösterir bunları bir bütün halinde bir sayfada toplarsanız bu bir panel olmuş olur.

Çok uzun oldu fakat en temel sanırım böyle anlatılabilirdi. Başka kafanıza takılan kısım varsa yardımcı olalım.
Yii birkez kavradığınızda işlerinizi çok kolaylaştıracak bir framework, bıkmadan sabırla döküman okumanızı ve alıştırma yapmanızı tavsiye ederim. Şuan için türkçe desteği biraz zayıf bir framework tür fakat her geçen gün Türkiye de de kullanıcı kitlesi artmaktadır.
1

#7 User is offline   mrex 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 01-September 12

Posted 07 September 2012 - 03:05 PM

Teşekkürler Hasan, bilgiler için, takıldığım yerlerde tekrar sorarım.

benim amacım birazda burada yazılı materyal oluşsun, diğer ülkelerin forumlarında binlerce kayıt varken bizim ülkenin forumunda bir elin parmakları kadar maalesef.
0

#8 User is offline   delete10 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 30
  • Joined: 09-May 12

Posted 09 September 2012 - 03:47 AM

Yii 'de önce components kısım UserInity dosyası var burası kullanıcılar girişinin kontrol yağıldığı yer. Sen ayrıca AdminInity diye bir yeni dosya olustur. bak benim dosyam su şekilde

<?php


class AdminIdentity extends CUserIdentity
{

	public function authenticate()
	{
		
		$model=Admins::model()->find('KULLANICI=:KUL and PAROLA=:PAR',array(':KUL'=>trim($this->username),':PAR'=>md5(trim($this->password))));
		
		
		
		if(count($model) < 1)
			$this->errorCode=self::ERROR_PASSWORD_INVALID;
		else{
			$this->setState('ADMIN',1);
			$this->setState('KULLANICI',$model->KULLANICI);
			$this->setState('YONETICI',$model->ADMIN);
			$this->errorCode=self::ERROR_NONE;
		}
		return !$this->errorCode;
	}
}



loginform modeli oluşturacaksın adminloginform diyelim bunada. diğer login form modeli gibi bakarak AdminIdentity dosyasını cağırıp username ve passwordu ilştir. AdminIdentity yukarıdaki gibi veritabanına çağır ve girilen değerleri kontrol et girilen değerler doğru ise Sessiona bir paremetre ekle
$this->setState('ADMIN',1);


bunun gibi daha sonra grudda oluşturdugun controller dosyasın gel accessRules() fonksyiona içine sadece admin yetkisi vermek istediğin kısmı sessiona atadığın veriyi çağırarak
'users'=>array('@'),
'expression'=>"$admin==1",

bu şekilde kontrol edebilirsin. * işareti koyarsan tüm kullanıcılar girer. örnek accses rules kontrolüm bu şekilde. Aşağıdaki view kısmını sen giriş izni * olarak ayarlayıp herkesin görmesini sağlıyaiblirsin. dikkat et admin ve delete kısmı yöneticinin kontrol edeceği kısım olabilir. ona göre düzenlemeleri yapabilirsin.

public function accessRules()
	{
		$admin=yii::app()->user->getState('ADMIN');
		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('view','create','update','admin','delete'),
				'users'=>array('@'),
				'expression'=>"$admin==1",
				

			),
			
			array('deny',  // deny all users
				'users'=>array('*'),
			),
			
		);
	}

1

#9 User is offline   mrex 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 01-September 12

Posted 11 September 2012 - 07:48 PM

Teşekkürler, çok faydalı bir yazı olmuş.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users