Actions

Difference between revisions of "Setting parameters to default on installation"

From Joomla! Documentation

m (Cleared typos. Added link to main tutorial page)
m
Line 14: Line 14:
 
             $query  = $db->getQuery(true);
 
             $query  = $db->getQuery(true);
 
             $query->update('#__extensions');
 
             $query->update('#__extensions');
             $defaults = '{"param1":"value1","param2":"value2"}; // JSON format for the parameters
+
             $defaults = '{"param1":"value1","param2":"value2"}'; // JSON format for the parameters
 
             $query->set("params = '" . $defaults . "'");      // Single-quote the parameter list
 
             $query->set("params = '" . $defaults . "'");      // Single-quote the parameter list
 
             $query->where("name = 'com_XXX'");                  // com_XXX is your component  
 
             $query->where("name = 'com_XXX'");                  // com_XXX is your component  

Revision as of 07:59, 3 October 2011

Joomla 1.6Joomla 1.7

When developing an component you can ensure that the `params` field of the `#__extensions` table is populated during the installation process by using the installation script file as described in Part 15 of the Developing an MVC Component tutorial.

Adding code similar to the following to the postflight() function within the script file will update `#__extensions` with the required parameters:

   function postflight($type, $parent)
   {
       // $parent is the class calling this method
       // $type is the type of change (install, update or discover_install)
   
       if ($type == 'install') {
           $db = &JFactory::getDBO();
           $query  = $db->getQuery(true);
           $query->update('#__extensions');
           $defaults = '{"param1":"value1","param2":"value2"}'; // JSON format for the parameters
           $query->set("params = '" . $defaults . "'");       // Single-quote the parameter list
           $query->where("name = 'com_XXX'");                  // com_XXX is your component 
           $db->setQuery($query);
           $db->query();
           }
       } 
   }