Magento Maintenance Mode

Magento Maintenance Mode

Magento 1.4 + mempunyai fitur bagus yang memungkinkan kita untuk mengubah website ke “maintenance mode/ modus pemeliharaan” saat melakukan perubahan. Fiturnya nya sangat bagus, sehingga semua orang tidak dapat membuka link-link pada situs kita. Tapi, kita juga tidak dapat melakukan perubahan apapun. Nah berikut caranya agar orang lain melihat situs kita dalam ‘maintenance mode’ sedangkan kita dapat melakukan perubahan dalam web.

Yang harus kita lakukan adalah dengan mengedit 3 baris di index.php

Buka file index.php di folder root dan di atas line 57 tambahkan :

$ip = $_SERVER['REMOTE_ADDR'];
$allowed = array('4.2.0.0','1.8.2.2'); // ini adalah IP yang dibolehkan untuk melihat site tanpa maintenance mode

dan ganti code:

if (file_exists($maintenanceFile)) {

menjadi :

if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) {

Buat file kosong dengan nama maintenance.flag dan upload pada root folder.
Gampang kan? Sekarang anda dapat mengakses web anda sementara orang lain melihatnya dalam maintenance mode.
Jika ingin mengganti designnya masuk ke :
errors -> local.xml -> pada default ganti dengan nama_skin_baru
Buat folder nama_skin_baru di errors. Ubah 503.phtml dan masukkan css dan file-file yang diperlukan.

Semoga membantu 🙂

Magento – Static Block di phtml

Berikut adalah cara untuk menggunakan static block di phtml.
Misal kita mempunyai sebuah static block dengan identifier ‘block_adis’ dan kita ingin menggunakannya di header.phtml.

1. Buka file header.phtml

2. Pastekan code berikut pada bagian header yang anda inginkan

<!-- static block stylist -->
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_adis')->toHtml() ?>
<!-- static block stylist -->

Selesai, semoga membantu 😀

Magento – Send Email

Untuk mengirim email di magento kita dapat dengan mudah melakukannya dengan menggunakan Zend_Mail
Berikut contohnya :

/**
 * Send email
 */
public function sendEmail()
{
    $fromEmail = "from@example.com"; // sender email address
    $fromName = "John Doe"; // sender name
 
    $toEmail = "to@example.com"; // recipient email address
    $toName = "Mark Doe"; // recipient name
 
    $body = "This is Test Email!"; // body text
    $subject = "Test Subject"; // subject text
 
    $mail = new Zend_Mail();        
 
    $mail->setBodyText($body);
 
    $mail->setFrom($fromEmail, $fromName);
 
    $mail->addTo($toEmail, $toName);
 
    $mail->setSubject($subject);
 
    try {
        $mail->send();
    }
    catch(Exception $ex) {
        // Saya asumsikan anda mempunyai custom_modul.
        // Jika tidak, anda dapat mengganti 'modulku' dengan default magento 'customer'
        Mage::getSingleton('core/session')
            ->addError(Mage::helper('modulku')
            ->__('Unable to send email.'));
    }
}

Selesai, semoga membantu 😀

Magento – Form dan Controller Frontend

Untuk membuat form di frontend pada Magento banyak cara yang dapat digunakan. Disini saya akan membahas bagaimana membuat form lewat phtml dan membuat controllernya. Disini saya menamai ‘name_space’ dengan nama Adisthana dan ‘modul’ dengan nama Modulku. Saya asumsikan anda sudah mempunya modul tersebut pada magento anda.

1. Buka file Adisthana/Modulku/etc/config.xml cari tag <frontend>, jika belum ada tambahkan code seperti dibawah :

  <frontend>
    <routers>
        <modulku>
            <use>standard</use>
            <args>
                <module>Adisthana_Modulku</module>
                <frontName>modul</frontName>
            </args>
        </modulku>
    </routers>
	<layout>
		<updates>
			<modulku>
				<file>modulku.xml</file>
			</modulku>
		</updates>
	</layout>
  </frontend>
-
-
-
-
<blocks>
            <modulku>
                <class>Adisthana_Modulku_Block</class>
            </modulku>
        </blocks>
        <helpers>
            <modulku>
                <class>Adisthana_Modulku_Helper</class>
            </modulku>
        </helpers>
 

2. Insert xml pada layout di frontend –> frontend/default/Nama_themes/layout/modulku.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
    </default>
    <modulku_index_index><!--modulename_controllername_actionName-->
        <reference name="content">
            <block type="core/template" name="modulku" template="modul/modul.phtml" />
        </reference>
    </modulku_index_index>
</layout>

3. Buat form anda di frontend/default/Nama_themes/template/modul/modul.phtml Form berikut adalah permisalan

<form id="modul_form" name="modul_form" action="<?php echo $this->getUrl('modul/') ?>index/createNewFormModul" method="post">
//element form anda disini
</form>

4. Buat Helper di Adisthana/Modulku/Helper/Data.php

<?php

class Adisthana_mosulku_Helper_Data extends Mage_Core_Helper_Abstract
{

}

5. Buat controller form anda. Adisthana/Modulku/controller/IndexController.php

<?php

class Adisthana_Modulku_IndexController extends Mage_Core_Controller_Front_Action {
    public function createNewFormModulAction() {
		// script disini
		// linknya nanti menjadi domain.com/modul/index/createNewFormModul
    }
}

Selesai. Nanti akan saya lanjutkan bagaimana untuk save ke databasenya pada artikel yang berbeda.
Semoga membantu 🙂

Magento – Upgrade Sql Setup Module

Magento – Upgrade Sql Setup Module

Magento – Upgrade Sql Setup Module

Saya asumsikan anda sudah membaca artikel terdahulu tentang ‘Setup SQL Magento Modul‘ . Sekarang kita sudah mempunyai module dengan nama Modulku dengan versi 0.1.0. Anda ingin menambahkan table atau menambahkan field pada database module anda.  Anda sudah mempunyai  file  mysql4-install-0.1.0.php (mysql setup file) di Modulku/sql/modulku_setup folder.

  1. Buat sebual file baru di dalam folder Modulku/sql/modulku_setup dengan nama mysql4-upgrade-0.1.0-0.1.1.php. Format penulisannya adalah mysql4-upgrade-CURRENT_VERSION-UPGRADED_VERSION.php
  2. Tulisakan sintak sql untuk upgrade atau membuat table baru.
    <?php
    
    $installer = $this;
    
    $installer->startSetup();
    
    $installer->run("
    
    script upgrade anda
    
    ");
    $installer->endSetup();
    
  3. Buka file config.xml di Modulku/etc/config.xml. Ubah versi module 0.1.0 menjadi 0.1.1 
    <?xml version="1.0"?>
    <config>
    
    <modules>
    <Adisthana_Modulku>
    <version>0.1.1</version>
    </Adisthana_Modulku>
    </modules>
    
    
  4. Refresh website dan selesai.

Magento – Module sql setup/install

Apa yang dimaksud dengan sql setup/install pada Magento?
Ketika anda ingin membuat module baru atau mengedit modul yang sudah ada mungkin anda perlu untuk menambah atau membuat sebuah tabel baru pada database. Nah, pada magento sudah disediakan layanan untuk membuat/ mengedit tabel dengan installer script.

Membuat installer/sql setup
Untuk membuat sql setup pada magento sangatlah mudah. Dengan beberapa langkah anda sudah bisa membuat tabel/ field baru pada database anda.

1. Buka file app/etc/modules/Modulku.xml (Disini nama modul yang akan saya setup adalah custom modul : Modulku)

<?xml version="1.0"?>
<config>
  <modules>
    <Adisthana_Modulku>
      <active>true</active>
        <codePool>local</codePool>
    </Adisthana_Modulku>
  </modules>
</config>
 

2. Buka file dan definisikan setup anda di /app/code/local/Adisthana/Modulku/etc/config.xml

<?xml version="1.0"?>
<config>

  <modules>
    <Adisthana_Modulku>
      <version>0.1.0</version>
    </Adisthana_Modulku>
  </modules>

  <global>
    <resources>

      <!-- Declaring module setup handler -->
      <!-- [start] -->
      <modulku_setup>
        <setup>
          <module>Adisthana_Modulku</module>
        </setup>
        <connection>
          <use>core_setup</use>
        </connection>
      </modulku_setup>
      <!-- [End] -->

      <modulku_write>
        <connection>
          <use>core_write</use>
        </connection>
      </modulku_write>

      <modulku_read>
        <connection>
          <use>core_read</use>
        </connection>
      </modulku_read>

    </resources>
  </global>
</config>
 

3. Tuliskan installer anda di Modulku/sql/modulku_setup/mysql4-install-0.1.0.php

<?php

  $installer = $this;

  $installer->startSetup();

  $installer->run("

CREATE TABLE IF NOT EXISTS {$this->getTable('adis')} (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_customer` varchar(30) NOT NULL,
  `address` varchar(200) NOT NULL,
  `city` varchar(50) NOT NULL,
  `state` varchar(50) NOT NULL,
  `zip` varchar(10) NOT NULL,
  `telp_number` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
");

  $installer->endSetup();

4. Selesai. Simple dan mudah kan? 😀

5. Untuk upgrade sql setup anda bisa baca disini