本文整理汇总了PHP中MUtil_Model_ModelAbstract::getItemNames方法的典型用法代码示例。如果您正苦于以下问题:PHP MUtil_Model_ModelAbstract::getItemNames方法的具体用法?PHP MUtil_Model_ModelAbstract::getItemNames怎么用?PHP MUtil_Model_ModelAbstract::getItemNames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MUtil_Model_ModelAbstract
的用法示例。
在下文中一共展示了MUtil_Model_ModelAbstract::getItemNames方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: transformLoadSubModel
/**
* Function to allow overruling of transform for certain models
*
* @param \MUtil_Model_ModelAbstract $model Parent model
* @param \MUtil_Model_ModelAbstract $sub Sub model
* @param array $data The nested data rows
* @param array $join The join array
* @param string $name Name of sub model
* @param boolean $new True when loading a new item
* @param boolean $isPostData With post data, unselected multiOptions values are not set so should be added
*/
protected function transformLoadSubModel(\MUtil_Model_ModelAbstract $model, \MUtil_Model_ModelAbstract $sub, array &$data, array $join, $name, $new, $isPostData)
{
if (1 === count($join)) {
// Suimple implementation
$mkey = key($join);
$skey = reset($join);
$mfor = \MUtil_Ra::column($mkey, $data);
// \MUtil_Echo::track($mfor);
if ($new) {
$sdata = $sub->loadNew(1);
} else {
$sdata = $sub->load(array($skey => $mfor));
}
// \MUtil_Echo::track($sdata);
if ($sdata) {
$skeys = array_flip(\MUtil_Ra::column($skey, $sdata));
$empty = array_fill_keys(array_keys(reset($sdata)), null);
foreach ($data as &$mrow) {
$mfind = $mrow[$mkey];
if (isset($skeys[$mfind])) {
$mrow += $sdata[$skeys[$mfind]];
} else {
$mrow += $empty;
}
}
} else {
$empty = array_fill_keys($sub->getItemNames(), null);
foreach ($data as &$mrow) {
$mrow += $empty;
}
}
// \MUtil_Echo::track($mrow);
} else {
// Multi column implementation
$empty = array_fill_keys($sub->getItemNames(), null);
foreach ($data as &$mrow) {
$filter = $sub->getFilter();
foreach ($join as $from => $to) {
if (isset($mrow[$from])) {
$filter[$to] = $mrow[$from];
}
}
if ($new) {
$sdata = $sub->loadNew();
} else {
$sdata = $sub->loadFirst($filter);
}
if ($sdata) {
$mrow += $sdata;
} else {
$mrow += $empty;
}
// \MUtil_Echo::track($sdata, $mrow);
}
}
}
示例3: transformLoad
/**
* The transform function performs the actual transformation of the data and is called after
* the loading of the data in the source model.
*
* @param \MUtil_Model_ModelAbstract $model The parent model
* @param array $data Nested array
* @param boolean $new True when loading a new item
* @param boolean $isPostData With post data, unselected multiOptions values are not set so should be added
* @return array Nested array containing (optionally) transformed data
*/
public function transformLoad(\MUtil_Model_ModelAbstract $model, array $data, $new = false, $isPostData = false)
{
// get tokens
$tokens = \MUtil_Ra::column('gto_id_token', $data);
$answerRows = $this->source->getRawTokenAnswerRows(array('token' => $tokens), $this->survey->getSurveyId());
$resultRows = array();
$emptyRow = array_fill_keys($model->getItemNames(), null);
foreach ($data as $row) {
$tokenId = $row['gto_id_token'];
if (isset($answerRows[$tokenId])) {
$resultRows[$tokenId] = $row + $answerRows[$tokenId] + $emptyRow;
} else {
$resultRows[$tokenId] = $row + $emptyRow;
}
}
//\MUtil_Echo::track($tokens);
//\MUtil_Echo::track($resultRows);
// No changes
return $resultRows;
}
示例4: getDefaultRow
/**
* Returns the required rows set or calculates the rows using the $model and the required rows info
*
* @param \MUtil_Model_ModelAbstract $model Optional model for calculation
* @return array
* @throws \MUtil_Model_ModelException
*/
public function getDefaultRow(\MUtil_Model_ModelAbstract $model = null)
{
if (!$this->_defaultRow) {
$requireds = $this->getRequiredRows();
$required = \MUtil_Ra::to(reset($requireds));
if (!$this->_keyItemCount) {
$this->setKeyItemCount(count($required));
}
if ($required && $model instanceof \MUtil_Model_ModelAbstract) {
$defaults = array();
foreach ($model->getItemNames() as $name) {
if (!array_key_exists($name, $required)) {
$defaults[$name] = null;
}
}
$this->_defaultRow = $defaults;
} else {
throw new \MUtil_Model_ModelException('Cannot create default row without model and required rows.');
}
} elseif (!is_array($this->_defaultRow)) {
$this->_defaultRow = \MUtil_Ra::to($this->_defaultRow);
}
return $this->_defaultRow;
}