Turkish Tutorial of Codeigniter | PHP| Part 11 |Blog Sitesi Yapımı 7|

in #utopian-io7 years ago (edited)

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



ci-logo-big.png
Resim Kaynak



Linklerimiz

Github
Codeigniter Website
Proje Dosyamız


What Will I Learn?Neler Öğreneceğim?
- Yonetimpaneli.php Controller Edit (For add article)- Yonetimpaneli.php Controller Düzenleme (Yazı ekleme için)
- Yazilar.php View Edit (For add article session)- Yazilar.php View Düzenleme (Yazı eklendi session'ı için)
- CKEditor Add our Project (For add article page )- CKEditor Projemize ekleme (Yazı ekleme sayfamız için )
- CodeIgniter Framework New Helper (For add article link)- CodeIgniter Framework Yeni Helper(Yazı ekleme linkimiz için)
-Autoload.php Edit (For our helper)- Autoload.php Düzenleme (Helper'ımız için)
- CodeIgniter Framework New View (For add article)- CodeIgniter Framework Yeni View (Yazı eklemek için )

RequirementsGereksinimler
- Notepad++ (Website)- Notepad++ (Website)
- 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)

DifficultyZorluk
- Intermediate- Orta

Curriculum (Bu konuyla ilgili tüm içeriklerim)

Part 1: Turkish Tutorial of Codeigniter | PHP | Part 1 |
Part 2: Turkish Tutorial of Codeigniter | PHP | Part 2 |
Part 3: Turkish Tutorial of Codeigniter | PHP | Part 3 |

Part 4: Turkish Tutorial of Codeigniter | PHP | Part 4 |

Part 5: Turkish Tutorial of Codeigniter | PHP| Part 5 |Blog Sitesi Yapımı|
Part 6: Turkish Tutorial of Codeigniter | PHP| Part 6 |Blog Sitesi Yapımı 2|
Part 7: Turkish Tutorial of Codeigniter | PHP| Part 7 |Blog Sitesi Yapımı 3|

Part 8: Turkish Tutorial of Codeigniter | PHP| Part 8 |Blog Sitesi Yapımı 4|

Part 9: Turkish Tutorial of Codeigniter | PHP| Part 9 |Blog Sitesi Yapımı 5|
Part 10: Turkish Tutorial of Codeigniter | PHP| Part 10 |Blog Sitesi Yapımı 6|
Part 11: (Şuan buradasınız) Proje Dosyamız


Tutorial Contents (Yazının İçeriği)

Bu eğitimizdede blog projemize devam ediyoruz. Bundan önceki eğitimimizde yönetim panelimizi düzenlemeye devam etmiştik. Öncelikle yazılarımız için veritabanımızda yazilar adlı bir tablo oluşturmuştuk. Sonra modelimizi düzenlemiştik bu tablomuza yazı eklemek ve çekmek için. Sonra yonetimpaneli.php controllerımızı düzenlemiştik yazılarımızı görüntüleme fonksiyonumuz için. Bundan sonra ise yazılarımızı göstermek için yönetim panelimize yeni bir view eklemiştik. Bu dersimizde ise yazı ekleme sayfamız için projemize CKEditor'ü indireceğiz ve entegre edeceğiz. Bu işlemden sonra yine yazı ekleme sayfamızdaki yazılarımızın url'sini almak için yeni bir helper ekleyeceğiz ve bu helperımızı autoload.php üzerinden projemize ekleyeceğiz. Son olarak Yonetim.php controllerımızı düzenledikten sonra yazı ekleme sayfamızıda hazırlayıp bu eğitimimizide bitireceğiz.


Yonetimpaneli.php Controller Düzenleme (application/controllers/yonetimpaneli.php)

Evet öncelikle yazı ekleme sayfamızı görüntülemek ve yazı eklemek için yönetim paneli controllerımızı düzenleyeceğiz. Yazı ekle sayfamızı görüntülemek için basit olarak yazı ekle view'imizi çağıracağız. Yazı eklememiz için ise modelimizde oluşturduğumuz veritabanımıza yazı ekleme fonksiyonumuza gönderebilmek için view'imizden gelen bilgiler ile bir dizi oluşturacağız ve bu diziyi modelimizdeki fonksiyonumuza göndereceğiz. Gönderilme başarılıysa önceki derslerde yaptığımız gibi bir bilgi sessionıyla birlikte kullancııyı yazılar sayfamıza tekrar yönlendireceğiz.

Yazı ekle sayfamızı görüntüleme kodlarımız şu şekilde:


public function yaziekle()
{
$this->load->view('yonetim/yaziekle');
}


Evet bu kodumuz gayet basit hiç bir işlem yapmadan kullanıcımız için yonetimin altındaki yazı ekle view'imizi açıyoruz.

Yazı ekleme kodlarımız şu şekilde:


public function yaziinsert()
{
$baslik=$this->input->post('baslik');
$aciklama=$this->input->post('aciklama');
$tarih=date('d-m-Y');
$data=array('yazibaslik'=>$baslik,
'yaziaciklama'=>$aciklama,
'yazitarih'=>$tarih,
'yazilink'=>sef($baslik),
'yazitiksayisi'=>0);
$this->load->model('vt');
$insert=$this->vt->yaziekle($data);
if($insert)
{
$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>
Tebrikler. Yazınız başarıyla eklendi. </div>');
redirect('yonetimpaneli/yazilar');
}
}


Evet kodlarımızı açıklamam gerekirse öncelikle yazı ekle view'imizden gelen başlık ve açıklama bilgisini değişkenlerimize aldık. Tarih değişkenimizi php'nin tarih fonksiyonuyla gün ay yıl olarak değişkenimize aldık. Yani otomatik olarak eklenme tarihini hostumuz üzerinden alacağız. Sonra data adında bir dizi oluşturduk ve dizimizin içine verilerimizi koymaya başladık. Yazibaslik bölümümüze baslik değişkenimizi, yaziaciklama bölümümüze aciklama değişkenimizi, yazitarih bölümümüze tarih değişkenimizi aldık. Yazilink bölümüze ise gördüğünüz gibi başlığımızı aldık ama sef adlı bir fonksiyonumuzun içinde aldık. Bu bizim yazacağımız helperlardan biri olacak yazı ekleme sayfamızı hazırlarken detaylı olarak anlatacağım. Son olarak yazitiksayisi bölümümüzüde sıfır olarak belirledik.

Sonra modelimizi yükledik ve insert diye bir değişken belirledik. Sonra değişkenimiz = modelimizin içindeki yaziekle fonksiyonumuz için hazırladığımız dizi olan data dedik. Sonra eğer (if) gönderdiğimiz veri veritabanına yazılmışsa dedik. Bilgi adında flashdata olan bir session belirledik ve önceki derslerimizde yaptığımız kodlamayla Tebrikler. Yazınız başarıyla eklendi. mesajı yazdırdık ve tekrar yazılar sayfamıza yönlendirme yaptık. Biraz sonra yazılar sayfamızı bu bilgi mesajımızı yazdırmak için tekrar düzenleyeceğiz.

1.png

Evet yonetimpaneli.php kodlarımızı yazı eklemek için düzenlememizde bu kadardı şimdi yazilar.php'imizi mesajımızı görünlemek için düzenleyebiliriz.

Yazilar.php View Düzenleme (application/views/yonetim/yazilar.php)

Evet yukarıdada bahsettiğim gibi yeni yazı eklediğimizde yaziekle sayfamızdan yapılan yönlendirmede gözüken bilgi mesajımızı görüntülemek için kodumuzu yazilar.php view'imize ekleyeceğiz.

Kodumuz şu şekilde:


<?php echo $this->session->flashdata('bilgi'); ?>


Evet bilgi yonetimpaneli yazı insert fonksiyonumuzda hazırladığımız yazı ekleme sessionumuzu yazdırmak için bu kodumuzu kullanacağız. Ben mesajımızı panelimizin hemen üstünde göstermek için panelimizin hemen üstüne yazdım kodumuzu siz istediğiniz yere koyabilirsiniz tabi.

2.png

Evet yazilar.php düzenlememizde bu kadardı.

CKEditor Projemize ekleme (Yazı ekleme sayfamız için

Evet şimdi CKEditor adlı açık kaynak editörümüzü projemize dahil edeceğiz. Bildiğiniz gibi bizim projemiz bir blog projesi ve yazı ekleme sayfamızın editörü önemli doğrusu çünkü resim paylaşma, link verme vs blogda yapacağımız tüm yazılarımızı burda yazacağız. Bunun içni CKEditör adlı editörümüzü projemize ekleyeceğiz ve yaziekle view'imizde kullanacağız.

Aşağıdan github ve indirme linkine ulaşabilirsiniz.
İndirme
Github

Evet arkadaşlar zaten editörümüz sadece bir js dosyasından oluşuyor bunu sitesinden indirip projenize dahil edebileceğiniz gibi sadece linkini yazarak uzaktanda dahil edebilirsiniz. Ben basit olması için direk linkiyle dahil edeceğim.

Bildiğiniz gibi bu editörümüzü yazı ekle sayfamızda kullanacağız yani yönetim klasörümüzün içinde bu yüzden yonetim klasörümüzün içindeki include klasörümüzün içinde footer.php dosyamıza dahil edeceğiz kodumuzu.

Kodumuz şu şekilde:


<script src="https://cdn.ckeditor.com/ckeditor5/1.0.0-alpha.2/classic/ckeditor.js"></script>


Bunu footer.php dosyamızın sonuna yapıştırmamız yeterli.

3.png

Evet editörümüzü ekleme işlemimizde bu kadardı.


CodeIgniter Framework Yeni Helper(application/helpers/urlconvert_helper.php)

Evet seo açısından yazılarımız için linklerimizi yazı başlıklarından kullanacağımı belirtmiştim. Ama buarada yazı başlıklarımızı hatasız türkçe karakter içermeyen boşluk içermeye linklere dönüştürebilmemiz için bir fonksiyona ihtiyacımız var arkadaşlar. Ben burada Tayfun Erbilen adlı hocamızın Php Sef Link Fonksiyonunu kullanacağım. Projemize bu fonksiyonumuzu helper olarak ekleyip autoload ile projemize entegre edeceğiz helperımızı.

Php Sef Link Fonksiyonu Kaynak

Evet kodlarımız şu şekilde:


<?php
function sef($str, $options = array())
{
$str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());
$defaults = array(
'delimiter' => '-',
'limit' => null,
'lowercase' => true,
'replacements' => array(),
'transliterate' => true
);
$options = array_merge($defaults, $options);
$char_map = array(
// Latin
'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O',
'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
'ß' => 'ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',
'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',
'ÿ' => 'y',
// Latin symbols
'©' => '(c)',
// Greek
'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',
'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P',
'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',
'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I',
'Ϋ' => 'Y',
'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',
'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',
'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',
'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's',
'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i',
// Turkish
'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',
'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',
// Russian
'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh',
'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N', 'О' => 'O',
'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Э' => 'E', 'Ю' => 'Yu',
'Я' => 'Ya',
'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',
'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',
'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c',
'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu',
'я' => 'ya',
// Ukrainian
'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G',
'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g',
// Czech
'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',
'Ž' => 'Z',
'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u',
'ž' => 'z',
// Polish
'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z',
'Ż' => 'Z',
'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',
'ż' => 'z',
// Latvian
'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',
'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',
'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n',
'š' => 's', 'ū' => 'u', 'ž' => 'z'
);
$str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);
if ($options['transliterate']) {
$str = str_replace(array_keys($char_map), $char_map, $str);
}
$str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);
$str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);
$str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');
$str = trim($str, $options['delimiter']);
return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str;
}

?>


Evet şimdi bu kodumuzu urlconvert_helper.php adıyla application klasörümüzün içindeki helpers bölümüne kaydediyoruz.

4.png

Evet bu helperımız sayesinde artık başlıklarımızı seo dostu linklere çevirebileceğiz. Zaten yukarıda yonetimpaneli controllerımızda yazı insert fonksiyonumuzda sef(yazibaslik) şeklinde kullanımınıda gösterdik.

Şimdi autoload.php'miz üzerinden helperımızı projemize ekleyelim.

Autoload.php Düzenleme (application/config/autoload.php)

Evet şimdi application config klasörümüzün altındaki autoload.php'mizi açıyoruz önceki derslerden hatırlayacağınız gibi projemize ekleyeceğimiz kütüphanelerimizi ve helperlarımızı buradan tanımlıyorduk. Şimdi helper bölümümüze yukarıda hazırladığımız helperımızı ekleyeceğiz.

Eski kodumuz:


$autoload['helper'] = array('url','form');


Yeni kodumuz:


$autoload['helper'] = array('url','form','urlconvert_helper');


Evet arkadaşlar helperımızın adını yazmamız yeterli. Artık projemizde helperımızı aktif bir şekilde kullanabiliriz.

5.png

Bu işlemimizde tamamlandığına göre artık blog projemizde yazı eklemek içinde view'imiz hariç herşeyimiz hazır. Şimdi ise yazı eklemek için view'imizi hazırlamaya geçebiliriz.

CodeIgniter Framework Yeni View (application/views/yonetim/yaziekle.php)

Evet şimdi ise son olarak yazı ekleme sayfamızın view'ini hazırlamaya geçeceğiz. Yazı ekleme view'imizi o kadar gelişmiş birşey olarak yapmadım arkadaşlar şimdilik zaten yukardada bahsettiğim gibi yazılarımızın sadece başlık ve içeriğini kullanıcıdan alacağız geri kalan bölümünü kendimiz yazıyoruz veritabanımıza. Bunun için yine yönetim paneli şablonumuzdaki form ve tables sayfalarını kullandım yine inceleyebilirsiniz kendi sayfanızıda yapabilirsiniz. Problem değil kod tasarımına (idler nameler vs ) uydukça tüm model ve controller kodlarımız view için otomatik olarak çalışacaktır.

Kodlarımız şu şekilde:


<?php $this->load->view('yonetim/include/header'); ?>
<?php $this->load->view('yonetim/include/leftmenu'); ?>
<div id="page-wrapper">
<div class="row">
<div class="col-lg-12"><br>
<div class="panel panel-default">
<div class="panel-heading">
Yazı Ekle <a href="<?php echo base_url('yonetimpaneli/yazilar');?>"><button type="button"
class="btn btn-primary btn-xs">Yazıları Görüntüle</button></a>
</div>
<div class="panel-body">
<form role="form" method="post" action="<?php echo base_url('yonetimpaneli/yaziinsert');?>">
<div class="form-group">
<label>Yazı Başlık</label>
<input class="form-control" required name="baslik" placeholder="Başlık">
<p class="help-block">Başlık yazınızın başlığı ve linkinin yazıldığı bölümdür.</p>
</div>
<div class="form-group">
<label>Yazı İçeriği</label>
<textarea name="aciklama" id="aciklama"></textarea>
</div>
<button type="submit" class="btn btn-primary">Yayınla</button>
</form>
</div>
</div>
</div>
</div>
</div>
<?php $this->load->view('yonetim/include/footer'); ?>
<script>
ClassicEditor
.create( document.querySelector( '#aciklama' ) )
.then( editor => {
} )
.catch( err => {
console.error( err.stack );
} );
</script>


Bu view'imizde öncelikle en üstte include klasörümüzün içindeki header ve leftmenu dosyalarımızı çağırdım. Yazıları görüntüle adlı bir buton ekledim ve yazılar sayfasına yönlendirme yaptım. Bir form oluşturdum ve bu formu yönetimpaneli controllerımızdaki yaziinsert fonksiyonumuza gönderdim. Sonra formumuza bir başlık input'u yerleştirdim başlık verimiz için. Yine yazı içeriği verimiz için bir textarea yerleştirdim. Ve son olarak formumuza yayınla adlı bir buton yerleştirerek formumuzuda bitirdim.

Yine include klasörümüzün içindeki footer dosyamızı çağırdım.

En aşağıya ise CKEditorümüzü aciklama adlı textarea'ımıza entegre etmek için js kodumuzu yazdım.

6.png

Evet yaziekle view'imizde tamamlandı bu view'imizide application/views/yonetim/ klasörümüzün altına yaziekle.php adıyla kaydedebiliriz.

Bununla beraber projemize yazı ekleme özelliğimizde tamamen eklenmiş oldu artık veritabanımıza kolayca yazı ekleyebiliyoruz ve yazılar bölümünde eklediğimiz yazılarımızı görebiliyoruz.


Ekran Görüntüleri:

7.png


8.png


9.png


10.png


11.png


12.png


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



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Thank you very much :)

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by pars11 from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Hey @pars11 I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63608.16
ETH 2621.61
USDT 1.00
SBD 2.77