X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FForm.php;h=d42f6246f7dce4c3938593103aba0b0af231db43;hb=fd96067165316831b50e48972059930ad1785444;hp=5167ab339dbf02bae15e1837e61ee0d10c0ee761;hpb=5814c24398cb1414917963edcf0fbbdb469ffbf8;p=civicrm-core.git diff --git a/CRM/Core/Form.php b/CRM/Core/Form.php index 5167ab339d..d42f6246f7 100644 --- a/CRM/Core/Form.php +++ b/CRM/Core/Form.php @@ -358,8 +358,14 @@ class CRM_Core_Form extends HTML_QuickForm_Page { ) { $this->addElement('hidden', 'qfKey', $this->controller->_key); $this->assign('qfKey', $this->controller->_key); + } + // _generateQFKey suppresses the qfKey generation on form snippets that + // are part of other forms, hence we use that to avoid adding entryURL + if ($this->controller->_generateQFKey && $this->controller->_entryURL) { + $this->addElement('hidden', 'entryURL', $this->controller->_entryURL); + } $this->buildQuickForm(); @@ -717,6 +723,28 @@ class CRM_Core_Form extends HTML_QuickForm_Page { self::$_template->assign_by_ref($var, $value); } + /** + * appends values to template variables + * + * @param array|string $tpl_var the template variable name(s) + * @param mixed $value the value to append + * @param bool $merge + */ + function append($tpl_var, $value=NULL, $merge=FALSE) { + self::$_template->append($tpl_var, $value, $merge); + } + + /** + * Returns an array containing template variables + * + * @param string $name + * @param string $type + * @return array + */ + function get_template_vars($name=null) { + return self::$_template->get_template_vars($name); + } + function &addRadio($name, $title, &$values, $attributes = NULL, $separator = NULL, $required = FALSE) { $options = array(); if (empty($attributes)) { @@ -1325,8 +1353,14 @@ class CRM_Core_Form extends HTML_QuickForm_Page { // event form stores as an indexed array, contribution form not so much... $tempID = $this->_params[0]['select_contact_id']; } + // force to ignore the authenticated user - if ($tempID === '0') { + if ($tempID === '0' || $tempID === 0) { + // we set the cid on the form so that this will be retained for the Confirm page + // in the multi-page form & prevent us returning the $userID when this is called + // from that page + // we don't really need to set it when $tempID is set because the params have that stored + $this->set('cid', 0); return $tempID; }