• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

GhazaliTajuddin.com

Another Kuantan Blogger

  • Home
  • Blog
    • Kuantan
    • Foods
    • Technology
    • Health
  • Stock Photography
    • Senarai Microstock Agency
    • Membuka akaun contributor Shutterstock.com
    • Tips untuk 10 keping gambar pertama Shutterstock.com
    • Mengapa Shutterstock.com reject gambar / submission
    • Model Release
    • Bagaimana withdraw earning daripada Fotolia
    • Bagaimana untuk mengisi keyword kepada imej dengan menggunakan Adobe Photoshop

Technology

Angular Directive

August 28, 2017 by ghazalitajuddin Leave a Comment

Angular Directive adalah attribut yang dimasukkan dalam kod HTML kita, bagi menjadikan ia lebih dinamik. Ia hampir sama seperti server side script, cuma ia berlaku pada client side. Ia ada if, switch, style, class, for, dan nonBindable.

Ng If

<div *ngIf="false" style="text-align:center">
  <h1>
    Welcome to {{title}}!
  </h1>
 </div>
<div *ngIf="a > b" style="text-align:center">
  <h1>
    Welcome to {{title}}!
  </h1>
 </div>
<div *ngIf="string == 'yesza'" style="text-align:center">
  <h1>
    Welcome to {{title}}!
  </h1>
 </div>
<div *ngIf="show()" style="text-align:center">
  <h1>
    Welcome to {{title}}!
  </h1>
 </div>
//app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  a = 3;
  b = 2;
  string = "yesza";

  show(){
    return false;
  }
}

Ng Switch

<div class="container">
<div *ngIf="myVar == 'A'">Var is A</div>
<div *ngIf="myVar == 'B'">Var is B</div>
<div *ngIf="myVar != 'A' && myVar != 'B'">Var is something else</div>
</div>
<div class="container" [ngSwitch]="myVar">
<div *ngSwitchCase="'A'">Var is A</div>
<div *ngSwitchCase="'B'">Var is B</div>
<div *ngSwitchDefault>Var is something else</div>
</div>
Value is {{ choice }}

<div class="container" [ngSwitch]="choice">
  <div *ngSwitchCase="1">Var is A</div>
  <div *ngSwitchCase="2">Var is B</div>
  <div *ngSwitchDefault>Var is something else</div>
  </div>
  <button class="btn btn-primary" (click)="next()">Next Choice</button>
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  a = 3;
  b = 2;
  string = "yesza";
  myVar = "B";
  choice=1;

  show(){
    return false;
  }

  next(){
    if(this.choice < 5)
      this.choice++;
    else
      this.choice=1;
  }
}

ngStyle

<div [ngStyle]="{color: 'white', 'background-color': 'blue'}"> 
Uses fixed white text on blue background
</div>
<div class="ui input">
<input type="text" name="color" value="{{color}}" #colorinput>
</div>
<div class="ui input">
<input type="text" name="fontSize" value="{{fontSize}}" #fontinput>
</div>
<button class="ui primary button" (click)="apply(colorinput.value, fontinput.val\ ue)">
Apply settings </button>

ngClass

ngFor

<h4 class="ui horizontal divider header"> Nested data
</h4>
<div *ngFor="let item of peopleByCity">
<h2 class="ui header">{{ item.city }}</h2>
<table class="ui celled table"> <thead>
<tr> <th>Name</th> <th>Age</th>
</tr>
</thead>
<tr *ngFor="let p of item.people">
<td>{{ p.name }}</td>
<td>{{ p.age }}</td> </tr>
</table> </div>
this.peopleByCity = [ {
        city: 'Miami',
        people: [
] },
{ name:
{ name:
'John', age: 12 },
'Angel', age: 22 }
{
  city: 'Sao Paulo',
  people: [
    { name: 'Anderson', age: 35 },
    { name: 'Felipe', age: 36 }
] }
]; }

ngNonBindable

Filed Under: Technology Tagged With: angular, angular directives, ngClass, ngFor, ngIf, ngNonBindable, ngSwitch, ngSwitchCase, ngSwitchDefault

Angular-cli Command

August 25, 2017 by ghazalitajuddin Leave a Comment

Create new project

ng new nama-project

Create new component

ng generate component nama-component

atau

ng g c nama-component

Build Project

ng build --prod --base-href /

Boleh refer disini

Angular-CLI Command Reference

Filed Under: Technology Tagged With: angular, angular-cli, command line

Javascript Event Reference

August 24, 2017 by ghazalitajuddin Leave a Comment

Lately, aku ada projek yang memerlukan menggunakan javascript. So ada beberapa option,  antaranya Angular, Vue dan React. Disebabkan sebelum ini pernah explore Vue, kali ni aku terjah Angular la pulak. Antara sebab lain, aku mensasarkan untuk cuba develop mobile apps menggunakan ionic yang menggunakan Angular framework juga.

So nota kali ini adalah berkaitan Events. Kalau korang biasa main dengan form selalu la pakai  Event ni. onClick, on onSubmit, onFocus, blur, onMouseUp dan baaanyak lagi event lain yang boleh digunakan.

Boleh lah refer disini

https://developer.mozilla.org/en-US/docs/Web/Events

Filed Under: Technology Tagged With: angular, events, react js, vue

WordPress REST API Multisite

August 11, 2017 by ghazalitajuddin

I have been looking for a way to access multisite data trough WP API, but it seems very hard to find. One and only the best reference i get is from git the_glue but need some update since it not updated.

Below is my version or u can get form my git 

<?php
/*
* Plugin Name: WordPress REST API Multisite
* Plugin URI: 
* Description: 
* Version: 1.0
* Author: Ghazali Tajuddin
* Author URI: http://www.ghazalitajuddin.com
* License: MIT
* */


class WPMUrestAPI{

    function __construct() {
        add_action( 'rest_api_init', array( $this, 'call2' ));
    }
    

    public function call2() {
    // Here we are registering our route for a collection of products and creation of products.
    
        register_rest_route( 'all/sites', '/list', 
            array(
                
                // By using this constant we ensure that when the WP_REST_Server changes, our readable endpoints will work as intended.
                
                'methods'  => WP_REST_Server::READABLE,
                
                // Here we register our callback. The callback is fired when this endpoint is matched by the WP_REST_Server class.
                
                'callback' => array($this,'get_sites123'),
            )
         );
    }

   public function prefix_get_endpoint_phrase() {
        // rest_ensure_response() wraps the data we want to return into a WP_REST_Response, and ensures it will be properly returned.
        //return rest_ensure_response( 'Hello World, this is the WordPress REST API' );
        return 'Hello World, this is the WordPress REST API';
    }

    public function get_sites123() {
            
            if ( function_exists( 'get_sites' )  ) {
            $sites = get_sites( 
                [
                    'public'  => 1,
                    //'number'  => 500,
                    'orderby' => 'registered',
                    'order'   => 'DESC',
                ]
            );

            $sites_details = array();

            foreach ($sites as $site) {
                $sites_details[] = $site->blog_id;
            }

            return $sites_details;
 
    }
}

  

}


 $power = new WPMUrestAPI();

Other reference

  • https://github.com/epfl-lts2/json-rest-api-multisites
  • https://github.com/remkade/multisite-json-api
  • https://wordpress.org/support/topic/wp_get_sites-is-now-get_sites/

Filed Under: Technology Tagged With: json, multisite, REST, wordpress

Memilih Virtual Private Server (VPS)

July 23, 2017 by ghazalitajuddin 1 Comment

Salam.

Hari ni aku nak share secara umum pasal Virtual Private Server atau VPS, atau ada sesetengah org panggil Cloud Hosting. Sebab nak kata aku pakar sangat pasal cloud ni tak ler, sekadar nak kongsi basic info kenapa aku pilih VPS ni berbanding lain.

Dulu biasa kita guna Shared Hosting, atau Dedicated Server. Sekarang ada Cloud Hosting pulak.

So baru-baru ni ada keperluan untuk menggunakan cloud hosting ni, so terpaksa la aku study sikit pada vps ni.

Ada banyak option sebenarnya. Bergantung kepada keperluan dan ketebalan poket kita. So yang aku nak introduce ni adalah yang bajet biasa2 punya. Kebanyakan orang akan recommed 2 host ni, sama ada LINODE atau DIGITAL OCEAN. Nak lagi power Amazon punya. Not in our list today. Mahal hahaha.

Kebetulan aku sempat explore Digital Ocean sebelum ini, package paling murah USD 5/month, manakala LINODE pun sama USD 5/month.

Comparison antara DO & LINODE

DIGITAL OCEAN

512 MB RAM
1 CPU Core
20 GB SSD Storage
1 TB Transfer
Unknown  Gbps Network In
1000 Mbps Network Out
USD5/Month Price (Pakej Lain)

LINODE 

1 GB RAM
1 CPU Core
20 GB SSD Storage
1 TB Transfer
40 Gbps Network In
1000 Mbps Network Out
USD5/Month Price (Pakej Lain)

Kenapa Linode & DO?

  • Murah – Dua-dua sama bagus dan murah base on applikasi kecil macam yang aku buat la. Jika applikasi yg lagi besar mungkin lain cerita la kot.
  • Flexible – Jika sampai satu masa nanti ada keperluan untuk upgrade amat mudah. Boleh add servis atau apa2 yang ko suka. (Tp aku mula2 tak tau nak install apa! Nak mula kat mana huhuhu)
  • Support – Kedua-dua ada community support yang boleh membantu.
  • Documentation – Kedua-dua ada documentation masing-masing. 

SEDIKIT MENCABAR…

Haaa. Walau pun guna LINODE, DIGITAL OCEAN atau mana-mana cloud host ni best, tetapi untuk pengetahuan ko, ko bayar untuk sebuah host kosong dengan IP je! Yer, tiada OS di dalamnya. Tak macam shared hosting yang lain yang dah ready. Sebab tu kena install sendiri, melalui terminal console! Command line! Dari install operating system, add domain, sehinggalah running service apache, sql etc. Kira macam ko sertup server lah secara remote! Huhuhu. So kalau tak biasa macam aku mula2 haritu memang menangis la google documentation.

SOLUSI

Namun ada cara mudah iaitu dengan menggunakan bantuan RUNCLOUD.IO!

RUNCLOUD.IO ini adalah satu applikasi yang membantu untuk install segala item yang kita perlukan untuk server kita melalui interface yang disediakan. So kita just key in basic information diperlukan, mereka akan tolong installkan semua.

Selain itu, support RUNCLOUD.IO pun superb. Memang depa ada live chat yang memudahkan lagi kita nak bertanya secara terus. Bukan sebarang orang yang jawab live chat tu, bukan salesman, tapi technical terus. Memang terbaik RUNCLOUD.IO!

So itulah review newb aku setakat ini. Ada sebarang soalan bagitau ajelah. Apa2 hal selamat mencuba ya!

Filed Under: General, Kuantan Web Developer, Technology Tagged With: amazon, aws, bagaimana memilih vps, cloud, cloud hosting, cloud server, digital ocean, do, linode, runcloud, runcloud.io, Virtual Private Server

Opencart Custom Page

July 4, 2017 by ghazalitajuddin Leave a Comment

Baru-baru ni ada projek memerlukan penggunaan penggunaan Opencart Custom Page.

Maka, terpaksala menggodek bagaimana nak buat custom page.

Kebanyakan tutorial custom page menggunakan Opencart 1.5, aku guna Opencart 2.3.0.3 maka disebabkan itu aku pun edit code org lain dan reshare tutorial ini untuk kegunaan sendiri kemudian hari.

Agak bernasib baik sebenarnya, rupanya Opencart ni pun menggunakan konsep MVC (Model-View-Controller). Sama je macam Laravel. Maka kerja pun jadi mudahlah. 

Controller

/catalog/controller/custompage/mycustompage.php

<?php 
class ControllerCustompageMycustompage extends Controller{
  public function index(){

    // set title of the page
    $this->document->setTitle("My Custom Page");
     
    	$data['column_left'] = $this->load->controller('common/column_left');
		$data['column_right'] = $this->load->controller('common/column_right');
		$data['content_top'] = $this->load->controller('common/content_top');
		$data['content_bottom'] = $this->load->controller('common/content_bottom');
		$data['footer'] = $this->load->controller('common/footer');
		$data['header'] = $this->load->controller('common/header');
     
    // set data to the variable
    $data['my_custom_text'] = "This is my custom page.";



 	// set view
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/custompage/mycustompage.tpl')) {
			$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/custompage/mycustompage.tpl', $data));
		} else {
			$this->response->setOutput($this->load->view('custompage/mycustompage.tpl', $data));
		}
  }
}
?>

View

/catalog/view/theme/default/template/custompage/mycustompage.tpl

<?php
    echo $header;
    //echo $column_left;
     //echo $column_right; 
    ?>



    <div class="container">
     
     <div class="row">
   
        <?php

            // echo $header;
            echo $content_top;
           
           // echo $column_left; 


           echo $my_custom_text;
           
           //echo $column_right;
           echo $content_bottom;
          //echo $footer;
        ?>


    </div>
    </div>
<?php 

echo $footer; 

?>

 

Filed Under: Kuantan Web Developer, Technology Tagged With: custom page, model-view-controller, MVC, opencart, opencart custompage

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 10
  • Page 11
  • Page 12
  • Page 13
  • Page 14
  • Interim pages omitted …
  • Page 24
  • Go to Next Page »

Primary Sidebar

“Solat. Sabar. Syukur. Senyum. Sedekah.”

For Collaboration, Events & Review, kindly contact me at +6016[-]9212092 or click Whatsapp button on this page.

Sponsor

Recent Posts

BadMethodCallException Method Illuminate\Database\Eloquent\Collection::roles does not exist.

User Roles And Permissions Without Package Laravel 10

Laravel Many To Many Relationship

Makan malam bersama keluarga di Awangan Palace

Sarapan pagi di Warung Gulai Kawah

Recent Comments

  • helmi on Personal Tips Berhenti Merokok
  • ghazalitajuddin on Personal Tips Berhenti Merokok
  • helmi on Personal Tips Berhenti Merokok
  • ghazalitajuddin on Nasi Lemak Kukus Restoran Zaman. Otai masih berbisa.
  • ghazalitajuddin on Air tangki radiator Proton Exora cepat kering? Cuba tukar penutup radiator!
  • Mal on Nasi Lemak Kukus Restoran Zaman. Otai masih berbisa.
  • Firdaus on Air tangki radiator Proton Exora cepat kering? Cuba tukar penutup radiator!

My Link

  • Takaful Insurance Web

JJCM

Kopi Vietnam di Kuantan Pickers

Berpagian di Restoran Astana Cafe

Aneka Kuih Tradisional

Cendol Terbaik Di Kuantan

Nasi Lemak Kukus Restoran Zaman. Otai masih berbisa.

Tags

bebas rokok berhenti merokok breakfast Controller Framework Gezzeg Photography & Design health jalan-jalan cari makan jalan-jalan cari makan kuantan jjcm jjcm kuantan Jurufoto Kuantan Kuantan Kuantan Photographer kuantan programmer kuantan web developer kuantan webmaster laravel merokok merbahayakan kesihatan model MVC nikmat rokok OOP Pahang Pahangtourism pahang tourism Photo Manipulation PHP rajalanun retired smoking revisit pahang 2018 shutterstock stop smoking stop smoking tips stop smoking withdrawal symptom tips tips berhenti merokok View visit malaysia 2020 visit pahang visitpahang white wordpress yii Yii Framework

Recent Posts

  • BadMethodCallException Method Illuminate\Database\Eloquent\Collection::roles does not exist.
  • User Roles And Permissions Without Package Laravel 10
  • Laravel Many To Many Relationship
  • Makan malam bersama keluarga di Awangan Palace
  • Sarapan pagi di Warung Gulai Kawah

Copyright © 2025 — Ghazali Tajuddin • All rights reserved. •