Ejemplo n.º 1
0
 function onExtensionAfterSave($option, $data)
 {
     if (Plazart::detect() && $option == 'com_templates.style' && !empty($data->id)) {
         //get new params value
         $japp = JFactory::getApplication();
         $params = new JRegistry();
         $params->loadString($data->params);
         $oparams = $japp->getUserState('oparams');
         //check for changed params
         $pchanged = array();
         foreach ($oparams as $oparam) {
             if ($params->get($oparam['name']) != $oparam['value']) {
                 $pchanged[] = $oparam['name'];
             }
         }
         //if we have any changed, we will update to global
         if (count($pchanged)) {
             //g et all other styles that have thesame template
             $db = JFactory::getDBO();
             $query = $db->getQuery(true);
             $query->select('*')->from('#__template_styles')->where('template=' . $db->quote($data->template));
             $db->setQuery($query);
             $themes = $db->loadObjectList();
             //update all global parameters
             foreach ($themes as $theme) {
                 $registry = new JRegistry();
                 $registry->loadString($theme->params);
                 foreach ($pchanged as $pname) {
                     $registry->set($pname, $params->get($pname));
                     //overwrite with new value
                 }
                 $query = $db->getQuery(true);
                 $query->update('#__template_styles')->set('params =' . $db->quote($registry->toString()))->where('id =' . (int) $theme->id)->where('id <>' . (int) $data->id);
                 $db->setQuery($query);
                 $db->query();
             }
         }
     }
 }