/**
  * Process a multi level array of actions into a JQM list.
  * @param array $actions
  * @return string
  */
 public function processActions(array $actions = array())
 {
     $output = array();
     foreach ($actions as $action) {
         if (!empty($action[hmController::LIST_DIVIDER])) {
             $output[] = $this->hm->getTpl('widgets/dividerli', array('text' => $action[hmController::LIST_DIVIDER]));
         } elseif (!isset($action['permission']) || $action['permission'] === true) {
             if (isset($action['dialog'])) {
                 $action['dialog'] = ' data-rel="dialog"';
                 $action['transition'] = $action['transition'] ? $action['transition'] : 'pop';
             } else {
                 $action['transition'] = $action['transition'] ? $action['transition'] : 'slide';
                 $action['dialog'] = '';
             }
             $action['icon'] = $action['icon'] ? $action['icon'] : 'arrow-r';
             $lps = '';
             if (count($action['linkparams']) > 0) {
                 foreach ($action['linkparams'] as $lp => $lpv) {
                     $lps .= '&' . $lp . '=' . $lpv;
                 }
             }
             $action['link'] = $this->hm->url . '?hma=' . $action['action'] . $lps;
             $output[] = $this->hm->getTpl('widgets/rowAction', $action);
         }
     }
     return implode("\n", $output);
 }
 /**
  * @param xPDOObject|array $field
  * @return array
  */
 public function prepareSelect($field)
 {
     $field = is_object($field) ? $field->toArray() : $field;
     $optionList = array();
     if (is_array($field['options'])) {
         foreach ($field['options'] as $opt) {
             $sel = $opt['value'] == $field['value'] ? ' selected="selected" ' : '';
             $optionList[] = $this->hm->getTpl('fields/select.option', array('value' => $opt['value'], 'name' => $opt['name'], 'selected' => $sel));
         }
     }
     $field['options'] = implode("\n", $optionList);
     return $field;
 }