acympluginHelper = acym_get('helper.plugin'); $this->pluginsPath = acym_getPluginsPath(__FILE__, __DIR__); } protected function getFilteringZone($categoryFilter = true) { $result = '
'; if ($categoryFilter) $result .= $this->getCategoryFilter(); $result .= '
'; return $result; } protected function getCategoryFilter() { $filter_cat = acym_getVar('int', 'plugin_category', 0); $this->cats = []; if (!empty($this->categories)) { foreach ($this->categories as $oneCat) { $this->cats[$oneCat->parent_id][] = $oneCat; } } $this->catvalues = []; $this->catvalues[] = acym_selectOption(0, acym_translation('ACYM_ALL')); $this->handleChildrenCategories($this->rootCategoryId); return acym_select($this->catvalues, 'plugin_category', intval($filter_cat), 'class="plugin_category_select"', 'value', 'text'); } protected function handleChildrenCategories($parent_id, $level = 0) { if (empty($this->cats[$parent_id])) return; foreach ($this->cats[$parent_id] as $cat) { $this->catvalues[] = acym_selectOption($cat->id, str_repeat(" - - ", $level).$cat->title); $this->handleChildrenCategories($cat->id, $level + 1); } } protected function getElementsListing($options) { $listing = '
'; $listing .= ''; $listing .= '
'; foreach ($options['header'] as $oneColumn) { $class = empty($oneColumn['class']) ? '' : ' '.$oneColumn['class']; $listing .= '
'.acym_translation($oneColumn['label']).'
'; } $listing .= '
'; if (empty($options['rows'])) { $listing .= '

'.acym_translation('ACYM_NO_RESULTS_FOUND').'

'; } else { $selected = explode(',', acym_getVar('string', 'selected', '')); foreach ($options['rows'] as $row) { $class = 'cell grid-x acym__listing__row acym__listing__row__popup'; if (in_array($row->{$options['id']}, $selected)) $class .= ' selected_row'; $listing .= '
'; foreach ($options['header'] as $column => $oneColumn) { $value = $row->$column; if (!empty($oneColumn['type']) && $oneColumn['type'] == 'date') { if (!is_numeric($value)) $value = strtotime($value); $value = acym_getDate($value); } $class = empty($oneColumn['class']) ? '' : ' '.$oneColumn['class']; $listing .= '
'.$value.'
'; } $listing .= '
'; } } $pagination = acym_get('helper.pagination'); $pagination->setStatus($this->pageInfo->total, $this->pageInfo->page, $this->pageInfo->limit); $listing .= $pagination->displayAjax(); $listing .= '
'; return $listing; } protected function getCategoryListing() { $listing = ''; if (empty($this->catvalues)) return $listing; $listing .= '
'; foreach ($this->catvalues as $oneCat) { if (empty($oneCat->value)) continue; $listing .= '
'.acym_escape($oneCat->text).'
'; } $listing .= '
'; return $listing; } protected function finalizeCategoryFormat($name, $elements, $parameter) { if (empty($elements)) return ''; $customLayout = ACYM_MEDIA.'plugins'.DS.$name.'_auto.php'; if (file_exists($customLayout)) { ob_start(); require $customLayout; return ob_get_clean(); } $arrayElements = []; unset($parameter->id); foreach ($elements as $oneElementId) { $args = []; $args[] = $name.':'.$oneElementId; foreach ($parameter as $oneParam => $val) { if (is_bool($val)) { $args[] = $oneParam; } else { $args[] = $oneParam.':'.$val; } } $arrayElements[] = '{'.implode('|', $args).'}'; } return $this->acympluginHelper->getFormattedResult($arrayElements, $parameter); } protected function finalizeElementFormat($name, $result, $options, $data) { if (file_exists(ACYM_MEDIA.'plugins'.DS.$name.'.php')) { ob_start(); require(ACYM_MEDIA.'plugins'.DS.$name.'.php'); $result = ob_get_clean(); $result = str_replace(array_keys($data), $data, $result); } return $this->acympluginHelper->managePicts($options, $result); } }