DEV Community

Cover image for Liman için eklenti geliştirme
Mustafa AKBEL for Liman

Posted on

Liman için eklenti geliştirme

Önceki yazılarımızda Liman'da bulunan eklentilerin genel yapısını anlatmıştık. Buradan ulaşabilirsiniz. Bu yazımızda ise eklenti içerisinde nasıl geliştirmeler yapacağımızı anlatacağım.

Örnek olarak sunucu adını veren bir eklenti yazalım.

İlk olarak yeni bir eklenti oluşturalım. Sistem Ayarları > Eklenti > Yeni diyerek eklenti oluşturma modal'ına ulaşabilirsiniz. Ardından eklenti ismini belirleyerek eklentiyi oluştururuz.

Alt Text

Bu eklentide iki adet dosya kullanılacaktır. Bunlardan biri index.blade.php front-end kodlarını içerecek. Diğer dosya ise back-end kodlarını içerecek olan functions.php dosyasıdır.

Aşağıda index.blade.php dosyasının içeriğini görmektesiniz.

<div id="hostname"></div>

<script>
    showSwal('{{(__("Yükleniyor"))}}','info',2000);
    let form = new FormData();
    request('{{API('hostname')}}',form,function (response) {
        json = JSON.parse(response),
        $('#hostname').html(json.message);
    },function(error){
        $('#hostname').innerHTML = "Hata oluştu";
    });
</script>

Enter fullscreen mode Exit fullscreen mode

İlk olarak oluşturulan div hostname'in yazdırılacağı yerdir. Javascript kodlarında ise bulunan showSwal Limanın hazır fonksiyonlarından biridir. Gerekli parametreleri verip istediğimiz swalı oluşturmamızı sağlamaktadır. Ardından bir form oluşturulmaktadır. Eğer back-end kısmına bir veri yollamak istersek form.append("deger",deger); şeklinde veriyi back-end'e form ile yollayabiliriz. Şimdilik biz boş yollayacağız.

Sonrasında bir request gönderilir. Bu request back-end de bulunan hostname adlı fonksiyona gidip oradaki işlemler sonucu döndürülen cevabı response değişkeni olarak geri almaktadır. Değişken json olarak geldiğinden önce parse edilmektedir. Sonrasında gelen sonuç hostname adlı div'e yazdırılmaktadır.

Aşağıda functions.php dosyasının içeriğini görmektesiniz.

<?php 
    function index(){
        return view('index');
    }

    function hostname(){
        return respond(runCommand("hostname"),200);
    }
?>
Enter fullscreen mode Exit fullscreen mode

index fonksiyonu index.blade.php'yi döndüren bir fonsiyondur. hostname fonksiyonu ise runCommand fonksiyonu ile sunucunun hostname'ni öğrenip döndürmektedir. runCommand fonksiyonu Limanın fonksiyonlarındandır. Bu fonksiyon sayesinde sunucuda linux komutlarını çalıştırabilmekteyiz.

Sonuç olarak aşağıdaki çıktıyı vermektedir.

Alt Text

Top comments (0)