newuser3 napisał/a:Mam spory problem z szablonem zrobionym w Artisteer 3. W Joomli 2.5.6 mam ustawioną pozycję w menu - przegląd artykułów, po kliknięciu na nią wyświetlają się miniaturki zdjęć z artów ustawione w polu "Ilustracja wprowadzenia", na standardowym szablonie joomli chodzi to elegancko, jednak po ustawieniu szablonu z Artisteera - nie działa. Podejrzewam, że trzeba coś dodać ręcznie w kodzie, tylko pytanie -co?
W pliku /templates/.../classes/ArtxContentItem.php należy dodać nie wiadomo czemu usunięte fragmenty kodu (przetestowałem na szablonach wygenerowanych z nowszych wersji Artisteer'a:
od linii #28, czyli po wierszu:
$this->introVisible = $this->_articleParams->get('show_intro');
wkleić:
$this->images = $this->_buildImages($article, $articleParams);
}
private function _buildImages($article, $params) {
$images = (isset($this->_article->images) && is_string($this->_article->images)) ? json_decode($this->_article->images) : null;
return array(
'intro' => $this->_buildImageInfo('intro', $params, $images),
'fulltext' => $this->_buildImageInfo('fulltext', $params, $images));
}
private function _buildImageInfo($type, $params, $images) {
$image = array('image' => '', 'float' => '', 'class' => '', 'caption' => '', 'alt' => '');
if (is_null($images))
return $image;
$properties = array(
'image' => 'image_' . $type,
'float' => 'float_' . $type,
'caption' => 'image_' . $type . '_caption',
'alt' => 'image_' . $type . '_alt'
);
if (isset($images->{$properties['image']}) && !empty($images->{$properties['image']})) {
$image['image'] = $images->{$properties['image']};
$image['float'] = empty($images->{$properties['float']})
? $params->get($properties['float'])
: $images->{$properties['float']};
$image['class'] = 'img-' . $type . '-' . htmlspecialchars($image['float']);
if ($images->{$properties['caption']})
$image['caption'] = htmlspecialchars($images->{$properties['caption']});
$image['alt'] = $images->{$properties['alt']};
}
return $image;
Następnie w tym samym pliku /templates/.../classes/ArtxContentItem.php na końcu dodać kolejny kod usunięty z nowszych wersji programu (dziwne jak dla mnie, czemu to usunęli, skoro przywrócenie tego kodu prawie załatwia sprawę):
za poniższą funkcją w kodzie:
public function readmore($readmore, $readmoreLink)
{
return '<p class="readmore">' . artxLinkButton(array(
'classes' => array('a' => 'readon'),
'link' => $readmoreLink,
'content' => str_replace(' ', ' ', $readmore))) . '</p>';
}
dodać NOWĄ funkcję:
public function image($image) {
$imgTagAttrs = array('src' => $image['image'], 'alt' => $image['alt']);
if ($image['caption']) {
$imgTagAttrs['class'] = 'caption';
$imgTagAttrs['title'] = $image['caption'];
}
return artxTagBuilder('div', array('class' => $image['class']),
artxTagBuilder('img', array('src' => $image['image'], 'alt' => $image['alt'])
+ ($image['caption'] ? array('class' => 'caption', 'title' => $image['caption']) : array())));
}
Kolejną rzeczą, to jest modyfikacja plików w podkatalogu szablonu .../html/:
1. .../html/com_content/category/blog_item.php przed wierszem
$content .= $article->intro($article->intro);
następującey kod:
if (strlen($article->images['intro']['image']))
$content .= $article->image($article->images['intro']);
2. .../html/com_content/article/default.php przed wierszem
$content .= $article->text($article->text);
następującey kod:
if (strlen($article->images['fulltext']['image']))
$content .= $article->image($article->images['fulltext']);
U mnie powyższe rozwiązanie zadziałało