jQuery İle Scroll İndikçe İlerleme Çubuğu Hazırlama

ibrahim Çevrük

Bu makalede jQuery ile scroll’u indirdikçe sayfanın en üstünde ilerleyen bir çubuk yapacağız. Bu uygulama sayfada yer alan makalenin bitimine ne kadar kaldığını gösterecektir. Bu örneği sadece ilerleme çubuğu olarak bırakmayıp daha da geliştirebilirsiniz. Örneğin, scroll ilerledikçe belirli bir yerde (%50 gibi) sağ altta bir kutucuk gösterebilirsiniz. Yada %100 tamamlandıktan sonra bir sonraki gönderiyi direkt sayfanın altına yazdırabilirsiniz.

Geliştirme aşamasına geçmeden önce jQuery ile scroll’u indirdikçe gerçekleşen progress bar’ın nasıl yapıldığına deyinelim.

Sayfa İskeletini Oluşturma

Öncelikle bir HTML yapısı oluşturuyoruz. Script alanına jQuery kütüphanesini ekliyoruz. Ayrıca CSS alanını ve yazacağımız jQuery kodlarının bölümünü yine iskelette oluşturuyoruz.

Css Kodlarını Hazırlama

Gerekli iskeleti oluşturduktan sonra aşağıda yer alan kodları CSS bölümüne yazınız. Burada hazırlayacağımız kodda bir takım görsellikler veriyoruz.

Yukarıdaki kodları iskelette yer alan script alanına yazmanız yeterli olacaktır.

jQuery Kodlarını Hazırlama

Son olarak jQuey ile ilerleme çubuğunun ayarlanmasına. Buradaki mantık şudur; içeriğin yükseklik değerinden, pencerenin yükseklik değeri çıkartılır. Sonrasında elde edilen değer 100 ile çarpılarak scroll’un şuandaki durumuna bölünür. Böylelikle sayfa içinde ne kadar aşağıya inildiği yüzde olarak bulunur.

Yukarıda yer alan CSS ve JQUERY kodlarını iskelette birleştirdiğinizde, sayfayı aşağıya indirdikçe tepede ilerledikçe dolan bir bar göreceksiniz. Bu bar, sayfanın yükseklik ve scroll değeri hesaplanarak bulunmaktadır.

DOSYALARI İNDİR - YANDEX

Kod Bloklarını Kolaylıkla Kopyalayın : CodeCopy Eklentisi

ibrahim Çevrük

Kodlamalarla uğraştığınız da bir çok siteden yardım almanız gerekebilir. Kimi zaman bir fonksiyonun kullanımı olur, kimi zamanda veritabanı işlemlerinizi kolaylaştıracak işlemler. İhtiyaçlar yada yardımlar hiçbir zaman bitmeyecektir. Bir çok site, programlama dillerine ait kaynak kodlar ücretsiz olarak paylaşılmaktadır. Fakat kimi zaman yardım aldığınız sitede kullanılan kod bloklarını şekillendiren eklenti yüzünden, elde etmek istediğiniz kodlarda kopyalama işlemini gerçekleştirmek zor olabilir. Eklentiler yüzünden zaman kaybetmeniz, anlık hızınızı düşüreceğinden bu duruma bir çözüm bulunması gerekiyordu. Ki çözümde bulunmuş. Bu makalede kaynak kodların zahmetsizce kopyalanmasından bahsedeceğim.

Kod Kopyalama

Öncelikle bir birimizi hiç kandırmayalım. Herkes, her şeyi bilecek değildir. Bu yüzden aradığınız durumsal işlemleri kimi zaman bir yerlerden kopyalama ihtiyacında bulunabilirsiniz. Kopyalama yaparak kodlama yapmak ne utanılacak bir şeydir, nede bir eksik! İhtiyacınız olan şeyi arayıp bulmak, o programlama diline ne kadar hakim olduğunuzun da bir göstergesidir aslında.

Bir çok sitede kaynak kodların paylaşıldığını görmüşsünüzdür. Özellikle her programlama diliyle uğraşan kişilerin hayatında en az bir kere Stack Overflow sitesini ziyaret etmiştir. Bu tarz sitelerde yer alan kodların kopyalanması, kullanılan editörden yada elde edilecek kaynak kodun uzun olmasından dolayı kimi zaman zorluklar yaşatabilir. Yaşanacak bu zorlukları üstesinden CodeCopy eklentisini kullanarak üstesinden geleceğiz.

CodeCopy Eklentisi

CodeCopy eklentisi, İnternet sitelerinde yer alan kod bloklarının tek tıkla kopyalanmasını sağlamaktadır. Bir kod bloğunu kopyalamak için kodları seçmek yerine, kodların bulunduğu yerde eklenti sayesinde ortaya çıkacak olan butona basmak yeterli olacaktır.

Eklentinin kurulumuyla birlikte, kullanmış olduğunuz tarayıcınızda ziyaret etmiş olduğunuz sayfadaki tüm kodların yanında “Copy to Clipboard” butonu gelecektir. Bu butona basarak, butonun çıkmış olduğu bölümdeki kodları kolaylıkla kopyalayabilirsiniz.

Web sitelerinde kullanılan kod eklentilerinden bazıları bu uygulamayı engelleyebilir. Yada eklenti içinde yer alan kopyalama özelliği bu eklentinin çalışmasını kısıtlayabilir. Bu durumlar haricinde oldukça sağlıklı bir şekilde çalıştığını söyleyebilirim.

CodeCopy Eklentisi Kurulumu

CodeCopy eklentisine GitHub sayfasından ulaşabilirsiniz. GitHub sayfasında detaylı bilgi ve kurulum yapılacak tarayıcılar konusunda bilgilendirmeler verilmiştir. Aynı zamanda kullanmış olduğunuz tarayıcıyı seçerek kurulum işlemlerini kolaylıkla başlayabilirsiniz. Eklentinin sorunsuzca desteklemiş olduğu web siteleri aşağıdaki gibidir.

  • GitHub
  • MDN
  • Gist
  • StackOverflow
  • StackExchange
  • npm
  • Medium
  • ve daha fazlası..

Umarım tüm platformlarda sorunsuzca çalışacak duruma gelir de kopyalama işlemleri oldukça kolaylaştırılmış olur.

PHP ile ZİP Dosyası Oluşturma

ibrahim Çevrük

PHP ile ZİP işlemlerini gerçekleştirmek için PHP 5.2.0 ve üzeri sürüme sahip olmak gerekmektedir. Bu sürümün içerisinde yer alan ZipArchive kütüphanesi ile .zip dosyası kolaylıkla oluşturulmaktadır. ZİP dosyası oluşturulurken hedef olarak belirtilen dosya yada dosyalar ZİP arşivine dahil edilerek saklanmaktadır.

ZipArchive metodları

Arşivleme işleminde kullanılacak olan metodlar, aşağıda yer alan tablodaki gibidir. Tabloda yer alan metodların karşılıklarına göz atarak üstlendiği görevin ne olduğunu anlayabilirsiniz.

ParametrelerAçıklama
ZipArchive::CREATEYeni bir zip dosyası oluşturur.
ZipArchive::openZip arşivini açar.
ZipArchive::addFileBelirtilen dosyayı zip arşivine ekler.
ZipArchive::closeArşivi kapatır.

Yukarıda yer alan metodları kullanarak PHP ile ZİP işlemini gerçekleştirelim.

PHP ile Zip İşlemi

PHP ile ZİP işlemini gerçekleştirmek için öncelikle kütüphaneyi çağırmalıyız. Sonrasında ZİP dosyasının adını belirleyip içerisine eklenecek olan dosyaları belirliyoruz.

// Kütüphaneyi çağırıyoruz
$zip        = new ZipArchive();
// Zip adını belirliyoruz
$zipAdi     = getcwd()."/zipAdi.zip";
// Zip oluşturuyoruz.
$zipOlustur = $zip->open($zipAdi, ZIPARCHIVE::CREATE);
// Zip oluşturma işlemi gerçekleşmişse
if( $zipOlustur === TRUE ){
    // Anadizinde yer alan test.txt dosyası eklenecek
    $zip->addFile("test.txt");
    echo "zipAdi.zip dosyası oluşturuldu 
 test.txt dosyası eklendi.";
    $zip->close();
}else{
    $zip->close();
    echo "dosya oluşturulamadı!";
}

Zip oluşturma işleminin gerçekleştirildiği değişkenden gelen değer TRUE olduğunda içerisine belirlenen dosyaların eklenmesini sağlıyoruz. Dosyaları arşive eklemek için ZipArchive::addFile işlevini kullanıyoruz. Eklenecek dosyayı parametre olarak addFile() içerisinde bildiriyoruz. Zip işlemleri burada son bulduğu için ZipArchive::close ile çalışmayı sonlandırıyoruz.

Veritabanı Temel Kavramları

ibrahim Çevrük

Bu makalede; verinin nedir, veritabanı nedir, veritabanında olması gereken özellikler nelerdir gibi konulara değinmiş olacağım. Önemli gördüğüm konuları ayrı başlıklar altında inceleyerek, alt başlıkarda kaybolmadan bilgilendirilmenizi sağlayacağım. Yavaştan başlıklara geçelim.

Veri Nedir?

Henüz işlenmemiş olan kayıtlara veri denilmektedir. Bu terime veritabanı açısından bakacak olursak; veritabanı yapısı içerisinde tutulan bilgilere veri denilmektedir. Yani veri kelimesi değerlendirilirken, hangi durumda olduğu önemlidir. Aynı şekilde bilgisayar tarafından saklanabilen ve işlenebilen her şeye de veri denilmektedir.

Veritabanı Nedir?

Toplanan verilerin dah asonra ulaşılmak amacıyla elektronik ortamda belli kurallara göre korunulup saklanan kayıtlar topluluğuna veritabanı denilmektedir. Birbiriyle ilişkili verilerin hızlı ve verimli bir şekilde ulaşılmasını sağlar.

Veritabanlarının amacı büyük miktardaki verileri işlemektir. Veriler düzenli bir biçimde elektronik ortamda kaydedilirler. Büyük miktarlardaki verilerin hızlı ve güvenli bir biçimde gereksinim duyulan bilgiye dönüştürülmesi veritabanlarının en önemli özelliklerinden birisidir.

  • Veritabanı, belli bir alanda ve birbiriyle ilişkili olarak düzenlenmiş veriler topluluğudur.
  • Veritabanı, bir çok kullanıcı tarafından kullanılan birbirleriyle ilişkili geniş bir veri kümesinin düzenlenmesi, depolanması ve sorgulanması için kurulan sistemdir.
  • Veritabanı, bir çok uygulamaya hizmet vermek için zararlı ve gereksiz veriler hariç ilişkili verilerin saklandığı bir veri topluluğudur.
  • Veritabanı, bilgisayar temelli bir kayıt tutma sistemidir. Sistemin amacı verileri kayıt etmek ve bakımını yapmaktır.
  • Veritabanı, bir organizasyonda verilerin merkezi kontrolünü sağlar.
  • Veritabanı sistemi, basitçe kompüterize edilmiş bir kayıt takip sistemidir.

Bu veritabanlarının en önemli ortak özelliği ilişkisel veritabanı teknolojisini içermeleridir.

Veritabanı Türleri

  1. Paylaşmalı Veritabanları: Birden fazla fiziksel ortamda depolanan veritabanlarına paylaşımlı veritabanı denir.
  2. esne Ağırlıklı Veritabanları: Çizimlerin, grafiklerin, imajların, fotoğrafların, seslerin ve tüm hareketli video gösterimlerini otomatik olarak canlandıracak ve paylaşılacak nesneler olarak depolayan veritabanıdır.
  3. Hiper Medya Veritabanları: Kullanıcı, modülden modüle geçmek için, kendi yolunu kendi seçebilir. Bilgi şeması önceden belirlenmiş organizasyon şemasını gerektirmez.
  4. Çok Boyutlu Veri Analizi: Bu analiz kullanıcıyı aynı veriyi çok farklı boyutlarıyla görme olanağına kavuşturulur.
  5. Veri Bankaları: İşletmedeki tüm personelin beklentilerine uygun, bütünleşik, güncel ve tarihi verileri depolayan veritabanı yazılımlarına Veri Bankaları denir.

En Ünlü Veritabanı Sistemleri

  • Oracle ,
  • Microsoft SQL Server,
  • Microsoft Access ,
  • MySQL,
  • PostgreSQL ,
  • Sybase ,
  • Berkeley,
  • Firebird

Kayıt altına alınacak veriler, bir çok şekilde gerçekleştirilmektedir. Veritabanı modellerini aşağıdaki gibi listelendirebiliriz.

Veritabanı Modelleri

  • Flat file (Text File)
  • Hierarchical (XML)
  • Relational (integrity)
  • Object Oriented
  • Network

Flat File(Text Dosya)

Verilerin düz bir metin dosyasına bizim belirlediğimiz belirli kurallar ile kaydettiğimiz sistemdir. Verilerin arasına bizim belirlediğimiz özel karakterlerden ekleriz, daha sonra bu verileri kullanmak istediğimizde de belirlediğimiz özel karakterlere göre parçalama işlemine tabi tutarız.

XML (Hiyerarşik Model)

Hiyerarşik veri-tabanı modeli bir ağaç yapısına sahiptir. Bu tip veri tabanları içerisinde bulunan veriler, ebeveyn-çocuk ilişkisinde sahiptir, ve her ebeveyn veri birden fazla çocuk veriye sahip olabilir. Çocuk veriler tamamen ebeveyn verilere bağımlıdırlar, yani ebeveyn veri olmadığı takdirde çocuk veride de olamaz.  Sonuç olarak bu veri tabanı modeli one-to-many(bire sonsuz) ilişkisini desteklemektedir.Yani her çocuğun bir ebeveyni olabilir. Fakat her ebeveynin birden çok çocuğu olabilir.

Ağ Veritabanı Modeli

Ağ Veri Tabanı Modeli esasında hiyerarşik veri tabanı modelinin geliştirilmiş bir versiyonudur. Ağ veri tabanı modeli çocuk tabloların birden fazla atalarının olmasına müsaade etmektedir.

İlişkisel Veritabanı Modeli

Günümüzde yaygın olarak kullanılan veritabanı modelidir. Veriler tablolar halinde ilişkisel olarak saklanır. Her tablo her tabloya istenildiği şekilde bağlanabilir. Yani bire bir, bire sonsuz ve sonsuza sonsuz ilişkileri rahatlıkla oluşturabiliriz. İstediğimizde bir den çok tablodan aynı anda veriler getirip listeleyebiliriz.

Tablo, Kayıt, Alan ve Veri Nedir?

  • Veri: Veri tabanında saklanan en küçük veri parçasıdır. Tablonun her hücresi bir veridir.
  • Kayıt: Verilerden oluşan bir biri ile ilgili veri tabanı yapısıdır. Tablodaki her bir satır veri tabanında kayıt ile ifade edilir.
  • Alan: Bir verinin kaydolması için gerekli biçimi ve türü belirlenmiş kısımdır. Tablodaki sütunlar alan veri tabanında alan olarak isimlendirilir.
  • Tablo: Kayıtların peş peşe birleşmesi ile oluşan, satır ve sütunlardan oluşan, verilerin saklandığı veri tabanı nesnesidir.

Tablo Özellikleri

  • Tablolar satır ve sütunlardan oluşur.
  • Her sütunun alacağı isim birbirinden farklı olmalıdır.(Farklı tablolarda aynı isimli alanlar olabilir.)
  • Sütunlar isimlendirilirken Türkçe karakterler (ıöüğşçİÖÜĞŞÇ) ve boşluk kullanılmaması tavsiye edilir.
  • Her satır birbirinden farklı olmalıdır yani birbiri ile tamamen ayni olan iki kayıt kullanılmamalıdır.(Birincil Anahtar kullanılmalıdır.)
  • Satırların ve sütunların sırasının nasıl olacağı önemli değildir.(Sorgular ile istenilen satır ve sütun istenilen sıra ile gösterilebilir.)
  • Hücrelerdeki veriler atomik olmalıdır.(Parçalanabilen nitelikte veriler olmamalıdır.)
  • Her sütunun bir veri türü vardır. Başka tipte veri girilemez

Ücretsiz WordPress Site Takip Uygulaması

ibrahim Çevrük

Takip etmiş olduğunuz siteleri tek tek gezmek oldukça vakit alacak, güncel içeriklerini takip etmek zor olacaktır. Bu makalemde, bu sorunu kökünden çözen bir uygulamadan size bahsedeceğim.

Site Takip Uygulaması

Site takip uygulaması ile WordPress altyapısına sahip siteleri tanımlayarak, birden fazla sitenin akışına ulaşabilirsiniz. Hem vakitten kazanmış olacaksınız hemde tanımlanan sitelerde eklenen güncel içeriklere tek tıkla ulaşmış olacaksınız. Uygulamada; üyelik kaydı, girişi gibi zaman ayıracağınız bölümlerde bulunmuyor. Bu sayede hızlıca site tanımlaması yaparak bir çok siteyi tek bir uygulama altında toplayabilirsiniz.

Uygulamada yer alan keşfet bölümü ile daha önce kullanıcılar tarafından eklenen sitelere ulaşabilir ve takip edebilirsiniz. Aynı zamanda takip ettiğiniz sitelere ulaşabileceğiniz gibi tanımladığınız sitelere eklenen makaleleri Son Makaleler bölümünden tarih sırasına göre listeleyebilirsiniz.

Hoşunuza giden makaleleri favorilerinize ekleyip istediğiniz zaman tekrar ulaşabilirsiniz. Uygulamaya tanımlayacağınız siteleri WordPress alt yapısına sahip olmalıdır. Aksi durumda uygulamada site tanımlama işleminiz başarısız olacaktır.

Desteklenen Platformlar

 Site takip uygulamasını Android ve İOS işletim sistemlerine sahip cihazlarınızda kullanabilirsiniz.

Uygulama Ekran Görüntüleri

 Uygulamaya ait sekmelerin ekran görüntülerine aşağıdaki galeriden ulaşabilirsiniz.

Sonuç Olarak

Oldukça kullanışlı olan bu uygulama tamamiyle ücretsiz ve reklamsızdır. Uygulamayı kullanarak takip etmiş olduğunuz web sitelerini bir araya toplayabilirsiniz. Ayrıca “ibrahimcevruk.com” sitesi de WordPress alt yapısına sahip olduğu için tüm dersleri ve makaleleri bu uygulama üzerinden de takip edebilirsiniz.

İndirme Adresleri

Android İşletim Sistemi İçin : Android Mağazası

İos İşletim Sistemi İçin : İos Mağazası

Uygulama üzerinden beni de takip etmeyi unutmayınız 🙂

Veritabanı ve SQL Nedir?

ibrahim Çevrük

Şuanda okumuş olduğunuz bu yazı bir veritabanından sizlere sunulmaktadır. Bu yazının etrafında yer alan bağlantılar ve yapılarda yine veriler arasından seçilerek sizlere sunulmaktadır. Tüm bu verileri belli bir kritere göre sunma işlemine sorgu denilmektedir. Bu sorgularda SQL ile gerçekleştirilir.

SQL Nedir?

Kısaca SQL, sorgulama dilidir. Bir programlama dili değildir. SQL ifadesinin açılımı, Structured Query Language’dir. SQL sorguları ile çok büyük veriler hızlı ve düzenli olarak işlenmektedir. Veri işleme için SQL yardımcı bir araçtır.

SQL ile sorgu yapan bir çok yazılım bulunmaktadır. Popüler olanları aşağıdaki gibi listelendirebiliriz.

  • MySQL
  • Mssql
  • Microsoft SQL Server
  • Oracle
  • Firebird
  • Access

Yukarıda yer alan yazılımlar veri saklama alanlarının oluşturulması için geliştirilmiş sistemlerdir. İşleyeceğiniz verilerin türleri, yazılım tercihi ve ücretli/ücretsiz destek için gerekli olan uygulamlardan birisi tercih edilmelidir.

Bu SQL dersleri serisinde veritabanı olarak MySQL aracını kullanacağım. MySQL hakkında daha detaylı bilgili ilerleyen yazılarda daha detaylı bir şekilde ele almış olacağız. MySQL ve diğer araçlarda kullanılan SQL sorgularının yapıları bir birine benzemektedir. Bu bölümde öğrenmiş olduğunuz bilgileri, diğer uygulamalarda da rahatlıkla gerçekleştirebilirsiniz.

SQL Nerelerde Kullanılmaktadır?

SQL ve SQL araçlarının tanıtımında da anaşıldığı kadarıyla veri tutan her platformda kullanılmaktadır. Veritabanı olan her uygulamada (Web sitesi, mobil işlemler ve masaüstü uygulamaları, vb.) SQL kullanılmaktadır.

Programları Edinme

Bu kategoride yer alan SQL derslerinde, MySQL veritabanı üzerinden işlemleri gerçekleştireceğiz. MySQL işlemleri için PhpMyAdmin yönetim panelini kullanabilirsiniz. Bunun için https://www.phpmyadmin.net/ bu adresten gerekli dosyaları edinebilirsiniz. Yada PHP ile kullanmak ve yerel bir sunucu edinmek isterseniz de Xampp programını kurabilirsiniz. Bu program için de https://www.apachefriends.org/tr/index.html bu adresi ziyaret edip gerekli dosyaları indirebilirsiniz.

Xampp yerel sunucusunun kurulumu ve kullanımı içinde Localhost ve Notepad++ Kurulumu adlı makaleye göz atabilirsiniz. Xampp yerel sunucusu kullanımında 80 portuna ait bir sorunla karşılaşmanız durumundaysa, Xampp Apache Port 80 Sorunu ve Çözüm Yolları adlı makaleyi inceleyebilirsiniz.

Sıfırdan İleriye PHP Eğitim Seti

ibrahim Çevrük

Sıfırdan ileriye php dilini öğrenmek isteyenlerin en muzdarip oldukları konulardan birisi de, devam etmeyen eğitim setledir. Ücretsiz bir şekilde sıfırdan php öğreneceklerin başvurdukları mecralardan birisi de youtube’da yer alan php eğitimleridir. Fakat bu eğitimlerde kimi anlatıcılar belli bir yerden sonra eğitimlere son vermesinde dolayı, php öğrenmek isteyip takip edenler için yarı yolda kalma durumuna yol açacaktır.

Ücretsiz php eğitim setlerinde devamlılık, anlatıcının php diline olan hakimiyeti ve anlatımı kadar önemlidir. Php öğrenmek için heves edip yarı yolda kalan birisi dilden soğuyacak ve uzaklaşacaktır. Bu tarz bir tutumun farkında olduğum için, Php dersleri kategorisinde hazırlamış olduğum php derslerini belirli bir sıra doğrultusunda hazırladım.

Ücretsiz Php Eğitim Seti

Hazırlamış olduğum php eğitim setindeki dersleri, sıralı bir şekilde izlemeniz php dilini öğrenmenize yeterli olacaktır. Videoların eklenme tarihinin eski olması sizi hiçbir şekilde aldatmasın. Temel ve değişmeyen bilgiler eski videolarda açıkça yer aldığı için tekrar güncellemek istemedim. Fakat geçerliliğini kaybeden tüm konuları tek tek güncelleyerek php eğitim setine dahil ettim.

Sitede yer alan php eğitim seti, ücretsiz olup güncelliğini korumaktadır. Bu eğitim setini bitirdiğinizde orta seviye php diline hakim olacaksınız. Sette yer alan bilgileri pratik yaparak uygulamak durumunda ileri seviye php öğrenme yolunda adımlar atmış olacaksınız. Unutmayın ki php dili 1-2 günde öğrenilecek bir dil değildir. Fakat mantığını 1-2 günde kavrayabilirsiniz. Önemli olan mantığını kavramaktır. Sonrası akla ve mantığa uygun olduğu sürece gelişecektir.

Php Eğitim Setine Başlamadan Önce Ne Öğrenmeli?

Php eğitim setine başlamadan önce, HTML vs CSS bilgilerinizin olması sizin yararınıza olacaktır. HTML ve CSS konusunda eksikleriniz bulunuyorsa sitede yer alan derslere bakabilirsiniz. Temel bilgilerin yer aldığı HTML ve CSS derslerinde bilmeniz gereken tüm konular yer almaktadır.

Php arayüz olarak HTML vs CSS’den yardım almaktadır. Bununla birlikte İnteraktif siteler oluşturmak için JavaScript yada jQuery öğrenmeniz, php’yi daha etkin bir şekilde kurmanıza yol açacaktır.

Php Eğitim Seti Hakkında Bilgiler

Hazırlamış olduğum eğitim seti kısa sürede öğrenmenizi sağlayacak bir dille anlatıldı. Düzenli bir şekilde izleyip aynı zamanda uygulamanız durumunda kısa sürede mantığı kavrayıp dili öğrenebilirsiniz.

  • Eğitim setinde 105 adet ders yer almaktadır. (Güncel bir şekilde eklemeler devam ediyor)
  • Eğitim seti 12 Saat 59 dakika’dan oluşmaktadır. (Güncel olarak artıyor)
  • Eğitim setindeki videolar 720P (1280*720) formatında hazırlanmıştır.
  • Eğitim seti toplamda 500.000’den fazla indirilmiştir.

Sözünü etmiş olduğum bu php eğitim setine aşağıdaki buton sayesinde ulaşabilirsiniz. Dersleri site üzerinden takip etmeniz en sağlıklı öğrenme yolu olacaktır.

ÜCRETSİZ PHP EĞİTİM SETİ

Php’de Pratik Kodlama Yöntemleri #1

ibrahim Çevrük

Php’de bazı kodlar vardır ki kısacık bir yazılımla dahi işlevini görmektedir. Buda size zaman ve karmaşalardan kurtulayı sağlayacaktır. Bu tarz bilgiler sadece tecrübe ile kazanılacak bilgilerdir. Aklıma gelen ve kullanmış olduğum birkaç pratik yöntemi sizinle paylaşmak istedim.

Pratik Kodlama Yöntemleri

Pratik kodlamalar işinizi kolaylaştırmakla birlikte, hızlı sonuç almanızı da sağlayacaktır. Burada yer alan pratik bilgiler miniş detaylar ve kaçamaklardan oluşmaktadır.

Sağ ve Soldaki Değerleri Temizleme

Bu işlemi yapabilmek içinde bir fonksiyon bulunmakta. Fakat bu fonksiyon daha çok boşluk temizlemek olarak bilinen trim(); fonsiyonudur. Trim değer almadığı sürece boşluk temizler. Değer belirlendiğindeyse sadece o belirlenen değer üzerinden temizleme işlemi yapar.

$sayilar  = "1-2-3-4-5-6-";
echo rtrim('-',$sayilar); // değişkenin sonundaki - silinecektir.

Kısa İf/Else Kullanımı

Koşul belirtmek için kullanılan if ve else değerlerini tek satırda tanımlayarak işimizi kolaylaştırmakla birlikte hızlı karar almasını da sağlamış olacağız. Kısa if/else kullanımı soru işareti (?) ve iki nokta üst üste (:) işaretiyle tanımlanmaktadır.

$islem = isset($_GET['islem']) ? $_GET['islem'] : 'anasayfa';
// yada
isset($islem) ? $islem : 'Değişken Tanımlanmamış!';

Parse_str() Kullanımı

Dizge içersinde gelen verileri değişkenlere atamak için kullanılmaktadır. Örneği incelediğinizde tam olarak kullanımını anlayacaksınız.

$veriler = "isim=ibrahim&il=ankara&ek[]=kitap&ek[]=atatürk";
parse_str($veriler);
echo $isim;  // ibrahim
echo $il;  // ankara
echo $ek[0]; // kitap
echo $ek[1]; // atatürk

list() Fonksiyonu

Dizi değerlerini değişkene atamamıza yaramaktadır. Dizilerle ilgili işlemlerimde kullanmış olduğum bir fonksiyondur.

$Bilgiler = ['ibrahim Çevrük', 'ibrahimcevruk@hotmail.com', 'Ankara'];
list($isim, $mail, $il) = $Bilgiler; // ibrahim Çevrük için, $isim yazmak yeterli olacaktır.

Tanımlı Fonksiyon Kontrolü

Fonksiyonlarla çokça çalışıyorsanız hata yapmanızda muhtemeldir. Bunun için ilk önce fonksiyon kontrolü yaparak işlemlerinizi gerçekleştirmek daha sağlıklı olacaktır. Aksi durumda olmayan yada yanlış tanımlanan fonksiyon baş belası hatalara yolaçabilir.

if (!function_exists('Baglan')) {
  function Baglan($a)
  {
     // Kod Bloğu
  }
}

Doğrulama İşlemlerini Yapın

Php’de yer alan hazır fonksiyonları kullanmaya özen gösterin. Özellikle kontrol işlemlerinde filter_var olmazsa olmazdır. Filter_var hakkında detaylı bilgiler için, Php’de Girilen Değerin Format Uygunluğunu Kontrol Etme adlı makaleme göz atabilirsiniz.

if(!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
 //gecersiz email
}

Anlamsız Kısaltmalar Yapmayın! (*)

Anlamsız kısaltmalar yapmak size vakit kaybı yaşatmaktan başka hiçbir şeye yaramayacaktır. Hem sizin hemde başka yazılımcıların kodlara baktığında neredeyse hiçbir şey anlamamasına yolaçacaktır. Varsın uzun olsun, anlaşılır olsun. (* Benim en çok yaptığım şeydir. Çevremden çok tepki aldım ama hala bu şekilde devam ediyorum. Ama siz yapmayın!)

$Syf = 1; // $Sayfa = 1;
$VL = 'xx'; // $VeriListesi = 'xx';

FileZilla’da Varsayılan Editör Tanımlaması

ibrahim Çevrük

FileZilla programında düzenleme istediğiniz dosyayı istediğiniz editörde açmak için yapmanız gereken bir tanımlama bulunmaktadır. Bu tanımlamayı yapmadığınızda metin belgesi olarak yada sistemin tanıdığı varsayılan bir editör tarafından açılacaktır.

FileZilla’da PHP dosyalarının nasıl varsayılan olarak notepad++ olarak açılacağını tanımlayalım.

FileZilla’da Dosyaları Notepad++ ile Açma

  • İlk olarak Notepad++ simgesini sağ tıklatıp özelliklerden hedef url bağlantısını kopyalayalım.
  • Kopyaladığımız bu yolu FileZilla’da gerekli yere tanımlamak için kullanacağız.
  • Sonrasında filezilla programını çalıştıralım.
  • FileZilla menülerinden Edit(Düzenle) -> Setting(Ayarlar) seçeneğini tıklatalım.
  • Açılan pencereden File Editing(Dosya Düzenleme) seçeneğini tıklatalım.
  • Dosya Tip İlişkilendirme bölümünde varsa tanımlı değerleri göreceksiniz. Yoksa da burada tanımlama yapmanız gerekmektedir.
  • Tanımlama sonrasında Ok(Tamam) seçeneği ile değişikliği kayıt edin.
  • FileZilla programını kapatıp tekrar açın. Tanımladığınız değişiklikler geçerli olacaktır.

filezilla

Yukarıdaki adımlar doğrultusunda FileZilla’da varsayılan olarak tanımladığınız dosya türü, seçmiş olduğunuz editör ile açılacaktır.

Bu makalede notepad++ ile göstermiş olduğum örneği farklı editörlerle de gerçekleştirebilirsiniz. Yapmanız gereken tek şey, tanımlamak istediğiniz programın hedef değerini doğru bir şekilde alıp tanımlamak.

Adobe Connect Api Toplantı Kayıtları

ibrahim Çevrük

Adobe Connect sisteminde yer alan toplantıları ve bu toplantılarda yer alan kayıtları nasıl listeleneceği hakkında bilgi vermeye çalışacağım. Bildiğiniz gibi adobe connect sisteminde canlı yayınlar kayıt altına alınmakta. Kayıtlı olan verilere ulaşmak için öncelikle toplantının kayıtlı olduğu sınıfı sonrasındaysa sınıf içerisinde yer alan kayıtları almamız gerekecek.

İlk olarak adobe connect hesabına giriş yapmak gerekecek. Giriş yapabilmek için gerekli açıklayıcı bilgilere Adobe Connect Api ile Oturum Açma makalesinden bilgi alabilirsiniz. Toplantı bilgilerini almadan önce Adobe Connect sisteminde oturum açmanız gerekecektir.

Adobe Connect Api Toplantı Bilgisi

Adobe Connect apisinde toplantı bilgisini almak için report-my-meetings değerini kullanacağız. Oluşturacağımız bu url’de sistemde kayıtlı olan tüm toplantıları listeleyecektir.

https://ADOBEADINIZ.adobeconnect.com/api/xml?action=report-my-meetings

Yukarıda oluşturduğumuz url ile sistemde yer alan tüm toplantılar listelenecektir. Tabi bu url değerini önceden hazırlamış olduğumuz Baglan fonksiyonu ile erişmemiz gerekecektir.

$Toplantilar = Baglan(“https://ADOBEADINIZ.adobeconnect.com/api/xml?action=report-my-meetings”);

Böylelikle $Toplantilar değişkeninde sistemde yer alan tüm toplantıları listelemiş olduk. Bu toplantıları listelediğimizde bize sistemdeki toplantıların hepsi listenecektir. Ayrıca bu toplantıların sahip olduğu sco-id değerine de ulaşmış olacağız. Bu değer sayesinde toplantı içerisinde yer alan kayıtlara ulaşacağız.

$Regex = '@<meeting sco-id="(.*?)" type="meeting" icon="meeting" permission-id="host" active-participants="0" row-id=".*?" row-id-desc=".*?"><name>(.*?)</name><domain-name>ADOBEADINIZ.adobeconnect.com</domain-name><url-path>(.*?)</url-path><date-begin>.*?</date-begin><date-end>.*?</date-end><expired>true</expired><duration>.*?</duration></meeting>@si';

Yukarıda yer alan uzun $Regex değişkeninde toplantı bilgileri gelecektir. Bilgilerine ulaşmak istediğiniz alanları (.*?) ile belirttik. Gereksiz olduğunu düşündüğümüz alanlara da .*? olarak belirttik. Şimdide bu regex değişkenini preg_match_all da yazalım.

preg_match_all($Regex,$Toplantilar,$Listele); 

Hazırladığımız regex desenini tanımladık. Ulaşmak istediğimiz değerler $Listele değişkeninde yer alacaktır. Toplantıya ait kayıtlı videoları listelemek için sco-id değerini alacağız. Bu değere de $Listele[“1”] den ulaşmış olacağız. Bu değişken array olarak gelecektir. For döngüsü ile gelen değerleri ayrıştırıp, Sco-id bilgisiyle kayıtlı videolara ulaşacağız.

Adobe Connect Api Kayıtlı Video Listesi

Adobe connect apide kayıtlı videolara ulaşmak için öncelikle toplantı sco-id değerini almak gerekmektedir. Yukarıdaki işlemlerde sco-id değerini almış olduk. Şimdi de videolara ulaşacağımız url yapısını oluşturup gerekli deseni hazırlamak gerekiyor.

https://ADOBEADINIZ.adobeconnect.com/api/xml?action=sco-contents&sco-id=XXXX

Yukarıda yer alan url yapısını almış olduğumuz sco-id değeri ile birleştirerek o toplantıya ait kayıtlı videolara ulaşacağız.

 for($a=0; $a < count($Listele["1"]); $a++){
  $Dersler    = Baglan("https://ADOBEADINIZ.adobeconnect.com/api/xml?action=sco-contents&sco-id="+$Listele["1"][$a]);
  $DersRegex  = '@<sco sco-id=".*?" source-sco-id="" folder-id="'.$Listele["1"][$a].'" type="content" icon="archive" display-seq="0" duration=".*?" is-folder="0"><name>(.*?)</name>.*?<url-path>(.*?)</url-path><date-begin>.*?</date-begin><date-end>.*?</date-end><date-created>.*?</date-created><date-modified>.*?</date-modified><is-seminar>false</is-seminar></sco>@si';
  preg_match_all($DersRegex,$Dersler,$DersListesi);
}

Yukarıdaki gibi for döngüsünde toplantıları döndürüyoruz. Toplantıların sco-id değerini, XXXX ile belirttiğimiz yere yazıyoruz. Böylelikle toplantı içerisinde yer alan toplantılara bağlanmış olduk. Sonraki adım da bu toplantıları yine istediğimiz bilgilere göre regex desenini tanımlıyoruz. Sonrasında örnekte tanımladığım $DersListesi değişkeninde istediğimiz toplantı içerisinde ki derslere ulaşmış oluyoruz.

Bu değişkeni print_r ile ekrana çıktısını aldığınızda kayıtlı videolara ait bilgilere ulaşabilirsiniz. Gerekli işlemlerinize göre bu verileri istediğiniz gibi işleyebilirsiniz.