Changeset 9928

Show
Ignore:
Timestamp:
11/14/08 14:25:21 (2 months ago)
Author:
afz
Message:

providing new method for Layout: ChangeGadgetActionName? for using in gadgets upgrade methods

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/0.8/jaws/html/gadgets/Layout/AdminModel.php

    r9470 r9928  
    157157 
    158158    /** 
     159     * Update the properties of an element 
     160     * 
     161     * @access  public 
     162     * @param   string  $gadget      Gadget name 
     163     * @param   string  $old_action  Old action 
     164     * @param   string  $new_action  New action 
     165     * @return  boolean Returns true if updated without problems, if not, returns false 
     166     */ 
     167    function ChangeGadgetActionName($gadget, $old_action, $new_action) 
     168    { 
     169        $params = array(); 
     170        $params['gadget'] = $gadget; 
     171        $params['action'] = $old_action.'%'; 
     172 
     173        $sql = ' 
     174            SELECT [id], [gadget_action] 
     175            FROM [[layout]] 
     176            WHERE 
     177                [gadget] = {gadget} 
     178              AND 
     179                [gadget_action] LIKE {action}'; 
     180 
     181        $result = $GLOBALS['db']->queryAll($sql, $params); 
     182        if (Jaws_Error::IsError($result)) { 
     183            return $result; 
     184        } 
     185 
     186        foreach ($result as $row) { 
     187            $params['id']     = $row['id']; 
     188            $params['action'] = substr_replace($row['gadget_action'], $new_action, 0, strlen($old_action)); 
     189            $sql = ' 
     190                UPDATE [[layout]] SET 
     191                    [gadget_action] = {action} 
     192                WHERE [id] = {id}'; 
     193                $result = $GLOBALS['db']->query($sql, $params); 
     194                if (Jaws_Error::IsError($result)) { 
     195                    return $result; 
     196                } 
     197        } 
     198 
     199        return true; 
     200    } 
     201 
     202    /** 
    159203     * Delete an element 
    160204     *