示例#1
0
 /**
  * Renders edit form elements
  *
  * @param \Frohland\Ezqueries\Domain\Model\RecordManagement $recordManagement
  * @return string $code
  */
 public function render($recordManagement)
 {
     $this->record = $recordManagement->getRecords(0)->getData();
     $primaryKeys = $recordManagement->getRecords(0)->getPrimaryKeys();
     $this->columns = $recordManagement->getTable()->getSelectedColumns();
     $this->columnTypes = $recordManagement->getTable()->getColumnTypes();
     $search = $recordManagement->getConditions()->getSearch();
     $filters = $recordManagement->getConditions()->getFilters();
     // Generate URL
     $arguments = array("primaryKeys" => $primaryKeys, "search" => $search, "filters" => $filters);
     $urlUtility = $this->objectManager->create('Frohland\\Ezqueries\\Utility\\URLUtility', $this->controllerContext->getUriBuilder());
     $url = $urlUtility->createURL("update", $arguments);
     // Generate form
     $code = '<div class="tx_ezqueries_edit"><form action="' . $url . '" method="post" id="tx_ezqueries_edit_form" class="tx_ezqueries_form tx_ezqueries_edit_form">';
     $code .= $this->generateFormElements($url);
     $code .= '</form></div>';
     return $code;
 }
 /**
  * Renders list template into the view
  *
  * @param string $template Template HTML code
  * @param \Frohland\Ezqueries\Domain\Model\RecordManagement $recordManagement
  * @return string $code
  */
 public function render($template, $recordManagement)
 {
     $this->records = $recordManagement->getRecords();
     $this->i = $recordManagement->getConditions()->getStartRecord();
     $templateUtility = $this->objectManager->get('Frohland\\Ezqueries\\Utility\\TemplateUtility');
     $templateUtility->initTemplateUtility('list', $recordManagement, $this->controllerContext->getUriBuilder());
     $templateUtility->setRecordCount(count($this->records));
     $templateUtility->setRecordNumber($this->i);
     $code = $this->interpretTemplate($template, $templateUtility);
     $this->i = $recordManagement->getConditions()->getStartRecord();
     $templateUtility->setRecordNumber($this->i);
     $code = $templateUtility->fillMarkers($code);
     return $code;
 }
 /**
  * Renders a record browser
  *
  * @param string $action Controller action
  * @param \Frohland\Ezqueries\Domain\Model\RecordManagement $recordManagement
  * @return string $code
  */
 public function render($action, $recordManagement)
 {
     $i = 0;
     $code = '';
     $recordPosition = 0;
     $records = $recordManagement->getRecords();
     if ($records) {
         $primaryKeys = $records[0]->getPrimaryKeys();
         $primaryKeysArray = $recordManagement->getPrimaryKeys();
         $countPrimaryKeys = count($primaryKeys);
         $countRightKeys = 0;
         $orderBy = $recordManagement->getConditions()->getOrderBy();
         $order = $recordManagement->getConditions()->getOrder();
         $search = $recordManagement->getConditions()->getSearch();
         $filters = $recordManagement->getConditions()->getFilters();
         $urlUtility = $this->objectManager->create('Frohland\\Ezqueries\\Utility\\URLUtility', $this->controllerContext->getUriBuilder());
         $code .= '<div class="tx_ezqueries_options_recordbrowser">';
         foreach ($primaryKeysArray as $keys) {
             $countRightKeys = 0;
             foreach ($primaryKeys as $column => $value) {
                 if ($keys[$column] == $value) {
                     $countRightKeys++;
                 }
             }
             if ($countRightKeys == $countPrimaryKeys) {
                 $recordPosition = $i;
                 break;
             } else {
                 $i++;
             }
         }
         if ($recordPosition != 0) {
             $arguments = array("primaryKeys" => $primaryKeysArray[$recordPosition - 1], "orderBy" => $orderBy, "order" => $order, "search" => $search, "filters" => $filters);
             $url = $urlUtility->createURL($action, $arguments);
             $code .= '<div class="tx_ezqueries_options_recordbrowser_previous"><a class="tx_ezqueries_link tx_ezqueries_link_button tx_ezqueries_link_' . $action . '" href="' . $url . '">' . \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('recordbrowser_previous', 'ezqueries') . '</a></div>';
         }
         if ($recordPosition < count($primaryKeysArray) - 1) {
             $arguments = array("primaryKeys" => $primaryKeysArray[$recordPosition + 1], "orderBy" => $orderBy, "order" => $order, "search" => $search, "filters" => $filters);
             $url = $urlUtility->createURL($action, $arguments);
             $code .= '<div class="tx_ezqueries_options_recordbrowser_next"><a class="tx_ezqueries_link tx_ezqueries_link_button tx_ezqueries_link_' . $action . '" href="' . $url . '">' . \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('recordbrowser_next', 'ezqueries') . '</a></div>';
         }
         $code .= '</div>';
     }
     return $code;
 }
 /**
  * Renders edit template into the view
  *
  * @param string $template Template HTML code
  * @param \Frohland\Ezqueries\Domain\Model\RecordManagement $recordManagement
  * @return string $code
  */
 public function render($template, $recordManagement)
 {
     $primaryKeys = $recordManagement->getRecords(0)->getPrimaryKeys();
     $search = $recordManagement->getConditions()->getSearch();
     $filters = $recordManagement->getConditions()->getFilters();
     $templateUtility = $this->objectManager->get('Frohland\\Ezqueries\\Utility\\TemplateUtility');
     $templateUtility->initTemplateUtility('edit', $recordManagement, $this->controllerContext->getUriBuilder());
     $urlUtility = $this->objectManager->create('Frohland\\Ezqueries\\Utility\\URLUtility', $this->controllerContext->getUriBuilder());
     $arguments = array("primaryKeys" => $primaryKeys, "search" => $search, "filters" => $filters);
     $url = $urlUtility->createURL("update", $arguments);
     if (strpos($template, '<form>') !== FALSE) {
         $formStartCode = substr($template, strpos($template, '<form>'), 6);
         $template = str_replace($formStartCode, '<form action="' . $url . '" method="post"  class="tx_ezqueries_form tx_ezqueries_edit_form">', $template);
         $code .= $templateUtility->fillMarkers($template);
     } else {
         $code = '<form action="' . $url . '" method="post"  class="tx_ezqueries_form tx_ezqueries_edit_form">';
         $code .= $templateUtility->fillMarkers($template);
         $code .= '</form>';
     }
     return $code;
 }
 /**
  * Renders new form elements
  *
  * @param \Frohland\Ezqueries\Domain\Model\RecordManagement $recordManagement
  * @param array $dataSource
  * @param string $foreignKey
  * @return string $code
  */
 public function render($recordManagement, $dataSource, $foreignKey)
 {
     $columns = $recordManagement->getTable()->getSelectedColumns();
     $foreignKeyRelationColumn = $recordManagement->getTable()->getForeignKeyRelationColumn();
     $records = $recordManagement->getRecords();
     // Generate URL
     $arguments = array('foreignKey' => $foreignKey);
     $urlUtility = $this->objectManager->create('Frohland\\Ezqueries\\Utility\\URLUtility', $this->controllerContext->getUriBuilder());
     $url = $urlUtility->createURL("assign", $arguments);
     // Generate form
     $code = '<form action="' . $url . '" method="post" name="tx_ezqueries_relation_form" id="tx_ezqueries_relation_form" class="tx_ezqueries_form tx_ezqueries_relation_form">';
     $code .= '<table class="tx_ezqueries_relation">';
     $code .= '<tr><td class="tx_ezqueries_relation_left_column">';
     $code .= '<div class="tx_ezqueries_relation_info_text tx_ezqueries_relation_info_text_selected_elements">' . \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('relation_selected_elements', 'ezqueries') . '</div>';
     $code .= '</td><td class="tx_ezqueries_relation_right_column">';
     $code .= '<div class="tx_ezqueries_relation_info_text tx_ezqueries_relation_info_text_selectable_elements">' . \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('relation_selectable_elements', 'ezqueries') . '</div>';
     $code .= '</td></tr>';
     $code .= '<tr><td class="tx_ezqueries_relation_left_column">';
     $code .= '<ul class="tx_ezqueries_relation_entries">';
     if ($records !== NULL) {
         foreach ($records as $record) {
             $recordData = $record->getData();
             $code .= '<li id="' . $recordData[$foreignKeyRelationColumn] . '" class="tx_ezqueries_relation_entry">';
             $code .= '<span class="tx_ezqueries_relation_entry_name">';
             foreach ($columns as $column => $name) {
                 $code .= $recordData[$column] . ' ';
             }
             $code .= '</span>';
             $code .= '<span class="tx_ezqueries_relation_delete_entry">X</span>';
             $code .= '</li>';
         }
     }
     $code .= '</ul>';
     $code .= '</td><td class="tx_ezqueries_relation_right_column">';
     $code .= '<div class="tx_ezqueries_select_wrapper tx_ezqueries_relation_select_wrapper">';
     $code .= '<div class="tx_ezqueries_select_filter">';
     $code .= '<input name="regexp" class="tx_ezqueries_select_filter_input" placeholder="' . \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('select_filter_label', 'ezqueries') . '" />';
     $code .= '</div>';
     $code .= '<select name="tx_ezqueries_relation_select" class="tx_ezqueries_relation_select tx_ezqueries_select" size="10">';
     foreach ($dataSource as $sourceRecord) {
         $sourceRecordLength = count($sourceRecord);
         $code .= '<option class="tx_ezqueries_relation_option" value="' . $sourceRecord[$sourceRecordLength - 1] . '">';
         $counter = 0;
         foreach ($sourceRecord as $recordItem) {
             if ($counter < $sourceRecordLength - 1) {
                 if ($counter !== 0) {
                     $code .= ' ';
                 }
                 $code .= $recordItem;
             }
             $counter++;
         }
         $code .= '</option>';
     }
     $code .= '</select></div>';
     $code .= '<input class="tx_ezqueries_input_hidden tx_ezqueries_input_relation_data_old" type="hidden" value="';
     if ($records !== NULL) {
         foreach ($records as $record) {
             $recordData = $record->getData();
             $code .= $recordData[$foreignKeyRelationColumn] . '<->';
         }
     }
     $code .= '" name="tx_ezqueries_ezqueriesplugin[relationDataOld]" />';
     $code .= '<input class="tx_ezqueries_input_hidden tx_ezqueries_input_relation_data_new" type="hidden" value="';
     if ($records !== NULL) {
         foreach ($records as $record) {
             $recordData = $record->getData();
             $code .= $recordData[$foreignKeyRelationColumn] . '<->';
         }
     }
     $code .= '" name="tx_ezqueries_ezqueriesplugin[relationDataNew]" />';
     $code .= '</td></tr></table>';
     $code .= '<div class="tx_ezqueries_form_row tx_ezqueries_form_row_submit"><input class="tx_ezqueries_submit tx_ezqueries_submit_relation" name="' . $url . '" type="submit" value="' . \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('relation_form_submit', 'ezqueries') . '" /></div>';
     $code .= '</form>';
     return $code;
 }
 /**
  * Initialize the Template utility object
  *
  * @param string $templateType Type of the template (e.g. list, edit, detail)
  * @param \Frohland\Ezqueries\Domain\Model\RecordManagement $recordManagement
  * @param UriBuilder $uriBuilder UriBuilder
  */
 public function initTemplateUtility($templateType, $recordManagement, $uriBuilder)
 {
     $this->recordManagement = $recordManagement;
     $this->recordManagementRepository = $recordManagement->getRecordManagementRepository();
     $this->arguments = $recordManagement->getArguments();
     $this->templateType = $templateType;
     $this->record = $recordManagement->getRecords(0);
     $this->recordNumber = 0;
     if ($this->record) {
         $this->primaryKeys = $this->record->getPrimaryKeys();
     }
     $this->primaryKeysArray = $recordManagement->getPrimaryKeys();
     $this->columnTypes = $recordManagement->getTable()->getColumnTypes();
     $this->orderBy = $recordManagement->getConditions()->getOrderBy();
     $this->order = $recordManagement->getConditions()->getOrder();
     $this->search = $recordManagement->getConditions()->getSearch();
     $this->filters = $recordManagement->getConditions()->getFilters();
     $this->selectedColumns = $recordManagement->getTable()->getSelectedColumns();
     $this->uriBuilder = $uriBuilder;
     $i = 0;
     $this->recordPosition = 0;
     $countPrimaryKeys = count($this->primaryKeys);
     $countRightKeys = 0;
     if ($this->primaryKeysArray !== NULL) {
         foreach ($this->primaryKeysArray as $keys) {
             $countRightKeys = 0;
             foreach ($this->primaryKeys as $column => $value) {
                 if ($keys[$column] == $value) {
                     $countRightKeys++;
                 }
             }
             if ($countRightKeys == $countPrimaryKeys) {
                 $this->recordPosition = $i;
                 break;
             } else {
                 $i++;
             }
         }
     }
 }