本文整理汇总了PHP中MUtil_Model_ModelAbstract类的典型用法代码示例。如果您正苦于以下问题:PHP MUtil_Model_ModelAbstract类的具体用法?PHP MUtil_Model_ModelAbstract怎么用?PHP MUtil_Model_ModelAbstract使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MUtil_Model_ModelAbstract类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: filterAnswers
/**
* This function is called in addBrowseTableColumns() to filter the names displayed
* by AnswerModelSnippetGeneric.
*
* @see \Gems_Tracker_Snippets_AnswerModelSnippetGeneric
*
* @param \MUtil_Model_Bridge_TableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @param array $currentNames The current names in use (allows chaining)
* @return array Of the names of labels that should be shown
*/
public function filterAnswers(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model, array $currentNames)
{
$repeater = $model->loadRepeatable();
$table = $bridge->getTable();
$table->setRepeater($repeater);
// Filter unless option 'fullanswers' is true, can be set as get or post var.
$requestFullAnswers = \Zend_Controller_Front::getInstance()->getRequest()->getParam('fullanswers', false);
if (!$repeater->__start()) {
return $currentNames;
}
$keys = array();
if ($requestFullAnswers !== false) {
// No filtering
return $model->getItemsOrdered();
} else {
foreach ($model->getItemNames() as $name) {
$start = substr(strtolower($name), 0, $this->IncludeLength);
if (in_array($start, $this->IncludeStarts)) {
$keys[$name] = $name;
}
}
}
$answers = $this->token->getRawAnswers();
// Prevent errors when no answers present
if (!empty($answers)) {
$results = array_intersect($currentNames, array_keys($keys), array_keys($answers));
} else {
$results = array_intersect($currentNames, array_keys($keys));
}
$results = $this->restoreHeaderPositions($model, $results);
if ($results) {
return $results;
}
return $this->getHeaders($model, $currentNames);
}
示例2: addBrowseTableColumns
/**
* Adds columns from the model to the bridge that creates the browse table.
*
* Overrule this function to add different columns to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_TableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
*/
protected function addBrowseTableColumns(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
$model->set('gto_id_token', 'formatFunction', 'strtoupper');
$bridge->setDefaultRowClass(\MUtil_Html_TableElement::createAlternateRowClass('even', 'even', 'odd', 'odd'));
$tr1 = $bridge->tr();
$tr1->appendAttrib('class', $bridge->row_class);
$tr1->appendAttrib('title', $bridge->gto_comment);
$bridge->addColumn($this->createShowTokenButton($bridge), ' ')->rowspan = 2;
// Space needed because TableElement does not look at rowspans
$bridge->addSortable('gto_valid_from');
$bridge->addSortable('gto_valid_until');
$bridge->addSortable('gto_id_token');
// $bridge->addSortable('gto_mail_sent_num', $this->_('Contact moments'))->rowspan = 2;
$this->addRespondentCell($bridge, $model);
$bridge->addMultiSort('ggp_name', array($this->createActionButtons($bridge)));
$tr2 = $bridge->tr();
$tr2->appendAttrib('class', $bridge->row_class);
$tr2->appendAttrib('title', $bridge->gto_comment);
$bridge->addSortable('gto_mail_sent_date');
$bridge->addSortable('gto_completion_time');
$bridge->addSortable('gto_mail_sent_num', $this->_('Contact moments'));
if ($this->multiTracks) {
$model->set('gr2t_track_info', 'tableDisplay', 'smallData');
$model->set('gto_round_description', 'tableDisplay', 'smallData');
$bridge->addMultiSort('gtr_track_name', 'gr2t_track_info', array($bridge->gtr_track_name->if(\MUtil_Html::raw(' » ')), ' '), 'gsu_survey_name', 'gto_round_description');
} else {
$bridge->addMultiSort('gto_round_description', \MUtil_Html::raw('; '), 'gsu_survey_name');
}
$bridge->addSortable('assigned_by');
}
示例3: replaceCreateView
/**
* Handles creating or replacing the view for this survey
*
* @param \Gems_Tracker_Survey $viewName
* @param \MUtil_Model_ModelAbstract $answerModel
*/
protected function replaceCreateView(\Gems_Tracker_Survey $survey, \MUtil_Model_ModelAbstract $answerModel)
{
$viewName = $this->getViewName($survey);
$responseDb = $this->project->getResponseDatabase();
$fieldSql = '';
foreach ($answerModel->getItemsOrdered() as $name) {
if (true === $answerModel->get($name, 'survey_question') && !in_array($name, array('submitdate', 'startdate', 'datestamp')) && !$answerModel->is($name, 'type', \MUtil_Model::TYPE_NOVALUE)) {
// Only real answers
$fieldSql .= ',MAX(IF(gdr_answer_id = ' . $responseDb->quote($name) . ', gdr_response, NULL)) AS ' . $responseDb->quoteIdentifier($name);
}
}
if ($fieldSql > '') {
$dbConfig = $this->db->getConfig();
$tokenTable = $this->db->quoteIdentifier($dbConfig['dbname'] . '.gems__tokens');
$createViewSql = 'CREATE OR REPLACE VIEW ' . $responseDb->quoteIdentifier($viewName) . ' AS SELECT gdr_id_token';
$createViewSql .= $fieldSql;
$createViewSql .= "FROM gemsdata__responses join " . $tokenTable . " on (gto_id_token=gdr_id_token and gto_id_survey=" . $survey->getSurveyId() . ") GROUP BY gdr_id_token;";
try {
$responseDb->query($createViewSql)->execute();
} catch (Exception $exc) {
$responseConfig = $responseDb->getConfig();
$dbUser = $this->db->quoteIdentifier($responseConfig['username']) . '@' . $this->db->quoteIdentifier($responseConfig['host']);
$statement = "GRANT SELECT ON " . $tokenTable . " TO " . $dbUser;
$this->getBatch()->addMessage(sprintf($this->_("Creating view failed, try adding rights using the following statement: %s"), $statement));
}
}
}
示例4: processFilterAndSort
/**
* Overrule to implement snippet specific filtering and sorting.
*
* @param \MUtil_Model_ModelAbstract $model
*/
protected function processFilterAndSort(\MUtil_Model_ModelAbstract $model)
{
$filter[] = $this->db->quoteInto("gr2t_id_respondent_track IN (\n SELECT gr2t2a_id_respondent_track\n FROM gems__respondent2track2appointment\n WHERE gr2t2a_id_appointment = ?)", $this->request->getParam(\Gems_Model::APPOINTMENT_ID));
// \MUtil_Model::$verbose = true;
$model->setFilter($filter);
$this->processSortOnly($model);
}
示例5: addFormElements
/**
* Adds elements from the model to the bridge that creates the form.
*
* Overrule this function to add different elements to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_FormBridgeInterface $bridge
* @param \MUtil_Model_ModelAbstract $model
*/
protected function addFormElements(\MUtil_Model_Bridge_FormBridgeInterface $bridge, \MUtil_Model_ModelAbstract $model)
{
if (!$this->createData) {
$bridge->addHidden('gtr_id_track');
}
$bridge->addText('gtr_track_name');
// gtr_track_class
if ($this->trackEngine) {
$options = $model->get('gtr_track_class', 'multiOptions');
$alternatives = $this->trackEngine->getConversionTargets($options);
if (count($alternatives) > 1) {
$options = $alternatives;
$bridge->addHidden($this->_oldClassName);
if (!isset($this->formData[$this->_oldClassName])) {
$this->formData[$this->_oldClassName] = $this->formData['gtr_track_class'];
}
$classEdit = true;
} else {
$classEdit = false;
}
} else {
$tracker = $this->loader->getTracker();
$options = $tracker->getTrackEngineList(true, true);
$classEdit = true;
}
$model->set('gtr_track_class', 'multiOptions', $options, 'escape', false);
if ($classEdit) {
$bridge->addRadio('gtr_track_class');
} else {
$bridge->addExhibitor('gtr_track_class');
}
$bridge->addDate('gtr_date_start');
$bridge->addDate('gtr_date_until');
if (!$this->createData) {
$bridge->addCheckbox('gtr_active');
}
if ($model->has('gtr_code')) {
$bridge->addText('gtr_code');
}
if ($model->has('gtr_calculation_event', 'label')) {
$bridge->add('gtr_calculation_event');
}
if ($model->has('gtr_completed_event', 'label')) {
$bridge->add('gtr_completed_event');
}
if ($model->has('gtr_beforefieldupdate_event', 'label')) {
$bridge->add('gtr_beforefieldupdate_event');
}
if ($model->has('gtr_fieldupdate_event', 'label')) {
$bridge->add('gtr_fieldupdate_event');
}
$bridge->add('gtr_organizations');
if (\MUtil_Bootstrap::enabled()) {
$element = new \MUtil_Bootstrap_Form_Element_ToggleCheckboxes('toggleOrg', array('selector' => 'input[name^=gtr_organizations]'));
} else {
$element = new \Gems_JQuery_Form_Element_ToggleCheckboxes('toggleOrg', array('selector' => 'input[name^=gtr_organizations]'));
}
$element->setLabel($this->_('Toggle'));
$bridge->addElement($element);
}
示例6: createModel
/**
* Creates the model
*
* @return \MUtil_Model_ModelAbstract
*/
protected function createModel()
{
if (!$this->model instanceof LogModel) {
$this->model = $this->loader->getModels()->createLogModel();
$this->model->applyBrowseSettings();
}
return $this->model;
}
示例7: _addIf
private function _addIf(array $names, \MUtil_Model_Bridge_VerticalTableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
foreach ($names as $name) {
if ($model->has($name, 'label')) {
$bridge->addItem($name);
}
}
}
示例8: addBrowseTableColumns
/**
* Adds columns from the model to the bridge that creates the browse table.
*
* Overrule this function to add different columns to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_TableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
*/
protected function addBrowseTableColumns(\MUtil_Model_Bridge_TableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
$bridge->gr2t_id_respondent_track;
// Data needed for edit button
$bridge->gr2o_id_organization;
// Data needed for edit button
$HTML = \MUtil_Html::create();
// Get the buttons
$respMenu = $this->menu->findAllowedController('respondent', 'show');
if ($respMenu) {
$respondentButton = $respMenu->toActionLink($this->request, $bridge, $this->_('Show respondent'));
$respondentButton->appendAttrib('class', 'rightFloat');
} else {
$respondentButton = null;
}
$trackMenu = $this->menu->findAllowedController('respondent', 'show-track');
if ($trackMenu) {
$trackButton = $trackMenu->toActionLink($this->request, $bridge, $this->_('Show track'));
$trackButton->appendAttrib('class', 'rightFloat');
} else {
$trackButton = null;
}
// Row with dates and patient data
$bridge->tr(array('onlyWhenChanged' => true, 'class' => 'even'));
$bridge->addSortable('gr2o_patient_nr');
$bridge->addSortable('respondent_name')->colspan = 2;
if ($this->multiTracks) {
$bridge->addSortable('grs_birthday');
$bridge->addMultiSort('grs_city', array($respondentButton));
$model->set('gr2t_track_info', 'tableDisplay', 'smallData');
// Row with track info
$bridge->tr(array('onlyWhenChanged' => true, 'class' => 'even'));
$td = $bridge->addMultiSort('gtr_track_name', 'gr2t_track_info');
$td->class = 'indentLeft';
$td->colspan = 4;
$td->renderWithoutContent = false;
// Do not display this cell and thus this row if there is not content
$td = $bridge->addMultiSort('progress', array($trackButton));
$td->renderWithoutContent = false;
// Do not display this cell and thus this row if there is not content
} else {
$bridge->addSortable('grs_birthday');
$bridge->addMultiSort('progress', array($respondentButton));
}
$bridge->tr(array('class' => array('odd', $bridge->row_class), 'title' => $bridge->gto_comment));
$bridge->addColumn($this->createShowTokenButton($bridge))->class = 'rightAlign';
$bridge->addSortable('gto_valid_from');
$bridge->addSortable('gto_valid_until');
$model->set('gto_round_description', 'tableDisplay', 'smallData');
$bridge->addMultiSort('gsu_survey_name', 'gto_round_description')->colspan = 2;
$bridge->tr(array('class' => array('odd', $bridge->row_class), 'title' => $bridge->gto_comment));
$bridge->addColumn();
$bridge->addSortable('gto_mail_sent_date');
$bridge->addSortable('gto_completion_time');
$bridge->addSortable('gto_id_token');
$bridge->addMultiSort('ggp_name', array($this->createActionButtons($bridge)));
}
示例9: processFilterAndSort
/**
* Overrule to implement snippet specific filtering and sorting.
*
* @param \MUtil_Model_ModelAbstract $model
*/
protected function processFilterAndSort(\MUtil_Model_ModelAbstract $model)
{
if ($this->request->getParam('log')) {
$model->setFilter(array('gla_id'), $this->request->getParam('log'));
parent::processSortOnly($model);
} else {
parent::processFilterAndSort($model);
}
}
示例10: addConfigFields
/**
* Appends the needed fields for this config to the $bridge
*
* @param \MUtil_Model_ModelAbstract $orgModel
*/
public function addConfigFields(\MUtil_Model_ModelAbstract $orgModel)
{
$configModel = $this->getConfigModel(true);
$order = $orgModel->getOrder('gor_user_class') + 1;
foreach ($configModel->getItemNames() as $name) {
$orgModel->set($name, 'order', $order++, 'tab', 'access');
$orgModel->set($name, $configModel->get($name));
}
}
示例11: addFormElements
/**
* Adds elements from the model to the bridge that creates the form.
*
* Overrule this function to add different elements to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_FormBridgeInterface $bridge
* @param \MUtil_Model_ModelAbstract $model
*/
protected function addFormElements(\MUtil_Model_Bridge_FormBridgeInterface $bridge, \MUtil_Model_ModelAbstract $model)
{
$onOffFields = array('gr2t_track_info', 'gto_round_description', 'grc_description');
foreach ($onOffFields as $field) {
if (!(isset($this->formData[$field]) && $this->formData[$field])) {
$model->set($field, 'elementClass', 'None');
}
}
parent::addFormElements($bridge, $model);
}
示例12: addShowTableRows
/**
* Adds rows from the model to the bridge that creates the browse table.
*
* Overrule this function to add different columns to the browse table, without
* having to recode the core table building code.
*
* @param \MUtil_Model_Bridge_VerticalTableBridge $bridge
* @param \MUtil_Model_ModelAbstract $model
* @return void
* /
protected function addShowTableRows(\MUtil_Model_Bridge_VerticalTableBridge $bridge, \MUtil_Model_ModelAbstract $model)
{
parent::addShowTableRows($bridge, $model);
}
/**
* Creates the model
*
* @return \MUtil_Model_ModelAbstract
*/
protected function createModel()
{
if (!$this->model instanceof \Gems_Model_AppointmentModel) {
$this->model = $this->loader->getModels()->createAppointmentModel();
$this->model->applyDetailSettings();
}
$this->model->set('gap_admission_time', 'formatFunction', array($this, 'displayDate'));
$this->model->set('gap_discharge_time', 'formatFunction', array($this, 'displayDate'));
return $this->model;
}
示例13: __construct
/**
* Construct the bridge while setting the model.
*
* Extra parameters can be added in subclasses, but the first parameter
* must remain the model.
*
* @param \MUtil_Model_ModelAbstract $model
* @param \Zend_Form $form Rquired
*/
public function __construct(\MUtil_Model_ModelAbstract $model, \Zend_Form $form = null)
{
$this->model = $model;
$this->form = $form;
if (!$form instanceof \Zend_Form) {
throw new \MUtil_Model_ModelException("No form specified while create a form bridge for model " . $model->getName());
}
if (!$form->getName()) {
$form->setName($model->getName());
}
}
示例14: applySurveyListValidFor
/**
* Set the surveys to be listed as valid for choices for this item and the way they are displayed (if at all)
*
* @param \MUtil_Model_ModelAbstract $model The round model
* @param array $itemData The current items data
* @param boolean True if the update changed values (usually by changed selection lists).
*/
protected function applySurveyListValidFor(\MUtil_Model_ModelAbstract $model, array &$itemData)
{
if (!(isset($itemData['gro_id_round']) && $itemData['gro_id_round'])) {
$itemData['gro_id_round'] = '';
}
// Fixed value
$itemData['gro_valid_for_id'] = $itemData['gro_id_round'];
// The options array
$rounds[$itemData['gro_id_round']] = $this->_('This round');
$model->set('gro_valid_for_id', 'multiOptions', $rounds, 'elementClass', 'Exhibitor');
return false;
}
示例15: createModel
/**
* Creates the model
*
* @return \MUtil_Model_ModelAbstract
*/
protected function createModel()
{
// Replace two checkboxes with on radio button control
$this->model->set('ggp_staff_members', 'elementClass', 'Hidden');
$this->model->setOnSave('ggp_staff_members', array($this, 'saveIsStaff'));
$this->model->set('ggp_respondent_members', 'elementClass', 'Hidden');
$this->model->setOnSave('ggp_respondent_members', array($this, 'saveIsRespondent'));
$options = array('1' => $this->model->get('ggp_staff_members', 'label'), '2' => $this->model->get('ggp_respondent_members', 'label'));
$this->model->set('staff_respondent', 'label', $this->_('Can be assigned to'), 'elementClass', 'Radio', 'multiOptions', $options, 'order', $this->model->getOrder('ggp_staff_members') + 1);
$this->model->setOnLoad('staff_respondent', array($this, 'loadStaffRespondent'));
return $this->model;
}