first commit

This commit is contained in:
2026-05-23 21:02:06 +02:00
commit a64306a939
293 changed files with 32012 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
<? global $lang;?>
<div class="article-entry">
<?
$this -> article['language']['seo_link'] ? $url = $this -> article['language']['seo_link'] : $url = 'a-' . $this -> article['id'] . '-' . \S::seo( $this -> article['language']['title'] );
if ( $main_img = $this -> article['language']['main_image'] ):
?>
<div class="main-image">
<a href="/<? if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language( \S::get_domain( $_SERVER['HTTP_HOST'] ) ) ) echo \S::get_session( 'current-lang' ) . '/';?><?= $url;?>" title="<?= $this -> article['language']['title'];?>" <? if ( $this -> article['language']['noindex'] ):?>rel="nofollow"<? endif;?>>
<img src="<?= $main_img;?>" alt="<?= htmlspecialchars( $this -> article['language']['title'] );?>"></a>
</div>
<?
endif;
if ( $this -> article['show_title'] ):
?>
<h3 class="article-title">
<a href="/<? if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language( \S::get_domain( $_SERVER['HTTP_HOST'] ) ) ) echo \S::get_session( 'current-lang' ) . '/';?><?= $url;?>" title="<?= $this -> article['language']['title'];?>" <? if ( $this -> article['language']['noindex'] ):?>rel="nofollow"<? endif;?>><?= $this -> article['language']['title'];?></a>
</h3>
<?
endif;
if ( $this -> article['show_date_add'] )
echo '<div class="date-add">' . '<i class="fa fa-clock-o "></i>' . date('Y/m/d', strtotime($this->article['date_add'])) . '</div>';
if ( $this -> article['show_date_modify'] )
echo '<div class="date-add">' . $lang['data-modyfikacji'] . ': ' . $this -> article['date_modify'] . '</div>';
?>
<div class="entry">
<?
if ( $this -> article['language']['entry'] )
{
echo $this -> article['language']['entry'];
if ( $this -> article['language']['text'] )
$more = true;
}
else
{
echo $this -> article['language']['text'];
$more = false;
}
?>
</div>
<? if ( $more ):?>
<a href="/<? if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language( \S::get_domain( $_SERVER['HTTP_HOST'] ) ) ) echo \S::get_session( 'current-lang' ) . '/';?><?= $url;?>" class="more" title="<?= $this -> article['language']['title'];?>" <? if ( $this -> article['language']['noindex'] ):?>rel="nofollow"<? endif;?>><?= $lang['wiecej'];?></a>
<? endif;?>
</div>

View File

@@ -0,0 +1,266 @@
<? global $lang, $lang_id; ?>
<div class="content_flex">
<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&amp;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['language']['table_of_contents']) : ?>
<div class="table-of-contents">
<div class="title">
<?= \S::lang('spis-tresci'); ?>
</div>
<?= $this->article['language']['table_of_contents']; ?>
</div>
<? endif; ?>
<? if ($this->article['repeat_entry']) : ?>
<div class="entry">
<?= $this->article['language']['entry']; ?>
</div>
<? endif; ?>
<div class="text">
<?
$text = $this->article['language']['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;
}
}
/* GALERIA PRODUKTU */
if ( strpos( $text, '[GALERIA_PRODUKTU]' ) !== false )
{
while ( strpos( $text, '[GALERIA_PRODUKTU]' ) !== false )
{
$text_tmp = explode( '[GALERIA_PRODUKTU]', $text );
$before = $text_tmp[0];
for ( $i = 1; $i < count( $text_tmp ); $i++ )
{
$temp = explode( '[/GALERIA_PRODUKTU]' , $text_tmp[$i] );
$path = $temp[0];
ob_start();
$images = array_diff( scandir( $path ), array( '.', '..' ) );
asort( $images );
echo \Tpl::view( 'articles/product-gallery', [
'images' => $images,
'article_id' => $this -> article['id'],
'i' => $i,
'path' => $path
] );
$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>
</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 ( $( window ).width() > 767 ) {
$( ".gallery a.image" ).fancybox({
closeBtn: false,
helpers: {
buttons: {}
}
});
}
let hashFragment = window.location.hash.substring(1);
if (hashFragment) {
console.log(hashFragment);
let navTabsElement = $("ul.nav.nav-tabs");
let targetElement = $("#" + hashFragment, navTabsElement);
if (targetElement.length) {
$("a", targetElement).click();
}
}
<? 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; ?>
});
</script>

View File

@@ -0,0 +1,345 @@
<? if ( is_array( $this -> images ) ):?>
<div class="gallery <? if ( $this -> article['pixieset'] ):?>pixieset<? endif;?>">
<? if ( $this -> article['pixieset'] ):?>
<div class="buttons">
<a id="gallery-download-<?= $this -> article['id'];?>" class="btn btn-success"><?= \S::lang( 'pobierz-wszystkie' );?></a>
<? if ( $this -> article['pixieset'] == 2 ):?>
<a id="gallery-favorite-submit-<?= $this -> article['id'];?>" class="btn btn-info"><?= \S::lang( 'zatwierdz-wybrane-fotografie' );?></a>
<? endif;?>
</div>
<? endif;?>
<div class="row">
<? foreach ( $this -> images as $img ):?>
<div class="col-xs-12 col-sm-4 col-md-3">
<? if ( $this -> article['pixieset'] ):?>
<div class="image" download-link="/pixieset/<?= md5( $img['id'] . $img['src'] );?>" image-id="<?= $img['id'];?>" counter="<?= (int)++$i;?>" favorite="<?= !$img['favorite'] ? '0' : '1';?>">
<img src="<?= $img['src'];?>" alt="<?= $img['alt'];?>">
<div class="image-options">
<a href="/pixieset/<?= md5( $img['id'] . $img['src'] );?>" target="_blank" class="download">
<i class="fa fa-download"></i>
</a>
<? if ( $this -> article['pixieset'] == 2 ):?>
<a href="#" image-id="<?= $img['id'];?>" class="image-favorite" id="image-favorite-<?= $img['id'];?>"><i class="fa <?= !$img['favorite'] ? 'fa-heart-o' : 'fa-heart';?>"></i></a>
<? endif;?>
</div>
</div>
<? else:?>
<a class="image" rel="article-<?= $this -> article['id'];?>" href="<?= $img['src'];?>" title="">
<img src="<?= $img['src'];?>" alt="<?= $img['alt'];?>">
</a>
<? endif;?>
</div>
<? endforeach;?>
</div>
</div>
<? endif;?>
<? if ( $this -> article['pixieset'] ):?>
<div class="pixieset-image-big">
<a href="#" class="close" title="<?= \S::lang( 'zamknij' );?>">
<i class="fa fa-times"></i>
</a>
<div class="buttons">
<a href="#" class="download">
<i class="fa fa-download"></i>
</a>
<? if ( $this -> article['pixieset'] == 2 ):?>
<a href="#" class="favorite" image-id="">
<i class="fa fa-heart-o"></i>
</a>
<? endif;?>
</div>
<img src="#">
<a href="#" class="next">
<i class="fa fa-angle-right"></i>
</a>
<a href="#" class="prev">
<i class="fa fa-angle-left"></i>
</a>
</div>
<? endif;?>
<script class="footer" type="text/javascript" src="/libraries/jquery/lozad.js"></script>
<script class="footer" type="text/javascript">
var pixieset_image = $( '.pixieset-image-big' );
$( function()
{
const observer = lozad();
observer.observe();
<? if ( $this -> article['pixieset'] ):?>
$( 'body' ).on( click_event, '.gallery .image img', function()
{
var image_container = $( this ).parent( '.image' );
var src = $( this ).attr( 'data-src' );
var download_link = image_container.attr( 'download-link' );
<? if ( $this -> article['pixieset'] == 2 ):?>
var image_id = image_container.attr( 'image-id' );
var favorite_status = image_container.attr( 'favorite' );
<? endif;?>
pixieset_image.find( 'img' ).attr( 'src', src );
pixieset_image.find( '.download' ).attr( 'href', download_link );
<? if ( $this -> article['pixieset'] == 2 ):?>
pixieset_image.find( '.favorite' ).attr( 'image-id', image_id );
if ( favorite_status === '1' )
pixieset_image.find( '.favorite' ).children( 'i' ).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );
else
pixieset_image.find( '.favorite' ).children( 'i' ).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );
<? endif;?>
pixieset_image.show();
return false;
});
$( 'body' ).on( click_event, '.pixieset-image-big .close', function()
{
pixieset_image.hide();
return false;
});
$( 'body' ).on( click_event, '.pixieset-image-big .prev', function()
{
var src = pixieset_image.find( 'img' ).attr( 'src' );
var index = $( 'img[data-src="' + src+ '"]' ).parent( '.image' ).attr( 'counter' );
index = parseInt( index );
if ( index <= 1 )
var image_index = $( '.image[counter="<?= $i;?>"]' );
else
var image_index = $( '.image[counter="' + ( index - 1 ) + '"]' );
var image_current = image_index.children( 'img' );
var src = image_current.attr( 'data-src' );
var download_link = image_index.attr( 'download-link' );
pixieset_image.find( '.download' ).attr( 'href', download_link );
<? if ( $this -> article['pixieset'] == 2 ):?>
var image_id = image_index.attr( 'image-id' );
var favorite_status = image_index.attr( 'favorite' );
pixieset_image.find( '.favorite' ).attr( 'image-id', image_id );
if ( favorite_status === '1' )
pixieset_image.find( '.favorite' ).children( 'i' ).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );
else
pixieset_image.find( '.favorite' ).children( 'i' ).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );
<? endif;?>
var image = $( ".pixieset-image-big img" );
image.hide();
image.attr( 'src', src );
image.show();
return false;
});
$( 'body' ).on( click_event, '.pixieset-image-big .next', function()
{
var src = pixieset_image.find( 'img' ).attr( 'src' );
var index = $( 'img[data-src="' + src+ '"]' ).parent( '.image' ).attr( 'counter' );
index = parseInt( index );
if ( index >= <?= $i;?> )
var image_index = $( '.image[counter="1"]' );
else
var image_index = $( '.image[counter="' + ( index + 1 ) + '"]' );
var image_current = image_index.children( 'img' );
var src = image_current.attr( 'data-src' );
var download_link = image_index.attr( 'download-link' );
pixieset_image.find( '.download' ).attr( 'href', download_link );
<? if ( $this -> article['pixieset'] == 2 ):?>
var image_id = image_index.attr( 'image-id' );
var favorite_status = image_index.attr( 'favorite' );
pixieset_image.find( '.favorite' ).attr( 'image-id', image_id );
if ( favorite_status === '1' )
pixieset_image.find( '.favorite' ).children( 'i' ).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );
else
pixieset_image.find( '.favorite' ).children( 'i' ).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );
<? endif;?>
var image = $( ".pixieset-image-big img" );
image.hide();
image.attr( 'src', src );
image.show();
return false;
});
$( 'body' ).on( click_event, '#gallery-download-<?= $this -> article['id'];?>', function()
{
var button = $( this );
$.ajax(
{
type: 'POST',
cache: false,
url: '/ajax.php',
data:
{
a: 'pixieset_gallery_download',
hash: '<?= md5( $this -> article['id'] . $this -> article['date_add'] );?>'
},
beforeSend: function()
{
button.addClass( 'disabled' ).html( '<?= \S::lang( 'zaczekaj-trwa-tworzenie-pliku' );?>' );
},
success: function( response )
{
data = jQuery.parseJSON( response );
window.location = '/' + data.url;
button.removeClass( 'disabled' ).html( '<?= \S::lang( 'pobierz-wszystkie' );?>' );
}
});
});
<? endif;?>
<? if ( $this -> article['pixieset'] == 2 ):?>
$( 'body' ).on( click_event, '#gallery-favorite-submit-<?= $this -> article['id'];?>', function()
{
var button = $( this );
$.ajax(
{
type: 'POST',
cache: false,
url: '/ajax.php',
data:
{
a: 'pixieset_save_favorite_images',
hash: '<?= md5( $this -> article['id'] . $this -> article['date_add'] );?>'
},
beforeSend: function()
{
button.addClass( 'disabled' );
},
success: function( response )
{
data = jQuery.parseJSON( response );
if ( data.status === true )
{
$.alert(
{
title: '<?= ucfirst( \S::lang( 'informacja' ) );?>',
content: '<?= \S::lang( 'lista-wybranych-zdjec-zostala-zatwierdzona' );?>',
type: 'orange',
closeIcon: true,
closeIconClass: 'fa fa-close',
typeAnimated: true,
animation: 'opacity',
autoClose: 'confirm|10000',
columnClass: 'col-sm-8',
theme: 'modern',
buttons:
{
confirm:
{
text: '<?= \S::lang( 'zamknij' );?>',
btnClass: 'btn-blue',
keys: ['enter'],
action: function() {}
}
}
});
}
button.removeClass( 'disabled' );
}
});
});
$( 'body' ).on( click_event, '.image-favorite', function()
{
var button = $( this );
$.ajax(
{
type: 'POST',
cache: false,
url: '/ajax.php',
data:
{
a: 'pixieset_image_favorite',
hash: '<?= md5( $this -> article['id'] . $this -> article['date_add'] );?>',
image_id: button.attr( 'image-id' )
},
beforeSend: function()
{
button.addClass( 'disabled' );
},
success: function( response )
{
data = jQuery.parseJSON( response );
if ( data.status === false )
{
button.children( 'i' ).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );
button.parents( '.image' ).attr( 'favorite', '0' );
}
else
{
button.children( 'i' ).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );
button.parents( '.image' ).attr( 'favorite', '1' );
}
button.removeClass( 'disabled' );
}
});
return false;
});
$( 'body' ).on( click_event, '.pixieset-image-big .favorite', function()
{
var button = $( this );
var image_id = button.attr( 'image-id' );
$.ajax(
{
type: 'POST',
cache: false,
url: '/ajax.php',
data:
{
a: 'pixieset_image_favorite',
hash: '<?= md5( $this -> article['id'] . $this -> article['date_add'] );?>',
image_id: image_id
},
beforeSend: function()
{
button.addClass( 'disabled' );
},
success: function( response )
{
data = jQuery.parseJSON( response );
if ( data.status === false )
{
button.children( 'i' ).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );
$( '.image[image-id="' + image_id + '"]' ).attr( 'favorite', 0 );
$( '.image[image-id="' + image_id + '"]' ).find( '.image-favorite' ).children( 'i' ).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );
}
else
{
button.children( 'i' ).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );
$( '.image[image-id="' + image_id + '"]' ).attr( 'favorite', 1 );
$( '.image[image-id="' + image_id + '"]' ).find( '.image-favorite' ).children( 'i' ).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );
}
button.removeClass( 'disabled' );
}
});
return false;
});
<? endif;?>
});
</script>

View File

@@ -0,0 +1,26 @@
<? global $lang;?>
<div class="article-miniature">
<?
$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_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 ( $img = \front\factory\Articles::get_image( $this -> article ) ):
?>
<a class="article-miniature-img" href="/<? if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language( \S::get_domain( $_SERVER['HTTP_HOST'] ) ) ) echo \S::get_session( 'current-lang' ) . '/';?><?= $url;?>" title="<?= $this -> article['language']['title'];?>" <? if ( $this -> article['language']['noindex'] ):?>rel="nofollow"<? endif;?>>
<img src="<?= $img?>" alt="">
</a>
<!-- <a class="article-miniature-link"href="/<? if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language( \S::get_domain( $_SERVER['HTTP_HOST'] ) ) ) echo \S::get_session( 'current-lang' ) . '/';?><?= $url;?>" title="<?= $this -> article['language']['title'];?>" <? if ( $this -> article['language']['noindex'] ):?>rel="nofollow"<? endif;?>></a> -->
<?
endif;
?>
<h3 class="article-title">
<a href="/<? if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language( \S::get_domain( $_SERVER['HTTP_HOST'] ) ) ) echo \S::get_session( 'current-lang' ) . '/';?><?= $url;?>" title="<?= $this -> article['language']['title'];?>" <? if ( $this -> article['language']['noindex'] ):?>rel="nofollow"<? endif;?>><?= $this -> article['language']['title'];?></a>
</h3>
<?
?>
</div>

View File

@@ -0,0 +1,267 @@
<? global $lang, $lang_id; ?>
<? if ($this->article['show_title']) : ?>
<div class="article-title-container">
<h1 class="article-title"> <?= $this->article['language']['title'] ?> </h1>
<? if ($this->article['show_date_add']) : ?>
<div class="date-add"><i class="fa fa-clock-o "></i><?= date('Y/m/d', strtotime($this->article['date_add'])) ?></div>
<? endif; ?>
</div>
<? endif; ?>
<div class="content_flex">
<div class="aside__article">
<? if ($this->article['language']['table_of_contents']) : ?>
<div class="table-of-contents">
<div class="title">
Spis treści
</div>
<?= $this->article['language']['table_of_contents']; ?>
</div>
<? endif; ?>
<div class="box-articles">
<div class="title">Najpopularniejsze artykuły</div>
[NAJPOULARNIEJSZE_ARTYKULY:79:5]
</div>
</div>
<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['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&amp;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_modify'])
echo '<div class="date-add">' . $lang['data-modyfikacji'] . ': ' . $this->article['date_modify'] . '</div>';
if ($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['repeat_entry']) : ?>
<div class="entry">
<?= $this->article['language']['entry']; ?>
</div>
<? endif; ?>
<div class="text">
<?
$text = $this->article['language']['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_id = $this->article['id'];
$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;
}
}
/* GALERIA PRODUKTU */
if ( strpos( $text, '[GALERIA_PRODUKTU]' ) !== false )
{
while ( strpos( $text, '[GALERIA_PRODUKTU]' ) !== false )
{
$text_tmp = explode( '[GALERIA_PRODUKTU]', $text );
$before = $text_tmp[0];
for ( $i = 1; $i < count( $text_tmp ); $i++ )
{
$temp = explode( '[/GALERIA_PRODUKTU]' , $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;
}
echo \Tpl::view( 'articles/product-gallery', [
'images' => $images,
'article_id' => $this -> article['id'],
'i' => $i
] );
$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_id = $this->article['id'];
$tpl->files = $this->article['files'];
echo $tpl->render('articles/article-files');
endif;
?>
<a href="javascript:history.go(-1);" class="btn button--article"><span><?= $lang['wstecz']; ?></span></a>
</div>
</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 ( $( window ).width() > 767 ) {
$(".gallery a.image").fancybox({
closeBtn: false,
helpers: {
buttons: {}
}
});
}
<? 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; ?>
});
</script>

View File

@@ -0,0 +1,9 @@
<?php
if ( is_array( $this -> articles ) ) foreach ( $this -> articles as $article )
{
$tpl = new \Tpl;
$tpl -> article = $article;
echo $tpl -> render( 'articles/article-miniature' );
}
?>

View File

@@ -0,0 +1,8 @@
<ul class="news-list">
<? if ( \S::is_array_fix( $this -> articles ) ): foreach ( $this -> articles as $article ):?>
<? $article['language']['seo_link'] ? $url = $article['language']['seo_link'] : $url = 'a-' . $article['id'] . '-' . \S::seo( $article['language']['title'] );?>
<li>
<a href="/<? if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language( \S::get_domain( $_SERVER['HTTP_HOST'] ) ) ) echo \S::get_session( 'current-lang' ) . '/';?><?= $url;?>" title="<?= $article['language']['title'];?>" <? if ( $article['language']['noindex'] ):?>rel="nofollow"<? endif;?>><?= $article['language']['title'];?></a>
</li>
<? endforeach; endif;?>
</ul>

View File

@@ -0,0 +1,77 @@
<? global $lang, $config, $settings; ?>
<? if ( $this->articles[0] ):?>
<div id="news">
<div id="title">Aktualności</div>
<div class="news-container">
<div class="big-article">
<div id="article-main">
<? $main_img = \front\factory\Articles::get_image($this->articles[0]); ?>
<? $this->articles[0]['language']['seo_link'] ? $url = $this->articles[0]['language']['seo_link'] : $url = 'a-' . $this->articles[0]['id'] . '-' . \S::seo($this->articles[0]['language']['title']); ?>
<a class = "big-article-link" href="/<? if (\S::get_session('current-lang') != \front\factory\Languages::default_language(\S::get_domain($_SERVER['HTTP_HOST']))) echo \S::get_session('current-lang') . '/'; ?><?= $url; ?>" title="<?= $this->articles[0]['language']['title']; ?>" <? if ($this->articles[0]['language']['noindex']) : ?>rel="nofollow" <? endif; ?>></a>
<div class="img"><img src="<?= $main_img; ?>" alt=""></div>
<div class="content-container">
<?
if ($this->articles[0]['show_date_add'])
echo '<div class="date-add"> <i class="fa fa-clock-o" aria-hidden="true"></i>' . date('Y-m-d', strtotime($this->articles[0]['date_add'])) . '</div>';
if ($this->articles[0]['show_title']) :
?>
<h3 class="article-title">
<a href="/<? if (\S::get_session('current-lang') != \front\factory\Languages::default_language(\S::get_domain($_SERVER['HTTP_HOST']))) echo \S::get_session('current-lang') . '/'; ?><?= $url; ?>" title="<?= $this->articles[0]['language']['title']; ?>" <? if ($this->articles[0]['language']['noindex']) : ?>rel="nofollow" <? endif; ?>><?= $this->articles[0]['language']['title']; ?></a>
</h3>
<? endif; ?>
</div>
</div>
</div>
<div class="small-articles">
<? for ($i = 1; $i < 3; $i++) : ?>
<? if (!empty($this->articles[$i])) : ?>
<? $main_img = \front\factory\Articles::get_image($this->articles[$i]); ?>
<? $this->articles[$i]['language']['seo_link'] ? $url = $this->articles[$i]['language']['seo_link'] : $url = 'a-' . $this->articles[$i]['id'] . '-' . \S::seo($this->articles[$i]['language']['title']); ?>
<div class="small-article">
<div class="img">
<a href="/<? if (\S::get_session('current-lang') != \front\factory\Languages::default_language(\S::get_domain($_SERVER['HTTP_HOST']))) echo \S::get_session('current-lang') . '/'; ?><?= $url; ?>" title="<?= $this->articles[$i]['language']['title']; ?>" <? if ($this->articles[$i]['language']['noindex']) : ?>rel="nofollow" <? endif; ?>><img src="<?= $main_img; ?>" alt=""></a>
</div>
<div class="content-container">
<?
if ($this->articles[$i]['show_date_add'])
echo '<div class="date-add"> <i class="fa fa-clock-o" aria-hidden="true"></i>' . date('Y-m-d', strtotime($this->articles[$i]['date_add'])) . '</div>';
if ($this->articles[$i]['show_title']) :
?>
<h3 class="article-title">
<a href="/<? if (\S::get_session('current-lang') != \front\factory\Languages::default_language(\S::get_domain($_SERVER['HTTP_HOST']))) echo \S::get_session('current-lang') . '/'; ?><?= $url; ?>" title="<?= $this->articles[$i]['language']['title']; ?>" <? if ($this->articles[$i]['language']['noindex']) : ?>rel="nofollow" <? endif; ?>><?= $this->articles[$i]['language']['title']; ?></a>
</h3>
<?
endif;
?>
<div class="entry">
<?
if ($this->articles[0]['language']['entry'])
{
echo $this->articles[0]['language']['entry'];
if ($this->articles[0]['language']['text'])
$more = true;
}
else
{
echo $this->articles[0]['language']['text'];
$more = false;
}
?>
</div>
<? if ($more) : ?>
<a href="/<? if (\S::get_session('current-lang') != \front\factory\Languages::default_language(\S::get_domain($_SERVER['HTTP_HOST']))) echo \S::get_session('current-lang') . '/'; ?><?= $url; ?>" class="more" title="<?= $this->articles[0]['language']['title']; ?>" <? if ($this->articles[0]['language']['noindex']) : ?>rel="nofollow" <? endif; ?>><?= $lang['wiecej']; ?></a>
<? endif; ?>
</div>
</div>
<? endif; ?>
<? endfor; ?>
</div>
</div>
</div>
<? endif; ?>

View File

@@ -0,0 +1,39 @@
<div class="pictures">
<div class="subpages-slider-container">
<div class="splide subpages-slider-<?= $this -> article_id; ?>-<?= $this -> i; ?>">
<div class="splide__track">
<ul class="splide__list">
<? foreach ( $this -> images as $image ):?>
<li class="splide__slide">
<a href="/<?= $this -> path;?><?= $image;?>" class="image">
<img alt="" src="/<?= $this -> path;?><?= $image;?>" style="max-width: 100%;" />
</a>
</li>
<? endforeach;?>
</ul>
</div>
</div>
</div>
</div>
<script class="footer" type="text/javascript">
$(function() {
$( ".pictures .splide__list .splide__slide a.image" ).fancybox({
closeBtn : true,
});
})
const checkSlider_<?= $this -> article_id;?>_<?= $this -> i;?> = document.querySelector( '.subpages-slider-<?= $this -> article_id; ?>-<?= $this -> i; ?>' );
if ( checkSlider_<?= $this -> article_id;?>_<?= $this -> i;?> )
{
let checkSlider_<?= $this -> article_id;?>_<?= $this -> i;?> = new Splide( ".subpages-slider-<?= $this -> article_id; ?>-<?= $this -> i; ?>", {
direction : "ltr",
perPage : 1,
autoplay : false,
arrows : true,
pagination : false,
type : 'loop',
});
checkSlider_<?= $this -> article_id;?>_<?= $this -> i;?>.mount();
}
</script>