Menambah Elemen Detail Galeri
- Administrator
- , Theme element, Gallery,
- 1289 Kali Dilihat
- 0 Komentar
Cara Menambah Elemen Detail Galeri
Bagi anda para pengguna PopojiCms tentu paham dan mengetahui fitur-fitur serta elemen tema yang dimiliki PopojiCms. Dua diantara elemen yang ada adalah album.php untuk menampilkan halaman album, yang terdiri dari beberapa galeri album dan elemen galeri yang menampilkan isi galeri atau kumpulan photo. Pada komponent galeri ini terdiri dari "album, judul Galeri, konten, dan gambar galeri". Untuk lebih memahami maksud saya, silahkan lihat halaman album yang anda miliki, disana akan terdiri dari beberapa album, dan jika anda pilih salah satu album, anda akan lihat beberapa photo pada halaman tersebut. Dan oleh karena kebutuhan tentang galeri ini, maka saya buat sebuah elemen baru yaitu "detailgallery.php". Dimana elemen ini akan menampilkan detail sebuah photo lengkap dengan konten yang dimiliki. Supaya anda lebih paham tentang maksud saya silahkan kunjungi halaman album new4jovem.com
Baca Juga Cara Menampilkan Album dan Galeri pada beranda Website
Pada halaman album tersebut anda akan mendapati struktur sebagai berikut: Album > Gallery > Detail Gallery.
Bagi anda yang tertarik dan penasaran berikut saya ulas tentang Cara Menambah Elemen Detail Galeri:
Menambahkan script untuk merender elemen detailgallery.php
Silahkan buka root_dir/po-content/component/gallery/gallery.php
kemudian tambahkan snippet berikut pada baris paling bawah.
/**
* Router untuk menampilkan request halaman detailgallery.
*
* Router for display request in detailgallery page.
*
* $seourl = string [a-z0-9_-]
*/
$router->match('GET|POST', '/detailgallery/([a-z0-9_-]+)', function($seotitle) use ($core, $templates) {
$lang = $core->setlang('gallery', WEB_LANG);
$gallery = $core->podb->from('gallery')->where('seotitle', $seotitle)->limit(1)->fetch();
if ($gallery) {
'page_title' => $gallery['title'],
'page_desc' => $core->posetting[2]['value'],
'page_key' => $core->posetting[3]['value'],
'social_mod' => $lang['front_gallery'].' '.$gallery['title'],
'social_name' => $core->posetting[0]['value'],
'social_url' => $core->posetting[1]['value'].'/detailgallery/'.$gallery['seotitle'],
'social_title' => $core->posetting[0]['value'],
'social_desc' => $core->posetting[2]['value'],
'social_img' => BASE_URL.'/'.DIR_CON.'/uploads/medium/medium_'.$gallery['picture'],
);
$adddata = array_merge($info, $lang);
$templates->addData(
$adddata
);
echo $templates->render('detailgallery', compact('lang', 'gallery'));
} else {
$info = array(
'page_title' => $lang['front_gallery_not_found'],
'page_desc' => $core->posetting[2]['value'],
'page_key' => $core->posetting[3]['value'],
'social_mod' => $lang['front_gallery'],
'social_name' => $core->posetting[0]['value'],
'social_url' => $core->posetting[1]['value'],
'social_title' => $lang['front_gallery_not_found'],
'social_desc' => $core->posetting[2]['value'],
'social_img' => $core->posetting[1]['value'].'/'.DIR_INC.'/images/favicon.png'
);
$adddata = array_merge($info, $lang);
$templates->addData(
$adddata
);
echo $templates->render('404', compact('lang'));
}
});
Dan jika anda memiliki keinginan untuk menambahkan hits untuk detailgaleri, tambahkan kode berikut:
$query_hits = $core->podb->update('gallery')
->set(array('hits' => $gallery['hits']+1))
->where('id_gallery', $gallery['id_gallery']);
$query_hits->execute();
$info = array(
Sehingga snippet yang harus anda tambahkan pada file gallery.php
secara keseluruhan menjadi seperti berikut:
/**
* Router untuk menampilkan request halaman detailgallery.
*
* Router for display request in detailgallery page.
*
* $seourl = string [a-z0-9_-]
*/
$router->match('GET|POST', '/detailgallery/([a-z0-9_-]+)', function($seotitle) use ($core, $templates) {
$lang = $core->setlang('gallery', WEB_LANG);
$gallery = $core->podb->from('gallery')->where('seotitle', $seotitle)->limit(1)->fetch();
if ($gallery) {
$query_hits = $core->podb->update('gallery')
->set(array('hits' => $gallery['hits']+1))
->where('id_gallery', $gallery['id_gallery']);
$query_hits->execute();
$info = array(
'page_title' => $gallery['title'],
'page_desc' => $core->posetting[2]['value'],
'page_key' => $core->posetting[3]['value'],
'social_mod' => $lang['front_gallery'].' '.$gallery['title'],
'social_name' => $core->posetting[0]['value'],
'social_url' => $core->posetting[1]['value'].'/detailgallery/'.$gallery['seotitle'],
'social_title' => $core->posetting[0]['value'],
'social_desc' => $core->posetting[2]['value'],
'social_img' => BASE_URL.'/'.DIR_CON.'/uploads/medium/medium_'.$gallery['picture'],
);
$adddata = array_merge($info, $lang);
$templates->addData(
$adddata
);
echo $templates->render('detailgallery', compact('lang', 'gallery'));
} else {
$info = array(
'page_title' => $lang['front_gallery_not_found'],
'page_desc' => $core->posetting[2]['value'],
'page_key' => $core->posetting[3]['value'],
'social_mod' => $lang['front_gallery'],
'social_name' => $core->posetting[0]['value'],
'social_url' => $core->posetting[1]['value'],
'social_title' => $lang['front_gallery_not_found'],
'social_desc' => $core->posetting[2]['value'],
'social_img' => $core->posetting[1]['value'].'/'.DIR_INC.'/images/favicon.png'
);
$adddata = array_merge($info, $lang);
$templates->addData(
$adddata
);
echo $templates->render('404', compact('lang'));
}
});
Membuat elemen file detailgalerry.php
pada tema aktif
Buatlah sebuah file baru pada root_dir/po-content/themes/theme-active/detailgallery.php
Berikut adalah snippet untuk detailgallery.php:
breadcrumb untuk detailgallery:
<a href="<?=BASE_URL;?>"><?=$this->e($front_home);?></a>
<a href="<?=BASE_URL.'/album';?>"><?=$this->e($front_gallery);?></a>
<h1><?=$this->e($page_title);?></h1>
Judul Gallery: <?=$gallery['title'];?>
Konten: <?=htmlspecialchars_decode(html_entity_decode($this->e($gallery['content'])));?>
Gambar: <img src="<?=BASE_URL.'/'.DIR_CON.'/uploads/medium/medium_'.$gallery['picture'];?>" alt="<?=$gallery['title'];?>">
Hits: <?=$gallery['hits'];?> <?=$this->e($front_hits);?>
Link Gambar: <a class="p-view prettyPhoto" title="<?=$gallery['title'];?>" data-gal="prettyPhoto[gal]" href="<?=BASE_URL.'/'.DIR_CON.'/uploads/medium/medium_'.$gallery['picture'];?>">
Link Untuk Halaman Album: <a href="<?=BASE_URL.'/album';?>"><?=$gallery['title'];?></a>
Link Untuk Halaman Gallery: <a class="p-link" href="<?=BASE_URL.'/gallery/'.$this->e($gal['seotitle']);?>"></a>
Oleh karena kita telah membuat elemen untuk halaman detailgaleri
, maka ada baiknya jika kita menambahkan penggalan konten dan link untuk mengarahkan pada halaman detailgaleri.
Bagaimana Membuat galeri atau slider Post?
Berikut adalah snippet pada file gallery.php
:
<?php
$gallerys = $this->gallery()->getGallery('12', 'id_gallery DESC', $album, $this->e($page));
foreach($gallerys as $gal){
?>
Gambar: <img src="<?=BASE_URL.'/'.DIR_CON.'/uploads/'.$gal['picture'];?>" alt="<?=$gal['title'];?>">
Link Gambar: <a class="p-view prettyPhoto" title="<?=$gal['title'];?>" data-gal="prettyPhoto[gal]" href="<?=BASE_URL.'/'.DIR_CON.'/uploads/medium/medium_'.$gal['picture'];?>"></a>
Link Untuk Halaman Detail Galeri: <a class="p-link" href="<?=BASE_URL.'/detailgallery/'.$this->e($gal['seotitle']);?>"> </a>
Judul Galeri: <h3><a href="gallery-single.html"><?=$gal['title'];?></a></h3>
Penggalan Konten Pada Halaman Galeri: <p><?=$this->pocore()->call->postring->cuthighlight('post', $gal['content'], '250');?>...</p>
<?php }?>
Karena pada detailgaleri kita menambahkan hits, maka pada table gallery juga harus ditambahkan kolom untuk hits. Berikut cara menambahkan kolom hits pada table gallery:
Silahkan kunjungi PhpMyadmin > klik database website anda > klik pada table gallery > Klik Structure
Tambahkan kolom setelah seotitle kemudian isi kolom tersebut seperti berikut:
Name: hits
Type: INT
Length/values: 10
Default: As devined (1)
~ Selamat mencoba ~