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.phpdengan 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...2324252627...100
-
is_SSL_URI()¶ Cek apakah URI yang ada pada
config.phpadalah 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_idID unik dari sebuah post.$post_status(active | inactive)$post_type(Post | Page)$post_titleJudul utama dari sebuah post.$post_nameJudul post dalam format URL, biasanya digunakan untuk permalink.$post_contentMateri dari post.$post_thumbnail_imageImage thumb, biasanya berukuran kecil.$post_featured_imageImage 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
$structuredadalah/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_namepost_titlepost_contentpost_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_titlejudul dari post, default emptypost_contentisi dari post, default emptypost_typejenis post, default Post (Post | Page | -1)post_parentID dari post induk, default -1post_statusstatus post, default Publish (Publish | Draft | -1)excludearray dari ID Model Post yang tidak ingin dimunculkan dalam hasil, defaultarray()category_idID dari kategory, default -1category_excludeID dari kategori yang tidak ingin dimunculkan dalam hasil, defaultarray()post_monthbulan pembuatan post, default -1- -tbd-
Kembali: Array dari objek Model Post.
-
Modules¶
- db exporter
- mailer
- nationality
- currency
- fastboat
- tour
- flight
Skins¶
- structure