Pommo_Api::stateInit PHP Method

stateInit() static public method

* stateInit initializes a page state
static public stateInit ( $name = 'default', $defaults = [], $source = [] )
    static function &stateInit($name = 'default', $defaults = array(), $source = array())
    {
        if (empty(Pommo::$_session['state'][$name])) {
            Pommo::$_session['state'][$name] =& $defaults;
        }
        $state =& Pommo::$_session['state'][$name];
        if (empty($defaults)) {
            return $state;
        }
        //Add support for passing multi select options
        if (is_array($source)) {
            foreach ($source as $k => $v) {
                if (is_array($source[$k])) {
                    $source[$k] = implode(',', $source[$k]);
                }
            }
        }
        foreach (array_keys($state) as $key) {
            if (array_key_exists($key, $source)) {
                $state[$key] = $source[$key];
            }
        }
        // normalize the page state
        if (count($state) > count($defaults)) {
            $state = Pommo_Helper::arrayIntersect($state, $defaults);
        }
        return $state;
    }

Usage Example

Example #1
0
        $mailing = current(Pommo_Mailing::get(array('id' => $_REQUEST['mailings'])));
        // change group name to ID
        $groups = Pommo_Groups::getNames();
        $gid = 'all';
        foreach ($groups as $group) {
            if ($group['name'] == $mailing['group']) {
                $gid = $group['id'];
            }
        }
        Pommo_Api::stateReset(array('mailing'));
        // if this is a plain text mailing, switch body + altbody.
        if ($mailing['ishtml'] == 'off') {
            $mailing['altbody'] = $mailing['body'];
            $mailing['body'] = null;
        }
        // Initialize page state with default values overriden by those held in $_REQUEST
        $state =& Pommo_Api::stateInit('mailing', array('fromname' => $mailing['fromname'], 'fromemail' => $mailing['fromemail'], 'frombounce' => $mailing['frombounce'], 'list_charset' => $mailing['charset'], 'mailgroup' => $gid, 'subject' => $mailing['subject'], 'body' => $mailing['body'], 'altbody' => $mailing['altbody']));
        Pommo::redirect(Pommo::$_baseUrl . 'mailings_start.php');
        break;
    case 'delete':
        $deleted = Pommo_Mailing::delete($mailingIDS);
        $logger->addMsg(Pommo::_T('Please Wait') . '...');
        $params = $json->encode(array('ids' => $mailingIDS));
        $view->assign('callbackFunction', 'deleteMailing');
        $view->assign('callbackParams', $params);
        break;
    default:
        $logger->AddErr('invalid call');
        break;
}
$view->display('admin/rpc');
All Usage Examples Of Pommo_Api::stateInit