Turkish Tutorial of Codeigniter | PHP| Part 19 |Blog Sitesi Yapımı 15

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@pars11·
0.000 HBD
Turkish Tutorial of Codeigniter | PHP| Part 19 |Blog Sitesi Yapımı 15
<hr>

> **Codeigniter**
CodeIgniter is an Application Development Framework - a toolkit - for people who build web sites using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.
[Source](https://github.com/bcit-ci/CodeIgniter)

<hr>

<center>
 ![ci-logo-big.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1515627089/xxgyoygth4i4gyucvmrw.png)
[Resim Kaynak](https://codeigniter.com)
 </center>

<hr>

 <br>

### Linklerimiz
[Github](https://github.com/bcit-ci/CodeIgniter)
[Codeigniter Website](https://codeigniter.com)
[Proje Dosyamız](https://drive.google.com/file/d/1tABYH573Vuc7sab1pvXA2Fj_u1e02Wvj/view?usp=sharing)

<hr>

What Will I Learn? | Neler Öğreneceğim?
------------ | -------------
- Leftmenu.php View Edit (For incoming messages)| - Leftmenu.php View Düzenleme (Gelen mesajlar için)
- Vt.php Model Edit (For incoming messages)| - Vt.php Model Düzenleme (Gelen mesajlar için)
- Yonetimpaneli.php Controller Edit (For incoming messages)| - Yonetimpaneli.php Controller Düzenleme (Gelen mesajlar için)
- CodeIgniter Framework New View (For incoming messages)| - CodeIgniter Framework Yeni View (Gelen mesajlar için)

<hr>

Requirements | Gereksinimler
------------ | -------------
- Notepad++ ([Website](https://notepad-plus-plus.org/download/v7.5.4.html))| - Notepad++ ([Website](https://notepad-plus-plus.org/download/v7.5.4.html))
- Intermediate code and algorithm knowledge| - Orta derece kod ve algoritma bilgisi
- Basic HTML and CSS knowledge | - Basit HTML and CSS bilgisi
- Basic PHP knowledge | - Basit PHP bilgisi
- Basic Database knowledge | - Basit Veritabanı bilgisi
- Localhost or Server (For run the project) | - Localhost veya sunucu (Projeyi çalıştırmak için)

<hr>

Difficulty | Zorluk
------------ | -------------
- Intermediate| - Orta

<hr>

#### Curriculum (Bu konuyla ilgili içeriklerim)
Part 17: [Turkish Tutorial of Codeigniter | PHP| Part 17 |Blog Sitesi Yapımı 13|
](https://utopian.io/utopian-io/@pars11/turkish-tutorial-of-codeigniter-or-php-or-part-17-or-blog-sitesi-yapimi-13-or)
Part 18: [Turkish Tutorial of Codeigniter | PHP| Part 18 |Blog Sitesi Yapımı 14|
](https://utopian.io/utopian-io/@pars11/turkish-tutorial-of-codeigniter-or-php-or-part-18-or-blog-sitesi-yapimi-14)
Part 19: (Şuan buradasınız) [Proje Dosyamız](https://drive.google.com/file/d/1tABYH573Vuc7sab1pvXA2Fj_u1e02Wvj/view?usp=sharing)

For other tutorials you can visit [my profile.](https://utopian.io/@pars11)
Diğer eğitimler için [profilimi](https://utopian.io/@pars11) ziyaret edebilirsiniz.
<hr>

#### Tutorial Contents (Yazının İçeriği)
Bu eğitimizdede blog projemize devam ediyoruz. Önceki eğitimimizde projemize bir iletişim sayfası hazırlamıştık. Bu iletişim sayfasından gönderilen mesajlarımızı almak için bir veritabanı hazırlamış ve bu veritabanın veri girme fonksiyonunu modelimiz için yazmıştık. Controllerımızdan ise mesajımızın gönderilmesini ve iletişim sayfamızın view'ini getiren fonksiyonlarımızı yazıp mesajlarımızın iletişim sayfasından gönderilemesiyle alakalı entegrelerimizi bitirmiştik. Bu eğitimimizde ise projemize yönetim panelimiz üzerinden gelen mesajlarımızı kontrol edebilmek için enteglerimizi yapacağız.

<hr>

# Leftmenu.php View Edit (application/views/yonetim/include/leftmenu.php)
Gelen mesajlarımızın kontrolü için artık yönetim panelimize geçiyoruz. Hatırlayacağınız gibi yönetim panelimizin include klasöründe soldaki yönetim panelimizdeki sol menümüz bulunuyordu Leftmenu.php adıyla şimdi bu dosyamıza gireceğiz. Mesajlar bölümümüz için menümüze ekleme yapacağız.

Kodumuz şu şekilde:

<hr>

```<li>```
```<a href="<?php echo base_url('yonetimpaneli/mesajlar');?>"><i class="fa fa-envelope fa-fw"></i> Mesajlar</a>```
```</li>```

<hr>

Evet bu kodumuzu "ul" taglarımızın arasına yazacağız. Ve menümüze mesajlar bölümünüde eklemiş olacağız. Yönlendirmesini mesajlar controllerımıza yaptık buradan yeni mesajlar view'imizi açacağız.

 ![1.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1517162789/o7uaproyv1tsrncytjwa.png)

Evet leftmenu düzenlememizde bu kadardı. Artık modelimizin düzenlemesine geçebiliriz.

<hr>

# Vt.php Model Düzenleme (application/models/Vt.php)
Evet modelimizde mesaj görüntüleme için ve gelen mesajlarımızı silmek için iki fonksiyon yazacağız.
Aslında yazılar sayfamızda yaptığımız işlemlerle benzer işlemler olacak mesajlar işlemlerimiz bunun için orada yaptığımız işlemleride eski eğitimlerimizden inceleyebilirsiniz. 

İlk fonksiyonumuzun kodları şu şekilde:

<hr>

```function mesajlar()```
```{```
```$result=$this->db->select('*')```
```->from('mesajlar')```
```->get()```
```->result();```
```return $result;```
```}```

<hr>

Evet bu mesajlarımızı görüntüleme fonksiyonumuz kodlarımızı açıklamam gerekirse öncelikle mesajlar adında bir fonksiyon oluşturduk. Fonksiyonumuzun içnide ise "result" adlı bir değişken tanımladık eşittir dedik veritabanımızın mesajlar tablosunu seçtik ve içindeki tüm veriyi getirdik.
Sonrada result değişkenimizi geri döndürerek mesajlar tablomuzdaki içerikleri elde etmiş olduk.

İkinci fonksiyonumuzun kodları ise şu şekilde:

<hr>

```function mesajsil($id)```
```{```
```$result=$this->db->delete('mesajlar',array('mesajid'=>$id));```
```return $result;```
```}```

<hr>

Adında anlaşalıcağı üzere bu fonksiyonumuzda mesaj silmek için. Mesajlarımızı veritabanımızdan silmemizi sağlayacak. Kodlarımızı açıklamam gerekirse "mesajsil" adında bir fonksiyon oluşturduk bu fonksiyonumuz dışarıdan id değişkenini alacak yani postumuzun id'sini. Fonksiyonumuzun içinde ise "result" değişkenimizi tanımladık eşittir dedik. Veritabanımızı seçip delete (sil) fonksiyonumuzu çalıştırdık. Mesajlar tablomuzu seçtik silinecek veriyi ise mesajid'si eşittir dışarıdan gelen post id'imiz şeklinde belirttik. Son olarak "result" değişkenimizi geri döndürdük.

![2.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1517163978/prfjlk8du3jel0ziywzf.png)

Evet mesaj alma ve silme işlemimizin model düzenlemeleri bu kadardı. Şimdi yönetim panelimizin controllerına geçebiliriz.

# Yonetimpaneli.php Controller Düzenleme (application/controllers/yonetimpaneli.php)
Evet yonetimpaneli controllerımızda da mesaj görüntüleme işlemimiz ve silme işlemimiz için toplam iki fonksiyon yazacağız. Modelimizdeki fonksiyonlarımızı kullanacağız ve view'imize yönlendirme yapacağız. 

İlk fonksiyonumuzun kodları şu şekilde:

<hr>

```public function mesajlar()```
```{```
```$this->load->model('vt');```
```$sonuc=$this->vt->mesajlar();```
```$data=new stdClass;```
```$data->bilgi=$sonuc;```
```$this->load->view('yonetim/mesajlar',$data);```
```}```

<hr>

İlk fonksiyonumuz mesajlar modelimizdeki mesajlar fonksiyonumuza gidecek mesajlarımızı "mesajlar" tablomuzdan getirecek ve mesajlar view'imizde gösterecek. Kodlarımızı açıklamam gerekirse "mesajlar" adıyla fonksiyonumuzu oluşturuyoruz. Fonksiyonumuzun içinde ise öncelikle modelimizi yüklüyoruz. "sonuc" adında bir değişken oluşturuyoruz modelimizin mesajlar fonksiyonuna eşitliyoruz yani modelimizde fonksiyonumuz sayesinde değişkenimize veritabanımızdaki tüm mesajları eşitliyoruz. Sonra data adında yeni bir class oluşturuyoruz. "Data"' mızın bilgi alanına "sonuc" değişkenimizi eşitliyoruz. Son olarak yonetim klasörümüzün içindeki "mesajlar" view'imizi data verimizle beraber açıyoruz.

İkinci fonksiyonumuzun kodları şu şekilde:

<hr>

```public function mesajsil($id)```
```{```
```$this->load->model('vt');```
```$delete=$this->vt->mesajsil($id);```
```if($delete)```
```{```
```$this->session->set_flashdata('bilgi','<div class="alert alert-success alert-dismissable">```
```<button type="button" class="close" data-dismiss="alert" aria-hidden="true">x</button>```
```Mesaj başarıyla silindi. </div>');```
```redirect('yonetimpaneli/mesajlar');```
```}```
```}```

<hr>

Evet bu fonksiyonumuzu ise mesajlarımızı silmek için kullanacağız. Kodlarımızı açıklamam gerekirse "mesajsil" adında fonksiyonumuzu oluşturuyoruz fonksiyonumuz dışarıdan "id"  değişkenimizi alıyor (seçtiğimiz mesajın id'si). Fonksiyonumuz içinde ise yine öncelikle modelimizi yüklüyoruz. "Delete" adında bir değişken oluşturuyoruz. Eşittir deyip modelimizdeki "mesajsil" fonksiyonumuza dışarıdan aldığımız "id" değişkenimizi gönderiyoruz. Sonra eğer (if) delete yani silme işlemimiz başarılıysa diyoruz bilgi adında bir session oluşturup, "Mesaj başarıyla silindi." mesajımızı yazdırıyoruz. Son olarak mesajlar sayfamıza tekrar yönlendirme yapıyoruz.

![1.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1517166768/qr3n03wzwna4xwl0q0il.png)

Evet controllerımızın düzenlemeleride bu kadardı artık mesajlar view'imizi oluşturmaya geçebiliriz.

<hr>

# CodeIgniter Framework Yeni View (application/views/yonetim/mesajlar.php)
Evet mesajlarımız için yeni bir view hazırlayacağız. Ben yazılarımız için hazırladığımız view'in aynısını kullandım nerdeyse sadece mesajlarımızın kodlarına entegre ettim. Siz tabi daha güzel bir html kodu bulup CodeIgniter kodlarımızı o view'e entegre edebilirsiniz. Her yerde çalışacaklardır.

Kodlarımız şu şekilde:

<hr>

```<?php $this->load->view('yonetim/include/header.php');?>```
```<?php $this->load->view('yonetim/include/leftmenu.php');?>```
```<div id="page-wrapper">```
```<!-- /.row -->```
```<div class="row">```
```<div class="col-lg-12"><br>```
```<?php echo $this->session->flashdata('bilgi'); ?>```
```<div class="panel panel-default">```
```<div class="panel-heading">```
```Mesajlar```
```</div>```
```<!-- /.panel-heading -->```
```<div class="panel-body">```
```<table width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example">```
```<thead>```
```<tr>```
```<th>Sıra</th>```
```<th>Gönderen Adı</th>```
```<th>Gönderen Mail</th>```
```<th>Mesaj</th>```
```<th>Mesajı Sil</th>```
```</tr>```
```</thead>```
```<tbody>```
```<?php $sayac=1; foreach($bilgi as $bilgi) { ?>```
```<tr>```
```<td><?php echo $sayac++?></td>```
```<td><?php echo $bilgi->mesajgonderen;?></td>```
```<td><?php echo $bilgi->mesajmail;?></td>```
```<td><?php echo $bilgi->mesajaciklama;?></td>```
```<td class="center">```
```<a href="<?php echo base_url('yonetimpaneli/mesajsil/'); echo ''.$bilgi->mesajid.''?>">```
```<button type="button" class="btn btn-danger"><i class="fa fa-remove"></i></button></a>```
```</td>```
```</tr>```
```<?php } ?>```
```</tbody>```
```</table>```
```<!-- /.table-responsive -->```
```</div>```
```<!-- /.panel-body -->```
```</div>```
```<!-- /.panel -->```
```</div>```
```<!-- /.col-lg-12 -->```
```</div>```
```</div>```
```<?php $this->load->view('yonetim/include/footer.php');?>```

<hr>

Evet mesajlar sayfamız için view kodlarımızda bu kadardı. Kodlarımızı açıklamam gerekirse öncelikle  include klasörümüzdeki header ve leftmenu dosyalarımızı sayfamıza ekliyoruz. Sonra yazılarımız sayfamızdaki aynı tablo içeriğini oluşturuyoruz.Sonra php echo ile silme işlemimiz için hazırladığımız bilgi sessionımızı varsa yazdırıyoruz. Sonra tablomuzun sütunlarını oluşturuyoruz ve tablomuzun içini foreach döngümüzle bilgi dizimizi kullanarak doldurmaya başlıyoruz. Bilgi dizimize controllerımızda çektiğimiz tüm mesajlarımızı yazdırıyoruz tablomuza. İşlemimiz için mesaj sil fonksiyonumuza yönlendirme yapıyoruz yönlendirmemizle beraber mesajımızın id'sinide gönderiyoruz. Foreach döngümüzü kapatıyoruz. Tablomuzun taglarını kapatıp son olarak include klasörümüzdeki footer dosyamızıda sayfamıza ekliyoruz. 

![2.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1517171215/sxultghjpr0kveo7aazj.png)

Evet view kodlarımızda bu kadardı. Bununla beraber mesajlarımızı yönetim panelimizden kontrol etme ve silme işlemimizide projemize entegre etmiş olduk.

<hr>

Ekran görüntüleri:

![3.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1517171746/wsd291gofmrilfflq6le.png)

<hr>

![4.png](https://res.cloudinary.com/hpiynhbhq/image/upload/v1517171762/znjkqwqlot9ncyda1rtj.png)

<hr>

**Turkish Tutorial of Codeigniter | PHP| Part 19 |Blog Sitesi Yapımı 15 eğitimimizde bu kadardı okuduğunuz için teşekkürler.**

<br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@pars11/turkish-tutorial-of-codeigniter-or-php-or-part-19-or-blog-sitesi-yapimi-15">Utopian.io -  Rewarding Open Source Contributors</a></em><hr/>
👍 , , , , , ,