[trick] Setting Host Name Localhost di Linux Lite

Bismillah…

Kali ini sekedar catatan langkah melakukan hostname di localhost, kalo misalkan kita akses aplikasi via:

localhost/aplikasi atu 127.0.0.1/aplikasi

Kita mau ubah menjadi seperti ini:

aplikasi.local

Berikut ini langkahnya (pastikan menggunakan XAMPP untuk LINUX):

  1. Buka file /opt/lampp/etc/ http.conf dengan nano atau vim
  2. Cari file line “Virtual Host” di nomor 480, lalu uncomment… source: http://stackoverflow.com/a/10878285
  3. Buka file /opt/lampp/etc/extra/httpd-vhosts.conf dengan nano atau vim. lalu tambahkan virtual host. source: http://stackoverflow.com/q/10878284
  4. Buka file /etc/hosts dengan nano atau vim, tambahkan disamping “localhost” dengan nama ServerName yang diset di langkah 3 tadi.
  5. Restart xampp dengan perintah ” sudo /opt/lampp/lampp restart “
  6. Done.

Have a nice day!

Sumber:

  1. http://stackoverflow.com/questions/11259414/virtual-host-not-working-in-zend-framework
  2. https://framework.zend.com/manual/2.4/en/user-guide/skeleton-application.html
  3. http://stackoverflow.com/questions/10878284/virtual-hosts-xampp-linux-ubuntu-not-working

[trick] beberapa plugin php yang dipakai untuk edit photo


// IMG_FILTER_EDGEDETECT
// IMG_FILTER_BRIGHTNESS
// IMG_FILTER_COLORIZE
// IMG_FILTER_EMBOSS
// IMG_FILTER_GAUSSIAN_BLUR
// IMG_FILTER_GRAYSCALE
// IMG_FILTER_NEGATE
// IMG_FILTER_MEAN_REMOVAL
// IMG_FILTER_SMOOTH

header("Content-type:image/jpeg");
$image = imagecreatefromjpeg('koala.jpg');
imagefilter($image,IMG_FILTER_GRAYSCALE,70);
imagejpeg($image);

kali ini saya akan menggunakan gray scale, yang hasilnyan seperti ini.

koala

 

fungsi lainnya :

https://topidesta.wordpress.com/2015/04/08/memaksimalkan-penggunaan-input-typerange-html-5/

Share Custom Share Social Media

like and share

kita pasti mikir gimana ya caranya button share atau like itu kita buat sendiri , bukan memakai langsung dari facebook atau sosmed lainnya.

nah saya share share dikit aja disini, ya meskipun sedikit mudah2an membantu lah.. hahaha

untuk facebook:

</pre>
<a href="https://www.facebook.com/sharer/sharer.php?u=<? echo $url_webnya ;?>">share fb</a>

untuk twitter:

</pre>
<a href="https://twitter.com/intent/tweet?text=<?php echo $title_web; ?> <?=$url_webnya;?>">share twiiter</a>

untuk google_plus:

</pre>
<a href="https://plus.google.com/share?url=<?php echo $url; ">share g+</a>

Nah demikian lah scriptnya, mudah bukan. heheh, selamat mencoba

[share] Catatan Code PHP Sederhana Untuk Web Service

Bismillah…

sekedar catatan gw ajah …😛

	function __construct()
	{
		parent::__construct();
		$this->load->helper(array('url','form','string','text','security','html','debug','api'));
		
		// Load client library for test
		$this->load->spark('curl/1.2.0');
		$this->load->spark('restclient/2.0.0');
		$this->load->library(array('guzzle','http'));

		// Others
		$this->directory = 'api/';
		$this->name = 'bpjs';
	}

ini untuk library http dengan method GET:

		$sep = 'XXXXXXXXXXXXXXXXXXX';
		$hash = bpjs_hash_request(); //exit(dump($hash));

		$this->http->useCurl();
		$this->http->setMethod('GET');
		$this->http->addHeader('X-cons-id', $hash['con']);
		$this->http->addHeader('X-Timestamp', $hash['tim']);
		$this->http->addHeader('X-Signature', $hash['sig']);
		$this->http->execute('http://wwww.google.com/WsLokalRest/SEP/sep/'.$sep);
		echo "


<pre>"; echo ($this->http->error) ? $this->http->error : $this->http->result;
		$this->http->clear();

ini untuk library guzzle dengan method GET:

$url 	 = "http://www.google.com/WsLokalRest/SEP/";
		$hash 	 = bpjs_hash_request();
		
		$client  = new GuzzleHttp\Client([
            'base_uri' => $url,
            'timeout'  => 15.0,
            'headers' => [
                "User-Agent" => 'testing/1.0',
        	"Accept"     => 'application/json',
        	"X-cons-id" => $hash['con'],
        	"X-Timestamp" => $hash['tim'],
        	"X-Signature" => $hash['sig']
        	],
        ]);

		// $response = $client->get('sep/'.$sep, ['debug' => true]);
		$response = $client->request('GET', 'sep/'.$sep);
		// $response = $client->get('sep/'.$sep);

		// show data
		$contents = $response->getBody()->getContents();
		echo "


<pre>"; echo ($contents);

ini untul library curl dengan method GET:


	$hash = bpjs_hash_request();

		$this->curl->create('http://www.google.com/WsLokalRest/SEP/sep/'.$sep);

		$this->curl->http_method('GET');
		$this->curl->http_header('X-cons-id',$hash['con']);
		$this->curl->http_header('X-Timestamp',$hash['tim']);
		$this->curl->http_header('X-Signature',$hash['sig']);

		$result = $this->curl->get()->execute();
		echo "


<pre>"; echo $result;

ini untul library Guzzle dengan method POST:

// cara pertama
$res = $client->post('aplicaresws/rest/bed/create/'.$ppk_rsp, [
		    'json' => [
		        'kodekelas' => 'VVP',
		        'namaruang' => 'SUPER VIP',
		        'koderuang' => 'SUPER VIP',
		        'kapasitas' => 'KELAS UTAMA I',
		        'tersedia'  => 10
		    ]
		]);

// cara kedua 
		$res = $client->request('POST','aplicaresws/rest/bed/create/'.$ppk_rsp, [
			'json' => [
				'kodekelas' => 'VVP',
				'namaruang' => 'SUPER VIP',
				'koderuang' => 'SUPER VIP',
				'kapasitas' => 'KELAS UTAMA I',
				'tersedia'  => 10,
			]
		]);

// cara ketiga
		$res = $client->post('aplicaresws/rest/bed/create/'.$ppk_rsp, [
		    'headers' => ['Content-Type' => 'application/json'],
		    'body' => json_encode([
		        'kodekelas' => 'VVP',
		        'koderuang' => 'SUPER VIP',
		        'kapasitas' => 'KELAS UTAMA I',
		        'tersedia'  => 10
		    ]),
		    'future' => true
		]);

// source: http://stackoverflow.com/a/38060763

eh ternyata, guzzle 6 untuk PHP 5.5 sedangkan server gw pake 5.4 yaudah downgred lah pake guzzle 6…. cuman beda sikit ajah ini yang guzzel 5:

	
$client  = new GuzzleHttp\Client([
            'base_url' => $this->url_bed_bpjs,
            'timeout'  => 15.0,
            'defaults' => [
            'headers' => $this->header_bpjs
            ]
        ]);
// base_url itu guzzle 5, kalo base_uri itu guzzle 6
// headers di guzzle 5 dibuat array di defaults

Oya ini source guzzle yang akhirnya gw putuskan untuk dipake:

  1. Guzzle 5
  2. Guzzle 6
  3. Guzzle Terbaru
  4. Library Guzzle

Done, Have A Nice Day!

🙂

[share] Templating di Codeignter Dengan Mudah

Bismillah…

Kali ini gw mau share berdasarkan trick dari link ini:

https://samsonasik.wordpress.com/2009/04/30/template-layout-helper-pada-codeigniter/

Nah, trick templating ini lumayan simple dan ringkas dibanding kita harus mengakes view, misalkan:

$this->load->view(‘header’);

$this->load->view(‘isi’);

$this->load->view(‘footer’);

Intinya kita harus buat sebuah file templating utama/kedua/ketiga dimana dibody terdapat variabel tertentu yang menyimpan data, dengan memanfaatkan helper templating ini kita bisa pake berbagai macam theme…  ini gw pake di project tempat gw sendiri bisa diliat disini:

http://infobed.rsuppersahabatan.co.id/

Langkah pertama buat sebuah file helper, kita namakan, layout_helper.php, isinya kurang lebih kayak gini, ini gw pake 2 theme berbeda:

if ( ! function_exists('show'))
    {
        function  show($view, $data)
        {
           global $template;
           $ci = &get_instance();
           $data['view'] = $view;
           $ci->load->view($template, $data);
        }
    }

if ( ! function_exists('show_2'))
    {
        function  show_2($view, $data)
        {
           global $template_2;
           $ci = &get_instance();
           $data['view'] = $view;
           $ci->load->view($template_2, $data);
        }
    }

Langkah ke dua, load helper show itu di controller, kurang lebih kayak gini:

// load di controller pertama
	$view = "welcome/page";
	$kueri = $this->rest->get('FUNGSI_DARI_WEBSERVICE'); //exit(dump($data_bed));
	$bed['data'] = $kueri;
	// render
	show($view,$bed);

// load di controller kedua
	$view = "welcome/page_2";
	$kueri = $this->rest->get('FUNGSI_DARI_WEBSERVICE'); //exit(dump($kueri));
	$kuepi = $this->rest->get('FUNGSI_DARI_WEBSERVICE'); //exit(dump($kuepi));
	$bed['data'] = $kueri;
	$bed['kueh'] = $kuepi;
	// render
	show_2($view,$bed);

// tambahkan kode ini di layout master, di folder view
<?php $this->load->view($view);?>

Done. Simple kan? trick ini bisa kita pake, kalo ternyata library template kita terlalu kompleks dan pengen simple ajah coba pake helper ini, dijamin, lebih fokus ke bisnis proses….😛

Have a nice Day!

[trick] Mengambil Data Detail SEP Bridging BPJS Dengan Http Class

Bismillah…

ada banyak class class php yang bisa buat ngehandle cURL php secara native…. kenapa gw ngehindarin native, karena gw males ngulang fungsi yang sama untuk ouput yang sama…. ini bbrp class cURL yang gw dapet dari internet:

  1. cURL via https://github.com/philsturgeon/codeigniter-curl
  2. GuzzlePHP via http://docs.guzzlephp.org/en/latest/
  3. restClient via https://github.com/philsturgeon/codeigniter-restclient
  4. Http via http://phpfour.com/php-http-class/ or https://github.com/phpfour/http

Yap, kalo di aplikasi yang gw kembangin, yang udah berhasil ditest untuk dilempar ke service bpjs baru secara native dan Http. karena judul kali ini dengan Http Class nah, ini bbrp tambahan script http yang memang belum diupdate, karena bpjs menerima header dalam mengecek data yang dipinta, sedangkan http class belum ada silahkan tambahkan (informasi ini didapat dari kolom komentar):

//http://phpfour.com/php-http-class/#comment-591408832
/**
* Add a header to the request
* 
* @param string Name of header
* @param string Value of header
* @return void
*/
function addHeader($name, $value){
if(!empty($name) && !empty($value)){
$this->headers[] = $name . ": " . $value;
}
}

//In method execute() add
curl_setopt($ch, CURLOPT_HTTPHEADER,	$this->headers);	// Set custom headers

Kalo udah ditambahkan ini yang gw lakuin memanggil fungsi fungsi dari class http:

// HASH YANG DITENTUKAN OLEH BPJS
$hash = bpjs_hash_request(); //exit(dump($hash));
$this->http->useCurl();
$this->http->setMethod('GET');
$this->http->addHeader('X-cons-id', $hash['con']);
$this->http->addHeader('X-Timestamp', $hash['tim']);
$this->http->addHeader('X-Signature', $hash['sig']);
$this->http->execute('IP_BPJS/SEP_PASIEN');
echo "<pre>"; echo ($this->http->error) ? $this->http->error : $this->http->result;
$this->http->clear();

Dan nanti responsenya 200, kelar deh. dengan bbrp line saja kita sudah bisa mengambil data dari BPJS tanpa dengan pengulangan fungsi curl php sendiri.

Have a nice day!