LRS Engine¶
LRS Engine adalah web based CMS yang dikembangkan untuk fokus pada kinerja dan skalabilitas, dibangun dengan konsep MVC sehingga sangat mendukung agile development.
Secara umum LRS Engine terbagi menjadi 3 bagian yakni Core, Modules, dan Skins. Masing-masing bagian bertujuan untuk membatasi ruang kerja pengembangan, sehingga tidak akan mengganggu bagian program lainnya.
Core¶
Core merupakan inti dari LRS Engine, dimana memuat class untuk semua kebutuhan web. Pada dasarnya LRS Engine merupakan platform untuk bloging. Fitur dasar seperti Posts, Pages, Media, dan lain sebagainya secara native telah tersedia.
Configuration¶
Buat script config.php
pada root yang berisi konfigurasi utama untuk menentukan beberapa variable yang digunakan dalam Engine.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | /** ========================
* konfigurasi path dan url
* ====================== */
/** app url path */
define( 'LRS_URL_PATH', 'http://localhost/lrsoft/lrs-engine' );
/** =======================
* Informasi umum aplikasi
* ===================== */
/** app name */
define( 'LRS_APP_NAME', 'Local Development' );
/** app author */
define( 'LRS_APP_AUTHOR', 'LRsoft Corp.');
/** app author url */
define( 'LRS_APP_AUTHOR_URL', 'http://lrsoft.co.id');
/** =====================
* konfigurasi database
* ==================== */
/** host */
define( 'LRS_DB_HOST', 'localhost' );
/** username */
define( 'LRS_DB_USERNAME', 'user' );
/** password */
define( 'LRS_DB_PASSWORD', 'pass' );
/** database name */
define( 'LRS_DB_NAME', 'dbname' );
/** prefix tabel */
define( 'LRS_DB_PREFIX', 'lrs_' );
/** installer enable */
define( 'LRS_INSTALLER_ENABLE', true );
/** load fungsi inti lainnya */
require_once( 'function.php' );
|
Defines¶
LRS Engine memerlukan beberapa variabel untuk menjaga konsistensi nilai maupun path.
define.abs.path.php¶
Berisi variabel path yang dapat diakses untuk keperluan akses file sistem.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | /** absolute path untuk asset */
define( 'LRS_ABS_ASSET_PATH', LRS_ABS_PATH . DS . 'asset' );
/** absolute path untuk css */
define( 'LRS_ABS_CSS_PATH', LRS_ABS_PATH . DS . 'asset' . DS . 'css' );
/** absolute path untuk js */
define( 'LRS_ABS_JS_PATH', LRS_ABS_PATH . DS . 'asset' . DS . 'js' );
/** absolute path untuk js */
define( 'LRS_ABS_IMG_PATH', LRS_ABS_PATH . DS . 'asset' . DS . 'img' );
/** absolute path untuk content upload */
define( 'LRS_ABS_UPLOAD_PATH', LRS_ABS_PATH . DS . 'asset' . DS . 'upload');
/** absolute path untuk model */
define( 'LRS_ABS_MODEL_PATH', LRS_ABS_PATH . DS . 'model' );
/** absolute path untuk view */
define( 'LRS_ABS_VIEW_PATH', LRS_ABS_PATH . DS . 'view' );
/** absolute path untuk controller */
define( 'LRS_ABS_CONTROLLER_PATH', LRS_ABS_PATH . DS . 'controller' );
/** absolute path untuk module */
define( 'LRS_ABS_MODULE_PATH', LRS_ABS_PATH . DS . 'module' );
/** absolute path untuk skin */
define( 'LRS_ABS_SKIN_PATH', LRS_ABS_PATH . DS . 'skin' );
/** absolute path untuk version */
define( 'LRS_ABS_VERSION_PATH', LRS_ABS_PATH . DS . 'VERSION.md' );
/** absolute path untuk config */
define( 'LRS_ABS_CONFIG_PATH', LRS_ABS_PATH . DS . 'config.php' );
|
define.uri.path.php¶
Berisi variabel path yang dapat diakses untuk keperluan akses publik.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /** path untuk asset */
define( 'LRS_ASSET_PATH', LRS_URL_PATH . DS . 'asset' );
/** path untuk css */
define( 'LRS_CSS_PATH', LRS_URL_PATH . DS . 'asset' . DS . 'css' );
/** path untuk js */
define( 'LRS_JS_PATH', LRS_URL_PATH . DS . 'asset' . DS . 'js' );
/** path untuk img */
define( 'LRS_IMG_PATH', LRS_URL_PATH . DS . 'asset' . DS . 'img' );
/** path untuk content upload */
define( 'LRS_UPLOAD_PATH', LRS_URL_PATH . DS . 'asset' . DS . 'upload');
/** path untuk module */
define( 'LRS_MODULE_PATH', LRS_URL_PATH . DS . 'module' );
/** path untuk skin */
define( 'LRS_SKIN_PATH', LRS_URL_PATH . DS . 'skin' );
|
define.version.php¶
Berisi variabel path yang dapat diakses untuk keperluan akses publik.
1 2 | /** versi dari LRS Engine */
define( 'LRS_ENGINE_VERSION', $current_version );
|
Functions¶
Berisi fungsi-fungsi pendukung yang banyak digunakan dalam Core, Modules, dan Skins.
-
fn.engine.php
Daftar fungsi untuk keperluan engine.
-
check_required_engine_version
($required_version, $exit, $messages)¶ Memeriksa kebutuhan versi engine untuk verifikasi module dan skin.
Parameter: - $required_version (string) -- Versi engine yang ingin dicek.
- $exit (string) -- Jika tidak sesuai, apakah langsung exit atau tidak (default
true
). - $messages (string) -- Pesan ketika exit (default
Insufficient Version of Engine
).
-
is_admin_page
()¶ Cek apakah suatu halaman merupakan halaman admin atau tidak
Kembali: yes | no
-
sync_default_params
($default, $destination)¶ Melakukan singkronisasi terhadap 2 array
Parameter: - $default (array) -- Array default sebagai sumber.
- $destination (array) -- Array tujuan.
-
in_array_r
($needle, $haystack)¶ Melakukan pencarian secara rekursif didalam array multidimensi
Parameter: - $needle (string) -- Nilai yang akan dicari.
- $haystack (array) -- Array tujuan.
-
lrs_exit
($messages = '', $type = 'info')¶ Menampilkan format pesan error pada saat exit (menghentikan script denagn paksa)
Parameter: - $messages (string) -- Nilai yang akan dicari (default string kosong, tapi script tetap
exit()
). - $type (string) -- Jenis pesan (info | alert).
- $messages (string) -- Nilai yang akan dicari (default string kosong, tapi script tetap
-
lrs_redirect
($target = LRS_URL_PATH)¶ Melakukan redirect (mengarahkan) ke sebuah halaman tertentu sesuai parameter
Parameter: - $target (string) -- Halaman tujuan.
Mendapatkan built in menu, dari daftar Pages
post_type
: jenis post ( post | page )post_parent
: ID untuk page indukpost_status
: publish | draftorderby
: order berdasarkan suatu fieldorder
: ASC | DESCnumber
: jumlah output maksimum item
Parameter: - $array (array) -- Array yang berisi key.
-
validate_url
()¶ Memastikan konsistensi URL antara requests dan
config.php
dengan melakkukan redirect.
Membantu membuat navigasi halaman berdasarkan query database.
Parameter: - $base_url (string) -- URL dasar pembentukan navigasi
- $total_data (int) -- Total keseluruhan data
- $current_page (int) -- Halaman saat ini
- $data_per_page (int) -- Jumlah data tiap page
- $range_data (int) -- Range data pada list navigasi, misal:
1
...
23
24
25
26
27
...
100
-
is_SSL_URI
()¶ Cek apakah URI yang ada pada
config.php
adalah HTTPS
-
is_SSL_request
()¶ Cek apakah URI yang di-submit merupakan HTTPS
-
minify_HTML_output
()¶ Melakukan kompresi out HTML dengan menghilangkan whitespace yang tidak diperlukan. Masukkan
ob_start( 'minify_HTML_output' )
pada bagian awal danob_end_flush()
pada bagian akhir script.
-
Models¶
Post¶
Model Post berfungsi sebagai objek untuk menyimpan data-data sebuah post, diantaranya:
$post_id
ID unik dari sebuah post.$post_status
(active | inactive)$post_type
(Post | Page)$post_title
Judul utama dari sebuah post.$post_name
Judul post dalam format URL, biasanya digunakan untuk permalink.$post_content
Materi dari post.$post_thumbnail_image
Image thumb, biasanya berukuran kecil.$post_featured_image
Image cover, biasanya berukuran cukup besar.
Model Post berada pada /model/Post.php
, dan berisi beberapa method pendukung berikut:
-
Post.php
Daftar method objek post untuk menyimpan data.
-
init
($post)¶ Init value sekaligus dalam waktu bersamaan.
Kembali: Object post.
-
get_{property_name}()
Mendapatkan nilai dari masing-masing property name.
Kembali: property value
-
set_{property_name}( $value )
Memberikan nilai ke masing-masing property name.
Parameter: - $value (int|string) -- Nilai untuk masing-masing property.
-
set_{property_name}( $value )
Memberikan nilai ke masing-masing property name.
Parameter: - $value (int|string) -- Nilai untuk masing-masing property.
-
get_permalink
($structured = false)¶ Mendapatkan URL ke masing-masing post, format
$structured
adalah/category/post-name
, dan default/post-name
.Kembali: String dalam format URL.
-
is_empty
($field = 'post_id')¶ Memeriksa apakah objek Post NULL (kosong), beberapa field yang bisa dicek:
post_name
post_title
post_content
post_date
Kembali: Boolean (true|false).
-
Controllers¶
Kelas-kelas yang berisi fungsi inti dari setiap bagian layanan.
Posts¶
Controller Posts berfungsi untuk mendapatkan data post dari database, kelas ini berada dalam direktori /controller/
dan terdiri dari beberapa method.
-
Posts.php
Daftar method untuk keperluan management post dari database.
-
get_instance
()¶ Method static yang dapat dipanggil tanpa melakukan instansiasi, berguna untuk memanggil secara cepat kontroller
Posts
, caranyaPosts::get_instance()->{method}
.Kembali: Objek kontroller Posts
.
-
get_post
($post_id, $by = 'post_id', $meta_key = '', $meta_value = '')¶ Mendapatkan 1 objek post dari database dengan mapping dari Model Post.
Kembali: Objek Model Post.
-
get_posts
($params = array())¶ Mendapatkan beberapa objek post Model Post sekaligus dengan beberapa parameter berikut:
post_title
judul dari post, default emptypost_content
isi dari post, default emptypost_type
jenis post, default Post (Post | Page | -1)post_parent
ID dari post induk, default -1post_status
status post, default Publish (Publish | Draft | -1)exclude
array dari ID Model Post yang tidak ingin dimunculkan dalam hasil, defaultarray()
category_id
ID dari kategory, default -1category_exclude
ID dari kategori yang tidak ingin dimunculkan dalam hasil, defaultarray()
post_month
bulan pembuatan post, default -1- -tbd-
Kembali: Array dari objek Model Post.
-
Modules¶
- db exporter
- mailer
- nationality
- currency
- fastboat
- tour
- flight
Skins¶
- structure