Magento – How to run a SQL query against the database

In order to run a SQL query against the Magento database, you first need a resource model then a database connection.

$db = Mage::getResourceSingleton('core/resource')->getConnection('core_write');
$result = $db->query('SELECT 'entity_id' FROM 'catalog_product_entity');

if(!$result) {
    return FALSE;
}

$rows = $result->fetch(PDO::FETCH_ASSOC);

if(!$rows) {
    return FALSE;
}

print_r($rows);

Magento – Database Repair Tool

The Magento Database Repair Tool compares 2 databases (reference and target), and updates the target database so it has the same structure as the reference database by doing the following:

  • Adds missing tables, or repairs them to have the same engine type and char-set.
  • Adds missing fields or repairs them.
  • Removes inconsistent data from tables that have broken foreign key references.
  • Adds missing foreign keys and indexes.

You can download it here. For a full list of features and instructions, you can refer to this wiki post.

Magento – Add additional fields to the Contact Form

If you need to add additional fields to Magento’s default contact form, read on! First open the form.phtml file located in your /magento_root/app/design/frontend/YOUR_INTERFACE/YOUR_THEME/template/contacts/form.phtml. So, we are going to add a subject field to this contact form so that customers tell us the subject of their email. Open the file for editing in your favorite editor.

Find this section in the file below (this should be around line 39):

<div class="input-box">
    <label for="name"><?php echo Mage::helper('contacts')->__('Name') ?> <span class="required">*</span></label><br />
    <input name="name" id="name" title="<?php echo Mage::helper('contacts')->__('Name') ?>" value="<?php echo $this->htmlEscape($this->helper('contacts')->getUserName()) ?>" class="required-entry input-text" type="text"/>
</div>

We are going to add another field above this one for the subject of the email. Copy and paste this code above the block of code (name field) referenced above.

<div class="input-box">
    <label for="subject"><?php echo Mage::helper('contacts')->__('Subject') ?> <span class="required">*</span></label><br />
    <input name="subject" id="subject" title="<?php echo Mage::helper('contacts')->__('Subject') ?>" value="" class="required-entry input-text" type="text"/>
</div>

As far as Magento is concerned, it doesn’t care what fields we add to this form. It is written in such a way that it accepts all of the field posted for processing and send that out to the transactional e-mail form that you create. Now, go to System->Transactional E-mails in the Magento Admin section. Click “Add New Template” and from the “Template” dropdown box select “Contact Form” then “Load Template”. Under template content you will see:

Name: {{var data.name}}
E-mail: {{var data.email}}
Telephone: {{var data.telephone}}

Comment: {{var data.comment}}

Add your new field before Name: {{var data.name}} so that now it should looks like this:

Subject: {{var data.subject}}
Name: {{var data.name}}
E-mail: {{var data.email}}
Telephone: {{var data.telephone}}

Comment: {{var data.comment}}

Enter a new name under “Template Name” to save your new Template and click on “Save Template”. Now we need to tell Magento to use this new template for the Contact form. Go to System->Configuration and select “Contacts”. Under “Email Options”, select your new template under the “Email Template” dropdown box. Click on “Save Config”.

That’s it! ;)

Magento – The best Magento Extensions

Here are some of the best Magento extensions that I’ve come across.

  • Magento Live Chat

    This free module will provide LiveChat support in Magento.

  • Fontis WYSIWYG Editor

    This extension gives you the option to enable a JavaScript WYSIWYG editor to specified admin pages. Currently available editors are: TinyMCE and FCKeditor.

  • Lazzymonks Twitter

    Displays Twitter updates in the menu and allows updates from within the admin panel.

  • Events Calendar

    With this extension, you can display an events calendar on your website. Events are stored in the database. You can also display the upcoming list of events quickly by calling a block in your template.

  • Blog

    Full featured blog extension for Magento.

  • Raffle

    This module gives you basic functionality to run your own raffles.

  • Customer Groups Configurable Catalog

    This extension enables you to hide categories and products from customers depending on the customer group.

  • Exploded Menu

    Replaces the standard single column drop down with a multi-column dropdown featuring 2nd and 3rd level menu items.

  • Velite Magento Superstage

    Functionality, intuitive interaction and product presentation with really high detailed images are the main features.

  • Magento EasyLightbox

    This small extension will help to install Lightbox widget. Installation and configuration will take approximately 5 minutes. No files are replaced and no codding experience needed to install!

  • Magento Exploded Menu

    Replaces the standard Magento menu with a multi-column drop down menu system.

Drupal – The Best and my Favorite Modules

I’ve worked with Drupal in the past for several projects and have come across some modules that have become my favorites. Here they are:

  • Tiny MCE

    This module was the first to integrate Moxiecode’s popular TinyMCE WYSIWYG editor into a Drupal site for editing advance site content.

  • Simple News

    Simplenews publishes and sends newsletters to lists of subscribers. Both anonymous and authenticated users can opt-in to different mailing lists. HTML email can be send by adding Mime Mail module.

  • Views

    The Views module provides a flexible method for Drupal site designers to control how lists and tables of content (nodes in Views 1, almost anything in Views 2) are presented. Traditionally, Drupal has hard-coded most of this, particularly in how taxonomy and tracker lists are formatted.

  • Panels

    The Panels module allows a site administrator to create customized layouts for multiple uses. At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout.

  • Content Construction Kit (CCK)

    The Content Construction Kit allows you to add custom fields to nodes using a web browser.

  • Path Auto

    The Pathauto module automatically generates path aliases for various kinds of content (nodes, categories, users) without requiring the user to manually specify the path alias. This allows you to get aliases like /category/my-node-title.html instead of /node/123.

  • Five Star

    The Five Star voting module adds a clean, attractive voting widget to nodes in Drupal

  • Poor Mans Cron

    A module which runs the Drupal cron operations without needing the cron application.

  • Node Words

    This module allows you to set some meta tags for each node, view or panels page.

  • Global Redirect

    Checks the current URL for an alias and does a 301 redirect to it if it is not being used.

  • Page Title

    This module gives you granular control over the page title. You can specify patterns for how the title should be structured and, on content creation pages, specify the page title separately to the content’s title.

  • XML Sitemap

    The XML sitemap module creates a sitemap that conforms to the sitemaps.org specification. The sitemap created by the module can be automatically submitted to Ask, Google, Bing (formerly Windows Live Search), and Yahoo! search engines.

  • Print

    This module allows you to generate page, email and PDFprinter-friendly versions of any node.

  • Username Check

    This very simple module allows visitors to check username originality quickly using AJAX request during registration (completing registration form).

  • Node Hierarchy

    Node Hierarchy allows nodes to be children of other nodes creating a tree-like hierarchy of content.

  • Page 1 of 2
  • 1
  • 2
  • >