first commit
This commit is contained in:
50
templates_user/articles/article-entry.php
Normal file
50
templates_user/articles/article-entry.php
Normal 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>
|
||||
266
templates_user/articles/article-full.php
Normal file
266
templates_user/articles/article-full.php
Normal 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&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>
|
||||
345
templates_user/articles/article-gallery.php
Normal file
345
templates_user/articles/article-gallery.php
Normal 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>
|
||||
26
templates_user/articles/article-miniature.php
Normal file
26
templates_user/articles/article-miniature.php
Normal 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>
|
||||
267
templates_user/articles/article.php
Normal file
267
templates_user/articles/article.php
Normal 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&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>
|
||||
9
templates_user/articles/articles-miniatures.php
Normal file
9
templates_user/articles/articles-miniatures.php
Normal 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' );
|
||||
}
|
||||
?>
|
||||
8
templates_user/articles/news-list.php
Normal file
8
templates_user/articles/news-list.php
Normal 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>
|
||||
77
templates_user/articles/news.php
Normal file
77
templates_user/articles/news.php
Normal 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; ?>
|
||||
39
templates_user/articles/product-gallery.php
Normal file
39
templates_user/articles/product-gallery.php
Normal 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>
|
||||
43
templates_user/components/product-images.php
Normal file
43
templates_user/components/product-images.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<div class="pictures">
|
||||
<div class="subpages-slider-container" style="width: 100%;">
|
||||
<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;?>" class="nolazy" 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 : false,
|
||||
pagination : true,
|
||||
type : 'loop',
|
||||
classes : {
|
||||
pagination : 'splide__pagination splide__pagination__custom',
|
||||
page : 'splide__pagination__page splide__pagination__page__custom',
|
||||
},
|
||||
});
|
||||
checkSlider_<?= $this -> article_id;?>_<?= $this -> i;?>.mount();
|
||||
}
|
||||
</script>
|
||||
69
templates_user/drzwi.php
Normal file
69
templates_user/drzwi.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<div class="dors-list">
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/drzwi-wejsciowe-z-pvc" class="title">Drzwi wejściowe z PVC</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>PREMIUM ENERGY LINE PVC</li>
|
||||
<li>COMFORT LINE PVC</li>
|
||||
<li>STANDARD PVC</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/drzwi-wejsciowe-z-pvc" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/drzwi-wejsciowe-z-PVC/ozyr/TR1010_anthrazitgrau2012-e1448372552135.jpg" alt="">
|
||||
</div>
|
||||
<!-- <div class="icons">
|
||||
<img src="/upload/filemanager/okna/a-plus-plus.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/a-plus.svg" alt="">
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/drzwi-wejscowe-z-alu" class="title">DRZWI WEJŚCOWE z ALU</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>ENERGY LINE ALU</li>
|
||||
<li>COMFORT LINE ALU</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/drzwi-wejscowe-z-alu" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/drzwi-wejsciowe-z-aluminium/abakus-s/t1190s-ral3004-e1448017098750.jpg" alt="">
|
||||
</div>
|
||||
<!-- <div class="icons">
|
||||
<img src="/upload/filemanager/okna/a-plus-plus.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/a-plus.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/a.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/b.svg" alt="">
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/drzwi-przesuwne-z-pvc" class="title">DRZWI PRZESUWNE z PVC</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>PSK Uchylno-przesuwne</li>
|
||||
<li>Smart Slide przesuwne z dociskiem</li>
|
||||
<li>HS podnoszono-przesuwne</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/drzwi-przesuwne-z-pvc" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/drzwi-przesuwne-hst/aluplast_drzwi_przesuwne_HST_85_mm_niski_prog.jpg" alt="">
|
||||
</div>
|
||||
<!-- <div class="icons">
|
||||
<img src="/upload/filemanager/okna/c.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/d.svg" alt="">
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
57
templates_user/konstrukcje-przeciwpozarowe.php
Normal file
57
templates_user/konstrukcje-przeciwpozarowe.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<div class="dors-list">
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/okienno-drzwiowe-przeciwpozarowe" class="title">OKIENNO-DRZWIOWE przeciwpożarowe</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>AF 55 Okna i drzwi przeciwpożarowe EI30</li>
|
||||
<li>AF 70 Okna i drzwi przeciwpożarowe EI60</li>
|
||||
<li>FR 90 Okna i drzwi przeciwpożarowe EI30 (E1), EI60 (E1)</li>
|
||||
<li>ASP80FIRE+ Okna i drzwi przeciwpożarowe EI30, EI60</li>
|
||||
<li>ASP60FIRE Okna i drzwi przeciwpożarowe EI30</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/okienno-drzwiowe-przeciwpozarowe" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/Konstrukcje-przeciwpozarowe/OKIENNO-DRZWIOWE-PRZECIWPOZAROWE/FR-90/fr-90-drzwi-05052022_thumbnail.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/fasadowe-przeciwpozarowe" class="title">FASADOWE przeciwpozarowe</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>MC FIRE Ściana Fasada przeciwpożarowa EI 60</li>
|
||||
<li>MC FIRE ROOF Świetliki przeciwpożarowe REI45</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/fasadowe-przeciwpozarowe" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/Konstrukcje-przeciwpozarowe/FASADOWE-PRZECIWPOZAROWE/MC-FIRE/mc-fire_thumbnail.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/drzwi-przesuwne-przeciwpozarowe" class="title">DRZWI PRZESUWNE przeciwpożarowe</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>FR 90 SLIDE Drzwi przesuwne przeciwpożarowe EI 30/PN-EN</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/drzwi-przesuwne-przeciwpozarowe" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/Konstrukcje-przeciwpozarowe/DRZWI-PRZESUWNE-PRZECIWPOZAROWE/FR-90-SLIDE/fr-90-slide_thumbnail.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
83
templates_user/menu/main-menu.php
Normal file
83
templates_user/menu/main-menu.php
Normal file
@@ -0,0 +1,83 @@
|
||||
<div id="main-menu">
|
||||
<div id="menu-container-<?= $this->menu['id']; ?>">
|
||||
<?= \front\view\Menu::pages($this->menu['pages'], 0, $this->current_page); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main-menu-btn">
|
||||
<i class="fa fa-bars"></i>
|
||||
</div>
|
||||
<div class="menu-blur"></div>
|
||||
|
||||
<script class="footer" type="text/javascript">
|
||||
$(window).resize(function() {
|
||||
windowsize = $(window).width();
|
||||
});
|
||||
|
||||
$('body').on(click_event, '#main-menu-btn', function() {
|
||||
if (windowsize <= 992) {
|
||||
if ($(this).hasClass('active')) {
|
||||
$(this).removeClass('active');
|
||||
$('#main-menu').removeClass('visible');
|
||||
$('#main-menu-btn i').addClass('fa-bars').removeClass('fa-times');
|
||||
} else {
|
||||
$(this).addClass('active');
|
||||
$('#main-menu').addClass('visible');
|
||||
$('#main-menu-btn i').removeClass('fa-bars').addClass('fa-times');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('body').on(click_event, '#menu-container-<?= $this->menu['id']; ?> > ul > li > a', function(e) {
|
||||
if (windowsize <= 992) {
|
||||
if ($(this).parent().hasClass('parent'))
|
||||
e.preventDefault();
|
||||
|
||||
if (!$(this).parent().hasClass('active')) {
|
||||
$('#menu-container-<?= $this->menu['id']; ?> > ul > li').removeClass('active');
|
||||
$(this).parent().addClass('active');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const liParent = document.querySelectorAll('#menu-container-1>.level-0>.parent');
|
||||
const menuBlur = document.querySelector('.menu-blur');
|
||||
liParent.forEach((li) => {
|
||||
li.addEventListener('mouseover', () => {
|
||||
menuBlur.classList.add('menu-blur--active');
|
||||
}, )
|
||||
|
||||
li.addEventListener('mouseout', () => {
|
||||
menuBlur.classList.remove('menu-blur--active');
|
||||
}, )
|
||||
})
|
||||
|
||||
const liParentActive = document.querySelectorAll('.level-0>.parent');
|
||||
liParentActive.forEach((li) => {
|
||||
li.addEventListener('click', () => {
|
||||
li.classList.toggle('parent--active');
|
||||
})
|
||||
})
|
||||
|
||||
const bootstrapTab = document.querySelectorAll('.nav-tabs>li');
|
||||
const tabContent = document.querySelector('.tab-content');
|
||||
|
||||
bootstrapTab.forEach((li) => {
|
||||
li.addEventListener('click', () => {
|
||||
let target = tabContent.offsetTop;
|
||||
window.scrollTo({
|
||||
top: target,
|
||||
behavior: 'smooth',
|
||||
});
|
||||
})
|
||||
})
|
||||
|
||||
$(window).scroll(function() {
|
||||
if ($(this).scrollTop() >= 110)
|
||||
$(".top_menu").attr("header-fixed", "true")
|
||||
else
|
||||
$(".top_menu").attr("header-fixed", "false")
|
||||
})
|
||||
|
||||
if ($(this).scrollTop() >= 110)
|
||||
$(".top_menu").attr("header-fixed", "true");
|
||||
</script>
|
||||
61
templates_user/menu/pages.php
Normal file
61
templates_user/menu/pages.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?
|
||||
if ( is_array( $this -> pages ) )
|
||||
{
|
||||
$settings = \front\factory\Settings::settings_details();
|
||||
|
||||
echo '<ul class="level-' . $this -> level . ' clear">';
|
||||
|
||||
foreach ( $this -> pages as $page )
|
||||
{
|
||||
$url = "";
|
||||
if ($settings['links_structure'])
|
||||
{
|
||||
if ($page['language']['seo_link'])
|
||||
{
|
||||
$url = '/'.\admin\factory\Pages::google_url_preview($page['id'], $page['language']['title'], $page['language']['lang_id'], 0, 0, $page['language']['seo_link']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$url = '/'. \admin\factory\Pages::google_url_preview($page['id'], $page['language']['title'], $page['language']['lang_id'], 0, 0, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$page['language']['seo_link'] ? $url = '/' . $page['language']['seo_link'] : $url = '/s-' . $page['id'] . '-' . \S::seo( $page['language']['title'] );
|
||||
}
|
||||
|
||||
if ( $page['page_type'] == 3 and $page['language']['link'] )
|
||||
$url = $page['language']['link'];
|
||||
|
||||
unset( $children );
|
||||
|
||||
if ( is_array( $page['pages'] ) ): foreach ( $page['pages'] as $page_tmp ):
|
||||
$children[] = $page_tmp['id'];
|
||||
endforeach; endif;
|
||||
|
||||
echo '<li id="link-' . $page['id'] . '" class="';
|
||||
|
||||
if ($page['id'] == $this -> current_page )
|
||||
echo ' active';
|
||||
|
||||
if( is_array( $page['pages'] ) and in_array( $this -> current_page, $children ) )
|
||||
echo ' open';
|
||||
|
||||
if ( is_array( $page['pages'] ) )
|
||||
echo ' parent';
|
||||
|
||||
echo '">';
|
||||
echo '<a href="';
|
||||
if ( \S::get_session( 'current-lang' ) != \front\factory\Languages::default_language() and $url != '#' and $page['page_type'] != 3 )
|
||||
echo '/' . \S::get_session( 'current-lang' );
|
||||
echo $url; if ( $settings['url_version'] ) echo '/'; echo '"'; if ( $page['language']['noindex'] ) echo 'rel="nofollow"'; echo ' title="' . $page['language']['title'] . '"'; if ( is_array( $page['pages'] ) ) echo "class='menu-trigger'"; echo '>';
|
||||
echo $page['language']['title'];
|
||||
if ( is_array( $page['pages'] ) )
|
||||
echo '<i class="fa fa-caret-down"></i>';
|
||||
echo '</a>';
|
||||
echo \front\view\Menu::pages( $page['pages'], $this -> level + 1, $this -> current_page );
|
||||
echo '</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
?>
|
||||
156
templates_user/okna.php
Normal file
156
templates_user/okna.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?
|
||||
function displayProductGallery($path, $id) {
|
||||
$images = array_diff(scandir($path), array('.', '..'));
|
||||
asort($images);
|
||||
|
||||
echo \Tpl::view('components/product-images', [
|
||||
'images' => $images,
|
||||
'i' => $id,
|
||||
'path' => $path
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="window-list">
|
||||
<div class="single-grid" id="premium-plus">
|
||||
<div class="single-title">
|
||||
<a href="/okna-premium-plus" class="title">Okna PREMIUM PLUS</a>
|
||||
</div>
|
||||
<div class="single-data">
|
||||
<div class="single-list">
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Rehau_Geneo/', 1); ?>
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Rehau_Geneo/Rehau_Geneo_01.png" alt=""> -->
|
||||
<a href="/okna-premium-plus/#rehau-geneo-86">
|
||||
<h3>REHAU GENEO® 86</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Passive-line_Ultra/', 2); ?>
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Passive-line_Ultra/Passive-line_Ultra_przekroj_01.png" alt=""> -->
|
||||
<a href="/okna-premium-plus/#passiv-line-ultra">
|
||||
<h3>PASSIV LINE ULTRA</h3>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="icons">
|
||||
<img src="/upload/filemanager/okna/a-plus-plus.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/a-plus.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="single-grid" id="premium">
|
||||
<div class="single-title">
|
||||
<a href="/okna-premium" class="title">Okna PREMIUM</a>
|
||||
</div>
|
||||
<div class="single-data">
|
||||
<div class="single-list">
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Passive-line_Plus/', 3); ?>
|
||||
<a href="/okna-premium/#passiv-line-plus">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Passive-line_Plus/Passiv-line_Plus_01.png" alt=""> -->
|
||||
<h3>PASSIV LINE PLUS</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Passive-line_S/', 4); ?>
|
||||
<a href="/okna-premium/#passiv-line-s">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Passive-line_S/Passive-line_S_01.png" alt=""> -->
|
||||
<h3>PASSIV LINE S</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Rehau_Syneo_80/', 5); ?>
|
||||
<a href="/okna-premium/#rehau-synego-80">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Rehau_Syneo_80/Rehau_Synego_80_przekroj_01.png" alt=""> -->
|
||||
<h3>REHAU SYNEGO 80</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Veka_Vigo_82/', 6); ?>
|
||||
<a href="/okna-premium/#veka-vigo-82">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Veka_Vigo_82/Veka_Vigo_82_przekroj_01.png" alt=""> -->
|
||||
<h3>VEKA VIGO 82</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Veka_Artline/', 7); ?>
|
||||
<a href="/okna-premium/#veka-artline-82">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Veka_Artline/Veka_Artline_przekroj_01.png" alt=""> -->
|
||||
<h3>VEKA ARTLINE 82</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Schuco_living_82/', 8); ?>
|
||||
<a href="/okna-premium/#schco-livio-82">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Schuco_living_82/Schuco_Living_82_przekroj_01.png" alt=""> -->
|
||||
<h3>SCHÜCO LIVIO 82</h3>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="icons">
|
||||
<img src="/upload/filemanager/okna/a-plus-plus.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/a-plus.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/a.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/b.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="single-grid" id="comfort">
|
||||
<div class="single-title">
|
||||
<a href="/okna-comfort" class="title">Okna COMFORT</a>
|
||||
</div>
|
||||
<div class="single-data">
|
||||
<div class="single-list">
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Veka_Ineo_76/', 9); ?>
|
||||
<a href="/okna-comfort/#veka-ineo-76">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Veka_Ineo_76/Veka_Ineo_76_przekroj_01.png" alt=""> -->
|
||||
<h3>VEKA INEO 76</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Energy-line_85/', 10); ?>
|
||||
<a href="/okna-comfort/#energy-line-85">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Energy-line_85/Energy_Line_85_przekroj_01.png" alt=""> -->
|
||||
<h3>ENERGY LINE 85</h3>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="icons">
|
||||
<img src="/upload/filemanager/okna/c.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/d.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="single-grid" id="standard">
|
||||
<div class="single-title">
|
||||
<a href="/okna-standard" class="title">Okna STANDARD</a>
|
||||
</div>
|
||||
<div class="single-data">
|
||||
<div class="single-list">
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Ideal_7000/', 11); ?>
|
||||
<a href="/okna-standard/#ideal-7000-85-clasic-line">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Ideal_7000/Ideal_7000_przekroj_01.png" alt=""> -->
|
||||
<h3>IDEAL 7000 85 Clasic Line</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div class="single-item">
|
||||
<?php displayProductGallery('upload/filemanager/okna/new-renders/Ideal_4000/', 12); ?>
|
||||
<a href="/okna-standard/#ideal-4000-70-classic-line">
|
||||
<!-- <img src="/upload/filemanager/okna/new-renders/Ideal_4000/Ideal_4000_przekroj_01.png" alt=""> -->
|
||||
<h3>IDEAL 4000 70 Classic Line</h3>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="icons">
|
||||
<img src="/upload/filemanager/okna/e.svg" alt="">
|
||||
<img src="/upload/filemanager/okna/f.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
261
templates_user/site/contact.php
Normal file
261
templates_user/site/contact.php
Normal file
@@ -0,0 +1,261 @@
|
||||
<? global $settings, $lang, $config;?>
|
||||
<? if ( $settings['google_maps'] and $settings['firm_adress'] ):?>
|
||||
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&key=<?=$settings['google_map_key']?>"></script>
|
||||
<script type="text/javascript">
|
||||
google.maps.event.addDomListener(window, 'load', init);
|
||||
function init() {
|
||||
var mapOptions = {
|
||||
zoom: 14,
|
||||
scrollwheel: false,
|
||||
styles: [{"elementType":"geometry","stylers":[{"hue":"#ff4400"},{"saturation":-68},{"lightness":-4},{"gamma":0.72}]},{"featureType":"road","elementType":"labels.icon"},{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"hue":"#0077ff"},{"gamma":3.1}]},{"featureType":"water","stylers":[{"hue":"#00ccff"},{"gamma":0.44},{"saturation":-33}]},{"featureType":"poi.park","stylers":[{"hue":"#44ff00"},{"saturation":-23}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"hue":"#007fff"},{"gamma":0.77},{"saturation":65},{"lightness":99}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"gamma":0.11},{"weight":5.6},{"saturation":99},{"hue":"#0091ff"},{"lightness":-86}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"lightness":-48},{"hue":"#ff5e00"},{"gamma":1.2},{"saturation":-23}]},{"featureType":"transit","elementType":"labels.text.stroke","stylers":[{"saturation":-64},{"hue":"#ff9100"},{"lightness":16},{"gamma":0.47},{"weight":2.7}]}]
|
||||
};
|
||||
var mapElement = document.getElementById('google-map');
|
||||
var map = new google.maps.Map(mapElement, mapOptions);
|
||||
|
||||
var geocoder = new google.maps.Geocoder();
|
||||
var address = '<?= preg_replace( '/\s+/', ' ', $settings['firm_adress'] );?>';
|
||||
geocoder.geocode({'address': address}, function(results, status) {
|
||||
if (status === google.maps.GeocoderStatus.OK) {
|
||||
map.setCenter(results[0].geometry.location);
|
||||
var marker = new google.maps.Marker({
|
||||
map: map,
|
||||
position: results[0].geometry.location
|
||||
});
|
||||
} else {
|
||||
alert('Geocode was not successful for the following reason: ' + status);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<div id='google-map'></div>
|
||||
<? endif;?>
|
||||
<h2 class="contact-form__title">Formularz kontaktowy</h2>
|
||||
<? if ( $settings['contact_form'] ):?>
|
||||
<form class="form-horizontal" id="contact-form">
|
||||
<div id="contact-form">
|
||||
<div class="form-group">
|
||||
<label for="email" class="col-xs-12"> <span class='red'></span></label>
|
||||
<div class="col-xs-12">
|
||||
<input type='text' id="email" name="email" class="form-control" placeholder="<?= ucfirst( $lang['email'] );?>"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="phone" class="col-xs-12"> <span class='red'></span></label>
|
||||
<div class="col-xs-12">
|
||||
<input type='text' id="phone" name="phone" class="form-control" placeholder="<?= ucfirst( $lang['nr-telefonu'] );?>" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="subject" class="col-xs-12"></label>
|
||||
<div class="col-xs-12">
|
||||
<input type='text' id="subject" name="subject" value="Zapytanie ze strony <?= preg_replace( '#^(http(s)?://)?w{3}\.#', '$1', $_SERVER['SERVER_NAME'] );?>" class="form-control" placeholder="<?= ucfirst( $lang['temat'] );?>"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="text" class="col-xs-12"></label>
|
||||
<div class="col-xs-12">
|
||||
<textarea id="text" name="text" class="form-control" rows="6" placeholder="<?= ucfirst( $lang['wiadomosc'] );?>"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-12 small">
|
||||
<input type="checkbox" id="agreement" name="agreement" required="required" style="position: relative; top: 2px;" /> <?= $lang['kontakt-zgoda-checkbox'];?>
|
||||
</div>
|
||||
</div>
|
||||
<? if ( $settings['contact_form_captcha'] ):?>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-12 small">
|
||||
<div class="captcha">
|
||||
<div class="check"> </div> <span>Nie jestem robotem</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<? endif;?>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-12">
|
||||
<a class='button--contact-form' id="contact-form-send" onclick="send_message(); return false;">
|
||||
<span><?= $lang['wyslij'];?></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<? endif;?>
|
||||
<? if ( $settings['contact_form_captcha'] ):?>
|
||||
<link href="/libraries/jquery/captcha.css" rel="stylesheet" type="text/css">
|
||||
<script class="footer" type="text/javascript" src="/libraries/jquery/captcha.js"></script>
|
||||
<? endif;?>
|
||||
<script class="footer" type="text/javascript">
|
||||
<? if ( $settings['contact_form_captcha'] ):?>
|
||||
$( function()
|
||||
{
|
||||
$( '#contact-form' ).captcha();
|
||||
});
|
||||
<? endif;?>
|
||||
|
||||
function send_message()
|
||||
{
|
||||
var email = $.trim( $( '#contact-form #email' ).val() );
|
||||
var phone = $.trim( $( '#contact-form #phone' ).val() );
|
||||
var subject = $.trim( $( '#contact-form #subject' ).val() );
|
||||
var text = $.trim( $( '#contact-form #text' ).val() );
|
||||
|
||||
if ( email === '' && phone === '' )
|
||||
{
|
||||
$.alert(
|
||||
{
|
||||
title: '<?= ucfirst( $lang['blad'] );?>',
|
||||
content: '<?= $lang['prosze-uzupelnic-email-i-telefon'];?>',
|
||||
type: 'orange',
|
||||
closeIcon: true,
|
||||
closeIconClass: 'fa fa-close',
|
||||
typeAnimated: true,
|
||||
animation: 'opacity',
|
||||
autoClose: 'confirm|10000',
|
||||
columnClass: 'col-sm-6 111',
|
||||
buttons:
|
||||
{
|
||||
confirm:
|
||||
{
|
||||
text: '<?= $lang['zamknij'];?>',
|
||||
btnClass: 'btn-blue',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !$( '#contact-form #agreement' ).is( ':checked' ) )
|
||||
{
|
||||
$.alert(
|
||||
{
|
||||
title: '<?= ucfirst( $lang['blad'] );?>',
|
||||
content: '<?= $lang['prosze-zaznaczyc-zgode'];?>',
|
||||
type: 'orange',
|
||||
closeIcon: true,
|
||||
closeIconClass: 'fa fa-close',
|
||||
typeAnimated: true,
|
||||
animation: 'opacity',
|
||||
autoClose: 'confirm|10000',
|
||||
columnClass: 'col-sm-6 222',
|
||||
buttons:
|
||||
{
|
||||
confirm:
|
||||
{
|
||||
text: '<?= $lang['zamknij'];?>',
|
||||
btnClass: 'btn-blue',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
<? if ( $settings['contact_form_captcha'] ):?>
|
||||
if ( !verifyCaptcha( '#contact-form' ) )
|
||||
{
|
||||
$.alert(
|
||||
{
|
||||
title: '<?= ucfirst( $lang['blad'] );?>',
|
||||
content: 'Proszę uzupełnić captchę',
|
||||
type: 'orange',
|
||||
closeIcon: true,
|
||||
closeIconClass: 'fa fa-close',
|
||||
typeAnimated: true,
|
||||
animation: 'opacity',
|
||||
autoClose: 'confirm|10000',
|
||||
columnClass: 'col-sm-6 333',
|
||||
buttons:
|
||||
{
|
||||
confirm:
|
||||
{
|
||||
text: '<?= $lang['zamknij'];?>',
|
||||
btnClass: 'btn-blue',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
<? endif;?>
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: 'ajax.php',
|
||||
data:
|
||||
{
|
||||
a: 'contact_form',
|
||||
email: email,
|
||||
phone: phone,
|
||||
subject: subject,
|
||||
text: text
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
alert1 = $.alert(
|
||||
{
|
||||
title: '<?= ucfirst( $lang['informacja'] );?>',
|
||||
content: '<?= $lang['prosze-czekac'];?>',
|
||||
type: 'blue',
|
||||
closeIcon: true,
|
||||
closeIconClass: 'fa fa-close',
|
||||
typeAnimated: true,
|
||||
animation: 'opacity',
|
||||
autoClose: 'confirm|60000',
|
||||
columnClass: 'col-sm-6 444',
|
||||
buttons:
|
||||
{
|
||||
confirm:
|
||||
{
|
||||
text: '<?= $lang['zamknij'];?>',
|
||||
btnClass: 'btn-blue',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
response = jQuery.parseJSON( data );
|
||||
|
||||
if ( response.status === 'ok' )
|
||||
var msg = '<?= $lang['wiadomosc-zostala-wyslana'];?>';
|
||||
else
|
||||
var msg = '<?= $lang['wiadomosc-niezostala-wyslana'];?>';
|
||||
|
||||
alert1.close();
|
||||
|
||||
$( '#contact-formp-big #email, #contact-form-big #text' ).val( '' );
|
||||
|
||||
$.alert(
|
||||
{
|
||||
title: '<?= ucfirst( $lang['informacja'] );?>',
|
||||
content: msg,
|
||||
type: 'blue',
|
||||
closeIcon: true,
|
||||
closeIconClass: 'fa fa-close',
|
||||
typeAnimated: true,
|
||||
animation: 'opacity',
|
||||
autoClose: 'confirm|10000',
|
||||
columnClass: 'col-sm-6 555',
|
||||
buttons:
|
||||
{
|
||||
confirm:
|
||||
{
|
||||
text: '<?= $lang['zamknij'];?>',
|
||||
btnClass: 'btn-blue',
|
||||
keys: ['enter'],
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
30
templates_user/site/cookie-information.php
Normal file
30
templates_user/site/cookie-information.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<!-- <div id="cookie-information">
|
||||
<div class="title">Strona, na której się znajdujesz używa plików cookies.</div>
|
||||
<div class="text">
|
||||
Używamy informacji zapisanych za pomocą cookies i podobnych technologii m.in. w celach statystycznych oraz w celu dostosowania naszych serwisów do indywidualnych potrzeb użytkowników. Mogą je także stosować współpracujący z nami reklamodawcy, firmy badawcze oraz dostawcy aplikacji multimedialnych. W programie służącym do obsługi internetu można zmienić ustawienia dotyczące cookies. Korzystanie z naszych serwisów internetowych bez zmiany ustawień dotyczących cookies oznacza, że będą one zapisane w pamięci urządzenia.
|
||||
</div>
|
||||
<a href="#" onclick="cookie_close(); return false;">[akceptuję]</a>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
function cookie_close()
|
||||
{
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/ajax.php',
|
||||
data:
|
||||
{
|
||||
a: 'cookie_close'
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
$( '#cookie-information' ).remove();
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
$( '#cookie-information' ).remove();
|
||||
}
|
||||
});
|
||||
}
|
||||
</script> -->
|
||||
7
templates_user/site/title.php
Normal file
7
templates_user/site/title.php
Normal file
@@ -0,0 +1,7 @@
|
||||
<div class="site-title-container">
|
||||
<div class="content_flex">
|
||||
<h1 class="site-title">
|
||||
<?= $this->title; ?>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
41
templates_user/stolarka-aluminiowa.php
Normal file
41
templates_user/stolarka-aluminiowa.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<div class="dors-list">
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/okna-izolowane-termicznie" class="title">OKNA izolowane termicznie</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>STAR 90 okna i drzwi z bardzo dobrą izolacją termiczną</li>
|
||||
<li>GENESIS 75 okna o podwyższonej izolacyjności termicznej</li>
|
||||
<li>SUPERIAL 75 okna i drzwi o wysokich parametrach izolacyjności termicznej</li>
|
||||
<li>IMPERIAL 65 okna i drzwi o wysokich parametrach izolacyjności termicznej</li>
|
||||
<li>ECOFUTURAL 65 okna i drzwi o wysokiech parametrach izolacyjności termicznej</li>
|
||||
<li>MAX LIGHT DESIGN okna o gładkiej i smukłej lini profila</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/okna-izolowane-termicznie" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/Stolarka-aluminiowa/OKNA-izolowane-termicznie/STAR-90/aliplast-star-90.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="single">
|
||||
<div class="left">
|
||||
<a href="/stolarka-wewnetrzna-nie-izolowana-termicznie" class="title">STOLARKA WEWNĘTRZNA nie izolowana termicznie</a>
|
||||
<div class="text">
|
||||
<ul>
|
||||
<li>ECONOLINE 51 okna i drzwi bez izolacji termicznej</li>
|
||||
<li>OFFICE ścianki działowe i okna nie izolowane termicznie</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="/stolarka-wewnetrzna-nie-izolowana-termicznie" class="more" rel="nofollow">Dowiedz się więcej</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="image">
|
||||
<img src="/upload/filemanager/img/Stolarka-aluminiowa/STOLARKA-WEWNTRZNA/ECONOLINE-51/ecoline-okno_thumbnail.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user