Magento – Menggunakan jQuery di Magento

Secara default Magento menggunakan Prototype untuk library javascriptnya. Namun terkadang kita membutuhkan beberapa hal yang sulit untuk dilakukan prototype, maka kita disini akan mencoba untuk menginstall dan menggunakan jQuery sebagai library tambahan. Oh, ya sempat beberapa waktu lalu ada yang memberi tahu saya bahwa kedepannya magento tidak akan menggunakan prototype lagi dan akan bermigrasi total ke jQuery.

1. Download jQuery kemudian simpan di js -> jQuery -> filejQuery.js
2. Buka file app/design/frontend/default/template_custom/layout/local.xml

<?xml version="1.0" encoding="UTF-8"?>
<layout>
	<default>
		<reference name="head">
			<action method="addJs"><script>jquery/filejQuery.js</script></action>
		</reference>
	</default>
</layout>
 

3. Masuk ke backend, pilih CMS, add new CMS
4. Buat jQuery toggle sederhana seperti berikut :
html :

<p class="trigger"><a>Click here</a>
</p><div class="toggle_container">
<div class="block">
<ul>
<li>List item 01</li>
<li>List item 02</li>
<li>List item 03</li>
<li>List item 04</li>
</ul></div>
</div>
 

jQuery :

<script type="text/javascript">
 jQuery.noConflict();
 jQuery(document).ready(function(){
	jQuery(".toggle_container").hide();
	 jQuery("p.trigger").click(function(){
	 jQuery(this).toggleClass("active").next().toggle();
	});
});
</script>

5. Lihat hasilnya pada frontend sesuai link CMS page anda. Selesai
6. 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