protected function GetControlHtml() { $strOutput = $this->lblMessage->Render(false) . '<br /><table style="border: 1px solid #DDDDDD" cellpadding="4" cellspacing="0" width="100%">'; foreach (NarroProject::$AvailablePreferences as $strName => $arrPref) { if ($arrPref['project_type'] && $arrPref['project_type'] != $this->objProject->ProjectType) { continue; } $this->lblMessage->Text = t('Here you can set your project preferences.'); switch ($arrPref['type']) { case 'number': $txtNumber = new QIntegerTextBox($this); $txtNumber->Name = $strName; $txtNumber->Minimum = 5; $txtNumber->Maximum = 100; $txtNumber->MaxLength = 3; $txtNumber->Width = 50; if ($arrPref['global']) { $txtNumber->Enabled = QApplication::HasPermission('Can edit project', $this->objProject->ProjectId); } $txtNumber->Text = $this->objProject->GetPreferenceValueByName($strName); $strOutput .= sprintf('<tr class="datagrid_row datagrid_even" style="height:40px"><td>%s:</td><td>%s</td><td style="font-size:-1">%s</td></tr>', t($strName), $txtNumber->RenderWithError(false), $arrPref['description'] ? t($arrPref['description']) : ''); $this->arrControls[$strName] = $txtNumber; break; case 'text': $txtTextPref = new QTextBox($this); $txtTextPref->Name = $strName; if ($arrPref['global']) { $txtTextPref->Enabled = QApplication::HasPermission('Can edit project', $this->objProject->ProjectId); } $txtTextPref->Text = $this->objProject->GetPreferenceValueByName($strName); $txtTextPref->Columns = strlen($txtTextPref->Text); $strOutput .= sprintf('<tr class="datagrid_row datagrid_even" style="height:40px"><td>%s:</td><td>%s</td><td style="font-size:-1">%s</td></tr>', t($strName), $txtTextPref->RenderWithError(false), $arrPref['description'] ? t($arrPref['description']) : ''); $this->arrControls[$strName] = $txtTextPref; break; case 'option': $lstOption = new QListBox($this); $lstOption->Name = $strName; if ($arrPref['global']) { $lstOption->Enabled = QApplication::HasPermission('Can edit project', $this->objProject->ProjectId); } foreach ($arrPref['values'] as $strValue) { $lstOption->AddItem(t($strValue), $strValue, $strValue == $this->objProject->GetPreferenceValueByName($strName)); } $strOutput .= sprintf('<tr class="datagrid_row datagrid_even" style="height:40px"><td>%s:</td><td>%s</td><td style="font-size:-1">%s</td></tr>', t($strName), $lstOption->RenderWithError(false), $arrPref['description'] ? t($arrPref['description']) : ''); $this->arrControls[$strName] = $lstOption; break; } } $strOutput .= '</table><br />'; $this->strText = $strOutput; return parent::GetControlHtml(); }
public function RenderFund(RecurringDonationItems $objItem = null) { if (!$objItem) { return '<strong>TOTAL SUBMISSION</strong>'; } $lstFunds = $this->GetControl('lstFunds' . $this->dtgDonationItems->CurrentRowIndex); $txtFund = $this->GetControl('txtFund' . $this->dtgDonationItems->CurrentRowIndex); if (!$lstFunds) { $lstFunds = new QListBox($this->dtgDonationItems, 'lstFunds' . $this->dtgDonationItems->CurrentRowIndex); $lstFunds->ActionParameter = $this->dtgDonationItems->CurrentRowIndex; $lstFunds->AddAction(new QChangeEvent(), new QAjaxAction('lstFunds_Change')); $txtFund = new QTextBox($this->dtgDonationItems, 'txtFund' . $this->dtgDonationItems->CurrentRowIndex); $txtFund->Visible = false; if (!$objItem->StewardshipFundId) { $lstFunds->AddItem('- Select One -', null); } foreach (StewardshipFund::LoadArrayByExternalFlag(true, QQ::OrderBy(QQN::StewardshipFund()->ExternalName)) as $objFund) { $lstFunds->AddItem($objFund->ExternalName, $objFund->Id, $objFund->Id == $objItem->StewardshipFundId); } $lstFunds->AddItem('- Other... -', false); } return $lstFunds->RenderWithError(false) . ' ' . $txtFund->RenderWithError(false); }
protected function GetControlHtml() { $strOutput = $this->lblMessage->Render(false) . '<br /><table style="border: 1px solid #DDDDDD" cellpadding="4" cellspacing="0" width="100%">'; foreach (NarroUser::$AvailablePreferences as $strName => $arrPref) { switch ($arrPref['type']) { case 'number': $txtNumber = new QIntegerTextBox($this); $txtNumber->Name = $strName; $txtNumber->Minimum = 5; $txtNumber->Maximum = 100; $txtNumber->MaxLength = 3; $txtNumber->Width = 50; $txtNumber->Text = $this->objUser->GetPreferenceValueByName($strName); $strOutput .= sprintf('<tr class="datagrid_row datagrid_even" style="height:40px"><td>%s:</td><td>%s</td><td style="font-size:-1">%s</td></tr>', t($strName), $txtNumber->RenderWithError(false), t($arrPref['description'])); $this->arrControls[$strName] = $txtNumber; break; case 'text': $txtTextPref = new QTextBox($this); $txtTextPref->Name = $strName; $txtTextPref->Text = $this->objUser->GetPreferenceValueByName($strName); if ($strName == 'Special characters') { $strSelect = sprintf('<select onchange="document.getElementById(\'%s\').value+=this.options[this.selectedIndex].value;">', $txtTextPref->ControlId); foreach (NarroDiacriticsPanel::$arrEntities as $strEntityName => $strEntityChar) { $strSelect .= sprintf('<option value=" %s">%s (%s)', $strEntityName, $strEntityChar, $strEntityName); } $strSelect .= '</select>'; $arrPref['description'] = t($arrPref['description']) . $strSelect; $txtTextPref->Width = 400; } elseif ($strName == 'Other languages') { $strSelect = sprintf('<select onchange="document.getElementById(\'%s\').value+= \' \' + this.options[this.selectedIndex].value;">', $txtTextPref->ControlId); foreach (NarroLanguage::QueryArray(QQ::All(), QQ::Clause(QQ::OrderBy(QQN::NarroLanguage()->LanguageName))) as $objLanguage) { $strSelect .= sprintf('<option value="%s">%s (%s)', $objLanguage->LanguageCode, t($objLanguage->LanguageName), $objLanguage->LanguageCode); } $strSelect .= '</select>'; $arrPref['description'] = t($arrPref['description']) . $strSelect; $txtTextPref->Width = 400; } $strOutput .= sprintf('<tr class="datagrid_row datagrid_even" style="height:40px"><td>%s:</td><td>%s</td><td style="font-size:-1">%s</td></tr>', t($strName), $txtTextPref->RenderWithError(false), $arrPref['description']); $this->arrControls[$strName] = $txtTextPref; break; case 'option': $lstOption = new QListBox($this); $lstOption->Name = $strName; if ($strName == 'Language') { $arrLanguages = NarroLanguage::LoadAllActive(QQ::Clause(QQ::OrderBy(QQN::NarroLanguage()->LanguageName))); foreach ($arrLanguages as $objLanguage) { $lstOption->AddItem(t($objLanguage->LanguageName), $objLanguage->LanguageCode, $objLanguage->LanguageCode == $this->objUser->GetPreferenceValueByName($strName)); } } elseif ($strName == 'Application language') { $arrLanguages = NarroLanguage::QueryArray(QQ::All(), QQ::Clause(QQ::OrderBy(QQN::NarroLanguage()->LanguageName))); foreach ($arrLanguages as $objLanguage) { $lstOption->AddItem(t($objLanguage->LanguageName), $objLanguage->LanguageCode, $objLanguage->LanguageCode == $this->objUser->GetPreferenceValueByName($strName)); } } else { foreach ($arrPref['values'] as $strValue) { $lstOption->AddItem(t($strValue), $strValue, $strValue == $this->objUser->GetPreferenceValueByName($strName)); } } $strOutput .= sprintf('<tr class="datagrid_row datagrid_even" style="height:40px"><td>%s:</td><td>%s</td><td style="font-size:-1">%s</td></tr>', t($strName), $lstOption->RenderWithError(false), t($arrPref['description'])); $this->arrControls[$strName] = $lstOption; break; } } $strOutput .= '</table><br />'; $strOutput .= $this->btnCancel->Render(false) . ' ' . $this->btnSave->Render(false); if ($this->txtPreviousUrl) { $strOutput .= ' ' . sprintf(t('Click <a href="%s">here</a> to return to the page you were.'), $this->txtPreviousUrl); } $this->strText = $strOutput; return parent::GetControlHtml(); }