292 lines
11 KiB
PHP
292 lines
11 KiB
PHP
<? global $lang, $lang_id; ?>
|
|
<?
|
|
$text = $this->article['language']['text'];
|
|
$text = \front\factory\Articles::generateHeadersIds($text);
|
|
?>
|
|
<div class="article article-<?= $this->article['id']; ?>">
|
|
<?
|
|
if ($main_img = $this->article['language']['main_image']):
|
|
?>
|
|
<div class="main-image">
|
|
<img src="<?= $main_img; ?>" alt="<?= htmlspecialchars($this->article['language']['title']); ?>">
|
|
</div>
|
|
<?
|
|
endif;
|
|
|
|
$this->article['language']['seo_link'] ? $url = $this->article['language']['seo_link'] : $url = 'a-' . $this->article['id'] . '-' . \S::seo($this->article['language']['title']);
|
|
|
|
if ($this->article['show_title'])
|
|
echo '<h3 class="article-title">' . $this->article['language']['title'] . '</h3>';
|
|
|
|
if ($this->article['social_icons']):
|
|
?>
|
|
<div class="social-icons">
|
|
<a class="fb" href="http://www.facebook.com/sharer.php?u=<?= \S::get_domain_url($_SERVER['SERVER_NAME']); ?>/<?= $url; ?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" title="facebook" target="_blank" rel="nofollow">
|
|
<img src="/images/system/logo-facebook.jpg" alt="facebook" />
|
|
</a>
|
|
<a class="pinterest" href="http://pinterest.com/pin/create/button/?url=<?= \S::get_domain_url($_SERVER['SERVER_NAME']); ?>/<?= $url; ?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" title="pinterest" target="_blank" rel="nofollow">
|
|
<img src="/images/system/logo-pinterest.jpg" alt="pinterest" />
|
|
</a>
|
|
<a class="twitter" href="http://twitter.com/share?url=<?= \S::get_domain_url($_SERVER['SERVER_NAME']); ?>/<?= $url; ?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=450,width=600');return false;" title="twitter" target="_blank" rel="nofollow">
|
|
<img src="/images/system/logo-twitter.jpg" alt="twitter" />
|
|
</a>
|
|
<a class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&url=<?= \S::get_domain_url($_SERVER['SERVER_NAME']); ?>/<?= $url; ?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=500,width=850');return false;" title="linked in" target="_blank" rel="nofollow">
|
|
<img src="/images/system/logo-linkedin.jpg" alt="linkedin" />
|
|
</a>
|
|
<a class="gp" href="https://plus.google.com/share?url=<?= \S::get_domain_url($_SERVER['SERVER_NAME']); ?>/<?= $url; ?>" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" title="google+" target="_blank" rel="nofollow">
|
|
<img src="/images/system/logo-google.jpg" alt="google+" />
|
|
</a>
|
|
</div>
|
|
<?
|
|
endif;
|
|
|
|
if ($this->article['show_date_add'])
|
|
echo '<div class="date-add">' . $lang['data-dodania'] . ': ' . $this->article['date_add'] . '</div>';
|
|
|
|
if ($this->article['show_date_modify'])
|
|
echo '<div class="date-add">' . $lang['data-modyfikacji'] . ': ' . $this->article['date_modify'] . '</div>';
|
|
|
|
if (is_array($this->article['tags']) and !empty($this->article['tags'])):
|
|
echo '<div class="article-tags">';
|
|
echo '<ul>';
|
|
foreach ($this->article['tags'] as $tag):
|
|
echo '<li>';
|
|
echo '<a href="/tag,' . \S::seo($tag) . '">' . $tag . '</a>';
|
|
echo '</li>';
|
|
endforeach;
|
|
echo '</ul>';
|
|
echo '</div>';
|
|
endif;
|
|
?>
|
|
<? if ($this->article['show_table_of_contents']): ?>
|
|
<? if ($this->article['language']['table_of_contents']): ?>
|
|
<div class="table-of-contents">
|
|
<div class="title">
|
|
<?= \S::lang('spis-tresci'); ?>
|
|
</div>
|
|
<?= $this->article['language']['table_of_contents']; ?>
|
|
</div>
|
|
<? else: ?>
|
|
<div class="table-of-contents">
|
|
<div class="title">
|
|
<?= \S::lang('spis-tresci'); ?>
|
|
</div>
|
|
<?= \front\factory\Articles::generateTableOfContents($text); ?>
|
|
</div>
|
|
<? endif; ?>
|
|
<? endif; ?>
|
|
<? if ($this->article['repeat_entry']): ?>
|
|
<div class="entry">
|
|
<?= $this->article['language']['entry']; ?>
|
|
</div>
|
|
<? endif; ?>
|
|
<div class="text">
|
|
<?
|
|
|
|
/* artykuł wewnątrz innego artykułu */
|
|
preg_match_all('/ARTYKUL:[0-9]*/', $this->article['language']['text'], $articles_list);
|
|
if (is_array($articles_list[0])) foreach ($articles_list[0] as $article_tmp)
|
|
{
|
|
$article_tmp = explode(':', $article_tmp);
|
|
if ($article_tmp[1] != $this->article['id'])
|
|
$text = str_replace('[ARTYKUL:' . $article_tmp[1] . ']', \front\view\Articles::article_full($article_tmp[1], $lang_id), $text);
|
|
else
|
|
$text = str_replace('[ARTYKUL:' . $article_tmp[1] . ']', '', $text);
|
|
}
|
|
|
|
/* galeria w innym miejscu niż na końcu */
|
|
if (strpos($this->article['language']['text'], '[GALERIA]') !== false)
|
|
{
|
|
if (is_array($this->article['images'])):
|
|
$tpl = new \Tpl;
|
|
$tpl->article = $this->article;
|
|
$tpl->images = $this->article['images'];
|
|
$gallery = $tpl->render('articles/article-gallery');
|
|
endif;
|
|
$text = preg_replace('/(<p(.*)>\[GALERIA\]<\/p>|<div(.*)>\[GALERIA\]<\/div>)/', $gallery, $text);
|
|
}
|
|
|
|
/* załączniki w innym miejscu niż na końcu */
|
|
if (strpos($this->article['language']['text'], '[ZALACZNIKI]') !== false)
|
|
{
|
|
if (is_array($this->article['files'])):
|
|
$tpl = new \Tpl;
|
|
$tpl->article = $this->article;
|
|
$tpl->files = $this->article['files'];
|
|
$files = $tpl->render('articles/article-files');
|
|
endif;
|
|
$text = preg_replace('/(<p(.*)>\[ZALACZNIKI\]<\/p>|<div(.*)>\[ZALACZNIKI\]<\/div>)/', $files, $text);
|
|
}
|
|
|
|
/* slider */
|
|
if (strpos($text, '[SLIDER]') !== false)
|
|
{
|
|
while (strpos($text, '[SLIDER]') !== false)
|
|
{
|
|
$text_tmp = explode('[SLIDER]', $text);
|
|
$before = $text_tmp[0];
|
|
for ($i = 1; $i < count($text_tmp); $i++)
|
|
{
|
|
$temp = explode('[/SLIDER]', $text_tmp[$i]);
|
|
$code = $temp[0];
|
|
|
|
ob_start();
|
|
|
|
$images_tmp = explode('|', $code);
|
|
if (is_array($images_tmp) and !empty($images_tmp)) foreach ($images_tmp as $image_tmp)
|
|
{
|
|
$image = explode(';', $image_tmp);
|
|
$images[] = $image;
|
|
}
|
|
|
|
$tpl = new \Tpl;
|
|
$tpl->images = $images;
|
|
$tpl->article_id = $this->article['id'];
|
|
$tpl->i = $i;
|
|
echo $tpl->render('articles/slider');
|
|
|
|
$out .= ob_get_contents();
|
|
ob_end_clean();
|
|
|
|
$out .= $temp[1];
|
|
}
|
|
$text = $before . $out;
|
|
}
|
|
}
|
|
|
|
$dom = new DomDocument('1.0', 'UTF-8');
|
|
$dom->loadHTML('<?xml version="1.0" encoding="UTF-8"?>' . "\n" . $text);
|
|
$elements = $dom->getElementsByTagName('img');
|
|
foreach ($elements as $element)
|
|
{
|
|
if (strpos($element->getAttribute('class'), 'zoom') !== false)
|
|
{
|
|
$element_tmp = $dom->createElement('a', '');
|
|
$element_tmp->setAttribute('href', $element->getAttribute('src'));
|
|
$element_tmp->setAttribute('rel', 'article-' . $this->article['id']);
|
|
$element_tmp->setAttribute('class', 'fancybox');
|
|
|
|
$element_tmp_2 = $element->cloneNode(false);
|
|
|
|
$element_tmp->appendChild($element_tmp_2);
|
|
|
|
$element->parentNode->replaceChild($element_tmp, $element);
|
|
}
|
|
}
|
|
|
|
echo $dom->saveHTML();
|
|
?>
|
|
</div>
|
|
<?
|
|
if (is_array($this->article['images']) and strpos($this->article['language']['text'], '[GALERIA]') === false):
|
|
$tpl = new \Tpl;
|
|
$tpl->article = $this->article;
|
|
$tpl->images = $this->article['images'];
|
|
echo $tpl->render('articles/article-gallery');
|
|
endif;
|
|
|
|
if (is_array($this->article['files']) and strpos($this->article['language']['text'], '[ZALACZNIKI]') === false):
|
|
$tpl = new \Tpl;
|
|
$tpl->article = $this->article;
|
|
$tpl->files = $this->article['files'];
|
|
echo $tpl->render('articles/article-files');
|
|
endif;
|
|
?>
|
|
</div>
|
|
<link class="footer" href="/libraries/fancyBox/jquery.fancybox.css" rel="stylesheet" type="text/css">
|
|
<link class="footer" href="/libraries/fancyBox/helpers/jquery.fancybox-buttons.css" rel="stylesheet" type="text/css">
|
|
<script class="footer" type="text/javascript" src="/libraries/fancyBox/jquery.fancybox.js"></script>
|
|
<script class="footer" type="text/javascript" src="/libraries/fancyBox/helpers/jquery.fancybox-buttons.js"></script>
|
|
<script class="footer" type="text/javascript">
|
|
$(document).ready(function() {
|
|
<? if ($this->article['language']['table_of_contents']): ?>
|
|
window.addEventListener('DOMContentLoaded', () => {
|
|
const observer = new IntersectionObserver(entries => {
|
|
entries.forEach(entry => {
|
|
const id = entry.target.getAttribute('id');
|
|
if (entry.intersectionRatio > 0) {
|
|
document.querySelector('.article-<?= $this->article['id']; ?> .table-of-contents li a[href$="#' + id + '"]').parentElement.classList.add('active');
|
|
} else {
|
|
document.querySelector('.article-<?= $this->article['id']; ?> .table-of-contents li a[href$="#' + id + '"]').parentElement.classList.remove('active');
|
|
}
|
|
});
|
|
});
|
|
document.querySelectorAll('.article-<?= $this->article['id']; ?> .text div[id]').forEach((div) => {
|
|
observer.observe(div);
|
|
});
|
|
});
|
|
<? endif; ?>
|
|
});
|
|
|
|
$(document).ready(function() {
|
|
var $slider = $('.slider'),
|
|
$slides = $slider.find('li'),
|
|
slideCount = $slides.length,
|
|
currentIndex = 0;
|
|
|
|
// Ustawienie slidera na pełną szerokość dostępnego kontenera
|
|
$slider.css({
|
|
'position': 'relative',
|
|
'overflow': 'hidden',
|
|
'width': '100%',
|
|
'max-width': '400px',
|
|
'margin': '0 auto 25px',
|
|
'padding': '0',
|
|
'list-style': 'none',
|
|
'display': 'block'
|
|
});
|
|
|
|
$slides.css({
|
|
'display': 'block',
|
|
'width': '100%',
|
|
'box-sizing': 'border-box'
|
|
});
|
|
|
|
$slides.find('img').css({
|
|
'width': '100%',
|
|
'height': '100%',
|
|
'object-fit': 'contain'
|
|
});
|
|
|
|
// Zaczekaj na wczytanie wszystkich obrazów
|
|
var imagesLoaded = 0;
|
|
$slides.find('img').each(function() {
|
|
$(this).on('load', function() {
|
|
imagesLoaded++;
|
|
if (imagesLoaded === $slides.find('img').length) {
|
|
initSlider();
|
|
}
|
|
}).each(function() {
|
|
if (this.complete) $(this).trigger('load');
|
|
});
|
|
});
|
|
|
|
function initSlider() {
|
|
var slideHeight = $slides.first().outerHeight();
|
|
|
|
$slider.css('height', slideHeight);
|
|
|
|
$slides.css({
|
|
'position': 'absolute',
|
|
'width': '100%',
|
|
'left': '100%',
|
|
'top': '0'
|
|
}).eq(0).css('left', '0');
|
|
|
|
setInterval(showNextSlide, 3000);
|
|
}
|
|
|
|
function showNextSlide() {
|
|
var nextIndex = (currentIndex + 1) % slideCount;
|
|
|
|
$slides.eq(currentIndex).animate({
|
|
left: '-100%'
|
|
}, 1000);
|
|
$slides.eq(nextIndex).css('left', '100%').animate({
|
|
left: '0'
|
|
}, 1000);
|
|
|
|
currentIndex = nextIndex;
|
|
}
|
|
});
|
|
</script>
|