Merhabalar,

Bu yazımda dilim döndüğünce tecrübelerime dayanarak Liferay Portal ın ne olduğundan bahsediyor olucam.

 

Liferay, açık kaynak kodlu olarak yazılmış bir Java EE portal uygulamasıdır. Yani içerisinde kullanıcı yönetimi ve CMS (içerik yönetimi) olan ön tarafında ise gelen kullanıcı ve ziyaretçilerin admin veya site yetkilisi tarafından yazılmış değiştirilmiş içerikler üzerinden bilgi alabildikleri yapılardır. Örnek olarak haber sitelerini ve birçok dinamik etkileşimli siteyi tanımlayabiliriz.
Web siteniz için Liferay Portal kullanmanın nedenleri basittir: sitenizi tüm müşterilere sunmak için sağlam bir platform sağlar; bunlar masaüstü, mobil veya aradaki herhangi bir şey; Sitenizde çalıştırmanız gereken tüm standart uygulamaları sağlar; Ve yeni uygulamalar veya özelleştirme için kullanımı kolay bir geliştirme çerçevesi sağlar. Buna ek olarak Liferay Portal, dünyanın dört bir yanından insanlar tarafından açık kaynak metodolojisi kullanılarak geliştirilmiştir. Kod tabanı sağlam ve çeşitli endüstrilerdeki kritik görev dağıtımlarında güvenilir ve istikrarlı olduğu kanıtlanmıştır.

Burada belki de ilk defa duyacağınız bir kavram var. Portal tamam akılda kalıcı ve açıklamaya çalıştık. Peki ya Portlet nedir ? :/

 

Portletleri görseller ile açıklamaya çalışsam daha uygun olacak.

 

portlet2

Portal dediğimiz yapı aslında birden fazla şekilde oluşturulmuş “Portlet” denilen ufak iş yapan parçacıkların bir araya gelerek oluşturduğu yapıdır. Yani sayfa içerisinde ihtiyacımız olan yerlerede iş yaptırmak istediğimiz yapıları bir bir böler ve onlara verdiğimiz sorumluluklar mertebesinde bir sayfayı oluşturmasını bekleriz.

Daha açıklayıcı bir resim üzerinde incelersek,

portlet1

Sayfa içersinde üst kısımda kullandığımız banner-slider ı bir portlet olabilir. Ve CMS tarafından içerisine yüklenen görselleri slide edebilir. Hemen altında bir haber portleti olur ve oda yine CMS tarafında girilen haberleri sırasıyla ya da belli bir sayıda belli bir algoritmada gösterebilirken hemen yanında Web Servis çağrılarını kullanarak veri alıp onu ekrana basabaileceğimiz bir portlet de olabilir. İşte bu portletleri gerek Java tarafında gerekse Liferay in bize sunduğu Asset Publisher yapısı ile kurabilir, başarılı bir şekide sayfamıza Drag-Drop mantığıyla sayfa Layoutunun bize ayırdığı alanlara sürükleyeebiliriz. Her portlet kendi içerisinde bir Web Sayfası gibi çalışır. Yani yukarıdaki Layout içerisinde yapı 1-2-1 şeklindedir. Üst kısım tek altında yan yana iki içerik alanı ve yine altta bir footer alanı. Bu kısımda ortada bulunan iki adet içerik alanını tasarlarken bootstap üzerinden örnek verecek olursa col-md-12 olarak verebilirz. Ve layoutumuz o satırda 2 olduğu ,ç,n kendini ona göre ayarlar ve %50 lik kısmı tam doldurur. Ama Layout olarak tek olan bir sayfaya yani tüm olan bir sayfa üzerinde de tüm sayfayı kaplayacak şekilde hareket eder. Yani her portlet, kendi içerisinde bir Web Sayfasıdır ve koyulduğu layoutun boyutuna göre kendini hizalar. 🙂

 

Yeri gelmişken Asset Publisher nedir, ondan bahsederek yazımı sonlandırayım.

Asset Publisher bizim Liferayin CMS tarafında eklediğimiz içerikleri ekranda belli bir düzende gösterebilmemizi sağlayan, çok işi kısa kod parçcıkları ile yapmaktan imtina etmeyen mütevazi ve bir o kadar çalışkan portletlerimizdir. 🙂

 

Şöyle ki,

Bir sisteminiz var ve kullanıcıya girdiğiniz duyuruları giriş tarihine göre sıralanmış bir şekilde aktarmak istiyorsunuz. Yapmanız gerekenler sadece CMS tarafında bir duyuru yapısı (Structure) oluşturup ona içerik eklemektir.

 

portlet3

Burada Structure dediğimiz oluşumun böyle bir yapısı var. Sol tarafta duyuru içerisinde ne olması gerektiğini seçip sağ kısma ekliyorsunuz. Örneğin bir ismi bir açıklaması ve Pdf i olacağını söylüyorsunuz. Bu yapıyı duyuru yapısı olarak kaydettik. Yeni bir Web Content oluşturmak istediğimizde bize yapısını soracak ve Duyuru yapısını seçeceğiz. Önğmüze sadece bu isim açıklama ve pdf alanları gelecek ve doldurmamızı isteyecek. Kaydettiğimizde duyurumuz hazır. Peki Asset Publisher bunun neresinde ? Biz bu yapıyı sayfada bir yerelerde nasıl göstereceğiz ? İşte tam olarak bu kısımda devreye giriyor Assetler.

Assetlere diyoruz ki CMS tarafındagirilen içerikler var, onları kategorize et sırala seç belli sayıda ekrana bas.

Onu tasarladığımız sayfa ise,

portlet4

Burası !

 

Burada neler var açıklayayım

üst kısım isim vs gibi standar şeyler her Asseti birbirinden ayırmaya ihtiyacımız var. Önemli olna Script diye ayrılmış alan. Script alanın sol kısmında Asset Entries gibi şeyler yazıyor alt alta. Bu kısım aşağı doğru uzuyor ve hayli yardımcı bir kısım. Çünkü Asset Publisher içerisinde kullanbileceğimiz en kullanışlı Class ve metodları listeliyor bize. Oradan tıkladığımız anda sayfada kendi nesnesini oluşturuyor ve çalışmaya, kodlamaya hazır hale getiriyor. Ben örnek olarak Asset Entries getirdim.

 

Bu arada bu kısımda yazdığımız kodlar yukarıda da görüleeği üzere .ftl uzantılı geçer. Yani Freemarker ! Freemarker Apache nin lisansladığı php,jsp benzeri bir ürün. Değişken çekebilir java fonksiyonlarına erişebilirsiniz. Detaylı bilgi ve Docs ları için,

http://freemarker.org/

 

Kod Bloğuna bakalım. 7.satıra kadar sizinde anlayacağınız üzere yorum satırı. Asıl curcuna 9 da başlıyor 😀 basit bir açıklama ile diyor ki bak bakalım Content (içerik) var mı ? Varsa onlar ordu gibi küme olarak gelir her birisini teker teker listeye al. Ve aldığın o içeriklerin başlıklarını bulunduğum dile göre getir.(locale kısmı). Bu kod parçacığı bize tüm İçerikleri listeler. Ama “TÜM” içerikleri. öyle duyurudur haberdir slider ayrım yapmaksınız hepsini yazar. Bir takım filtrelemeler yapacağız. Asset Publisher ın böyle bir özelliği var. Sayfaya eklediğimiz Asset Publisher ın sağ kısımında Configuration ayarlarında hem bu yazdığımız kodu seçeceğiz çalışması için, hemde bu kodu bir takım ayarlar ile çalıştıracağız ki bişeye benzesin.

 

portlet5

Görüldüğü üzere Yapı içerisinden DuyurularStructure seçtim ve artık sadece duyruların başlığını listeleyecek.

Gerek detay kod gerek biraz da Css(akordion vs) ekledikten sonra assetimiz şu şeklde hizmet verebicek.

portlet6

Liferay ve Asset Publisher lar hakkında bir nebze aydınlatmada bulunabildiysem ne mutlu bana. 🙂 Kolay gelsin 🙂