cms = 'Joomla'; if (!defined('JPATH_ADMINISTRATOR') || !file_exists(rtrim(JPATH_ADMINISTRATOR, DS).DS.'components'.DS.'com_jevents'.DS)) { $this->installed = false; } $this->name = 'jevents'; } public function insertOptions() { $plugin = new stdClass(); $plugin->name = 'JEvents'; $plugin->icon = ACYM_DYNAMICS_URL.basename(__DIR__).'/icon.ico'; $plugin->plugin = __CLASS__; return $plugin; } public function contentPopup() { acym_loadLanguageFile('com_jevents', JPATH_SITE); $this->categories = acym_loadObjectList('SELECT id, parent_id, title FROM `#__categories` WHERE extension = "com_jevents"', 'id'); $tabHelper = acym_get('helper.tab'); $tabHelper->startTab(acym_translation('ACYM_ONE_BY_ONE')); $displayOptions = [ [ 'title' => 'ACYM_DISPLAY', 'type' => 'radio', 'name' => 'type', 'options' => [ 'title' => 'ACYM_TITLE_ONLY', 'full' => 'ACYM_FULL_TEXT', ], 'default' => 'full', ], [ 'title' => 'ACYM_CLICKABLE_TITLE', 'type' => 'boolean', 'name' => 'clickable', 'default' => true, ], [ 'title' => 'ACYM_READ_MORE', 'type' => 'boolean', 'name' => 'readmore', 'default' => true, ], [ 'title' => 'ACYM_TRUNCATE', 'type' => 'intextfield', 'name' => 'wrap', 'text' => 'ACYM_TRUNCATE_AFTER', 'default' => 0, ], [ 'title' => 'ACYM_DISPLAY_PICTURES', 'type' => 'pictures', 'name' => 'pictures', ], ]; if (file_exists(JPATH_SITE.DS.'plugins'.DS.'jevents'.DS.'jevfiles'.DS.'jevfiles.php')) { $displayOptions[] = [ 'title' => 'ACY_FILES', 'type' => 'boolean', 'name' => 'pluginFields', 'default' => true, ]; } if (file_exists(JPATH_SITE.DS.'plugins'.DS.'jevents'.DS.'jevcustomfields')) { $jevCFParams = acym_loadObject('SELECT params FROM #__extensions WHERE element = "jevcustomfields"'); if (!empty($jevCFParams->params)) { $template = json_decode($jevCFParams->params)->template; } if (!empty($template)) { $xmlfile = JPATH_SITE.DS.'plugins'.DS.'jevents'.DS.'jevcustomfields'.DS.'customfields'.DS.'templates'.DS.$template; if (file_exists($xmlfile)) { $xml = simplexml_load_file($xmlfile); $jevCf = $xml->xpath('//fields/fieldset/field'); } } if (!empty($jevCf)) { $customField = [ 'title' => 'ACYM_FIELDS_TO_DISPLAY', 'type' => 'checkbox', 'name' => 'custom', 'separator' => ', ', 'options' => [], ]; foreach ($jevCf as $oneParam) { $name = $oneParam->attributes()->name; $label = $oneParam->attributes()->label; if (!empty($name) && !empty($label)) { $customField['options'][$name] = [$label, false]; } } $displayOptions[] = $customField; } } echo $this->acympluginHelper->displayOptions($displayOptions, $this->name); echo $this->getFilteringZone(); $this->displayListing(); $tabHelper->endTab(); $tabHelper->startTab(acym_translation('ACYM_BY_CATEGORY')); $catOptions = [ [ 'title' => 'ACYM_COLUMNS', 'type' => 'text', 'name' => 'cols', 'default' => 1, ], [ 'title' => 'ACYM_MAX_NB_ELEMENTS', 'type' => 'text', 'name' => 'max', 'default' => 20, ], [ 'title' => 'ACYM_ORDER_BY', 'type' => 'select', 'name' => 'order', 'options' => [ 'id' => 'ACYM_ID', 'startrepeat' => 'JEV_EVENT_STARTDATE', 'endrepeat' => 'JEV_EVENT_ENDDATE', 'summary' => 'ACYM_TITLE', 'rand' => 'ACYM_RANDOM', ], 'default' => 'startrepeat', 'defaultdir' => 'asc', ], [ 'title' => 'ACYM_FROM', 'type' => 'date', 'name' => 'from', 'default' => date('Y-m-d'), ], [ 'title' => 'ACYM_TO', 'type' => 'date', 'name' => 'to', 'default' => '', ], ]; if (file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_jevlocations')) { $locs = acym_loadObjectList('SELECT loc_id, title, city, state, country FROM #__jev_locations'); if (!empty($locs)) { $allCities = [0 => 'ACYM_ALL']; $allStates = [0 => 'ACYM_ALL']; $allCountries = [0 => 'ACYM_ALL']; $locations = [0 => 'ACYM_ALL']; foreach ($locs as $oneLoc) { $locations[$oneLoc->loc_id] = $oneLoc->title; if (!empty($oneLoc->city)) $allCities[$oneLoc->city] = $oneLoc->city; if (!empty($oneLoc->state)) $allStates[$oneLoc->state] = $oneLoc->state; if (!empty($oneLoc->country)) $allCountries[$oneLoc->country] = $oneLoc->country; } $catOptions[] = [ 'title' => 'ACYM_LOCATION', 'type' => 'select', 'name' => 'location', 'options' => $locations, ]; $catOptions[] = [ 'title' => 'ACYM_COUNTRY', 'type' => 'select', 'name' => 'country', 'options' => $allCountries, ]; $catOptions[] = [ 'title' => 'ACYM_STATE', 'type' => 'select', 'name' => 'state', 'options' => $allStates, ]; $catOptions[] = [ 'title' => 'ACYM_CITY', 'type' => 'select', 'name' => 'city', 'options' => $allCities, ]; } } $displayOptions = array_merge($displayOptions, $catOptions); echo $this->acympluginHelper->displayOptions($displayOptions, 'auto'.$this->name, 'grouped'); echo $this->getCategoryListing(); $tabHelper->endTab(); $tabHelper->display('plugin'); } public function displayListing() { $query = 'SELECT SQL_CALC_FOUND_ROWS rpt.*, detail.*, cat.title AS cattitle FROM `#__jevents_repetition` as rpt '; $query .= 'JOIN `#__jevents_vevent` as ev ON rpt.eventid = ev.ev_id '; $query .= 'JOIN `#__categories` as cat ON ev.catid = cat.id '; $query .= 'JOIN `#__jevents_vevdetail` AS detail ON ev.detail_id=detail.evdet_id '; $filters = []; $this->pageInfo = new stdClass(); $this->pageInfo->limit = acym_getCMSConfig('list_limit'); $this->pageInfo->page = acym_getVar('int', 'pagination_page_ajax', 1); $this->pageInfo->start = ($this->pageInfo->page - 1) * $this->pageInfo->limit; $this->pageInfo->search = acym_getVar('string', 'plugin_search', ''); $this->pageInfo->filter_cat = acym_getVar('int', 'plugin_category', 0); $this->pageInfo->order = 'rpt.startrepeat'; $this->pageInfo->orderdir = 'DESC'; $searchFields = ['rpt.rp_id', 'detail.evdet_id', 'detail.description', 'detail.summary', 'detail.contact', 'detail.location']; if (!empty($this->pageInfo->search)) { $searchVal = '%'.acym_getEscaped($this->pageInfo->search, true).'%'; $filters[] = implode(" LIKE ".acym_escapeDB($searchVal)." OR ", $searchFields)." LIKE ".acym_escapeDB($searchVal); } if (!empty($this->pageInfo->filter_cat)) { $filters[] = "ev.catid = ".intval($this->pageInfo->filter_cat); } if (!empty($filters)) { $query .= ' WHERE ('.implode(') AND (', $filters).')'; } if (!empty($this->pageInfo->order)) { $query .= ' ORDER BY '.acym_secureDBColumn($this->pageInfo->order).' '.acym_secureDBColumn($this->pageInfo->orderdir); } $rows = acym_loadObjectList($query, '', $this->pageInfo->start, $this->pageInfo->limit); $this->pageInfo->total = acym_loadResult('SELECT FOUND_ROWS()'); $listingOptions = [ 'header' => [ 'summary' => [ 'label' => 'ACYM_TITLE', 'size' => '5', ], 'startrepeat' => [ 'label' => 'ACYM_DATE', 'size' => '3', 'type' => 'date', ], 'cattitle' => [ 'label' => 'ACYM_CATEGORY', 'size' => '3', ], 'rp_id' => [ 'label' => 'ACYM_ID', 'size' => '1', 'class' => 'text-center', ], ], 'id' => 'rp_id', 'rows' => $rows, ]; echo $this->getElementsListing($listingOptions); } public function replaceContent(&$email) { $this->_replaceAuto($email); $this->_replaceOne($email); } public function _replaceAuto(&$email) { $this->generateByCategory($email); if (empty($this->tags)) return; $this->acympluginHelper->replaceTags($email, $this->tags, true); } public function generateByCategory(&$email) { $time = time(); $tags = $this->acympluginHelper->extractTags($email, 'auto'.$this->name); $return = new stdClass(); $return->status = true; $return->message = ''; $this->tags = []; if (empty($tags)) return $return; $multicat = JComponentHelper::getParams('com_jevents')->get('multicategory', 0); foreach ($tags as $oneTag => $parameter) { if (isset($this->tags[$oneTag])) continue; $where = []; $where[] = 'ev.`state` = 1'; $query = 'SELECT DISTINCT rpt.rp_id FROM `#__jevents_repetition` AS rpt '; $query .= ' JOIN `#__jevents_vevent` AS ev ON rpt.eventid = ev.ev_id '; if (empty($parameter->order)) $parameter->order = 'startrepeat,ASC'; if (empty($parameter->from)) $parameter->from = date('Y-m-d H:i:s', $time); if (!empty($parameter->id)) { $allCats = explode('-', $parameter->id); array_pop($allCats); if (!empty($allCats)) { acym_arrayToInteger($allCats); $catToSearch = implode(',', $allCats); if ($multicat == 1) { $query .= ' JOIN `#__jevents_catmap` AS cats ON ev.ev_id = cats.evid '; $where[] = 'cats.catid IN ('.$catToSearch.')'; } else { $where[] = 'ev.catid IN ('.$catToSearch.')'; } } } $locationColumn = ''; if (empty($parameter->location)) { if (!empty($parameter->country)) $locationColumn = 'country'; if (!empty($parameter->state)) $locationColumn = 'state'; if (!empty($parameter->city)) $locationColumn = 'city'; } if (isset($parameter->priority) || !empty($parameter->location) || !empty($locationColumn) || strpos($parameter->order, 'summary') !== false) { $query .= ' JOIN `#__jevents_vevdetail` AS evdet ON ev.detail_id = evdet.evdet_id '; } if (!empty($locationColumn)) { $query .= ' JOIN `#__jev_locations` AS evloc ON evdet.location = evloc.loc_id'; $where[] = 'evloc.'.$locationColumn.' = '.acym_escapeDB($parameter->$locationColumn); } if (!empty($parameter->location)) { $where[] = 'evdet.location = '.intval($parameter->location); } if (isset($parameter->priority)) { $parameter->priority = explode(',', $parameter->priority); acym_arrayToInteger($parameter->priority); $where[] = 'evdet.priority IN ('.implode(',', $parameter->priority).')'; } if ((empty($parameter->mindelay) || substr($parameter->mindelay, 0, 1) != '-') && (empty($parameter->delay) || substr($parameter->delay, 0, 1) != '-')) { if (!empty($parameter->addcurrent)) { $where[] = 'rpt.`endrepeat` >= '.acym_escapeDB($parameter->from); } else { $where[] = 'rpt.`startrepeat` >= '.acym_escapeDB($parameter->from); } } if (!empty($parameter->todaysevent)) { $where[] = 'rpt.`startrepeat` <= '.acym_escapeDB(date('Y-m-d 23:59:59', $time)); } if (!empty($parameter->mindelay)) $where[] = 'rpt.`startrepeat` >= '.acym_escapeDB(date('Y-m-d H:i:s', $time + $parameter->mindelay)); if (!empty($parameter->delay)) $where[] = 'rpt.`startrepeat` <= '.acym_escapeDB(date('Y-m-d H:i:s', $time + $parameter->delay)); if (!empty($parameter->to)) $where[] = 'rpt.`startrepeat` <= '.acym_escapeDB($parameter->to); if (isset($parameter->access)) { $where[] = 'ev.`access` = '.intval($parameter->access); } $query .= ' WHERE ('.implode(') AND (', $where).')'; $ordering = explode(',', $parameter->order); if ($ordering[0] == 'rand') { $query .= ' ORDER BY rand()'; } else { $query .= ' ORDER BY '.acym_secureDBColumn(trim($ordering[0])).' '.acym_secureDBColumn(trim($ordering[1])); } if (!empty($parameter->max)) $query .= ' LIMIT '.intval($parameter->max); $allArticles = acym_loadResultArray($query); if (!empty($parameter->min) && count($allArticles) < $parameter->min) { $return->status = false; $return->message = 'Not enough events for the tag '.$oneTag.' : '.count($allArticles).' / '.$parameter->min; } $this->tags[$oneTag] = $this->finalizeCategoryFormat($this->name, $allArticles, $parameter); } return $return; } public function _replaceOne(&$email) { $tags = $this->acympluginHelper->extractTags($email, $this->name); if (empty($tags)) return; acym_loadLanguageFile('com_jevents', JPATH_SITE); if (file_exists(JPATH_SITE.DS.'plugins'.DS.'jevents'.DS.'jevfiles'.DS.'jevfiles.php')) { $JEVplugin = JPluginHelper::getPlugin('jevents', 'jevfiles'); $JEVparams = new acymParameter($JEVplugin->params); $imagesFolder = JComponentHelper::getParams('com_media')->get('image_path', 'images'); $this->imgFolder = ACYM_LIVE.$imagesFolder.'/'.trim($JEVparams->get('folder', 'jevents'), '/').'/'; } $this->useStdTime = JComponentHelper::getParams("com_jevents")->get('com_calUseStdTime'); $tagsReplaced = []; foreach ($tags as $i => $params) { if (isset($tagsReplaced[$i])) continue; $tagsReplaced[$i] = $this->_replaceContent($tags[$i]); } $this->acympluginHelper->replaceTags($email, $tagsReplaced, true); } public function _replaceContent(&$tag) { $query = 'SELECT rpt.*, detail.*, cat.title AS category, ev.catid, ev.uid FROM `#__jevents_repetition` AS rpt '; $query .= ' JOIN `#__jevents_vevent` AS ev ON rpt.eventid = ev.ev_id '; $query .= ' JOIN `#__jevents_vevdetail` AS detail ON rpt.eventdetail_id = detail.evdet_id '; $query .= 'LEFT JOIN `#__categories` AS cat ON cat.id = ev.catid '; $query .= 'WHERE rpt.rp_id = '.intval($tag->id).' LIMIT 1'; $element = acym_loadObject($query); if (empty($element)) { if (acym_isAdmin()) acym_enqueueMessage('The event "'.$tag->id.'" could not be loaded', 'notice'); return ''; } $this->acympluginHelper->translateItem($element, $tag, 'jevents_vevdetail', $element->evdet_id); if (file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_jevlocations') && !empty($element->location) && is_numeric($element->location)) { $query = 'SELECT title, street, postcode, city, state, country FROM `#__jev_locations` WHERE loc_id = '.intval($element->location); $location = acym_loadObject($query); if (!empty($location)) { foreach ($location as $prop => $value) { $element->$prop = $value; } $element->location = $location->title; } } $varFields = []; foreach ($element as $fieldName => $oneField) { $varFields['{'.$fieldName.'}'] = $oneField; } $startdate = acym_date($element->startrepeat, acym_translation('ACYM_DATE_FORMAT_LC1'), null); $enddate = acym_date($element->endrepeat, acym_translation('ACYM_DATE_FORMAT_LC1'), null); $starttime = substr($element->startrepeat, 11, 5); $endtime = substr($element->endrepeat, 11, 5); if ($starttime == '00:00') { $starttime = ''; $endtime = ''; } elseif ($element->noendtime) { $endtime = ''; } if (!empty($this->useStdTime)) { if (!empty($starttime)) $starttime = strtolower(strftime("%#I:%M%p", strtotime($element->startrepeat))); if (!empty($endtime)) $endtime = strtolower(strftime("%#I:%M%p", strtotime($element->endrepeat))); } $date = $startdate; if (!empty($starttime)) $date .= ' '.$starttime; if ($startdate == $enddate) { if (!empty($endtime)) $date .= ' - '.$endtime; } else { $date .= ' - '.$enddate; if (!empty($endtime)) $date .= ' '.$endtime; } $varFields['{date}'] = $date; $link = ACYM_LIVE.'index.php?option=com_jevents&task=icalrepeat.detail&evid='.intval($element->rp_id); if (empty($tag->itemid)) { $areaCats = []; $areaCats[] = $element->catid; $cats = acym_loadObjectList('SELECT id, parent_id FROM #__categories', 'id'); $position = $element->catid; while ($cats[$position]->parent_id != 0) { $areaCats[] = $cats[$position]->parent_id; $position = $cats[$position]->parent_id; } $menuId = ''; $menus = acym_loadObjectList('SELECT id, params FROM #__menu WHERE link LIKE "index.php?option=com_jevents&view=cat&layout=listevents"'); if (!empty($menus)) { foreach ($menus as $i => $menu) { $menus[$i]->params = json_decode($menus[$i]->params); if (empty($menus[$i]->params->catidnew)) continue; foreach ($menus[$i]->params->catidnew as $oneCatid) { if (in_array($oneCatid, $areaCats)) { $menuId = $menus[$i]->id; break; } } if ($menuId != '') break; } } if (empty($menuId)) { $summary = str_replace('-', ' ', $element->summary); $summary = trim(strtolower($summary)); $summary = preg_replace('/(\s|[^A-Za-z0-9\-])+/', '-', $summary); $summary = trim($summary, '-'); $time = explode('-', substr($element->startrepeat, 0, strpos($element->startrepeat, ' '))); $link = 'index.php?option=com_jevents&task=icalrepeat.detail&evid='.intval($element->rp_id).'&year='.intval($time[0]).'&month='.intval($time[1]).'&day='.intval($time[2]).'&title='.$summary.'&uid='.$element->uid; } else { $link .= '&Itemid='.intval($menuId); } } else { $link .= '&Itemid='.intval($tag->itemid); } if (!empty($tag->lang)) $link .= '&lang='.substr($tag->lang, 0, strpos($tag->lang, ',')); $varFields['{link}'] = $link; $title = $element->summary; $afterTitle = ''; $afterArticle = ''; $imagePath = ''; $contentText = $element->description; $customFields = []; if ($tag->type == 'full') { $customFields[] = [$date]; if (!empty($element->location)) $customFields[] = [$element->location, acym_translation('ACYM_ADDRESS')]; if (!empty($tag->custom)) { $tag->custom = explode(',', $tag->custom); foreach ($tag->custom as $i => $oneField) { $tag->custom[$i] = trim($oneField); } $jevCFParams = acym_loadObject('SELECT params FROM #__extensions WHERE element = "jevcustomfields"'); if (!empty($jevCFParams->params)) $template = json_decode($jevCFParams->params)->template; if (!empty($template)) { $xmlfile = JPATH_SITE.DS.'plugins'.DS.'jevents'.DS.'jevcustomfields'.DS.'customfields'.DS.'templates'.DS.$template; if (file_exists($xmlfile)) { $xml = simplexml_load_file($xmlfile); $jevCf = $xml->xpath('//fields/fieldset/field'); $jevCustomFields = []; foreach ($jevCf as $i => $oneField) { $name = (string)$oneField->attributes()->name; $jevCustomFields[$name] = new stdClass(); $jevCustomFields[$name]->label = (string)$oneField->attributes()->label; $jevCustomFields[$name]->type = (string)$oneField->attributes()->type; if (empty($oneField->option)) continue; $jevCustomFields[$name]->options = []; foreach ($oneField->option as $oneOption) { $jevCustomFields[$name]->options[] = $oneOption; } } } } $customVDB = acym_loadObjectList('SELECT name, value FROM #__jev_customfields WHERE evdet_id = '.intval($element->evdet_id)); foreach ($customVDB as $oneField) { $varFields['{'.$oneField->name.'}'] = $oneField->value; } $customValues = []; foreach ($customVDB as $oneCustomValue) { $customValues[$oneCustomValue->name] = $oneCustomValue->value; } if (!empty($customValues)) { foreach ($tag->custom as $oneCustom) { $label = (!empty($jevCustomFields[$oneCustom]->label)) ? $jevCustomFields[$oneCustom]->label : $oneCustom; if (!empty($jevCustomFields[$oneCustom]->options)) { $multipleValues = explode(',', $customValues[$oneCustom]); $orderedValues = []; foreach ($multipleValues as $oneValue) { $orderedValues[$oneValue] = $oneValue; } $possibleValues = []; foreach ($jevCustomFields[$oneCustom]->options as $oneOption) { $possibleValues[(string)$oneOption->attributes()->value] = (string)$oneOption; } foreach ($orderedValues as $key => $j) { $orderedValues[$key] = $possibleValues[$key]; } $customValues[$oneCustom] = implode(', ', $orderedValues); } elseif ($jevCustomFields[$oneCustom]->type == 'jevrurl') { //we want a link ! $customValues[$oneCustom] = ''.$customValues[$oneCustom].''; } elseif ($jevCustomFields[$oneCustom]->type == 'jevrcalendar') {//comprehensible display $customValues[$oneCustom] = acym_getDate(acym_getTime($customValues[$oneCustom]), acym_translation('ACYM_DATE_FORMAT_LC1')); } elseif ($jevCustomFields[$oneCustom]->type == 'jevruser') {//we do not want the user id but its name $user = acym_loadResultArray('SELECT name FROM #__users WHERE id = '.intval($customValues[$oneCustom])); $customValues[$oneCustom] = (empty($user[0])) ? $customValues[$oneCustom] : $user[0]; } elseif ($jevCustomFields[$oneCustom]->type == 'jevcfboolean') { $customValues[$oneCustom] = empty($customValues[$oneCustom]) ? acym_translation('ACYM_NO') : acym_translation('ACYM_YES'); } if (empty($customValues[$oneCustom]) && in_array($jevCustomFields[$oneCustom]->type, ['jevcfuser', 'jevcfyoutube', 'jevcfupdatable', 'jevcfdblist', 'jevcftext', 'jevcfimage', 'jevcffile', 'jevcfhtml', 'jevcfeventflag', 'jevcfnotes'])) { unset($customValues[$oneCustom]); } if (isset($customValues[$oneCustom])) $customFields[] = [$customValues[$oneCustom], $label]; } } } if (!empty($element->contact)) { $value = $element->contact; if (acym_isValidEmail($value)) $value = ''.$value.''; $customFields[] = [$value, acym_translation('JEV_EVENT_CONTACT')]; } if (!empty($element->extra_info)) $customFields[] = [$element->extra_info]; } if (file_exists(JPATH_SITE.DS.'plugins'.DS.'jevents'.DS.'jevfiles'.DS.'jevfiles.php')) { if (in_array(acym_getPrefix().'jev_files_combined', acym_getTableList())) { $filesRow = acym_loadObject( 'SELECT files.* FROM `#__jev_files_combined` AS files JOIN #__jevents_repetition AS rpt ON files.ev_id = rpt.eventid WHERE rpt.rp_id = '.intval($tag->id) ); if (!empty($filesRow)) { for ($i = 1 ; $i < 30 ; $i++) { if (!empty($filesRow->{'imagename'.$i})) { $varFields['{imgpath'.$i.'}'] = $this->imgFolder.$filesRow->{'imagename'.$i}; if (empty($imagePath)) { $imagePath = $varFields['{imgpath'.$i.'}']; continue; } $afterArticle .= '
'; } if (!empty($filesRow->{'filename'.$i})) { $varFields['{filepath'.$i.'}'] = $this->imgFolder.$filesRow->{'filename'.$i}; if (!empty($tag->pluginFields)) $files[] = ''.(empty($filesRow->{'filename'.$i}) ? : $filesRow->{'filetitle'.$i}).''; } } if (!empty($files)) $afterArticle .= implode('
', $files); } } else { $files = acym_loadObjectList( 'SELECT files.* FROM `#__jev_files` AS files JOIN #__jevents_repetition AS rpt ON files.ev_id = rpt.eventid WHERE rpt.rp_id = '.intval($tag->id).' ORDER BY filetype DESC' ); if (!empty($files)) { foreach ($files as $i => $oneFile) { if (empty($oneFile->filename)) continue; $varFields['{imgpath'.$i.'}'] = $this->imgFolder.$oneFile->filename; if ($oneFile->filetype == 'file') { if (!empty($tag->pluginFields)) $afterArticle .= '
'.$oneFile->filetitle.''; } else { if (empty($imagePath)) { $imagePath = $varFields['{imgpath'.$i.'}']; continue; } $afterArticle .= '
'; } } } } } $varFields['{readmore}'] = ''.acym_translation('ACYM_READ_MORE').''; if (!empty($tag->readmore)) { $afterArticle .= $varFields['{readmore}']; } $format = new stdClass(); $format->tag = $tag; $format->title = $title; $format->afterTitle = $afterTitle; $format->afterArticle = $afterArticle; $format->imagePath = $imagePath; $format->description = $contentText; $format->link = empty($tag->clickable) ? '' : $link; $format->cols = empty($tag->nbcols) ? 1 : intval($tag->nbcols); $format->customFields = $customFields; $result = '
'.$this->acympluginHelper->getStandardDisplay($format).'
'; return $this->finalizeElementFormat($this->name, $result, $tag, $varFields); } }