first commit
This commit is contained in:
20
admin/templates/.htaccess
Normal file
20
admin/templates/.htaccess
Normal file
@@ -0,0 +1,20 @@
|
||||
# Wyłącz listowanie
|
||||
Options -Indexes
|
||||
|
||||
# Domyślnie blokujemy wszystko…
|
||||
Require all denied
|
||||
|
||||
# …a dopiero potem pozwalamy na pliki statyczne
|
||||
<FilesMatch "\.(css|js|map|mjs|png|jpe?g|gif|svgz?|webp|ico|woff2?|woff|ttf|eot)$">
|
||||
Require all granted
|
||||
</FilesMatch>
|
||||
|
||||
# Twardo blokuj cokolwiek, co mogłoby się wykonać
|
||||
<FilesMatch "\.(php|phtml|php[0-9]?|phar|pht|cgi|pl|py|sh)$">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
# Nie serwuj plików ukrytych (.env itp.)
|
||||
<FilesMatch "^\.(.*)$">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
1205
admin/templates/articles/article-edit.php
Normal file
1205
admin/templates/articles/article-edit.php
Normal file
File diff suppressed because it is too large
Load Diff
67
admin/templates/articles/articles-archive-list.php
Normal file
67
admin/templates/articles/articles-archive-list.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_articles' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> sql = 'SELECT *'
|
||||
. 'FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, date_add, date_modify, status, '
|
||||
. '( SELECT title FROM pp_articles_langs AS pal, pp_langs AS pl WHERE lang_id = pl.id AND article_id = pa.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title '
|
||||
. 'FROM '
|
||||
. 'pp_articles AS pa WHERE status = -1 '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] '
|
||||
. 'ORDER BY '
|
||||
. '[order_p1] [order_p2]';
|
||||
$grid -> sql_count = 'SELECT '
|
||||
. 'COUNT(0) FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, date_add, date_modify, status, '
|
||||
. '( SELECT title FROM pp_articles_langs AS pal, pp_langs AS pl WHERE lang_id = pl.id AND article_id = pa.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title '
|
||||
. 'FROM '
|
||||
. 'pp_articles AS pa WHERE status = -1 '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] ';
|
||||
$grid -> debug = true;
|
||||
$grid -> order = [ 'column' => 'date_add', 'type' => 'DESC' ];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Tytuł',
|
||||
'db' => 'id',
|
||||
'replace' => [ 'sql' => "SELECT title FROM pp_articles_langs AS pal, pp_langs AS pl WHERE lang_id = pl.id AND article_id = [id] AND title != '' ORDER BY o ASC LIMIT 1" ]
|
||||
],
|
||||
[
|
||||
'name' => 'Data dodania',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 140px;' ],
|
||||
'php' => 'echo date( "Y-m-d H:i", strtotime( "[date_add]" ) );'
|
||||
],
|
||||
[
|
||||
'name' => 'Data modyfikacji',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 140px;' ],
|
||||
'php' => 'echo date( "Y-m-d H:i", strtotime( "[date_modify]" ) );'
|
||||
],
|
||||
[
|
||||
'name' => 'Akcja',
|
||||
'th' => [ 'class' => 'g-center' ],
|
||||
'td' => [ 'class' => 'g-center', 'style' => 'width: 50px;' ],
|
||||
'content' => '<a href="/admin/articles_archive/article_restore/id=[id]">przywróć</a>'
|
||||
],
|
||||
[
|
||||
'name' => 'Akcja',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/articles_archive/article_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center' ],
|
||||
'td' => [ 'class' => 'g-center', 'style' => 'width: 50px;' ]
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
121
admin/templates/articles/articles-browse-list.php
Normal file
121
admin/templates/articles/articles-browse-list.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_articles' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> sql = 'SELECT *'
|
||||
. 'FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, date_add, date_modify, status, '
|
||||
. '( SELECT title FROM pp_articles_langs AS pal, pp_langs AS pl WHERE lang_id = pl.id AND article_id = pa.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title, '
|
||||
. '( SELECT login FROM pp_users AS pu WHERE pu.id = pa.modify_by ) AS user '
|
||||
. 'FROM '
|
||||
. 'pp_articles AS pa WHERE status != -1 '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] '
|
||||
. 'ORDER BY '
|
||||
. '[order_p1] [order_p2]';
|
||||
$grid -> sql_count = 'SELECT '
|
||||
. 'COUNT(0) FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, date_add, date_modify, status, '
|
||||
. '( SELECT title FROM pp_articles_langs AS pal, pp_langs AS pl WHERE lang_id = pl.id AND article_id = pa.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title, '
|
||||
. '( SELECT login FROM pp_users AS pu WHERE pu.id = pa.modify_by ) AS user '
|
||||
. 'FROM '
|
||||
. 'pp_articles AS pa WHERE status != -1 '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] ';
|
||||
$grid -> debug = true;
|
||||
$grid -> order = [ 'column' => 'date_add', 'type' => 'DESC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Tytuł', 'db' => 'title', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ],
|
||||
[ 'name' => 'Data dodania', 'db' => 'date_add', 'type' => 'date_range' ],
|
||||
[ 'name' => 'Data modyfikacji', 'db' => 'date_modify', 'type' => 'date_range' ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Tytuł',
|
||||
'db' => 'title',
|
||||
'sort' => true,
|
||||
'php' => 'echo "[title]"; echo "<small class=\'text-muted\'>" . \admin\factory\Articles::article_pages( [id] ) . "</small>";'
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Data dodania',
|
||||
'db' => 'date_add',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 220px;' ],
|
||||
'php' => 'echo date( "Y-m-d H:i", strtotime( "[date_add]" ) );'
|
||||
],
|
||||
[
|
||||
'name' => 'Data modyfikacji',
|
||||
'db' => 'date_modify',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 220px;' ],
|
||||
'php' => 'echo date( "Y-m-d H:i", strtotime( "[date_modify]" ) );'
|
||||
],
|
||||
[
|
||||
'name' => 'Modyfikowany przez',
|
||||
'db' => 'user',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 220px;' ],
|
||||
],
|
||||
[
|
||||
'name' => 'Akcja',
|
||||
'db' => 'id',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 120px;' ],
|
||||
'php' => 'echo "<a href=\'#\' class=\'button\' url=\'/" . \admin\factory\Articles::article_url( [id] ) . "\'>wybierz</a>";'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<style type="text/css">
|
||||
<? if ( $this -> modal ):?>
|
||||
.menu-left, .navbar {
|
||||
display: none;
|
||||
}
|
||||
.site-content {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
}
|
||||
<? endif;?>
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function getUrlParam(paramName)
|
||||
{
|
||||
var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i');
|
||||
var match = window.location.search.match(reParam);
|
||||
|
||||
return (match && match.length > 1) ? match[1] : '';
|
||||
}
|
||||
|
||||
$( function()
|
||||
{
|
||||
$( '#sidebar_left, .navbar-fixed-top' ).hide();
|
||||
|
||||
var funcNum = getUrlParam('CKEditorFuncNum');
|
||||
|
||||
$( 'body' ).on( 'click', '.button', function()
|
||||
{
|
||||
window.opener.CKEDITOR.tools.callFunction(funcNum, $( this ).attr( 'url' ) );
|
||||
window.close();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
144
admin/templates/articles/articles-list.php
Normal file
144
admin/templates/articles/articles-list.php
Normal file
@@ -0,0 +1,144 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_articles' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> sql = 'SELECT *'
|
||||
. 'FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, date_add, date_modify, status, '
|
||||
. '( SELECT title FROM pp_articles_langs AS pal, pp_langs AS pl WHERE lang_id = pl.id AND article_id = pa.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title, '
|
||||
. '( SELECT login FROM pp_users AS pu WHERE pu.id = pa.modify_by ) AS user '
|
||||
. 'FROM '
|
||||
. 'pp_articles AS pa WHERE status != -1 '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] '
|
||||
. 'ORDER BY '
|
||||
. '[order_p1] [order_p2]';
|
||||
$grid -> sql_count = 'SELECT '
|
||||
. 'COUNT(0) FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, date_add, date_modify, status, '
|
||||
. '( SELECT title FROM pp_articles_langs AS pal, pp_langs AS pl WHERE lang_id = pl.id AND article_id = pa.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title, '
|
||||
. '( SELECT login FROM pp_users AS pu WHERE pu.id = pa.modify_by ) AS user '
|
||||
. 'FROM '
|
||||
. 'pp_articles AS pa WHERE status != -1 '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] ';
|
||||
$grid -> debug = true;
|
||||
if ( !\S::get_session( 'gpp_articlesorder' ) )
|
||||
$grid -> order = [ 'column' => 'date_add', 'type' => 'DESC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Tytuł', 'db' => 'title', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ],
|
||||
[ 'name' => 'Data dodania', 'db' => 'date_add', 'type' => 'date_range' ],
|
||||
[ 'name' => 'Data modyfikacji', 'db' => 'date_modify', 'type' => 'date_range' ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Tytuł',
|
||||
'db' => 'title',
|
||||
'sort' => true,
|
||||
'php' => 'echo "<a href=\'/admin/articles/article_edit/id=[id]\'>[title]</a>"; echo "<small class=\'text-muted\'>" . \admin\factory\Articles::article_pages( [id] ) . "</small>";'
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Data dodania',
|
||||
'db' => 'date_add',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 220px;' ],
|
||||
'php' => 'echo date( "Y-m-d H:i", strtotime( "[date_add]" ) );',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Data modyfikacji',
|
||||
'db' => 'date_modify',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 220px;' ],
|
||||
'php' => 'echo date( "Y-m-d H:i", strtotime( "[date_modify]" ) );',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Modyfikowany przez',
|
||||
'db' => 'user',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 220px;' ],
|
||||
], [
|
||||
'name' => 'Akcja',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 120px;' ],
|
||||
'php' => 'echo "<a href=\'#\' class=\'duplicate-article\' article-id=\'[id]\'>duplikuj</a>";'
|
||||
], [
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/articles/article_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/articles/article_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj artykuł',
|
||||
'url' => '/admin/articles/article_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$( function() {
|
||||
$( 'body' ).on( 'click', '.duplicate-article', function(e) {
|
||||
e.preventDefault();
|
||||
var article_id = $( this ).attr( 'article-id' );
|
||||
$.alert(
|
||||
{
|
||||
title: 'Potwierdź',
|
||||
content: 'Na pewno chcesz zduplikować wybrany artykuł?',
|
||||
type: 'orange',
|
||||
closeIcon: true,
|
||||
closeIconClass: 'fa fa-close',
|
||||
typeAnimated: true,
|
||||
animation: 'opacity',
|
||||
theme: 'modern',
|
||||
columnClass: 'col-lg-8 col-lg-offset-2',
|
||||
buttons: {
|
||||
confirm: {
|
||||
text: 'Zatwierdź',
|
||||
btnClass: 'btn-blue',
|
||||
keys: ['enter'],
|
||||
action: function() {
|
||||
document.location.href = '/admin/articles/duplicate_article/id=' + article_id;
|
||||
}
|
||||
},
|
||||
cancel:
|
||||
{
|
||||
text: 'Zamknij',
|
||||
btnClass: 'btn-dark',
|
||||
action: function() {}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
16
admin/templates/articles/subpages-list.php
Normal file
16
admin/templates/articles/subpages-list.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<? if ( is_array( $this -> pages ) ):?>
|
||||
<ol>
|
||||
<? foreach ( $this -> pages as $page ):?>
|
||||
<li id="list_<?= $page['id'];?>" idk="<?= $page['id'];?>" class="sort-nonesting list_<?= $page['id'];?>" menu="<?= $page['menu_id'];?>">
|
||||
<div class="content <?= $this -> step < 2 ? $tmp = 'content_page' : $tmp = 'content_page_last_level';?>" <? if ( !$page['status'] ) echo 'style="color: #cc0000;"';?>>
|
||||
<span class="disclose"><span></span></span>
|
||||
<input type="checkbox" class="g-checkbox" name="pages" value="<?= $page['id'];?>" <? if ( is_array( $this -> article_pages ) and in_array( $page['id'], $this -> article_pages ) ):?>checked="checked"<? endif;?> /><?= $page['title'];?>
|
||||
</div>
|
||||
<?
|
||||
if ( is_array( $page['subpages'] ) )
|
||||
echo \admin\view\Articles::subpages_list( $page['subpages'], $this -> article_pages, $page['id'], $this -> step + 1 );
|
||||
?>
|
||||
</li>
|
||||
<? endforeach;?>
|
||||
</ol>
|
||||
<? endif;?>
|
||||
112
admin/templates/authors/author-edit.php
Normal file
112
admin/templates/authors/author-edit.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<script type="text/javascript" src="/libraries/ckeditor/ckeditor.js"></script>
|
||||
<script type="text/javascript" src="/libraries/ckeditor/adapters/jquery.js"></script>
|
||||
<?
|
||||
\S::set_session( 'admin', true );
|
||||
global $db;
|
||||
ob_start();
|
||||
?>
|
||||
<div id="settings-tabs">
|
||||
<ul class="resp-tabs-list settings-tabs">
|
||||
<li><i class="fa fa-wrench"></i>Ustawienia</li>
|
||||
<li><i class="fa fa-file"></i>Zawartość</li>
|
||||
</ul>
|
||||
<div class="resp-tabs-container settings-tabs">
|
||||
<div>
|
||||
<?= \Html::input( [
|
||||
'label' => 'Autor',
|
||||
'name' => 'author',
|
||||
'id' => 'author',
|
||||
'value' => $this -> author['author'],
|
||||
'class' => 'require'
|
||||
] );?>
|
||||
<?= \Html::input_icon( [
|
||||
'label' => 'Zdjęcie',
|
||||
'name' => 'image',
|
||||
'id' => 'image',
|
||||
'value' => $this -> author['image'],
|
||||
'icon_content' => 'przeglądaj',
|
||||
'icon_js' => "window.open ( '/libraries/filemanager-9.14.1/dialog.php?type=1&popup=1&field_id=image&akey=c3cb2537d25c0efc9e573d059d79c3b8', 'mywindow', 'location=1,status=1,scrollbars=1, width=1100,height=700');"
|
||||
] );?>
|
||||
</div>
|
||||
<div>
|
||||
<div id="languages-main">
|
||||
<ul class="resp-tabs-list languages-main">
|
||||
<? if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $lg ):?>
|
||||
<? if ( $lg['status'] ):?>
|
||||
<li><?= $lg['name'];?></a></li>
|
||||
<? endif;?>
|
||||
<? endforeach;
|
||||
endif;?>
|
||||
</ul>
|
||||
<div class="resp-tabs-container languages-main">
|
||||
<? if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $lg ):?>
|
||||
<? if ( $lg['status'] ):?>
|
||||
<div>
|
||||
<?= \Html::textarea( [
|
||||
'label' => 'Opis',
|
||||
'name' => 'description',
|
||||
'id' => 'description_' . $lg['id'],
|
||||
'value' => $this -> author['languages'][$lg['id']]['description']
|
||||
] );?>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$('#description_<?= $lg['id'];?>').ckeditor({
|
||||
toolbar: 'MyTool',
|
||||
height: '300'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<? endif;?>
|
||||
<? endforeach; endif;?>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'author-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja autora';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> author['id']
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/authors/save/', 'back_url' => '/admin/authors/view_list/' ],
|
||||
'cancel' => [ 'url' => '/admin/authors/view_list/' ]
|
||||
];
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$(function ()
|
||||
{
|
||||
disable_menu();
|
||||
|
||||
$( '#settings-tabs' ).easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'settings-tabs',
|
||||
type: 'vertical'
|
||||
});
|
||||
|
||||
$('#languages-main').easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'languages-main'
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
<script>CKEDITOR.dtd.$removeEmpty['span'] = false;</script>
|
||||
41
admin/templates/authors/view-list.php
Normal file
41
admin/templates/authors/view-list.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_authors' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'author', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'author' => 'Autor', 'db' => 'name', 'type' => 'text' ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
], [
|
||||
'name' => 'Autor',
|
||||
'db' => 'author',
|
||||
'sort' => true,
|
||||
'php' => 'echo "<a href=\"/admin/authors/edit/id=[id]\">[author]</a>";'
|
||||
], [
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/authors/edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
], [
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/authors/delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj autora',
|
||||
'url' => '/admin/authors/edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
65
admin/templates/backups/backup-list.php
Normal file
65
admin/templates/backups/backup-list.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_backups' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> src = $this -> backups;
|
||||
$grid -> debug = true;
|
||||
$grid -> order = [ 'column' => 'name', 'type' => 'DESC' ];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Nazwa',
|
||||
'db' => 'name',
|
||||
'sort' => true,
|
||||
'php' => 'echo "<a href=\'/../backups/[name]\' target=\'_blank\'>[name]</a>";'
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/backups/backup_delete/name=[name]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Utwórz kopie zapasową',
|
||||
'url' => '#',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'confirm btn btn-success btn-sm mr5"'
|
||||
],
|
||||
[
|
||||
'label' => 'Pobierz plik restore.php',
|
||||
'url' => '/admin/backups/download_restore_file/',
|
||||
'icon' => 'fa-download',
|
||||
'class' => 'btn btn-system btn-sm mr5"'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script>
|
||||
$(document).ready(function ()
|
||||
{
|
||||
$('body').on('click', '.confirm', function ()
|
||||
{
|
||||
$.prompt('Na pewno chcesz utworzyć kopię zapasową ?',
|
||||
{
|
||||
title: 'Potwierdź utworzenie',
|
||||
submit: function (e, v, m, f)
|
||||
{
|
||||
if ( v === true)
|
||||
document.location.href = '/admin/backups/backup_save/';
|
||||
},
|
||||
buttons: {
|
||||
'tak': true, 'nie': false
|
||||
},
|
||||
focus: 1
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
180
admin/templates/banners/banner-edit.php
Normal file
180
admin/templates/banners/banner-edit.php
Normal file
@@ -0,0 +1,180 @@
|
||||
<script type="text/javascript" src="/libraries/ckeditor/ckeditor.js"></script>
|
||||
<script type="text/javascript" src="/libraries/ckeditor/adapters/jquery.js"></script>
|
||||
<?
|
||||
\S::set_session( 'admin', true );
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
|
||||
<div id="settings-tabs">
|
||||
<ul class="resp-tabs-list settings-tabs">
|
||||
<li><i class="fa fa-wrench"></i>Ustawienia</li>
|
||||
<li><i class="fa fa-file"></i>Zawartość</li>
|
||||
</ul>
|
||||
<div class="resp-tabs-container settings-tabs">
|
||||
<div>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Nazwa',
|
||||
'name' => 'name',
|
||||
'id' => 'name',
|
||||
'value' => $this -> banner['name'],
|
||||
'class' => 'require'
|
||||
) );
|
||||
?>
|
||||
<?= \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Aktywny',
|
||||
'name' => 'status',
|
||||
'checked' => $this -> banner['status'] == 1 or ! $this -> banner['id'] ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= Html::input(
|
||||
array(
|
||||
'label' => 'Data rozpoczęcia',
|
||||
'name' => 'date_start',
|
||||
'id' => 'date_start',
|
||||
'value' => $this -> banner['date_start'],
|
||||
'class' => 'date'
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Data zakończenia',
|
||||
'name' => 'date_end',
|
||||
'id' => 'date_end',
|
||||
'value' => $this -> banner['date_end'],
|
||||
'class' => 'date'
|
||||
) );
|
||||
?>
|
||||
<?= \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Slajder / Strona główna',
|
||||
'name' => 'home_page',
|
||||
'checked' => $this -> banner['home_page'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div>
|
||||
<div id="languages-main">
|
||||
<ul class="resp-tabs-list languages-main">
|
||||
<? if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $lg ):?>
|
||||
<? if ( $lg['status'] ):?>
|
||||
<li><?= $lg['name'];?></a></li>
|
||||
<? endif;?>
|
||||
<? endforeach;
|
||||
endif;?>
|
||||
</ul>
|
||||
<div class="resp-tabs-container languages-main">
|
||||
<? if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $lg ):?>
|
||||
<? if ( $lg['status'] ):?>
|
||||
<div>
|
||||
<?= \Html::input_icon(
|
||||
array(
|
||||
'label' => 'Obraz',
|
||||
'name' => 'src',
|
||||
'id' => 'src_' . $lg['id'],
|
||||
'value' => $this -> banner['languages'][ $lg['id'] ]['src'],
|
||||
'icon_content' => 'przeglądaj',
|
||||
'icon_js' => "window.open ( '/libraries/filemanager-9.14.1/dialog.php?type=1&popup=1&field_id=src_" . $lg['id'] . "&akey=c3cb2537d25c0efc9e573d059d79c3b8', 'mywindow', 'location=1,status=1,scrollbars=1, width=1100,height=700');"
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Url',
|
||||
'name' => 'url',
|
||||
'id' => 'url_' . $lg['id'],
|
||||
'value' => $this -> banner['languages'][ $lg['id'] ]['url']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::textarea(
|
||||
array(
|
||||
'label' => 'Kod html',
|
||||
'name' => 'html',
|
||||
'id' => 'html_' . $lg['id'],
|
||||
'value' => $this -> banner['languages'][$lg['id']]['html']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::textarea(
|
||||
array(
|
||||
'label' => 'Treść',
|
||||
'name' => 'text',
|
||||
'id' => 'text_' . $lg['id'],
|
||||
'value' => $this -> banner['languages'][$lg['id']]['text']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$('#text_<?= $lg['id'];?>').ckeditor({
|
||||
toolbar: 'MyTool',
|
||||
height: '300'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<? endif;?>
|
||||
<? endforeach; endif;?>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'banner-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja baneru';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> banner['id']
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/banners/banner_save/', 'back_url' => '/admin/banners/view_list/' ],
|
||||
'cancel' => [ 'url' => '/admin/banners/view_list/' ]
|
||||
];
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$(function ()
|
||||
{
|
||||
disable_menu();
|
||||
|
||||
$('input[type="text"].date').datetimepicker({
|
||||
format: "YYYY-MM-DD",
|
||||
pickTime: false
|
||||
});
|
||||
|
||||
$( '#settings-tabs' ).easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'settings-tabs',
|
||||
type: 'vertical'
|
||||
});
|
||||
|
||||
$('#languages-main').easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'languages-main'
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
<script>CKEDITOR.dtd.$removeEmpty['span'] = false;</script>
|
||||
78
admin/templates/banners/banners-list.php
Normal file
78
admin/templates/banners/banners-list.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_banners' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'name', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Nazwa', 'db' => 'name', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Nazwa',
|
||||
'db' => 'name',
|
||||
'sort' => true,
|
||||
'php' => 'echo "<a href=\"/admin/banners/banner_edit/id=[id]\">[name]</a>";'
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Strona główna',
|
||||
'db' => 'home_page',
|
||||
'replace' => [ 'array' => [ 0 => 'nie', 1 => '<span class="text-system">tak</span>' ] ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Slajder',
|
||||
'db' => 'home_page',
|
||||
'replace' => [ 'array' => [ 1 => 'nie', 0 => '<span class="text-system">tak</span>' ] ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Data rozpoczęcia',
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 140px;' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'php' => 'if ( "[date_start]" ) echo date( "Y-m-d", strtotime( "[date_start]" ) ); else echo "-";'
|
||||
],
|
||||
[
|
||||
'name' => 'Data zakończenia',
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 140px;' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'php' => 'if ( "[date_end]" ) echo date( "Y-m-d", strtotime( "[date_end]" ) ); else echo "-";'
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/banners/banner_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/banners/banner_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj baner',
|
||||
'url' => '/admin/banners/banner_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
56
admin/templates/emails/email-details.php
Normal file
56
admin/templates/emails/email-details.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-3 control-label text-right">Email:</label>
|
||||
<div class="col-lg-9">
|
||||
<p><?= $this -> email['email'];?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-3 control-label text-right">Numer telefonu:</label>
|
||||
<div class="col-lg-9">
|
||||
<p><?= $this -> email['phone'];?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-3 control-label text-right">Temat:</label>
|
||||
<div class="col-lg-9">
|
||||
<p><?= $this -> email['title'];?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-3 control-label text-right">Wiadomość:</label>
|
||||
<div class="col-lg-9">
|
||||
<p><?= nl2br($this -> email['mail']);?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-3 control-label text-right">Data wysłania:</label>
|
||||
<div class="col-lg-9">
|
||||
<p><?= date( "Y-m-d H:i", strtotime( $this -> email[add_date] ) )?></p>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit();
|
||||
$grid -> id = 'email-details';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> title = 'Szczegóły Wiadomości';
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [ '' => '/admin/emails/view_list/', 'back_url' => '/admin/emails/view_list/'],
|
||||
'cancel' => [ 'url' => '/admin/emails/view_list/' ]
|
||||
];
|
||||
$grid -> form = false;
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<style>
|
||||
#g-edit-save{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
56
admin/templates/emails/email_details.php
Normal file
56
admin/templates/emails/email_details.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-4 control-label text-right">Email:</label>
|
||||
<div class="col-lg-8">
|
||||
<p><?= $this -> email['email'];?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-4 control-label text-right">Numer telefonu:</label>
|
||||
<div class="col-lg-8">
|
||||
<p> <?= $this -> email['phone'];?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-4 control-label text-right">Temat:</label>
|
||||
<div class="col-lg-8">
|
||||
<p> <?= $this -> email['title'];?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-4 control-label text-right">Wiadomość:</label>
|
||||
<div class="col-lg-8">
|
||||
<p> <?= nl2br($this -> email['mail']);?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-4 control-label text-right">Data wysłania:</label>
|
||||
<div class="col-lg-8">
|
||||
<p> <?=date( "Y-m-d H:i", strtotime( $this -> email[add_date] ) )?></p>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit();
|
||||
$grid -> id = 'email-detali';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> title = 'Szczegóły Wiadomości';
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [ '' => '/admin/emails/view_list/', 'back_url' => '/admin/emails/view_list/'],
|
||||
'cancel' => [ 'url' => '/admin/emails/view_list/' ]
|
||||
];
|
||||
$grid -> form = false;
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<style>
|
||||
#g-edit-save{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
41
admin/templates/emails/emails-list.php
Normal file
41
admin/templates/emails/emails-list.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_contact_emails' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Data',
|
||||
'db' => 'add_date',
|
||||
'td' => [ ],
|
||||
'th' => ['style' => 'width: 220px;' ],
|
||||
'php' => 'echo date( "Y-m-d H:i", strtotime( "[add_date]" ) );',
|
||||
'sort' => true
|
||||
|
||||
],
|
||||
[
|
||||
'name' => 'Email',
|
||||
'db' => 'email',
|
||||
'content' => '<a href="/admin/emails/email_details/id=[id]">[email]</a>',
|
||||
'sort' => true ,
|
||||
],
|
||||
[
|
||||
'name' => 'Temat',
|
||||
'db' => 'title',
|
||||
],
|
||||
[
|
||||
'name' => 'Szczegóły',
|
||||
'content' => '<a href="/admin/emails/email_details/id=[id]">Szczegóły</a>',
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
|
||||
echo $grid -> draw();
|
||||
1
admin/templates/filemanager/filemanager.php
Normal file
1
admin/templates/filemanager/filemanager.php
Normal file
@@ -0,0 +1 @@
|
||||
<iframe src="/libraries/filemanager-9.14.1/dialog.php?akey=c3cb2537d25c0efc9e573d059d79c3b8" style="border: 0px; width: 100%; height: 800px; background: #FFF; padding: 5px;"></iframe>
|
||||
25
admin/templates/html/button.php
Normal file
25
admin/templates/html/button.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?
|
||||
$out = '<a ';
|
||||
$out .= 'class="btn ' . $this -> params['class'] . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['js'] )
|
||||
$out .= 'onclick="' . htmlspecialchars( $this -> params['js'] ) . '" ';
|
||||
|
||||
if ( $this -> params['url'] )
|
||||
$out .= 'href="' . htmlspecialchars( $this -> params['url'] ) . '" ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['title'] )
|
||||
$out .= 'title="' . htmlspecialchars( $this -> params['title'] ) . '" ';
|
||||
$out .= '>';
|
||||
if ( $this -> params['icon'] )
|
||||
$out .= '<i class="fa ' . $this -> params['icon'] . ' mr5"></i>';
|
||||
$out .= $this -> params['text'];
|
||||
$out .= '</a>';
|
||||
|
||||
echo $out;
|
||||
8
admin/templates/html/form-text.php
Normal file
8
admin/templates/html/form-text.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label"><?= $this -> params['label'];?>:</label>
|
||||
<div class="col-lg-9">
|
||||
<p class="form-control-static" id="<?= $this -> params['id'];?>">
|
||||
<?= $this -> params['text'];?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
70
admin/templates/html/input-icon.php
Normal file
70
admin/templates/html/input-icon.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'pl10 pr10';
|
||||
$out .= '">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-3 ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'mb5 ';
|
||||
$out .= 'control-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-9';
|
||||
$out .= '">';
|
||||
}
|
||||
$out .= '<div class="input-group">';
|
||||
$out .= '<input ';
|
||||
$out .= 'type="' . $this -> params['type'] . '" ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
$out .= 'value="' . $this -> secureHTML( $this -> params['value'] ) . '" ';
|
||||
|
||||
if ( $this -> params['js'] )
|
||||
$out .= 'onchange="' . htmlspecialchars( $this -> params['js'] ) . '" ';
|
||||
|
||||
if ( $this -> params['js_key'] )
|
||||
$out .= 'onkeyup="' . htmlspecialchars( $this -> params['js_key'] ) . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['readonly'] )
|
||||
$out .= 'readonly="readonly" ';
|
||||
|
||||
if ( $this -> params['autocomplete'] == 'off' )
|
||||
$out .= 'autocomplete="off" ';
|
||||
|
||||
$out .= ' />';
|
||||
|
||||
$out .= '<span class="input-group-addon btn btn-info ' . $this -> params['icon_class'] . '"';
|
||||
|
||||
if ( $this -> params['icon_js'] )
|
||||
$out .= 'onclick="' . htmlspecialchars( $this -> params['icon_js'] ) . '" ';
|
||||
|
||||
$out .= '>';
|
||||
$out .= $this -> params['icon_content'];
|
||||
$out .= '</span>';
|
||||
$out .= '</div>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
36
admin/templates/html/input-switch.php
Normal file
36
admin/templates/html/input-switch.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group">';
|
||||
$out .= '<label class="col-lg-3 control-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="col-lg-9 pt5">';
|
||||
}
|
||||
|
||||
$out .= '<div class="switch switch-primary round switch-inline">';
|
||||
$out .= '<input ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
else
|
||||
$out .= 'id="' . $this -> params['name'] . '" ';
|
||||
$out .= 'name="' . $this -> params['name'] . '" type="checkbox"';
|
||||
|
||||
if ( $this -> params['checked'] )
|
||||
$out .= 'checked="checked" ';
|
||||
|
||||
$out .= '>';
|
||||
$out .= '<label for="';
|
||||
if ( $this -> params['id'] )
|
||||
$out .= $this -> params['id'];
|
||||
else
|
||||
$out .= $this -> params['name'];
|
||||
$out .= '"></label>';
|
||||
$out .= '</div>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
63
admin/templates/html/input.php
Normal file
63
admin/templates/html/input.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'pl10 pr10';
|
||||
$out .= '">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-3 ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'mb5 ';
|
||||
$out .= 'control-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-9';
|
||||
$out .= '">';
|
||||
}
|
||||
|
||||
$out .= '<input ';
|
||||
$out .= 'type="' . $this -> params['type'] . '" ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
$out .= 'value="' . $this -> secureHTML( $this -> params['value'] ) . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['js'] )
|
||||
$out .= 'onchange="' . htmlspecialchars( $this -> params['js'] ) . '" ';
|
||||
|
||||
if ( $this -> params['js_key'] )
|
||||
$out .= 'onkeyup="' . htmlspecialchars( $this -> params['js_key'] ) . '" ';
|
||||
|
||||
if ( $this -> params['readonly'] )
|
||||
$out .= 'readonly="readonly" ';
|
||||
|
||||
if ( $this -> params['autocomplete'] == 'off' )
|
||||
$out .= 'autocomplete="off" ';
|
||||
|
||||
if ( is_array( $this -> params['params'] ) and count( $this -> params['params'] ) ) foreach ( $this -> params['params'] as $key => $val )
|
||||
$out .= $key . '="' . $val . '" ';
|
||||
|
||||
$out .= ' />';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
8
admin/templates/html/panel.php
Normal file
8
admin/templates/html/panel.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="panel <?= $this -> params['class'];?>">
|
||||
<div class="panel-heading">
|
||||
<span class="panel-title"><?= $this -> params['title'];?></span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<?= $this -> params['content'];?>
|
||||
</div>
|
||||
</div>
|
||||
62
admin/templates/html/select.php
Normal file
62
admin/templates/html/select.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'pl10 pr10';
|
||||
$out .= '">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-3 ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'mb5 ';
|
||||
$out .= 'control-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-9';
|
||||
$out .= '">';
|
||||
}
|
||||
|
||||
$out .= '<select ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
if ( $this -> params['readonly'] )
|
||||
$out .= 'readonly="readonly" ';
|
||||
|
||||
if ( is_array( $this -> params['params'] ) and count( $this -> params['params'] ) ) foreach ( $this -> params['params'] as $key => $val )
|
||||
$out .= $key . '="' . $val . '" ';
|
||||
|
||||
$out .= '>';
|
||||
|
||||
if ( $this -> params['empty'] )
|
||||
$out .= '<option value="">--- ' . mb_strtolower( $this -> params['label'], 'UTF-8' ) . ' ---</option>';
|
||||
|
||||
if ( is_array( $this -> params['values'] ) ) foreach ( $this -> params['values'] as $key => $val )
|
||||
{
|
||||
$out .= '<option value="' . $key . '"'; if ( $key == $this -> params['value'] and $this -> params['value'] !== null ) $out .= 'selected="selected"'; $out .='>' . $val . '</option>';
|
||||
}
|
||||
|
||||
$out .= '</select>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
52
admin/templates/html/textarea.php
Normal file
52
admin/templates/html/textarea.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '<div class="form-group ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'pl10 pr10';
|
||||
$out .= '">';
|
||||
$out .= '<label class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-3 ';
|
||||
if ( $this -> params['inline'] )
|
||||
$out .= 'mb5 ';
|
||||
$out .= 'control-label">' . $this -> params['label'] . ':</label>';
|
||||
$out .= '<div class="';
|
||||
if ( !$this -> params['inline'] )
|
||||
$out .= 'col-lg-9';
|
||||
$out .= '">';
|
||||
}
|
||||
|
||||
$out .= '<textarea ';
|
||||
|
||||
if ( $this -> params['id'] )
|
||||
$out .= 'id="' . $this -> params['id'] . '" ';
|
||||
|
||||
if ( $this -> params['class'] or $this -> params['label'] )
|
||||
{
|
||||
if ( $this -> params['label'] )
|
||||
$out .= 'class="' . $this -> params['class'] . ' form-control" ';
|
||||
else if ( $this -> params['class'] )
|
||||
$out .= 'class="' . $this -> params['class'] . '" ';
|
||||
}
|
||||
|
||||
if ( $this -> params['js'] )
|
||||
$out .= 'onchange="' . htmlspecialchars( $this -> params['js'] ) . '" ';
|
||||
|
||||
if ( $this -> params['js_key'] )
|
||||
$out .= 'onkeyup="' . htmlspecialchars( $this -> params['js_key'] ) . '" ';
|
||||
|
||||
$out .= 'name="' . $this -> params['name'] . '" ';
|
||||
|
||||
if ( $this -> params['style'] )
|
||||
$out .= 'style="' . $this -> params['style'] . '" ';
|
||||
|
||||
$out .= ' rows="' . $this -> params['rows'] . '">' . $this -> secureHTML( $this -> params['value'] ) . '</textarea>';
|
||||
|
||||
if ( $this -> params['label'] )
|
||||
{
|
||||
$out .= '</div>';
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
echo $out;
|
||||
98
admin/templates/languages/language-edit.php
Normal file
98
admin/templates/languages/language-edit.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
echo \Html::input(
|
||||
array(
|
||||
'type' => 'hidden',
|
||||
'name' => 'o',
|
||||
'value' => $this -> language['o']
|
||||
)
|
||||
);
|
||||
echo \Html::input(
|
||||
array(
|
||||
'label' => 'Język',
|
||||
'type' => 'text',
|
||||
'class' => 'require',
|
||||
'name' => 'name',
|
||||
'value' => $this -> language['name']
|
||||
)
|
||||
);
|
||||
if ( $this -> language['id'] )
|
||||
{
|
||||
echo \Html::input(
|
||||
array(
|
||||
'type' => 'hidden',
|
||||
'name' => 'id',
|
||||
'value' => $this -> language['id']
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo \Html::input(
|
||||
array(
|
||||
'label' => 'ID (2 znaki)',
|
||||
'class' => 'require',
|
||||
'type' => 'text',
|
||||
'name' => 'id'
|
||||
)
|
||||
);
|
||||
}
|
||||
echo \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Aktywny',
|
||||
'name' => 'status',
|
||||
'checked' => $this -> language['status'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
echo \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Domyślny',
|
||||
'name' => 'start',
|
||||
'checked' => $this -> language['start'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
echo '<hr />';
|
||||
echo \Html::input(
|
||||
array(
|
||||
'label' => 'Domena',
|
||||
'type' => 'text',
|
||||
'name' => 'domain',
|
||||
'value' => $this -> language['domain']
|
||||
)
|
||||
);
|
||||
echo \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Domena domyślna',
|
||||
'name' => 'main_domain',
|
||||
'checked' => $this -> language['main_domain'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'language-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja języka';
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/languages/language_save/', 'back_url' => '/admin/languages/view_list/' ],
|
||||
'cancel' => [ 'url' => '/admin/languages/view_list/' ]
|
||||
];
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$( function()
|
||||
{
|
||||
disable_menu();
|
||||
|
||||
$( 'input[type="text"].date' ).datetimepicker({
|
||||
format: "YYYY-MM-DD",
|
||||
pickTime: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
72
admin/templates/languages/languages-list.php
Normal file
72
admin/templates/languages/languages-list.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_langs' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'name', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Język', 'db' => 'name', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ],
|
||||
[ 'name' => 'Domyślny', 'db' => 'start', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Domyślny',
|
||||
'db' => 'start',
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'php' => 'if ( [start] ) echo "<span class=\'text-system\'>tak</span>"; else echo "nie";'
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Język',
|
||||
'db' => 'name',
|
||||
'php' => 'echo "<a href=\'/admin/languages/language_edit/id=[id]\'>[name]</a>";',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Domena',
|
||||
'db' => 'domain',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Domena domyślna',
|
||||
'db' => 'main_domain',
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'php' => 'if ( [main_domain] ) echo "<span class=\'text-system\'>tak</span>"; else echo "nie";'
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/languages/language_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/languages/language_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj język',
|
||||
'url' => '/admin/languages/language_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
60
admin/templates/languages/translation-edit.php
Normal file
60
admin/templates/languages/translation-edit.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<?
|
||||
echo \Html::input(
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => 'Tekst',
|
||||
'name' => 'text',
|
||||
'class' => 'require',
|
||||
'value' => $this -> translation['text']
|
||||
)
|
||||
);
|
||||
|
||||
if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $language ):
|
||||
echo \Html::input(
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $language['name'],
|
||||
'name' => $language['id'],
|
||||
'value' => $this -> translation[$language['id']]
|
||||
) );
|
||||
endforeach;
|
||||
endif;
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'translation-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja tłumaczenia';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> translation['id']
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/languages/translation_save/', 'back_url' => '/admin/languages/translation_list/' ],
|
||||
'cancel' => [ 'url' => '/admin/languages/translation_list/' ]
|
||||
];
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$(function ()
|
||||
{
|
||||
disable_menu();
|
||||
|
||||
$('input[type="text"].date').datetimepicker({
|
||||
format: "YYYY-MM-DD",
|
||||
pickTime: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
44
admin/templates/languages/translations-list.php
Normal file
44
admin/templates/languages/translations-list.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_langs_translations' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'text', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Tekst', 'db' => 'text', 'type' => 'text' ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Tekst',
|
||||
'db' => 'text',
|
||||
'php' => 'echo "<a href=\'/admin/languages/translation_edit/id=[id]\'>[text]</a>";',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/languages/translation_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/languages/translation_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj tłumaczenie',
|
||||
'url' => '/admin/languages/translation_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
262
admin/templates/layouts/layout-edit.php
Normal file
262
admin/templates/layouts/layout-edit.php
Normal file
@@ -0,0 +1,262 @@
|
||||
<link rel="stylesheet" href="/libraries/codemirror/lib/codemirror.css" />
|
||||
<link rel="stylesheet" href="/libraries/codemirror/theme/material.css" />
|
||||
<script type="text/javascript" src="/libraries/jquery-nested-sortable/jquery.mjs.nestedSortable.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/lib/codemirror.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/css/css.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/xml/xml.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/javascript/javascript.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/htmlmixed/htmlmixed.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/addon/mode/multiplex.js"></script>
|
||||
<script type="text/javascript">
|
||||
$( function()
|
||||
{
|
||||
var code_html = CodeMirror.fromTextArea( document.getElementById( "html" ),{
|
||||
lineWrapping: true,
|
||||
mode: "text/html"
|
||||
});
|
||||
code_html.on( 'change', function(cm) {
|
||||
$( '#html' ).val( cm.getValue() );
|
||||
});
|
||||
code_html.setOption( "theme", 'material' );
|
||||
|
||||
var code_css = CodeMirror.fromTextArea( document.getElementById( "css" ),{
|
||||
lineWrapping: true,
|
||||
mode: "css"
|
||||
});
|
||||
code_css.on( 'change', function(cm) {
|
||||
$( '#css' ).val( cm.getValue() );
|
||||
});
|
||||
code_css.setOption( "theme", 'material' );
|
||||
|
||||
var code_js = CodeMirror.fromTextArea( document.getElementById( "js" ),{
|
||||
lineWrapping: true,
|
||||
mode: "javascript"
|
||||
});
|
||||
code_js.on( 'change', function(cm) {
|
||||
$( '#js' ).val( cm.getValue() );
|
||||
});
|
||||
code_js.setOption( "theme", 'material' );
|
||||
|
||||
var code_m_html = CodeMirror.fromTextArea( document.getElementById( "m_html" ),{
|
||||
lineWrapping: true,
|
||||
mode: "text/html"
|
||||
});
|
||||
code_m_html.on( 'change', function(cm) {
|
||||
$( '#m_html' ).val( cm.getValue() );
|
||||
});
|
||||
code_m_html.setOption( "theme", 'material' );
|
||||
|
||||
var code_m_css = CodeMirror.fromTextArea( document.getElementById( "m_css" ),{
|
||||
lineWrapping: true,
|
||||
mode: "css"
|
||||
});
|
||||
code_m_css.on( 'change', function(cm) {
|
||||
$( '#m_css' ).val( cm.getValue() );
|
||||
});
|
||||
code_m_css.setOption( "theme", 'material' );
|
||||
|
||||
var code_m_js = CodeMirror.fromTextArea( document.getElementById( "m_js" ),{
|
||||
lineWrapping: true,
|
||||
mode: "javascript"
|
||||
});
|
||||
code_m_js.on( 'change', function(cm) {
|
||||
$( '#m_js' ).val( cm.getValue() );
|
||||
});
|
||||
code_m_js.setOption( "theme", 'material' );
|
||||
|
||||
disable_menu();
|
||||
|
||||
$( '#layout-tabs' ).easyResponsiveTabs(
|
||||
{
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'layout-tabs',
|
||||
type: 'vertical'
|
||||
});
|
||||
|
||||
$( 'body' ).on( 'click', '.select-page', function()
|
||||
{
|
||||
$( this ).parent( 'div' ).children( 'div.icheckbox_minimal-blue' ).children( 'input' ).iCheck( 'toggle' );
|
||||
});
|
||||
|
||||
$('ol.sortable').nestedSortable(
|
||||
{
|
||||
forcePlaceholderSize: true,
|
||||
handle: 'div',
|
||||
helper: 'clone',
|
||||
items: 'li',
|
||||
opacity: .6,
|
||||
placeholder: 'placeholder',
|
||||
revert: 250,
|
||||
tabSize: 25,
|
||||
tolerance: 'pointer',
|
||||
toleranceElement: '> div',
|
||||
maxLevels: 3,
|
||||
isTree: true,
|
||||
expandOnHover: 700,
|
||||
isAllowed: function()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$( '.disclose' ).on( 'click', function()
|
||||
{
|
||||
$( this ).closest( 'li' ).toggleClass( 'sort-collapsed' ).toggleClass( 'sort-expanded' );
|
||||
});
|
||||
|
||||
$( '.disclose' ).mousedown( function(e)
|
||||
{
|
||||
if ( e.which === 1 ) {
|
||||
if ( $( this ).parent( 'div' ).hasClass( 'content_menu' ) )
|
||||
{
|
||||
var menu_id = $( this ).parent( 'div' ).parent( 'li' ).attr( 'menu' );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'cookie_menus',
|
||||
menu_id: menu_id
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
var page_id = $( this ).parent( 'div' ).parent( 'li' ).attr( 'id' );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'cookie_pages',
|
||||
page_id: page_id
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
<?php
|
||||
$array = unserialize( $_COOKIE[ 'cookie_pages' ] );
|
||||
if ( is_array( $array ) ): foreach ( $array as $key => $val ):
|
||||
if ( $val ):
|
||||
?>$( '.<?= $key;?>' ).children( 'div' ).children( 'span.disclose' ).click();<?
|
||||
endif;
|
||||
endforeach; endif;
|
||||
|
||||
$array = unserialize( $_COOKIE[ 'cookie_menus' ] );
|
||||
if ( is_array( $array ) ): foreach ( $array as $key => $val ):
|
||||
if ( $val ):
|
||||
?>$( '.menu_<?= $key;?>' ).children( 'div' ).children( 'span.disclose' ).click();<?
|
||||
endif;
|
||||
endforeach; endif;
|
||||
?>
|
||||
|
||||
});
|
||||
</script>
|
||||
<?
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div id="layout-tabs">
|
||||
<ul class="resp-tabs-list layout-tabs">
|
||||
<li><i class="fa fa-wrench"></i>Ustawienia</li>
|
||||
<li><i class="fa fa-html5"></i>HTML</li>
|
||||
<li><i class="fa fa-html5"></i>CSS</li>
|
||||
<li><i class="fa fa-html5"></i>JS</li>
|
||||
<li><i class="fa fa-mobile"></i>HTML - mobile</li>
|
||||
<li><i class="fa fa-mobile"></i>CSS - mobile</li>
|
||||
<li><i class="fa fa-mobile"></i>JS - mobile</li>
|
||||
</ul>
|
||||
<div class="resp-tabs-container layout-tabs">
|
||||
<div>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Nazwa',
|
||||
'name' => 'name',
|
||||
'id' => 'name',
|
||||
'value' => $this -> layout['name']
|
||||
)
|
||||
);?>
|
||||
<?= \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Szablon domyślny',
|
||||
'name' => 'status',
|
||||
'checked' => $this -> layout['status'] == 1 ? true : false
|
||||
)
|
||||
);?>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Strony:</label>
|
||||
<div class="col-lg-9">
|
||||
<?
|
||||
if ( is_array( $this -> menus ) ) foreach ( $this -> menus as $menu )
|
||||
{
|
||||
?>
|
||||
<div class="menu_sortable">
|
||||
<ol class="sortable" id="sortable_<?= $menu['id'];?>">
|
||||
<li id="list_<?= $menu['id'];?>" class="menu_<?= $menu['id'];?>" menu="<?= $menu['id'];?>">
|
||||
<div class="context_0 content content_menu" <? if ( !$menu['status'] ) echo 'style="color: #cc0000;"';?>>
|
||||
<span class="disclose"><span></span></span>
|
||||
Menu: <b><?= $menu['name'];?></b>
|
||||
</div>
|
||||
<?= \admin\view\Layouts::subpages_list( \admin\factory\Pages::menu_pages( $menu['id'] ), $this -> layout['pages'] );?>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<textarea name="html" id="html" style="width: 100%; height: 500px; border: 0; padding: 10px; margin: -10px 0 -15px; font-size: 12px; box-sizing: border-box;"><?= htmlspecialchars( $this -> layout['html'] );?></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<textarea name="css" id="css" style="width: 100%; height: 500px; border: 0; padding: 10px; margin: -10px 0 -15px; font-size: 12px; box-sizing: border-box;"><?= htmlspecialchars( $this -> layout['css'] );?></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<textarea name="js" id="js" style="width: 100%; height: 500px; border: 0; padding: 10px; margin: -10px 0 -15px; font-size: 12px; box-sizing: border-box;"><?= htmlspecialchars( $this -> layout['js'] );?></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<textarea name="m_html" id="m_html" style="width: 100%; height: 500px; border: 0; padding: 10px; margin: -10px 0 -15px; font-size: 12px; box-sizing: border-box;"><?= htmlspecialchars( $this -> layout['m_html'] );?></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<textarea name="m_css" id="m_css" style="width: 100%; height: 500px; border: 0; padding: 10px; margin: -10px 0 -15px; font-size: 12px; box-sizing: border-box;"><?= htmlspecialchars( $this -> layout['m_css'] );?></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<textarea name="m_js" id="m_js" style="width: 100%; height: 500px; border: 0; padding: 10px; margin: -10px 0 -15px; font-size: 12px; box-sizing: border-box;"><?= htmlspecialchars( $this -> layout['m_js'] );?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'layout-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja szablonu';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> layout['id']
|
||||
]
|
||||
];
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/layouts/layout_save/', 'back_url' => '/admin/layouts/view_list/' ],
|
||||
'cancel' => [ 'url' => '/admin/layouts/view_list/' ]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
47
admin/templates/layouts/layouts-list.php
Normal file
47
admin/templates/layouts/layouts-list.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_layouts' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'name', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Nazwa', 'db' => 'name', 'type' => 'text' ],
|
||||
[ 'name' => 'Szablon domyślny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Nazwa',
|
||||
'db' => 'name',
|
||||
'php' => 'echo "<a href=\'/admin/layouts/layout_edit/id=[id]\'>[name]</a>";',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Szablon domyślny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => 'nie', 1 => '<span class="text-system">tak</span>' ] ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Akcja',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/layouts/layout_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center' ],
|
||||
'td' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Akcja',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/layouts/layout_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center' ],
|
||||
'td' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[ 'label' => 'Dodaj szablon', 'url' => '/admin/layouts/layout_edit/', 'icon' => 'fa-plus-circle', 'class' => 'btn-success' ]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
16
admin/templates/layouts/subpages-list.php
Normal file
16
admin/templates/layouts/subpages-list.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<? if ( is_array( $this -> pages ) ):?>
|
||||
<ol>
|
||||
<? foreach ( $this -> pages as $page ):?>
|
||||
<li id="list_<?= $page['id'];?>" idk="<?= $page['id'];?>" class="list_<?= $page['id'];?>" menu="<?= $page['menu_id'];?>">
|
||||
<div class="content <?= $this -> step < 2 ? $tmp = 'content_page' : $tmp = 'content_page_last_level';?>" <? if ( !$page['status'] ) echo 'style="color: #cc0000;"';?>>
|
||||
<span class="disclose"><span></span></span>
|
||||
<input type="checkbox" class="g-checkbox" name="pages" value="<?= $page['id'];?>" <? if ( is_array( $this -> layout_pages ) and in_array( $page['id'], $this -> layout_pages ) ):?>checked="checked"<? endif;?> /><?= $page['title'];?>
|
||||
</div>
|
||||
<?
|
||||
if ( is_array( $page['subpages'] ) )
|
||||
echo \admin\view\Layouts::subpages_list( $page['subpages'], $this -> layout_pages, $page['id'], $this -> step + 1 );
|
||||
?>
|
||||
</li>
|
||||
<? endforeach;?>
|
||||
</ol>
|
||||
<? endif;?>
|
||||
63
admin/templates/newsletter/email-template-edit.php
Normal file
63
admin/templates/newsletter/email-template-edit.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<script type="text/javascript" src="/libraries/ckeditor/ckeditor.js"></script>
|
||||
<script type="text/javascript" src="/libraries/ckeditor/adapters/jquery.js"></script>
|
||||
<?
|
||||
global $db;
|
||||
ob_start();
|
||||
?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Nazwa',
|
||||
'name' => 'name',
|
||||
'id' => 'name',
|
||||
'value' => $this -> email_template['name'],
|
||||
'inline' => true,
|
||||
'readonly' => $this -> email_template['is_admin'] ? true : false
|
||||
)
|
||||
);?>
|
||||
<?= \Html::textarea(
|
||||
array(
|
||||
'label' => 'Treść',
|
||||
'name' => 'text',
|
||||
'id' => 'text',
|
||||
'value' => $this ->email_template['text'],
|
||||
'inline' => true
|
||||
)
|
||||
);?>
|
||||
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'email-templates-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja szablonu newslettera';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> email_template['id']
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [
|
||||
'url' => '/admin/newsletter/template_save/',
|
||||
'back_url' => $this -> email_template['is_admin'] ? '/admin/newsletter/email_templates_admin/' : '/admin/newsletter/email_templates_user/'
|
||||
],
|
||||
'cancel' => [
|
||||
'url' => $this -> email_template['is_admin'] ? '/admin/newsletter/email_templates_admin/' : '/admin/newsletter/email_templates_user/'
|
||||
]
|
||||
];
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$( function() {
|
||||
$( '#text' ).ckeditor( {
|
||||
toolbar : 'MyTool',
|
||||
height:'350'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
28
admin/templates/newsletter/email-templates-admin.php
Normal file
28
admin/templates/newsletter/email-templates-admin.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_newsletter_templates' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'name', 'type' => 'ASC' ];
|
||||
$grid -> where = [ 'is_admin' => 1 ];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Nazwa',
|
||||
'db' => 'name',
|
||||
'php' => 'echo "<a href=\'/admin/newsletter/email_template_edit/id=[id]\'>[name]</a>";',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/newsletter/email_template_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
42
admin/templates/newsletter/email-templates-user.php
Normal file
42
admin/templates/newsletter/email-templates-user.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_newsletter_templates' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'name', 'type' => 'ASC' ];
|
||||
$grid -> where = [ 'is_admin' => 0 ];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Nazwa',
|
||||
'db' => 'name',
|
||||
'php' => 'echo "<a href=\'/admin/newsletter/email_template_edit/id=[id]\'>[name]</a>";',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/newsletter/email_template_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/newsletter/email_template_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj szablon',
|
||||
'url' => '/admin/newsletter/email_template_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
38
admin/templates/newsletter/emails-list.php
Normal file
38
admin/templates/newsletter/emails-list.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_newsletter' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'email', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Email', 'db' => 'email', 'type' => 'text' ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Email',
|
||||
'db' => 'email',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Potwierdzony',
|
||||
'db' => 'status',
|
||||
'sort' => true,
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Importuj emaile',
|
||||
'url' => '/admin/newsletter/import/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
$grid -> actions = [ 'delete' => true ];
|
||||
echo $grid -> draw();
|
||||
41
admin/templates/newsletter/import.php
Normal file
41
admin/templates/newsletter/import.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?
|
||||
global $db;
|
||||
ob_start();
|
||||
?>
|
||||
<?= \Html::textarea(
|
||||
array(
|
||||
'label' => 'Maile (oddzielone nowym wierszem)',
|
||||
'name' => 'emails',
|
||||
'id' => 'emails'
|
||||
)
|
||||
);?>
|
||||
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'emails';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Import adresów mailowych';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> element['id']
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [
|
||||
'url' => '/admin/newsletter/emails_import/',
|
||||
'back_url' => '/admin/newsletter/emails_list/'
|
||||
],
|
||||
'cancel' => [
|
||||
'url' => '/admin/newsletter/emails_list/'
|
||||
]
|
||||
];
|
||||
$grid -> persist_edit = false;
|
||||
$grid -> id_param = 'id';
|
||||
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
140
admin/templates/newsletter/prepare.php
Normal file
140
admin/templates/newsletter/prepare.php
Normal file
@@ -0,0 +1,140 @@
|
||||
<?
|
||||
global $db;
|
||||
ob_start();
|
||||
?>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Wysyłaj tylko raz:</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input id="only_once" name="only_once" type="checkbox">
|
||||
<label for="only_once"></label>
|
||||
<small><i>Dotyczy wysyłki maili z szablonu.</i></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Zakres dat:</label>
|
||||
<div class="col-lg-9">
|
||||
<div class="input-group">
|
||||
<input type="text" id="dates" name="dates" data="search-column:date_add;search-type:date_range" class="form-control date-range require" value="">
|
||||
<span class="input-group-addon cursor date-range-icon">
|
||||
<i class="fa fa-calendar"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">lub / i</label>
|
||||
</div>
|
||||
<?
|
||||
$templates[''] = '---- szablon ----';
|
||||
if ( is_array( $this -> templates ) ): foreach ( $this -> templates as $template ):
|
||||
$templates[ $template['id'] ] = $template['name'];
|
||||
endforeach; endif;
|
||||
?>
|
||||
<?= \Html::select(
|
||||
array(
|
||||
'label' => 'Szablon',
|
||||
'name' => 'template',
|
||||
'id' => 'template',
|
||||
'values' => $templates,
|
||||
'value' => $this -> templates['id']
|
||||
|
||||
));?>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Podgląd:</label>
|
||||
<div class="col-lg-9">
|
||||
<div id="newsletter-preview"></div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'newsletter-prepare';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Wysyłka newslettera - przygotowanie';
|
||||
$grid -> default_buttons = false;
|
||||
$grid -> external_code = $out;
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Wyślij newsletter',
|
||||
'class' => 'btn-success',
|
||||
'icon' => 'fa-send',
|
||||
'js' => 'send_newsletter();'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function send_newsletter()
|
||||
{
|
||||
var dates = $( '#dates' ).val();
|
||||
var template = $('#template').val();
|
||||
|
||||
if ( !dates && !template )
|
||||
$.prompt( 'Proszę wybrać zakres dat lub szablon.', { title: 'Błąd' } );
|
||||
|
||||
$( '#fg-newsletter-prepare' ).submit();
|
||||
return false;
|
||||
}
|
||||
|
||||
$( function()
|
||||
{
|
||||
$( '#fg-newsletter-prepare' ).attr( 'action', '/admin/newsletter/send/' );
|
||||
|
||||
$( 'body' ).on( 'change', '#dates', function()
|
||||
{
|
||||
var dates = $( this ).val();
|
||||
var template = $('#template').val();
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'newsletter-preview',
|
||||
dates: dates,
|
||||
template: template
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
$( '#overlay' ).show();
|
||||
},
|
||||
success: function( response )
|
||||
{
|
||||
$( '#overlay' ).hide();
|
||||
$( '#newsletter-preview' ).html( response );
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$( 'body' ).on( 'change', '#template', function()
|
||||
{
|
||||
var dates = $( '#dates' ).val();
|
||||
var template = $( this ).val();
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'newsletter-preview',
|
||||
template: template,
|
||||
dates: dates
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
$( '#overlay' ).show();
|
||||
},
|
||||
success: function( response )
|
||||
{
|
||||
$( '#overlay' ).hide();
|
||||
$( '#newsletter-preview' ).html( response );
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
33
admin/templates/newsletter/preview.php
Normal file
33
admin/templates/newsletter/preview.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?= $this -> settings['newsletter_header'] ? $this -> settings['newsletter_header'] : '<p style="text-align: center;">--- brak zdefiniowanego nagłówka ---</p>';?>
|
||||
<? if ( is_array( $this -> template ) ):?>
|
||||
<?= $this -> template['text']?>
|
||||
<? endif;?>
|
||||
<? if ( is_array( $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'] );?>
|
||||
<div style="padding: 10px; background: #F1F1F1; margin-bottom: 10px">
|
||||
<?
|
||||
$article['language']['seo_link'] ? $url = $article['language']['seo_link'] : $url = 'a-' . $article['id'] . '-' . \S::seo( $article['language']['title'] );
|
||||
?>
|
||||
<a href="http://<?= $_SERVER['SERVER_NAME'];?>/<?= $url;?>" title="<?= $article['language']['title'];?>" style="margin-bottom: 10px; display: block; font-size: 14px; color: #5b7fb1; font-weight: 600;">
|
||||
<?= $article['language']['title'];?>
|
||||
</a>
|
||||
<div>
|
||||
<?
|
||||
if ( $article['language']['entry'] )
|
||||
echo $article['language']['entry'];
|
||||
else
|
||||
echo $article['language']['text'];
|
||||
?>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
</div>
|
||||
<? endforeach;?>
|
||||
<? else:?>
|
||||
<? if ( $this -> dates ):?>
|
||||
<div style="padding: 10px; background: #F1F1F1; margin-bottom: 10px; text-align: center;">
|
||||
--- brak artykułów w danym okresie ---
|
||||
</div>
|
||||
<? endif;?>
|
||||
<? endif;?>
|
||||
<?= $this -> settings['newsletter_footer_2'] ? $this -> settings['newsletter_footer_2'] : '<p style="text-align: center;">--- brak zdefiniowanej stopki cz. 2 ---</p>';?>
|
||||
60
admin/templates/newsletter/settings.php
Normal file
60
admin/templates/newsletter/settings.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<script type="text/javascript" src="/libraries/ckeditor/ckeditor.js"></script>
|
||||
<script type="text/javascript" src="/libraries/ckeditor/adapters/jquery.js"></script>
|
||||
<script type="text/javascript">
|
||||
$( function()
|
||||
{
|
||||
$( 'textarea' ).ckeditor(
|
||||
{
|
||||
toolbar : 'MyTool',
|
||||
height: '150'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
|
||||
echo \Html::textarea(
|
||||
array(
|
||||
'label' => 'Nagłówek',
|
||||
'name' => 'newsletter_header',
|
||||
'id' => 'newsletter_header',
|
||||
'value' => $this -> settings['newsletter_header'],
|
||||
'inline' => true
|
||||
)
|
||||
);
|
||||
echo \Html::textarea(
|
||||
array(
|
||||
'label' => 'Stopka cz 1. (dołączana zawsze)',
|
||||
'name' => 'newsletter_footer_1',
|
||||
'id' => 'newsletter_footer_1',
|
||||
'value' => $this -> settings['newsletter_footer_1'],
|
||||
'inline' => true
|
||||
)
|
||||
);
|
||||
echo \Html::textarea(
|
||||
array(
|
||||
'label' => 'Stopka cz 2. (dołączana tylko w przypadku newslettera)',
|
||||
'name' => 'newsletter_footer_2',
|
||||
'id' => 'newsletter_footer_2',
|
||||
'value' => $this -> settings['newsletter_footer_2'],
|
||||
'inline' => true
|
||||
)
|
||||
);
|
||||
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'settings-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja ustawień';
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/newsletter/settings_save/', 'back_url' => '/admin/newsletter/settings/' ],
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script>CKEDITOR.dtd.$removeEmpty['span'] = false;</script>
|
||||
<style type="text/css">#g-edit-cancel { display: none; }</style>
|
||||
42
admin/templates/pages/menu-edit.php
Normal file
42
admin/templates/pages/menu-edit.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Zapisz menu';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> menu['id']
|
||||
],
|
||||
[
|
||||
'name' => 'Nazwa',
|
||||
'db' => 'name',
|
||||
'type' => 'text',
|
||||
'value' => $this -> menu['name'],
|
||||
'params' => [ 'class' => 'require' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywne',
|
||||
'db' => 'status',
|
||||
'type' => 'input_switch',
|
||||
'checked' => $this -> menu['status'] ? true : false,
|
||||
'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ]
|
||||
]
|
||||
];
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/pages/menu_save/', 'back_url' => '/admin/pages/view_list/' ],
|
||||
'cancel' => [ 'url' => '/admin/pages/view_list/' ]
|
||||
];
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$( document ).ready( function()
|
||||
{
|
||||
disable_menu();
|
||||
});
|
||||
</script>
|
||||
89
admin/templates/pages/page-articles.php
Normal file
89
admin/templates/pages/page-articles.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?
|
||||
global $gdb;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<ol class="sortable" id="article-list">
|
||||
<?
|
||||
if ( is_array( $this -> articles ) ) foreach ( $this -> articles as $article )
|
||||
{
|
||||
?>
|
||||
<li id="list_<?= $article['article_id'];?>">
|
||||
<div class="content <? if ( !$article['status'] ) echo 'text-danger';?>"><span class="disclose"><span></span></span> <?= $article['title'];?></div>
|
||||
</li>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
</ol>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> default_buttons = false;
|
||||
$grid -> external_code = $out;
|
||||
$grid -> title = 'Lista artykułów';
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Wstecz',
|
||||
'url' => '/admin/pages/view_list/',
|
||||
'icon' => 'fa-reply',
|
||||
'class' => 'btn-dark'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript" src="/libraries/jquery-nested-sortable/jquery.mjs.nestedSortable.js"></script>
|
||||
<script type="text/javascript">
|
||||
$( document ).ready( function()
|
||||
{
|
||||
$( 'ol.sortable' ).nestedSortable(
|
||||
{
|
||||
forcePlaceholderSize: true,
|
||||
handle: 'div',
|
||||
helper: 'clone',
|
||||
items: 'li',
|
||||
opacity: .6,
|
||||
placeholder: 'placeholder',
|
||||
revert: 250,
|
||||
tabSize: 25,
|
||||
tolerance: 'pointer',
|
||||
toleranceElement: '> div',
|
||||
maxLevels: 1,
|
||||
isTree: true,
|
||||
expandOnHover: 700,
|
||||
save_articles_order: true
|
||||
});
|
||||
});
|
||||
|
||||
function save_articles_order()
|
||||
{
|
||||
articles = $( 'ol.sortable' ).nestedSortable( 'toArray', { startDepthCount: 0 } );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data:
|
||||
{
|
||||
a: 'save_articles_order',
|
||||
page_id: <?= $this -> page_id;?>,
|
||||
articles: articles
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
$.prompt( 'Trwa zapisywanie...', { title: 'Proszę czekać' } );
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
$( '.jqibox' ).remove();
|
||||
response = jQuery.parseJSON( data );
|
||||
|
||||
if ( response.status === 'error' )
|
||||
create_error( response.msg );
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
514
admin/templates/pages/page-edit.php
Normal file
514
admin/templates/pages/page-edit.php
Normal file
@@ -0,0 +1,514 @@
|
||||
<script type="text/javascript">
|
||||
var link_lang = '';
|
||||
$(function ()
|
||||
{
|
||||
<? if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $lg ):?>
|
||||
google_preview('<?= $lg['id']; ?>', 0);
|
||||
<? endforeach; endif;?>
|
||||
|
||||
disable_menu();
|
||||
|
||||
$('body').on('change', '#page_type', function ()
|
||||
{
|
||||
var page_type = $(this).val();
|
||||
|
||||
if (page_type == 0 || page_type == 1 || page_type == 2)
|
||||
{
|
||||
$('#articles_limit').parents('.form-group').show();
|
||||
$('#link-content').addClass('hide');
|
||||
}
|
||||
else if (page_type == 3)
|
||||
{
|
||||
$('#link-content').removeClass('hide');
|
||||
$('#articles_limit').parents('.form-group').hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#articles_limit').parents('.form-group').hide();
|
||||
$('#link-content').addClass('hide');
|
||||
}
|
||||
});
|
||||
|
||||
$('#settings-tabs').easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'settings-tabs',
|
||||
type: 'vertical'
|
||||
});
|
||||
|
||||
$('#languages-main').easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'languages-main'
|
||||
});
|
||||
|
||||
$('#languages-seo').easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'languages-seo'
|
||||
});
|
||||
|
||||
$('#languages-links').easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'languages-links'
|
||||
});
|
||||
|
||||
$('#page_type').trigger('change');
|
||||
|
||||
$('body').on('click', '.mfp-close', function (e)
|
||||
{
|
||||
e.preventDefault();
|
||||
$.magnificPopup.close();
|
||||
});
|
||||
|
||||
$('body').on('click', '.url-select', function ()
|
||||
{
|
||||
$('#link_' + link_lang).val($(this).attr('url'));
|
||||
$.magnificPopup.close();
|
||||
});
|
||||
});
|
||||
|
||||
function generate_seo_links( lang, title, page_id, pid )
|
||||
{
|
||||
var default_language = '<?= \front\factory\Languages::default_language(); ?>';
|
||||
|
||||
if ( title === '' )
|
||||
return false;
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data:
|
||||
{
|
||||
a: 'generate_seo_link',
|
||||
title: title,
|
||||
page_id: page_id,
|
||||
lang: lang,
|
||||
pid: pid
|
||||
},
|
||||
beforeSend: function ()
|
||||
{
|
||||
$('#overlay').show();
|
||||
},
|
||||
success: function (data)
|
||||
{
|
||||
$('#overlay').hide();
|
||||
|
||||
response = jQuery.parseJSON(data);
|
||||
|
||||
if ( response.status === 'ok' )
|
||||
{
|
||||
$('#seo_link_' + lang).val( response.seo_link );
|
||||
google_preview( lang, pid );
|
||||
}
|
||||
else
|
||||
create_error( response.msg );
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function google_preview( lang_id, pid )
|
||||
{
|
||||
var default_language = '<?= \front\factory\Languages::default_language(); ?>';
|
||||
var title = $( '#title_' + lang_id ).val();
|
||||
var meta_title = $( '#meta_title_' + lang_id ).val();
|
||||
var seo_link = $( '#seo_link_' + lang_id ).val();
|
||||
var description = $( '#meta_description_' + lang_id ).val();
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data:
|
||||
{
|
||||
a: 'google_url_preview',
|
||||
title: title,
|
||||
lang_id: lang_id,
|
||||
page_id: $('#id').val(),
|
||||
pid: pid,
|
||||
seo_link: seo_link,
|
||||
default_language: default_language
|
||||
},
|
||||
success: function (data)
|
||||
{
|
||||
$( '#google-preview-' + lang_id + ' .google-url' ).html( '<?= $_SERVER['SERVER_NAME']; ?>/' + data );
|
||||
}
|
||||
});
|
||||
|
||||
if (typeof meta_title !== "undefined" && meta_title != '')
|
||||
{
|
||||
if (meta_title.length < 65)
|
||||
$('#google-preview-' + lang_id + ' .google-title').html(meta_title);
|
||||
else if (typeof description !== "undefined")
|
||||
{
|
||||
var space = meta_title.lastIndexOf(" ", 65);
|
||||
$('#google-preview-' + lang_id + ' .google-title').html(meta_title.substring(0, space).concat('...'));
|
||||
}
|
||||
} else if (typeof title !== "undefined" && title != '')
|
||||
{
|
||||
title = title + ' ● <?= $this->settings['firm_name']; ?>';
|
||||
|
||||
if (title.length < 65)
|
||||
$('#google-preview-' + lang_id + ' .google-title').html(title);
|
||||
else if (typeof description !== "undefined")
|
||||
{
|
||||
var space = title.lastIndexOf(" ", 65);
|
||||
$('#google-preview-' + lang_id + ' .google-title').html(title.substring(0, space).concat('...'));
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof description !== "undefined" && description.length < 153)
|
||||
$('#google-preview-' + lang_id + ' .google-description').html(description);
|
||||
else if (typeof description !== "undefined")
|
||||
{
|
||||
var space = description.lastIndexOf(" ", 153);
|
||||
$('#google-preview-' + lang_id + ' .google-description').html(description.substring(0, space).concat('...'));
|
||||
}
|
||||
}
|
||||
|
||||
function pages_url_browser(lang_id)
|
||||
{
|
||||
link_lang = lang_id;
|
||||
|
||||
$.magnificPopup.open({
|
||||
removalDelay: 500,
|
||||
items: {
|
||||
src: '/admin/pages/pages_url_browser/modal=true'
|
||||
},
|
||||
type: 'ajax',
|
||||
overflowY: 'scroll'
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<?
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div id="settings-tabs">
|
||||
<ul class="resp-tabs-list settings-tabs">
|
||||
<li><i class="fa fa-file"></i>Treść</li>
|
||||
<li><i class="fa fa-wrench"></i>Ustawienia</li>
|
||||
<li><i class="fa fa-globe"></i>SEO</li>
|
||||
</ul>
|
||||
<div class="resp-tabs-container settings-tabs">
|
||||
<div>
|
||||
<div id="languages-main">
|
||||
<ul class="resp-tabs-list languages-main">
|
||||
<? if (is_array($this->languages)): foreach ($this->languages as $lg): ?>
|
||||
<? if ($lg['status']): ?>
|
||||
<li><? if ($lg['id'] == \front\factory\Languages::default_language()) echo '<i class="fa fa-star fa-lg text-system" title="Język domyślny"></i> '; ?><?= $lg['name']; ?></a></li>
|
||||
<? endif; ?>
|
||||
<? endforeach;
|
||||
endif; ?>
|
||||
</ul>
|
||||
<div class="resp-tabs-container languages-main">
|
||||
<? if (is_array($this->languages)): foreach ($this->languages as $lg): ?>
|
||||
<? if ($lg['status']): ?>
|
||||
<div>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Nazwa strony',
|
||||
'name' => 'title',
|
||||
'id' => 'title_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['title'],
|
||||
'js_key' => 'google_preview( "' . $lg['id'] . '", "' . \S::get('pid') . '" ); return false;'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
<? endforeach;
|
||||
endif; ?>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding: 15px;">
|
||||
<?
|
||||
if (is_array($this->menus)): foreach ($this->menus as $menu):
|
||||
$menus[$menu['id']] = $menu['name'];
|
||||
endforeach;
|
||||
endif;
|
||||
?>
|
||||
<?=
|
||||
\Html::select(
|
||||
array(
|
||||
'label' => 'Menu',
|
||||
'name' => 'menu_id',
|
||||
'values' => $menus,
|
||||
'value' => $this->page['id'] ? $this->page['menu_id'] : $this->menu_id
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::select(
|
||||
array(
|
||||
'label' => 'Typ strony',
|
||||
'name' => 'page_type',
|
||||
'id' => 'page_type',
|
||||
'values' => \admin\factory\Pages::$_page_types,
|
||||
'value' => $this->page['page_type']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<div id="link-content" class="hide">
|
||||
<div id="languages-links">
|
||||
<ul class="resp-tabs-list languages-links">
|
||||
<? if (is_array($this->languages)): foreach ($this->languages as $lg): ?>
|
||||
<? if ($lg['status']): ?>
|
||||
<li><? if ($lg['id'] == \front\factory\Languages::default_language()) echo '<i class="fa fa-star fa-lg text-system" title="Język domyślny"></i> '; ?><?= $lg['name']; ?></a></li>
|
||||
<? endif; ?>
|
||||
<? endforeach;
|
||||
endif; ?>
|
||||
</ul>
|
||||
<div class="resp-tabs-container languages-links">
|
||||
<? if (is_array($this->languages)): foreach ($this->languages as $lg): ?>
|
||||
<? if ($lg['status']): ?>
|
||||
<div>
|
||||
<?=
|
||||
\Html::input_icon(
|
||||
array(
|
||||
'label' => 'Link',
|
||||
'name' => 'link',
|
||||
'id' => 'link_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['link'],
|
||||
'icon_class' => 'fa fa-link',
|
||||
'icon_js' => 'pages_url_browser( "' . $lg['id'] . '");'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
<? endforeach;
|
||||
endif; ?>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<?=
|
||||
\Html::select(
|
||||
array(
|
||||
'label' => 'Sortowanie artykułów',
|
||||
'name' => 'sort_type',
|
||||
'id' => 'sort_type',
|
||||
'values' => \admin\factory\Pages::$_sort_types,
|
||||
'value' => $this->page['sort_type']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?
|
||||
$layouts[''] = '---- szablon ----';
|
||||
if (is_array($this->layouts)): foreach ($this->layouts as $layout):
|
||||
$layouts[$layout['id']] = $layout['name'];
|
||||
endforeach;
|
||||
endif;
|
||||
?>
|
||||
<?=
|
||||
\Html::select(
|
||||
array(
|
||||
'label' => 'Szablon',
|
||||
'name' => 'layout_id',
|
||||
'id' => 'layout_id',
|
||||
'values' => $layouts,
|
||||
'value' => $this->page['layout_id']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Liczba artykułów na stronę',
|
||||
'name' => 'articles_limit',
|
||||
'id' => 'articles_limit',
|
||||
'value' => $this->page['articles_limit'] ? $this->page['articles_limit'] : 2
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input_switch(
|
||||
array(
|
||||
'label' => 'Pokaż tytuł',
|
||||
'name' => 'show_title',
|
||||
'checked' => $this->page['show_title'] == 1 or ! $this->page['id'] ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Aktywna',
|
||||
'name' => 'status',
|
||||
'checked' => $this->page['status'] == 1 or ! $this->page['id'] ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= Html::input_switch( [
|
||||
'label' => 'Strona startowa',
|
||||
'name' => 'start',
|
||||
'checked' => $this->page['start'] == 1 ? true : false
|
||||
]
|
||||
);
|
||||
?>
|
||||
<?= Html::input_switch( [
|
||||
'label' => 'Cache (24h)',
|
||||
'name' => 'cache',
|
||||
'checked' => $this -> page['cache'] == 1 ? true : false
|
||||
]
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div>
|
||||
<div id="languages-seo">
|
||||
<ul class="resp-tabs-list languages-seo">
|
||||
<? if (is_array($this->languages)): foreach ($this->languages as $lg): ?>
|
||||
<? if ($lg['status']): ?>
|
||||
<li><? if ($lg['id'] == \front\factory\Languages::default_language()) echo '<i class="fa fa-star fa-lg text-system" title="Język domyślny"></i> '; ?><?= $lg['name']; ?></a></li>
|
||||
<? endif; ?>
|
||||
<? endforeach;
|
||||
endif; ?>
|
||||
</ul>
|
||||
<div class="resp-tabs-container languages-seo">
|
||||
<? if (is_array($this->languages)): foreach ($this->languages as $lg): ?>
|
||||
<? if ($lg['status']): ?>
|
||||
<div>
|
||||
<?=
|
||||
\Html::input_icon(
|
||||
array(
|
||||
'label' => 'Link SEO',
|
||||
'name' => 'seo_link',
|
||||
'id' => 'seo_link_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['seo_link'],
|
||||
'icon_content' => 'generuj',
|
||||
'icon_js' => 'generate_seo_links( "' . $lg['id'] . '", $( "#title_' . $lg['id'] . '" ).val(), ' . (int) $this->page['id'] . ', ' . \S::get('pid') . ' );',
|
||||
'js_key' => 'google_preview( "' . $lg['id'] . '", "' . \S::get('pid') . '" ); return false;'
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Tytuł strony (h1)',
|
||||
'name' => 'site_title',
|
||||
'id' => 'site_title_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['site_title']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Meta title',
|
||||
'name' => 'meta_title',
|
||||
'id' => 'meta_title_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['meta_title'],
|
||||
'js_key' => 'google_preview( "' . $lg['id'] . '" ); return false;'
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::textarea(
|
||||
array(
|
||||
'label' => 'Meta description',
|
||||
'name' => 'meta_description',
|
||||
'id' => 'meta_description_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['meta_description'],
|
||||
'js_key' => 'google_preview( "' . $lg['id'] . '" ); return false;'
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::textarea(
|
||||
array(
|
||||
'label' => 'Meta keywords',
|
||||
'name' => 'meta_keywords',
|
||||
'id' => 'meta_keywords_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['meta_keywords']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<div class="form-group ">
|
||||
<label class="col-lg-3 control-label">Podgląd google:</label>
|
||||
<div class="col-lg-9">
|
||||
<div id="google-preview-<?= $lg['id']; ?>">
|
||||
<div class="google-title"></div>
|
||||
<div class="google-url"></div>
|
||||
<div class="google-description"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?=
|
||||
\Html::select(
|
||||
array(
|
||||
'label' => 'Blokuj indeksację',
|
||||
'name' => "noindex",
|
||||
'id' => 'noindex_' . $lg['id'],
|
||||
'values' => array(
|
||||
0 => 'nie', 1 => 'tak'
|
||||
),
|
||||
'value' => $this->page['languages'][$lg['id']]['noindex'] == 1 ? 1 : 0
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::select(
|
||||
array(
|
||||
'label' => 'Blokuj bezpośredni dostęp',
|
||||
'name' => "block_direct_access",
|
||||
'id' => 'block_direct_access_' . $lg['id'],
|
||||
'values' => array(
|
||||
0 => 'nie', 1 => 'tak'
|
||||
),
|
||||
'value' => $this -> page['languages'][ $lg['id'] ]['block_direct_access'] == 1 ? 1 : 0
|
||||
)
|
||||
);?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Rel canonical',
|
||||
'name' => 'canonical',
|
||||
'id' => 'canonical_' . $lg['id'],
|
||||
'value' => $this->page['languages'][$lg['id']]['canonical']
|
||||
) );?>
|
||||
</div>
|
||||
<? endif; ?>
|
||||
<? endforeach;
|
||||
endif; ?>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid->id = 'page-edit';
|
||||
$grid->gdb_opt = $gdb;
|
||||
$grid->include_plugins = true;
|
||||
$grid->title = 'Edycja strony';
|
||||
$grid->fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this->page['id']
|
||||
],
|
||||
[
|
||||
'db' => 'parent_id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this->page['id'] ? $this->page['parent_id'] : $this->parent_id
|
||||
]
|
||||
];
|
||||
$grid->actions = [
|
||||
'save' => ['url' => '/admin/pages/page_save/', 'back_url' => '/admin/pages/view_list/'],
|
||||
'cancel' => ['url' => '/admin/pages/view_list/']
|
||||
];
|
||||
$grid->external_code = $out;
|
||||
$grid->persist_edit = true;
|
||||
$grid->id_param = 'id';
|
||||
|
||||
echo $grid->draw();
|
||||
?>
|
||||
156
admin/templates/pages/pages-browse-list.php
Normal file
156
admin/templates/pages/pages-browse-list.php
Normal file
@@ -0,0 +1,156 @@
|
||||
<?
|
||||
global $gdb;
|
||||
ob_start();
|
||||
if ( is_array( $this -> menus ) ) foreach ( $this -> menus as $menu )
|
||||
{
|
||||
?>
|
||||
<div class="menu_sortable">
|
||||
<ol class="sortable" id="sortable_<?= $menu['id'];?>" menu-id="<?= $menu['id'];?>">
|
||||
<li id="list_<?= $menu['id'];?>" class="menu_<?= $menu['id'];?>" menu="<?= $menu['id'];?>">
|
||||
<div class="context_0 content content_menu">
|
||||
<span class="disclose"><span></span></span>
|
||||
<? if ( !$menu['status'] ) echo '<i class="fa fa-ban fa-lg text-danger" title="Menu nieaktywne"></i>';?>
|
||||
Menu: <b><?= $menu['name'];?></b>
|
||||
</div>
|
||||
<?= \admin\view\Pages::subpages_browse_list( \admin\factory\Pages::menu_pages( $menu['id'] ) );?>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'pages-list';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Lista stron';
|
||||
$grid -> default_buttons = false;
|
||||
$grid -> external_code = $out;
|
||||
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<style type="text/css">
|
||||
<? if ( $this -> modal ):?>
|
||||
.menu-left, .navbar {
|
||||
display: none;
|
||||
}
|
||||
.site-content {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
}
|
||||
<? endif;?>
|
||||
</style>
|
||||
<script type="text/javascript" src="/libraries/jquery-nested-sortable/jquery.mjs.nestedSortable.js"></script>
|
||||
<script type="text/javascript">
|
||||
var menu_id = 0;
|
||||
|
||||
function getUrlParam(paramName)
|
||||
{
|
||||
var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i');
|
||||
var match = window.location.search.match(reParam);
|
||||
|
||||
return (match && match.length > 1) ? match[1] : '';
|
||||
}
|
||||
|
||||
$( document ).ready( function()
|
||||
{
|
||||
<? if ( !$this -> modal ):?>
|
||||
$( '#sidebar_left, .navbar-fixed-top' ).hide();
|
||||
<? endif;?>
|
||||
|
||||
var funcNum = getUrlParam('CKEditorFuncNum');
|
||||
|
||||
$( 'body' ).on( 'click', '.button', function()
|
||||
{
|
||||
if ( funcNum )
|
||||
{
|
||||
window.opener.CKEDITOR.tools.callFunction(funcNum, $( this ).attr( 'url' ) );
|
||||
window.close();
|
||||
}
|
||||
});
|
||||
|
||||
$( 'ol.sortable' ).nestedSortable(
|
||||
{
|
||||
forcePlaceholderSize: true,
|
||||
handle: 'div',
|
||||
helper: 'clone',
|
||||
items: 'li',
|
||||
opacity: .9,
|
||||
placeholder: 'placeholder',
|
||||
revert: 250,
|
||||
tabSize: 45,
|
||||
tolerance: 'pointer',
|
||||
toleranceElement: '> div',
|
||||
maxLevels: 3,
|
||||
isTree: true,
|
||||
expandOnHover: 700,
|
||||
stop: function() {
|
||||
save_pages_order();
|
||||
}
|
||||
});
|
||||
|
||||
$( '.disclose' ).on( 'click', function()
|
||||
{
|
||||
$( this ).closest( 'li' ).toggleClass( 'sort-collapsed' ).toggleClass( 'sort-expanded' );
|
||||
});
|
||||
|
||||
$( ".sortable *" ).mousedown( function(e)
|
||||
{
|
||||
menu_id = $( this ).parents( 'ol.sortable' ).attr( 'menu-id' );
|
||||
});
|
||||
|
||||
$( '.disclose' ).mousedown( function(e)
|
||||
{
|
||||
if ( e.which === 1 ) {
|
||||
if ( $( this ).parent( 'div' ).hasClass( 'content_menu' ) )
|
||||
{
|
||||
var menu_id = $( this ).parent( 'div' ).parent( 'li' ).attr( 'menu' );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'cookie_menus',
|
||||
menu_id: menu_id
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
var page_id = $( this ).parent( 'div' ).parent( 'li' ).attr( 'id' );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'cookie_pages',
|
||||
page_id: page_id
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
<?php
|
||||
$array = unserialize( $_COOKIE[ 'cookie_pages' ] );
|
||||
if ( is_array( $array ) ): foreach ( $array as $key => $val ):
|
||||
if ( $val ):
|
||||
?>$( '.<?= $key;?>' ).children( 'div' ).children( 'span.disclose' ).click();<?
|
||||
endif;
|
||||
endforeach; endif;
|
||||
|
||||
$array = unserialize( $_COOKIE[ 'cookie_menus' ] );
|
||||
if ( is_array( $array ) ): foreach ( $array as $key => $val ):
|
||||
if ( $val ):
|
||||
?>$( '.menu_<?= $key;?>' ).children( 'div' ).children( 'span.disclose' ).click();<?
|
||||
endif;
|
||||
endforeach; endif;
|
||||
?>
|
||||
});
|
||||
</script>
|
||||
204
admin/templates/pages/pages-list.php
Normal file
204
admin/templates/pages/pages-list.php
Normal file
@@ -0,0 +1,204 @@
|
||||
<?
|
||||
global $gdb;
|
||||
|
||||
ob_start();
|
||||
if ( is_array( $this -> menus ) ) foreach ( $this -> menus as $menu )
|
||||
{
|
||||
?>
|
||||
<div class="menu_sortable">
|
||||
<ol class="sortable" id="sortable_<?= $menu['id'];?>" menu-id="<?= $menu['id'];?>">
|
||||
<li id="list_<?= $menu['id'];?>" class="menu_<?= $menu['id'];?>" menu="<?= $menu['id'];?>">
|
||||
<div class="context_0 content content_menu">
|
||||
<span class="disclose"><span></span></span>
|
||||
<? if ( !$menu['status'] ) echo '<i class="fa fa-ban fa-lg text-danger" title="Menu nieaktywne"></i>';?>
|
||||
Menu: <b><?= $menu['name'];?></b>
|
||||
<div class="btn-group ml20 pull-right">
|
||||
<a href="/admin/pages/menu_edit/id=<?= $menu['id'];?>" title="Edytuj menu" class="btn btn-sm btn-system">
|
||||
<i class="fa fa-file-text"></i> <span class="hidden-xs">Edytuj menu</span>
|
||||
</a>
|
||||
<a href="#" title="Usuń menu" class="btn btn-sm btn-danger menu-delete" menu-id="<?= $menu['id'];?>">
|
||||
<i class="fa fa-trash"></i> <span class="hidden-xs">Usuń menu</span>
|
||||
</a>
|
||||
<a href="/admin/pages/page_edit/pid=0&menu_id=<?= $menu['id'];?>" title="Dodaj stronę" class="btn btn-sm btn-success">
|
||||
<i class="fa fa-plus-circle"></i> <span class="hidden-xs">Dodaj stronę</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?= \admin\view\Pages::subpages_list( \admin\factory\Pages::menu_pages( $menu['id'] ) );?>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'pages-list';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Lista stron';
|
||||
$grid -> default_buttons = false;
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj menu',
|
||||
'url' => '/admin/pages/menu_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript" src="/libraries/jquery-nested-sortable/jquery.mjs.nestedSortable.js"></script>
|
||||
<script type="text/javascript">
|
||||
var menu_id = 0;
|
||||
|
||||
$( document ).ready( function()
|
||||
{
|
||||
$( 'body' ).on( 'click', '.menu-delete', function()
|
||||
{
|
||||
var menu_id = $( this ).attr( 'menu-id' );
|
||||
|
||||
$.prompt( "Na pewno chcesz usunąć wybrane menu?",
|
||||
{
|
||||
title: "Potwierdź?",
|
||||
buttons: { "Tak": true, "Nie": false },
|
||||
submit: function( e, v, m, f )
|
||||
{
|
||||
if ( v === true )
|
||||
document.location.href = '/admin/pages/menu_delete/id=' + menu_id;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$( 'body' ).on( 'click', '.page-delete', function()
|
||||
{
|
||||
var page_id = $( this ).attr( 'page-id' );
|
||||
|
||||
$.prompt( "Na pewno chcesz usunąć wybraną stronę?",
|
||||
{
|
||||
title: "Potwierdź?",
|
||||
buttons: { "Tak": true, "Nie": false },
|
||||
submit: function( e, v, m, f )
|
||||
{
|
||||
if ( v === true )
|
||||
document.location.href = '/admin/pages/page_delete/id=' + page_id;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$( 'ol.sortable' ).nestedSortable(
|
||||
{
|
||||
forcePlaceholderSize: true,
|
||||
handle: 'div',
|
||||
helper: 'clone',
|
||||
items: 'li',
|
||||
opacity: .9,
|
||||
placeholder: 'placeholder',
|
||||
revert: 250,
|
||||
tabSize: 45,
|
||||
tolerance: 'pointer',
|
||||
toleranceElement: '> div',
|
||||
maxLevels: 4,
|
||||
isTree: true,
|
||||
expandOnHover: 700,
|
||||
stop: function() {
|
||||
save_pages_order();
|
||||
}
|
||||
});
|
||||
|
||||
$( '.disclose' ).on( 'click', function()
|
||||
{
|
||||
$( this ).closest( 'li' ).toggleClass( 'sort-collapsed' ).toggleClass( 'sort-expanded' );
|
||||
});
|
||||
|
||||
$( ".sortable *" ).mousedown( function(e)
|
||||
{
|
||||
menu_id = $( this ).parents( 'ol.sortable' ).attr( 'menu-id' );
|
||||
});
|
||||
|
||||
$( '.disclose' ).mousedown( function(e)
|
||||
{
|
||||
if ( e.which === 1 ) {
|
||||
if ( $( this ).parent( 'div' ).hasClass( 'content_menu' ) )
|
||||
{
|
||||
var menu_id = $( this ).parent( 'div' ).parent( 'li' ).attr( 'menu' );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'cookie_menus',
|
||||
menu_id: menu_id
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
var page_id = $( this ).parent( 'div' ).parent( 'li' ).attr( 'id' );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'cookie_pages',
|
||||
page_id: page_id
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
<?php
|
||||
$array = unserialize( $_COOKIE[ 'cookie_pages' ] );
|
||||
if ( is_array( $array ) ): foreach ( $array as $key => $val ):
|
||||
if ( $val ):
|
||||
?>$( '.<?= $key;?>' ).children( 'div' ).children( 'span.disclose' ).click();<?
|
||||
endif;
|
||||
endforeach; endif;
|
||||
|
||||
$array = unserialize( $_COOKIE[ 'cookie_menus' ] );
|
||||
if ( is_array( $array ) ): foreach ( $array as $key => $val ):
|
||||
if ( $val ):
|
||||
?>$( '.menu_<?= $key;?>' ).children( 'div' ).children( 'span.disclose' ).click();<?
|
||||
endif;
|
||||
endforeach; endif;
|
||||
?>
|
||||
});
|
||||
|
||||
function save_pages_order( )
|
||||
{
|
||||
pages = $( '#sortable_' + menu_id ).nestedSortable( 'toArray', { startDepthCount: 0 } );
|
||||
|
||||
$.ajax(
|
||||
{
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
url: '/admin/ajax.php',
|
||||
data:
|
||||
{
|
||||
a: 'save_pages_order',
|
||||
menu_id: menu_id,
|
||||
pages: pages
|
||||
},
|
||||
beforeSend: function()
|
||||
{
|
||||
$.prompt( 'Trwa zapisywanie...', { title: 'Proszę czekać' } );
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
$( '.jqibox' ).remove();
|
||||
response = jQuery.parseJSON( data );
|
||||
|
||||
if ( response.status === 'error' )
|
||||
create_error( response.msg );
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
72
admin/templates/pages/subpages-browse-list.php
Normal file
72
admin/templates/pages/subpages-browse-list.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<? if (is_array($this->pages)): ?>
|
||||
<?
|
||||
$settings = \front\factory\Settings::settings_details();
|
||||
?>
|
||||
<ol>
|
||||
<? foreach ($this->pages as $page): ?>
|
||||
<li id="list_<?= $page['id']; ?>" idk="<?= $page['id']; ?>" class="list_<?= $page['id']; ?>" menu="<?= $page['menu_id']; ?>">
|
||||
<div class="content">
|
||||
<span class="disclose"><span></span></span>
|
||||
<?
|
||||
if (!$page['status'])
|
||||
echo '<i class="fa fa-ban fa-lg text-danger" title="Strona nieaktywna"></i>';
|
||||
|
||||
if ($page['start'])
|
||||
echo '<i class="fa fa-star fa-lg text-system" title="Strona startowa"></i>';
|
||||
|
||||
echo mb_substr( $page['title'], 0, 50, 'UTF-8' );
|
||||
if ( strlen( $page['title'] ) > 50 )
|
||||
echo '...';
|
||||
|
||||
if (is_array($page['languages'])):
|
||||
echo '<div class="btn-group flags" style="display: inline-block;">';
|
||||
foreach ($page['languages'] as $lg)
|
||||
echo '<img src="/admin/css/lang-' . $lg['lang_id'] . '.jpg" />';
|
||||
echo '</div>';
|
||||
endif;
|
||||
|
||||
$default_language = \front\factory\Languages::default_language();
|
||||
if (is_array($page['languages'])):
|
||||
foreach ($page['languages'] as $lg):
|
||||
echo '<div class="btn-group ml20 pull-right">';
|
||||
echo '<a href="#" title="Wybierz stronę" class="btn btn-sm btn-system button url-select" url="';
|
||||
|
||||
if ($settings['links_structure']) {
|
||||
if ($lg['seo_link']) {
|
||||
$seo = '/'.\admin\factory\Pages::google_url_preview($page['id'], $lg['title'], $lg['lang_id'], 0, 0, $lg['seo_link']);
|
||||
echo $seo;
|
||||
}
|
||||
else{
|
||||
$seo = '/'. \admin\factory\Pages::google_url_preview($page['id'], $lg['title'], $lg['lang_id'], 0, 0, 0);
|
||||
echo $seo;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($lg['seo_link']) {
|
||||
if ($default_language != $lg['lang_id'])
|
||||
echo '/' . $lg['lang_id'];
|
||||
echo '/' . $lg['seo_link'];
|
||||
}
|
||||
else {
|
||||
if ($default_language != $lg['lang_id'])
|
||||
echo '/' . $lg['lang_id'];
|
||||
echo '/s-' . $page['id'] . '-' . \S::seo($lg['title']);
|
||||
}
|
||||
}
|
||||
echo '">';
|
||||
echo '<i class="fa fa-check"></i> <span class="hidden-xs">' . strtoupper($lg['lang_id']) . '</span>';
|
||||
echo '</a>';
|
||||
echo '</div>';
|
||||
endforeach;
|
||||
endif;
|
||||
?>
|
||||
</div>
|
||||
<?
|
||||
if (is_array($page['subpages']))
|
||||
echo \admin\view\Pages::subpages_browse_list($page['subpages'], $page['id'], $this->step + 1);
|
||||
?>
|
||||
</li>
|
||||
<? endforeach; ?>
|
||||
</ol>
|
||||
<? endif; ?>
|
||||
54
admin/templates/pages/subpages-list.php
Normal file
54
admin/templates/pages/subpages-list.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<? if ( is_array( $this -> pages ) ):?>
|
||||
<ol>
|
||||
<? foreach ( $this -> pages as $page ):?>
|
||||
<li id="list_<?= $page['id'];?>" idk="<?= $page['id'];?>" class="list_<?= $page['id'];?>" menu="<?= $page['menu_id'];?>">
|
||||
<div class="content">
|
||||
<span class="disclose"><span></span></span>
|
||||
<? if ( !$page['status'] ) echo '<i class="fa fa-ban fa-lg text-danger" title="Strona nieaktywna"></i>';?>
|
||||
<? if ( $page['start'] ) echo '<i class="fa fa-star fa-lg text-system" title="Strona startowa"></i>';?>
|
||||
<?= mb_substr( $page['title'], 0, 75, 'UTF-8' );?><? if ( mb_strlen( $page['title'], 'utf-8' ) > 75 ) echo '...';?>
|
||||
<?
|
||||
if ( is_array( $page['languages'] ) ):
|
||||
echo '<div class="btn-group flags" style="display: inline-block;">';
|
||||
foreach ( $page['languages'] as $lg )
|
||||
echo '<img src="/admin/css/lang-' . $lg['lang_id'] . '.jpg" />';
|
||||
echo '</div>';
|
||||
endif;
|
||||
?>
|
||||
<? if ( $this -> step < 3 ):?>
|
||||
<div class="btn-group ml20 pull-right">
|
||||
<a href="/admin/pages/page_edit/id=<?= $page['id'];?>&menu_id=<?= $page['menu_id'];?>" title="Edytuj stronę" class="btn btn-sm btn-system">
|
||||
<i class="fa fa-file-text"></i> <span class="hidden-xs">Edytuj stronę</span>
|
||||
</a>
|
||||
<a href="#" title="Usuń stronę" class="btn btn-sm btn-danger page-delete" page-id="<?= $page['id'];?>">
|
||||
<i class="fa fa-trash"></i> <span class="hidden-xs">Usuń stronę</span>
|
||||
</a>
|
||||
<a href="/admin/pages/page_articles/id=<?= $page['id'];?>" title="Lista artykułów" class="btn btn-sm btn-info" page-id="<?= $page['id'];?>">
|
||||
<i class="fa fa-bars"></i> <span class="hidden-xs">Lista artykułów</span>
|
||||
</a>
|
||||
<a href="/admin/pages/page_edit/pid=<?= $page['id'];?>&menu_id=<?= $page['menu_id'];?>" title="Dodaj podstronę" class="btn btn-sm btn-success">
|
||||
<i class="fa fa-plus-circle"></i> <span class="hidden-xs">Dodaj podstronę</span>
|
||||
</a>
|
||||
</div>
|
||||
<? else:?>
|
||||
<div class="btn-group ml20 pull-right">
|
||||
<a href="/admin/pages/page_edit/id=<?= $page['id'];?>&menu_id=<?= $page['menu_id'];?>" title="Edytuj stronę" class="btn btn-sm btn-system">
|
||||
<i class="fa fa-file-text"></i> <span class="hidden-xs">Edytuj stronę</span>
|
||||
</a>
|
||||
<a href="#" title="Usuń stronę" class="btn btn-sm btn-danger page-delete" page-id="<?= $page['id'];?>">
|
||||
<i class="fa fa-trash"></i> <span class="hidden-xs">Usuń stronę</span>
|
||||
</a>
|
||||
<a href="/admin/pages/page_articles/id=<?= $page['id'];?>" title="Lista artykułów" class="btn btn-sm btn-info" page-id="<?= $page['id'];?>">
|
||||
<i class="fa fa-bars"></i> <span class="hidden-xs">Lista artykułów</span>
|
||||
</a>
|
||||
</div>
|
||||
<? endif;?>
|
||||
</div>
|
||||
<?
|
||||
if ( is_array( $page['subpages'] ) )
|
||||
echo \admin\view\Pages::subpages_list( $page['subpages'], $page['id'], $this -> step + 1 );
|
||||
?>
|
||||
</li>
|
||||
<? endforeach;?>
|
||||
</ol>
|
||||
<? endif;?>
|
||||
101
admin/templates/scontainers/ckeditor-list.php
Normal file
101
admin/templates/scontainers/ckeditor-list.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_scontainers' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> sql = 'SELECT *'
|
||||
. 'FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, status, '
|
||||
. '( SELECT title FROM pp_scontainers_langs AS psl, pp_langs AS pl WHERE lang_id = pl.id AND container_id = ps.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title '
|
||||
. 'FROM '
|
||||
. 'pp_scontainers AS ps '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] '
|
||||
. 'ORDER BY '
|
||||
. '[order_p1] [order_p2]';
|
||||
$grid -> sql_count = 'SELECT '
|
||||
. 'COUNT(0) FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, status, '
|
||||
. '( SELECT title FROM pp_scontainers_langs AS psl, pp_langs AS pl WHERE lang_id = pl.id AND container_id = ps.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title '
|
||||
. 'FROM '
|
||||
. 'pp_scontainers AS ps '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] ';
|
||||
$grid -> debug = true;
|
||||
$grid -> order = [ 'column' => 'title', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Tytuł', 'db' => 'title', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Tytuł',
|
||||
'db' => 'title',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Kod',
|
||||
'php' => 'echo "[KONTENER:[id]]";'
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Akcja',
|
||||
'db' => 'id',
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 120px;' ],
|
||||
'php' => 'echo "<a href=\'#\' class=\'button\' text=\'[KONTENER:[id]]\'>wybierz</a>";'
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj kontener',
|
||||
'url' => '/admin/scontainers/container_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<style type="text/css">
|
||||
body.sb-top.sb-top-sm .navbar.navbar-fixed-top + #sidebar_left + #content_wrapper {
|
||||
padding-top: 0;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function getUrlParam(paramName)
|
||||
{
|
||||
var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i');
|
||||
var match = window.location.search.match(reParam);
|
||||
|
||||
return (match && match.length > 1) ? match[1] : '';
|
||||
}
|
||||
|
||||
$( function()
|
||||
{
|
||||
$( '#sidebar_left, .navbar-fixed-top' ).hide();
|
||||
|
||||
var funcNum = getUrlParam('CKEditorFuncNum');
|
||||
|
||||
$( 'body' ).on( 'click', '.button', function()
|
||||
{
|
||||
window.opener.CKEDITOR.tools.callFunction(funcNum, $( this ).attr( 'text' ) );
|
||||
window.close();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
166
admin/templates/scontainers/container-edit.php
Normal file
166
admin/templates/scontainers/container-edit.php
Normal file
@@ -0,0 +1,166 @@
|
||||
<link rel="stylesheet" href="/libraries/codemirror/lib/codemirror.css" />
|
||||
<link rel="stylesheet" href="/libraries/codemirror/theme/material.css" />
|
||||
<script type="text/javascript" src="/libraries/ckeditor/ckeditor.js"></script>
|
||||
<script type="text/javascript" src="/libraries/ckeditor/adapters/jquery.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/lib/codemirror.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/css/css.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/xml/xml.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/javascript/javascript.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/mode/htmlmixed/htmlmixed.js"></script>
|
||||
<script type="text/javascript" src="/libraries/codemirror/addon/mode/multiplex.js"></script>
|
||||
<?
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div id="settings-tabs">
|
||||
<ul class="resp-tabs-list settings-tabs">
|
||||
<li><i class="fa fa-file"></i>Treść</li>
|
||||
<li><i class="fa fa-wrench"></i>Ustawienia</li>
|
||||
</ul>
|
||||
<div class="resp-tabs-container settings-tabs">
|
||||
<div>
|
||||
<div id="languages-main">
|
||||
<ul class="resp-tabs-list languages-main">
|
||||
<? if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $lg ):?>
|
||||
<? if ( $lg['status'] ):?>
|
||||
<li><?= $lg['name'];?></a></li>
|
||||
<? endif;?>
|
||||
<? endforeach; endif;?>
|
||||
</ul>
|
||||
<div class="resp-tabs-container languages-main">
|
||||
<? if ( is_array( $this -> languages ) ): foreach ( $this -> languages as $lg ):?>
|
||||
<? if ( $lg['status'] ):?>
|
||||
<div>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Tytuł',
|
||||
'name' => 'title',
|
||||
'id' => 'title_' . $lg['id'],
|
||||
'value' => $this -> container['languages'][ $lg['id'] ]['title'],
|
||||
'inline' => true
|
||||
)
|
||||
);?>
|
||||
<?= \Html::textarea(
|
||||
array(
|
||||
'label' => 'Treść',
|
||||
'name' => 'text',
|
||||
'id' => 'text_' . $lg['id'],
|
||||
'value' => $this -> container['languages'][ $lg['id'] ]['text'],
|
||||
'inline' => true
|
||||
)
|
||||
);?>
|
||||
<?= \Html::textarea(
|
||||
array(
|
||||
'label' => 'Kod HTML',
|
||||
'name' => 'html',
|
||||
'id' => 'html_' . $lg['id'],
|
||||
'value' => $this -> container['languages'][ $lg['id'] ]['html'],
|
||||
'inline' => true
|
||||
)
|
||||
);?>
|
||||
<script type="text/javascript">
|
||||
$( function()
|
||||
{
|
||||
$( '#text_<?= $lg['id'];?>' ).ckeditor(
|
||||
{
|
||||
toolbar : 'MyToolbar',
|
||||
height:'300'
|
||||
});
|
||||
var code_html = CodeMirror.fromTextArea( document.getElementById( "html_<?= $lg['id'];?>" ),{
|
||||
lineWrapping: true,
|
||||
mode: "text/html"
|
||||
});
|
||||
code_html.on( 'change', function(cm) {
|
||||
$( '#html_<?= $lg['id'];?>' ).val( cm.getValue() );
|
||||
});
|
||||
code_html.setOption( "theme", 'material' );
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<? endif;?>
|
||||
<? endforeach; endif;?>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?= \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Aktywny',
|
||||
'name' => 'status',
|
||||
'checked' => $this -> container['status'] == 1 or !$this -> container['id'] ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Pokaż tytuł',
|
||||
'name' => 'show_title',
|
||||
'checked' => $this -> container['show_title'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::input_icon(
|
||||
array(
|
||||
'label' => 'Tło kontenera',
|
||||
'name' => 'src',
|
||||
'id' => 'src',
|
||||
'value' => $this->container['src'],
|
||||
'icon_content' => 'przeglądaj',
|
||||
'icon_js' => "window.open ( 'http://" . $_SERVER['SERVER_NAME'] . "/libraries/filemanager-9.14.0/dialog.php?type=1&popup=1&field_id=src&akey=c3cb2537d25c0efc9e573d059d79c3b8', 'mywindow', 'location=1,status=1,scrollbars=1, width=1100,height=700');"
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'container-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja kontenera statycznego';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> container['id']
|
||||
]
|
||||
];
|
||||
$grid -> actions = [
|
||||
'save' => [ 'url' => '/admin/scontainers/container_save/', 'back_url' => '/admin/scontainers/view_list/' ],
|
||||
'cancel' => [ 'url' => '/admin/scontainers/view_list/' ]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$( function()
|
||||
{
|
||||
disable_menu();
|
||||
|
||||
$( '#settings-tabs' ).easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'settings-tabs',
|
||||
type: 'vertical'
|
||||
});
|
||||
|
||||
$( '#languages-main' ).easyResponsiveTabs({
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'languages-main'
|
||||
});
|
||||
|
||||
$( '#g-menu' ).attr( 'data-spy', 'affix' );
|
||||
$( '#g-menu' ).attr( 'data-offset-top', '135' );
|
||||
|
||||
});
|
||||
</script>
|
||||
<script>CKEDITOR.dtd.$removeEmpty['span'] = false;</script>
|
||||
79
admin/templates/scontainers/containers-list.php
Normal file
79
admin/templates/scontainers/containers-list.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_scontainers' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> sql = 'SELECT *'
|
||||
. 'FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, status, '
|
||||
. '( SELECT title FROM pp_scontainers_langs AS psl, pp_langs AS pl WHERE lang_id = pl.id AND container_id = ps.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title '
|
||||
. 'FROM '
|
||||
. 'pp_scontainers AS ps '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] '
|
||||
. 'ORDER BY '
|
||||
. '[order_p1] [order_p2]';
|
||||
$grid -> sql_count = 'SELECT '
|
||||
. 'COUNT(0) FROM ( '
|
||||
. 'SELECT '
|
||||
. 'id, status, '
|
||||
. '( SELECT title FROM pp_scontainers_langs AS psl, pp_langs AS pl WHERE lang_id = pl.id AND container_id = ps.id AND title != \'\' ORDER BY o ASC LIMIT 1 ) AS title '
|
||||
. 'FROM '
|
||||
. 'pp_scontainers AS ps '
|
||||
. ') AS q1 '
|
||||
. 'WHERE '
|
||||
. '1=1 [where] ';
|
||||
$grid -> debug = true;
|
||||
$grid -> order = [ 'column' => 'title', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Tytuł', 'db' => 'title', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Tytuł',
|
||||
'db' => 'title',
|
||||
'php' => 'echo "<a href=\'/admin/scontainers/container_edit/id=[id]\'>[title]</a>";',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Kod',
|
||||
'php' => 'echo "[KONTENER:[id]]";'
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/scontainers/container_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/scontainers/container_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj kontener',
|
||||
'url' => '/admin/scontainers/container_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
95
admin/templates/seo-additional/element-edit.php
Normal file
95
admin/templates/seo-additional/element-edit.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<script type="text/javascript" src="/libraries/ckeditor/ckeditor.js"></script>
|
||||
<script type="text/javascript" src="/libraries/ckeditor/adapters/jquery.js"></script>
|
||||
<?
|
||||
global $db;
|
||||
ob_start();
|
||||
?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Url',
|
||||
'class' => 'required',
|
||||
'name' => 'url',
|
||||
'id' => 'url',
|
||||
'value' => $this -> element['url']
|
||||
)
|
||||
);?>
|
||||
<?= \Html::input_switch(
|
||||
array(
|
||||
'label' => 'Aktywny',
|
||||
'name' => 'status',
|
||||
'checked' => $this -> element['status'] == 1 or !$this -> element['id'] ? true : false
|
||||
)
|
||||
);?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Meta title',
|
||||
'class' => 'title',
|
||||
'name' => 'title',
|
||||
'id' => 'title',
|
||||
'value' => $this -> element['title']
|
||||
)
|
||||
);?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Meta keywords',
|
||||
'class' => 'keywords',
|
||||
'name' => 'keywords',
|
||||
'id' => 'keywords',
|
||||
'value' => $this -> element['keywords']
|
||||
)
|
||||
);?>
|
||||
<?= \Html::input(
|
||||
array(
|
||||
'label' => 'Meta description',
|
||||
'class' => 'description',
|
||||
'name' => 'description',
|
||||
'id' => 'description',
|
||||
'value' => $this -> element['description']
|
||||
)
|
||||
);?>
|
||||
<?= \Html::textarea(
|
||||
array(
|
||||
'label' => 'Dodatkowa treść',
|
||||
'name' => 'text',
|
||||
'id' => 'text',
|
||||
'value' => $this ->element['text']
|
||||
)
|
||||
);?>
|
||||
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'seo-element-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja elementu SEO';
|
||||
$grid -> fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this -> element['id']
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
$grid -> actions = [
|
||||
'save' => [
|
||||
'url' => '/admin/seo_additional/element_save/',
|
||||
'back_url' => '/admin/seo_additional/main_view/'
|
||||
],
|
||||
'cancel' => [
|
||||
'url' => '/admin/seo_additional/main_view/'
|
||||
]
|
||||
];
|
||||
$grid -> persist_edit = true;
|
||||
$grid -> id_param = 'id';
|
||||
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$( function() {
|
||||
$( '#text' ).ckeditor( {
|
||||
toolbar : 'MyTool',
|
||||
height:'350'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
58
admin/templates/seo-additional/main-view.php
Normal file
58
admin/templates/seo-additional/main-view.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_seo_additional' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'url', 'type' => 'ASC' ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Url', 'db' => 'url', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Url',
|
||||
'db' => 'url',
|
||||
'php' => 'echo "<a href=\'/admin/seo_additional/element_edit/id=[id]\'>[url]</a>";',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Title',
|
||||
'db' => 'title',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/seo_additional/element_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/seo_additional/element_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 70px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[
|
||||
'label' => 'Dodaj element',
|
||||
'url' => '/admin/seo_additional/element_edit/',
|
||||
'icon' => 'fa-plus-circle',
|
||||
'class' => 'btn-success'
|
||||
]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
428
admin/templates/settings/settings.php
Normal file
428
admin/templates/settings/settings.php
Normal file
@@ -0,0 +1,428 @@
|
||||
<script type="text/javascript" src="/libraries/ckeditor/ckeditor.js"></script>
|
||||
<script type="text/javascript" src="/libraries/ckeditor/adapters/jquery.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function ()
|
||||
{
|
||||
$('#settings-tabs').easyResponsiveTabs(
|
||||
{
|
||||
width: 'auto',
|
||||
fit: true,
|
||||
tabidentify: 'settings-tabs',
|
||||
type: 'vertical'
|
||||
});
|
||||
|
||||
$('#additional_info').ckeditor(
|
||||
{
|
||||
toolbar: 'MyTool',
|
||||
height: '150'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?
|
||||
global $db;
|
||||
|
||||
ob_start();
|
||||
?>
|
||||
<div id="settings-tabs">
|
||||
<ul class="resp-tabs-list settings-tabs">
|
||||
<li><i class="fa fa-paper-plane"></i>Dane kontaktowe</li>
|
||||
<li><i class="fa fa-envelope"></i>Poczta</li>
|
||||
<li><i class="fa fa-bars"></i>Dodatkowe ustawienia</li>
|
||||
<li><i class="fa fa-code"></i>Kody (m.in. statystyk)</li>
|
||||
<li><i class="fa fa-cog"></i>System</li>
|
||||
<li><i class="fa fa-refresh"></i>Aktualizacje</li>
|
||||
</ul>
|
||||
<div class="resp-tabs-container settings-tabs">
|
||||
<div>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Nazwa firmy',
|
||||
'name' => 'firm_name',
|
||||
'id' => 'firm_name',
|
||||
'value' => $this -> settings['firm_name']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::textarea(
|
||||
array(
|
||||
'label' => 'Dodatkowe informacje',
|
||||
'name' => 'additional_info',
|
||||
'id' => 'additional_info',
|
||||
'value' => $this -> settings['additional_info']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input_switch(
|
||||
array(
|
||||
'label' => 'Mapa',
|
||||
'name' => 'google_maps',
|
||||
'checked' => $this -> settings['google_maps'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::textarea(
|
||||
array(
|
||||
'label' => 'Mapa - adres',
|
||||
'name' => 'firm_adress',
|
||||
'id' => 'firm_adress',
|
||||
'value' => $this -> settings['firm_adress']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input_switch(
|
||||
array(
|
||||
'label' => 'Widget "Telefon"',
|
||||
'name' => 'widget_phone',
|
||||
'checked' => $this -> settings['widget_phone'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div>
|
||||
<?=
|
||||
\Html::input_switch(
|
||||
array(
|
||||
'label' => 'Formularz kontaktowy',
|
||||
'name' => 'contact_form',
|
||||
'checked' => $this -> settings['contact_form'] == 1 ? true : false
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Email kontaktowy',
|
||||
'name' => 'contact_email',
|
||||
'id' => 'contact_email',
|
||||
'value' => $this -> settings['contact_email']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Email - host',
|
||||
'name' => 'email_host',
|
||||
'id' => 'email_host',
|
||||
'value' => $this -> settings['email_host']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Email - port',
|
||||
'name' => 'email_port',
|
||||
'id' => 'email_port',
|
||||
'value' => $this -> settings['email_port']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Email - login',
|
||||
'name' => 'email_login',
|
||||
'id' => 'email_login',
|
||||
'value' => $this -> settings['email_login']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Email - hasło',
|
||||
'name' => 'email_password',
|
||||
'id' => 'email_password',
|
||||
'value' => $this -> settings['email_password'],
|
||||
'type' => 'text'
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?= \Html::input_switch( [
|
||||
'label' => 'Captcha w formularzu kontaktowym',
|
||||
'name' => 'contact_form_captcha',
|
||||
'checked' => $this -> settings['contact_form_captcha'] == 1 ? true : false
|
||||
] );
|
||||
?>
|
||||
</div>
|
||||
<div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Ilość aktualności
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Ilość wyświetlanych aktulanośći w boxie [NEWS] ">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9">
|
||||
<input class="form-control" type="text" name="news_limit" id="news_limit" value="<?= $this -> settings['news_limit']?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Licznik odwiedzin
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Włączenie licznika odwiedzin na stronie">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="visit_counter" id="visit_counter" <? if ( $this -> settings['visit_counter'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="visit_counter"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Kalendarz
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Włączenie kalendarza dla artykułów">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="calendar" id="calendar" <? if ( $this -> settings['calendar'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="calendar"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Tagi
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Włączenie tagów dla artykułów">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="tags" id="tags" <? if ( $this -> settings['tags'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="tags"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?= \Html::input( [
|
||||
'label' => 'Maksmalna wielkość zdjęcia (px)',
|
||||
'name' => 'image_px',
|
||||
'id' => 'image_px',
|
||||
'value' => $this -> settings['image_px']
|
||||
] );
|
||||
?>
|
||||
</div>
|
||||
<div>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Klucz Google Search Console',
|
||||
'name' => 'google_search_console',
|
||||
'id' => 'google_search_console',
|
||||
'value' => $this -> settings['google_search_console']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::input(
|
||||
array(
|
||||
'label' => 'Facebook link',
|
||||
'name' => 'facebook_link',
|
||||
'id' => 'facebook_link',
|
||||
'value' => $this -> settings['facebook_link']
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::textarea(
|
||||
array(
|
||||
'label' => 'Kod statystyk',
|
||||
'name' => 'statistic_code',
|
||||
'id' => 'statistic_code',
|
||||
'value' => $this -> settings['statistic_code'],
|
||||
'rows' => 10
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::textarea(
|
||||
array(
|
||||
'label' => 'Własne reguły htacess',
|
||||
'name' => 'htaccess',
|
||||
'id' => 'htaccess',
|
||||
'value' => $this -> settings['htaccess'],
|
||||
'rows' => 10
|
||||
)
|
||||
);
|
||||
?>
|
||||
<?=
|
||||
\Html::textarea(
|
||||
array(
|
||||
'label' => 'Własne reguły robots.txt',
|
||||
'name' => 'robots',
|
||||
'id' => 'robots',
|
||||
'value' => $this -> settings['robots'],
|
||||
'rows' => 10
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Strona konstrukcyjna
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Włączenie strony konstrukcyjnej do tworzenia szablonów">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="devel" id="devel" <? if ( $this -> settings['devel'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="devel"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Wersja https://
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Włączenie wersji https:// strony">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="ssl" id="ssl" <? if ( $this -> settings['ssl'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="ssl"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">MySQL Debug
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Umożliwienie zapisu zapytań sql do plików">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="mysql_debug" id="mysql_debug" <? if ( $this -> settings['mysql_debug'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="mysql_debug"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Htaccess cache
|
||||
<div class="popo">
|
||||
<i class="popover-btn" data-container="body" data-toggle="popover" data-placement="top" data-content="Aktywny - dla stron rzadko aktualizowanych,<br> Niekatywny - dla stron często aktualizowanych">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="htaccess_cache" id="htaccess_cache" <? if ( $this -> settings['htaccess_cache'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="htaccess_cache"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Lazy loading obrazów</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="lazy_loading" id="lazy_loading" <? if ( $this -> settings['lazy_loading'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="lazy_loading"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Generowanie obrazków WEBP</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="generate_webp" id="generate_webp" <? if ( $this -> settings['generate_webp'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="generate_webp"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?= \Html::select( [
|
||||
'label' => "Struktura linków",
|
||||
'name' => "links_structure",
|
||||
'values' => [ 0 => 'skrócona', 1 => 'rozwinięta' ],
|
||||
'value' => $this -> settings['links_structure'] ? 1 : 0
|
||||
] );?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?= \Html::select( [
|
||||
'label' => "Wersja strony",
|
||||
'name' => "link_version",
|
||||
'values' => [ 0 => 'bez www', 1 => 'z www' ],
|
||||
'value' => $this -> settings['link_version'] ? 1 : 0
|
||||
] );?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?= \Html::select( [
|
||||
'label' => "Wersja adresów url",
|
||||
'name' => "url_version",
|
||||
'values' => [ 0 => 'bez / na końcu adresu url', 1 => 'z / na końcu adresu url' ],
|
||||
'value' => $this -> settings['url_version'] ? 1 : 0
|
||||
] );?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?= \Html::select( [
|
||||
'label' => "Newsletter",
|
||||
'name' => "newsletter_cron",
|
||||
'values' => [ 0 => 'wysyłka za pomocą cron i strony', 1 => 'wysyłka za pomocą cron' ],
|
||||
'value' => $this -> settings['newsletter_cron'] ? 1 : 0
|
||||
] );?>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Aktualizacja
|
||||
<div class="popo">
|
||||
<i class="popover-btn " data-container="body" data-toggle="popover" data-placement="top" data-content="Wyświetlanie informacji o pojawiającej się nowej aktualizacji">?</i>
|
||||
</div>
|
||||
</label>
|
||||
<div class="col-lg-9 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="update" id="update" <? if ( $this -> settings['update'] ):?>checked="checked"<? endif;?>>
|
||||
<label for="update"></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?= Html::input(
|
||||
array(
|
||||
'label' => 'Numer licencji',
|
||||
'name' => 'update_key',
|
||||
'id' => 'update_key',
|
||||
'value' => $this -> settings['update_key']
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'settings-edit';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Edycja ustawień';
|
||||
$grid -> actions = [
|
||||
'save' => [
|
||||
'url' => '/admin/settings/settings_save/',
|
||||
'back_url' => '/admin/settings/view/'
|
||||
]
|
||||
];
|
||||
$grid -> external_code = $out;
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script>CKEDITOR.dtd.$removeEmpty['span'] = false;</script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('.popover-btn').popover(
|
||||
{
|
||||
trigger: 'hover',
|
||||
html: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
#g-edit-save.btn-system{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<style type="text/css">#g-edit-cancel { display: none; }</style>
|
||||
331
admin/templates/site/main-layout.php
Normal file
331
admin/templates/site/main-layout.php
Normal file
@@ -0,0 +1,331 @@
|
||||
<? global $user, $config, $settings;?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>cmsPro</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="author" content="www.project-pro.pl - internetowe rozwiązania dla biznesu">
|
||||
<link rel="stylesheet" href="/libraries/framework/admin-tools/admin-forms/css/admin-forms.css">
|
||||
<link rel="stylesheet" href="/libraries/framework/vendor/plugins/magnific/magnific-popup.css">
|
||||
<link rel="stylesheet" href="/libraries/framework/vendor/plugins/datepicker/css/bootstrap-datetimepicker.css">
|
||||
<link rel="Stylesheet" type="text/css" href="/libraries/framework/vendor/jquery/jquery_ui/jquery-ui.structure.min.css">
|
||||
<link rel="Stylesheet" type="text/css" href="/libraries/framework/vendor/jquery/jquery_ui/jquery-ui.theme.min.css">
|
||||
<link rel="Stylesheet" type="text/css" href="/libraries/framework/vendor/plugins/daterange/daterangepicker.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/easy-tabs/css/easy-responsive-tabs.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/framework/vendor/plugins/tagmanager/tagmanager.css">
|
||||
<link rel="stylesheet" type="text/css" href="/libraries/jquery-confirm/jquery-confirm.min.css">
|
||||
<link rel="stylesheet" href="/libraries/framework/skin/default_skin/css/theme.css">
|
||||
<script src="/libraries/framework/vendor/jquery/jquery-1.11.1.min.js"></script>
|
||||
<script src="/libraries/framework/vendor/jquery/jquery_ui/jquery-ui.min.js"></script>
|
||||
<script src="/libraries/framework/vendor/plugins/magnific/jquery.magnific-popup.js"></script>
|
||||
<script type="text/javascript" src="/libraries/jquery-confirm/jquery-confirm.min.js"></script>
|
||||
<script src="/libraries/easy-tabs/js/easyResponsiveTabs.js"></script>
|
||||
<script src="/libraries/framework/vendor/plugins/moment/moment.js"></script>
|
||||
<script src="/libraries/framework/vendor/plugins/moment/pl.js"></script>
|
||||
<script src="/libraries/framework/vendor/plugins/datepicker/js/bootstrap-datetimepicker.js"></script>
|
||||
<script src="/libraries/framework/vendor/plugins/daterange/daterangepicker.js"></script>
|
||||
<script src="/libraries/framework/vendor/plugins/tagmanager/tagmanager.js"></script>
|
||||
<script src="/libraries/functions.js"></script>
|
||||
<link rel="stylesheet" href="/admin/css/custom.css" />
|
||||
</head>
|
||||
<body class="sb-top sb-top-sm">
|
||||
<div class="menu-left">
|
||||
<div class="logo sticky-top">
|
||||
<a class="logo-cmspro" href="/admin/pages/view_list/">
|
||||
<b>cms</b>Pro
|
||||
</a>
|
||||
<a class="version-cmspro"href="/admin/update/main_view/">
|
||||
ver. <?= \S::get_version();?>
|
||||
</a>
|
||||
|
||||
<? if ( $settings[ 'update' ] and \S::get_new_version() > \S::get_version() ):?>
|
||||
<a href="/admin/update/main_view/" class="update-cmspro">aktualizacja</a>
|
||||
<? endif;?>
|
||||
</div>
|
||||
<div class="menu-content">
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'page_administration', $user[ 'id' ] ) || \admin\factory\Users::check_privileges( 'article_administration', $user[ 'id' ] ) || \admin\factory\Users::check_privileges( 'scontainer_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<div class="title">
|
||||
Zawartość
|
||||
</div>
|
||||
<? }?>
|
||||
<ul>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'page_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/pages/view_list/"><img src="/admin/css/icons/menu-alt.svg">Konfiguracja menu</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'article_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/articles/view_list/"><img src="/admin/css/icons/bx-news.svg">Artykuły</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<? if ( \admin\factory\Users::check_privileges( 'article_administration', $user[ 'id' ] ) ):?>
|
||||
<li>
|
||||
<a href="/admin/articles_archive/view_list/"><img src="/admin/css/icons/news-24-regular.svg">Archiwum artykułów</a>
|
||||
</li>
|
||||
<? endif;?>
|
||||
<? if ( \admin\factory\Users::check_privileges( 'article_administration', $user[ 'id' ] ) ):?>
|
||||
<li>
|
||||
<a href="/admin/authors/view_list/"><img src="/admin/css/icons/people-fill.svg">Autorzy</a>
|
||||
</li>
|
||||
<? endif;?>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'scontainers_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/scontainers/view_list/"><img src="/admin/css/icons/container-solid.svg">Zawartość statyczna</a>
|
||||
<? }?>
|
||||
</li>
|
||||
</ul>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'fileManager_administration', $user[ 'id' ] ) || \admin\factory\Users::check_privileges( 'baners_administration', $user[ 'id' ] ) || \admin\factory\Users::check_privileges( 'emails_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<div class="title">
|
||||
Pozostałe
|
||||
</div>
|
||||
<? }?>
|
||||
<ul>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'fileManager_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/filemanager/draw/"><img src="/admin/css/icons/image.svg">Manadżer plików</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'baners_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/banners/view_list/"><img src="/admin/css/icons/photo-video.svg">Banery</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'emails_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/emails/view_list/"><img src="/admin/css/icons/email.svg">Skrzynka pocztowa</a>
|
||||
<? }?>
|
||||
</li>
|
||||
</ul>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'newsletter_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
|
||||
<div class="title">
|
||||
Newsletter
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/admin/newsletter/prepare/"><img src="/admin/css/icons/send.svg">Wysyłka - przygotowanie</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/newsletter/emails_list/"><img src="/admin/css/icons/bx-at.svg">Baza emaili</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/newsletter/email_templates_user/"><img src="/admin/css/icons/template.svg">Szablony użytkownika</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/newsletter/email_templates_admin/"><img src="/admin/css/icons/template-2.svg">Szablony administracyjne</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/newsletter/settings/"><img src="/admin/css/icons/settings-20-filled.svg">Ustawienia</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<? }?>
|
||||
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'users_administration', $user[ 'id' ] ) || \admin\factory\Users::check_privileges( 'language_administration', $user[ 'id' ] ) || \admin\factory\Users::check_privileges( 'template_administration', $user[ 'id' ] ) || \admin\factory\Users::check_privileges( 'settings_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<div class="title">
|
||||
Konfiguracja
|
||||
</div>
|
||||
|
||||
<? }?>
|
||||
<ul>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'users_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/users/view_list/"><img src="/admin/css/icons/people-fill.svg">Użytkownicy</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'language_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/languages/view_list/"><img src="/admin/css/icons/letter-aa.svg">Jęzki</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'language_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/languages/translation_list/"><img src="/admin/css/icons/language.svg">Tłumaczenia</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'settings_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/settings/view/"><img src="/admin/css/icons/settings-20-filled.svg">Ustawienia</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<?
|
||||
if ( \admin\factory\Users::check_privileges( 'template_administration', $user[ 'id' ] ) )
|
||||
{
|
||||
?>
|
||||
<a href="/admin/layouts/view_list/"><img src="/admin/css/icons/list-settings-line.svg">Szablony</a>
|
||||
<? }?>
|
||||
</li>
|
||||
<li>
|
||||
<? if ( \admin\factory\Users::check_privileges( 'backups_administration', $user[ 'id' ] ) ):?>
|
||||
<a href="/admin/backups/view_list/"><img src="/admin/css/icons/backup-line.svg">Kopia zapasowa</a>
|
||||
<? endif;?>
|
||||
</li>
|
||||
<li>
|
||||
<? if ( \admin\factory\Users::check_privileges( 'seo_administration', $user[ 'id' ] ) ):?>
|
||||
<a href="/admin/seo_additional/main_view/">
|
||||
<img src="/admin/css/icons/settings-20-filled.svg">Dodatkowe ustawienia SEO
|
||||
</a>
|
||||
<? endif;?>
|
||||
</li>
|
||||
</ul>
|
||||
<?
|
||||
if ( file_exists( 'templates/additional-menu.php' ) )
|
||||
include 'templates/additional-menu.php';
|
||||
?>
|
||||
|
||||
<div class="preview">
|
||||
<a href="/" target="_blank"><img src="/admin/css/icons/double-right-outlined.svg">Podgląd</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="mobile-menu-btn" id="mobile-menu-btn">
|
||||
<i class="fa fa-bars"></i>
|
||||
</div>
|
||||
|
||||
<div class="site-content" id="main">
|
||||
<header class="navbar navbar-shadow">
|
||||
<div class="navbar-branding">
|
||||
<a class="navbar-brand" href="/admin/pages/view_list/">
|
||||
<b>cms</b>Pro
|
||||
</a>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown menu-merge">
|
||||
<a href="#" class="dropdown-toggle fw600 p15" data-toggle="dropdown" aria-expanded="false">
|
||||
<img src="/admin/css/user-icon.png" alt="avatar" class="mw30 br64 mr15"> <?
|
||||
if ( $user[ 'name' ] or $user[ 'surname' ] )
|
||||
echo $user[ 'surname' ] . ' ' . $user[ 'name' ];
|
||||
else
|
||||
echo $user[ 'login' ];
|
||||
?>
|
||||
<span class="caret caret-tp hidden-xs"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu list-group dropdown-persist w250" role="menu">
|
||||
<li class="list-group-item">
|
||||
<a href="/admin/?s-action=user-logout" class="animated animated-short fadeInUp">
|
||||
<span class="fa fa-power-off"></span>Wyloguj się
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section id="content_wrapper">
|
||||
<section id="content">
|
||||
<div class="container-fluid">
|
||||
<?
|
||||
if ( $alert = \S::get_session( 'alert' ) ):
|
||||
\S::alert( false );
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col col-xs-12">
|
||||
<div class="alert alert-primary alert-dismissable">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<i class="fa fa-info pr10"></i>
|
||||
<?= $alert;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<? endif;
|
||||
?>
|
||||
<?= $this -> content;?>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div id="overlay"></div>
|
||||
<div id="ajax-container"></div>
|
||||
<script src="/libraries/framework/js/utility/utility.js"></script>
|
||||
<script src="/libraries/framework/js/main.js"></script>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function ()
|
||||
{
|
||||
"use strict";
|
||||
Core.init();
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
var user_agent = navigator.userAgent.toLowerCase();
|
||||
var click_event = user_agent.match(/(iphone|ipod|ipad)/) ? "touchend" : "click";
|
||||
$('body').on(click_event, '#mobile-menu-btn', function () {
|
||||
|
||||
if ($(this).hasClass('active'))
|
||||
{
|
||||
$(this).removeClass('active');
|
||||
$('.menu-left').removeClass('visible');
|
||||
$('#mobile-menu-btn i').addClass('fa-bars').removeClass('fa-times');
|
||||
$('.site-content').removeClass('with-menu');
|
||||
|
||||
$('.navbar-branding').removeClass('with-menu');
|
||||
} else
|
||||
{
|
||||
$(this).addClass('active');
|
||||
$('.menu-left').addClass('visible');
|
||||
$('.site-content').addClass('with-menu');
|
||||
$('#mobile-menu-btn i').addClass('fa-times').removeClass('fa-bars');
|
||||
$('.navbar-branding').addClass('with-menu');
|
||||
}
|
||||
});
|
||||
$('body').adminpanel();
|
||||
});
|
||||
</script>
|
||||
<link rel='stylesheet' href='//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700'>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
93
admin/templates/site/unlogged-layout.php
Normal file
93
admin/templates/site/unlogged-layout.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<? global $user, $config, $settings;?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>cmsPro</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="author" content="project-pro.pl - internetowe rozwiązania dla biznesu">
|
||||
<link rel="stylesheet" href="/libraries/framework/skin/default_skin/css/theme.css">
|
||||
<link rel="stylesheet" href="/libraries/framework/admin-tools/admin-forms/css/admin-forms.css">
|
||||
<link rel="stylesheet" href="/admin/css/custom.css">
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
|
||||
</head>
|
||||
<body class="external-page sb-l-c sb-r-c">
|
||||
<div id="main" class="animated fadeIn">
|
||||
<section id="content_wrapper">
|
||||
<div id="canvas-wrapper">
|
||||
<canvas id="demo-canvas"></canvas>
|
||||
</div>
|
||||
<section id="content">
|
||||
<div class="admin-form theme-info">
|
||||
<div class="row mb15 table-layout">
|
||||
<div class="col-xs-12">
|
||||
<div class="login-links">
|
||||
<a href="#"><b>cms</b>Pro</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-info br-n heading-border bg-white">
|
||||
<div class="panel-body">
|
||||
<div class="section-divider mb40">
|
||||
<span>Logowanie</span>
|
||||
</div>
|
||||
<? if ( $alert = \S::get_session( 'alert' ) ):
|
||||
\S::alert( false );
|
||||
?>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="alert alert-danger alert-dismissable">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<i class="icon fa fa-ban pr10"></i><?= $alert;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
endif; ?>
|
||||
<form method="POST" action="/admin/" class="form-horizontal" rol="form">
|
||||
<input type="hidden" name="s-action" value="user-logon" />
|
||||
<div class="form-group">
|
||||
<label class="col col-sm-2 control-label" for="login">Login:</label>
|
||||
<div class="col col-sm-10">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<i class="fa fa-user"></i>
|
||||
</span>
|
||||
<input type="text" name="login" id="login" class="form-control" placeholder="Login" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col col-sm-2 control-label" for="password">Hasło:</label>
|
||||
<div class="col col-sm-10">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<i class="fa fa-lock"></i>
|
||||
</span>
|
||||
<input type="password" name="password" id="password" class="form-control" placeholder="Hasło" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col col-sm-2"></div>
|
||||
<div class="col col-sm-10">
|
||||
<input id="remember" type="checkbox" class="form-control" name="remember" value="1">
|
||||
<label class="remember"> Pamiętaj mnie 14 dni</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col col-sm-2"></div>
|
||||
<div class="col col-sm-10">
|
||||
<button class="btn btn-primary btn-flat btn-sm btn-block">Zaloguj się</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
27
admin/templates/site/unlogged.php
Normal file
27
admin/templates/site/unlogged.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<? global $user, $config, $settings;?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>cmsPro</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="author" content="project-pro.pl - internetowe rozwiązania dla biznesu">
|
||||
<link rel="stylesheet" href="/libraries/framework/skin/default_skin/css/theme.css">
|
||||
<link rel="stylesheet" href="/libraries/framework/admin-tools/admin-forms/css/admin-forms.css">
|
||||
<link rel="stylesheet" href="/admin/css/custom.css">
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
|
||||
</head>
|
||||
<body class="external-page sb-l-c sb-r-c">
|
||||
<div id="main" class="animated fadeIn">
|
||||
<section id="content_wrapper">
|
||||
<div id="canvas-wrapper">
|
||||
<canvas id="demo-canvas"></canvas>
|
||||
</div>
|
||||
<section id="content">
|
||||
<?= $this -> content;?>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
165
admin/templates/update/main-view.php
Normal file
165
admin/templates/update/main-view.php
Normal file
@@ -0,0 +1,165 @@
|
||||
<? global $db; ob_start();?>
|
||||
<?= \Html::form_text( [
|
||||
'label' => 'Twoja wersja systemu',
|
||||
'id' => 'ver',
|
||||
'text' => $this -> ver
|
||||
] );?>
|
||||
<?= \Html::form_text( [
|
||||
'label' => 'Aktualna wersja systemu',
|
||||
'text' => $this -> new_ver,
|
||||
'id' => 'new_ver'
|
||||
] );?>
|
||||
<?
|
||||
$ver_new = $this -> new_ver;
|
||||
$ver = $this -> ver;
|
||||
$valuemax = ( $ver_new - $ver ) * 1000;
|
||||
?>
|
||||
<div class="progress-box hidden">
|
||||
<div class="version">
|
||||
<h3> Aktualizacja <p class="version_curent">0</p> / <p class="version_diff">0</p></h3>
|
||||
</div>
|
||||
<div class="progress ">
|
||||
<div class="progress-bar progress-bar-info progress-bar-striped active" role="progressbar" accesskey=""aria-valuenow="" aria-valuemin="0" aria-valuemax="<?= $valuemax?>" style="width:"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<? if ( $this -> ver < $this -> new_ver ):?>
|
||||
<div class="form-group col-lg-6 text-right">
|
||||
<div class="">
|
||||
<a href="#" class="btn btn-system btn-sm mb5" id="confirm">Aktualizuj do wyższej wersji</a>
|
||||
</div>
|
||||
</div>
|
||||
<? endif;?>
|
||||
<? if ( $this -> ver < $this -> new_ver ):?>
|
||||
<div class="form-group col-lg-6">
|
||||
<div class="">
|
||||
<a href="#" class="btn btn-system btn-sm mb5" id="confirmUpdateAll">Aktualizuj do najwyższej wersji</a>
|
||||
</div>
|
||||
</div>
|
||||
<? endif;?>
|
||||
</div>
|
||||
<? if ( $this -> ver < $this -> new_ver ):?>
|
||||
<div class="text-danger text-center">* Przed aktualizacją systemu zalecane jest wykonanie pełnej kopii zapasowej.</div>
|
||||
<div class="clear"></div>
|
||||
<? endif;?>
|
||||
<?
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'update-view';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Aktualizacja systemu';
|
||||
$grid -> default_buttons = false;
|
||||
$grid -> external_code = $out;
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<?
|
||||
ob_start();
|
||||
echo $versions = file_get_contents( 'http://www.cmspro.project-dc.pl/updates/changelog.php' );
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid -> id = 'changelog';
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> include_plugins = true;
|
||||
$grid -> title = 'Changelog';
|
||||
$grid -> default_buttons = false;
|
||||
$grid -> external_code = $out;
|
||||
echo $grid -> draw();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var version_current = <?= $this -> ver;?>;
|
||||
var version_new = <?= $this -> new_ver;?>;
|
||||
var version_diff = Math.round((version_new - version_current) * 1000);
|
||||
var width = 0;
|
||||
var ac_lp = 0;
|
||||
$(document).ready(function ()
|
||||
{
|
||||
$('body').on('click', '#confirm', function ()
|
||||
{
|
||||
$.prompt('Na pewno chcesz dokonać aktualizacji systemu?',
|
||||
{
|
||||
title: 'Potwierdź?',
|
||||
submit: function (e, v, m, f)
|
||||
{
|
||||
if (v == true)
|
||||
document.location.href = '/admin/update/update/';
|
||||
},
|
||||
buttons: {
|
||||
'tak': true, 'nie': false
|
||||
},
|
||||
focus: 1
|
||||
});
|
||||
});
|
||||
|
||||
$('body').on('click', '#confirmUpdateAll', function ()
|
||||
{
|
||||
$.prompt('Na pewno chcesz dokonać aktualizacji systemu?',
|
||||
{
|
||||
title: 'Potwierdź?',
|
||||
submit: function (e, v, m, f)
|
||||
{
|
||||
if (v == true)
|
||||
{
|
||||
$('.progress-box').removeClass('hidden');
|
||||
$('#confirm').css('pointer-events', 'none');
|
||||
$('#confirmUpdateAll').css('pointer-events', 'none');
|
||||
$('.version_diff').html(version_diff);
|
||||
updateAll(version_current, version_new, version_diff, width, ac_lp);
|
||||
}
|
||||
},
|
||||
buttons: {
|
||||
'tak': true, 'nie': false
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function updateAll(version_current, version_new, version_diff, width, ac_lp)
|
||||
{
|
||||
$.ajax(
|
||||
{
|
||||
url: '/admin/update/updateAll/',
|
||||
type: 'POST',
|
||||
data:
|
||||
{
|
||||
version_current: version_current
|
||||
},
|
||||
success: function (data)
|
||||
{
|
||||
response = jQuery.parseJSON(data);
|
||||
if (response.status == true)
|
||||
{
|
||||
ac_lp = ac_lp + 1;
|
||||
$('.version_curent').html(ac_lp);
|
||||
width = width + ((1 / version_diff) * 100);
|
||||
$('.progress-bar').attr("style", "width:" + width + "%");
|
||||
if (response.version < version_new)
|
||||
{
|
||||
updateAll(response.version, version_new, version_diff, width, ac_lp);
|
||||
} else
|
||||
{
|
||||
$.prompt("Aktualizacja przebiegła pomyślnie.",
|
||||
{
|
||||
title: 'Informacja',
|
||||
close: function (e, v, m, f) {
|
||||
window.location.href = "/admin/update/main_view/";
|
||||
}
|
||||
});
|
||||
}
|
||||
} else
|
||||
{
|
||||
$.prompt("W trakcie aktualizacji systemu wystąpił błąd. Proszę spróbować ponownie.",
|
||||
{
|
||||
title: 'Błąd',
|
||||
close: function (e, v, m, f) {
|
||||
window.location.href = "/admin/update/main_view/";
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
</script>
|
||||
49
admin/templates/users/user-2fa.php
Normal file
49
admin/templates/users/user-2fa.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<div class="admin-form theme-info">
|
||||
<div class="row mb15 table-layout">
|
||||
<div class="col-xs-12">
|
||||
<div class="login-links">
|
||||
<a href="#"><b>cms</b>Pro</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-info br-n heading-border bg-white">
|
||||
<div class="panel-body">
|
||||
<div class="section-divider mb40">
|
||||
<span>Logowanie</span>
|
||||
</div>
|
||||
<? if ($alert = \S::get_session('alert')):
|
||||
\S::alert(false);
|
||||
?>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="alert alert-danger alert-dismissable">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
<i class="icon fa fa-ban pr10"></i><?= $alert; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
endif; ?>
|
||||
<form method="POST" action="/admin/" class="form-horizontal" rol="form">
|
||||
<input type="hidden" name="s-action" value="user-2fa-verify">
|
||||
<div class="form-group">
|
||||
<label class="col col-sm-6 control-label" for="login">Kod z e-maila:</label>
|
||||
<div class="col col-sm-6">
|
||||
<div class="input-group">
|
||||
<input type="text" name="twofa" id="twofa" class="form-control" inputmode="numeric" pattern="\d{6}" maxlength="6" autocomplete="one-time-code" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col col-sm-12">
|
||||
<button class="btn btn-primary btn-block">Potwierdź</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<form method="POST" action="/admin/" style="margin-top:10px">
|
||||
<input type="hidden" name="s-action" value="user-2fa-resend">
|
||||
<button class="btn btn-link btn-sm">Wyślij kod ponownie</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
344
admin/templates/users/user-edit.php
Normal file
344
admin/templates/users/user-edit.php
Normal file
@@ -0,0 +1,344 @@
|
||||
<?php
|
||||
global $gdb, $config, $db;
|
||||
ob_start();
|
||||
$privileges = $this->privileges;
|
||||
?>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Uprawnienia użytkownika:</label>
|
||||
<div class="col-lg-9">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="page_administration" id="page_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'page_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="page_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Strony</label>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline ps">
|
||||
|
||||
<input type="checkbox" name="privileges" value="article_administration" id="article_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'article_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="article_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Artykuły</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="scontainers_administration" id="scontainers_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'scontainers_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="scontainers_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Zawartość statyczna</label>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="fileManager_administration" id="fileManager_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'fileManager_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="fileManager_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Menadżer plików</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="baners_administration" id="baners_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'baners_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="baners_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Banery</label>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="emails_administration" id="emails_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'emails_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="emails_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Skrzynka pocztowa</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="newsletter_administration" id="newsletter_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'newsletter_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="newsletter_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Newsletter</label>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="users_administration" id="users_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'users_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="users_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Użytkownicy</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="language_administration" id="language_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'language_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="language_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Języki</label>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="settings_administration" id="settings_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'settings_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="settings_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Ustawienia</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="template_administration" id="template_administration"
|
||||
<?
|
||||
foreach ($privileges as $pri)
|
||||
{
|
||||
if ($pri['name'] == 'template_administration')
|
||||
{
|
||||
echo 'checked=checked';
|
||||
}
|
||||
}
|
||||
?>>
|
||||
<label for="template_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Szablony strony</label>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="backups_administration" id="backups_administration" <? foreach ($privileges as $pri) if ($pri['name'] == 'backups_administration') echo 'checked=checked'; ?>>
|
||||
<label for="backups_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Kopia zapasowa</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="col-md-2 pt5">
|
||||
<div class="switch switch-primary round switch-inline">
|
||||
<input type="checkbox" name="privileges" value="seo_administration" id="seo_administration" <? foreach ($privileges as $pri) if ($pri['name'] == 'seo_administration') echo 'checked=checked'; ?>>
|
||||
<label for="seo_administration"></label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-md-10 control-label text-left ps">Dodatkowe ustawienia SEO</label>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?
|
||||
$this->user['id'] ? $password_param = 'optional' : $password_param = 'require';
|
||||
$out = ob_get_clean();
|
||||
|
||||
$grid = new \gridEdit;
|
||||
$grid->gdb_opt = $gdb;
|
||||
$grid->include_plugins = true;
|
||||
$grid->title = 'Zapisz użytkownika';
|
||||
$grid->fields = [
|
||||
[
|
||||
'db' => 'id',
|
||||
'type' => 'hidden',
|
||||
'value' => $this->user['id']
|
||||
], [
|
||||
'db' => 'admin',
|
||||
'type' => 'hidden',
|
||||
'value' => '1'
|
||||
], [
|
||||
'name' => 'Login',
|
||||
'db' => 'login',
|
||||
'type' => 'text',
|
||||
'value' => $this->user['login'],
|
||||
'params' => ['class' => 'require', 'function' => 'check_login']
|
||||
], [
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'type' => 'input_switch',
|
||||
'checked' => $this->user['status'] ? true : false
|
||||
], [
|
||||
'db' => 'twofa_enabled',
|
||||
'name' => 'Dwustopniowe uwierzytelnianie (2FA)',
|
||||
'type' => 'input_switch',
|
||||
'checked' => $this -> user['twofa_enabled'] ? true : false,
|
||||
], [
|
||||
'db' => 'twofa_email',
|
||||
'name' => 'E-mail do 2FA',
|
||||
'type' => 'text',
|
||||
'value' => $this -> user['twofa_email'],
|
||||
], [
|
||||
'name' => 'Aktywny do',
|
||||
'db' => 'active_to',
|
||||
'type' => 'text',
|
||||
'id' => 'active_to',
|
||||
'value' => $this->user['active_to'] == '0000-00-00' ? '' : $this->user['active_to']
|
||||
],
|
||||
[
|
||||
'name' => 'Hasło',
|
||||
'db' => 'password',
|
||||
'type' => 'password',
|
||||
'params' => ['class' => $password_param, 'min' => 5]
|
||||
],
|
||||
[
|
||||
'name' => 'Hasło - powtórz',
|
||||
'db' => 'password_re',
|
||||
'type' => 'password',
|
||||
'params' => ['class' => $password_param, 'min' => 5, 'equal' => 'password', 'error_txt' => 'Podane hasła są różne']
|
||||
]
|
||||
];
|
||||
$grid->actions = [
|
||||
'save' => ['url' => '/admin/users/user_save/', 'back_url' => '/admin/users/view_list/'],
|
||||
'cancel' => ['url' => '/admin/users/view_list/']
|
||||
];
|
||||
$grid->external_code = $out;
|
||||
$grid->persist_edit = true;
|
||||
echo $grid->draw();
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
disable_menu();
|
||||
});
|
||||
|
||||
function check_login() {
|
||||
var response = null;
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
cache: false,
|
||||
async: false,
|
||||
url: '/admin/ajax.php',
|
||||
data: {
|
||||
a: 'check_login',
|
||||
login: $.trim($('#login').val()),
|
||||
user_id: <?= (int) $this->user['id']; ?>
|
||||
},
|
||||
success: function(data) {
|
||||
response = $.parseJSON(data);
|
||||
}
|
||||
});
|
||||
return response;
|
||||
};
|
||||
$(function() {
|
||||
$('#active_to').addClass('date');
|
||||
|
||||
$('input[type="text"].date').datetimepicker({
|
||||
format: "YYYY-MM-DD",
|
||||
pickTime: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
47
admin/templates/users/users-list.php
Normal file
47
admin/templates/users/users-list.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
global $gdb;
|
||||
|
||||
$grid = new \grid( 'pp_users' );
|
||||
$grid -> gdb_opt = $gdb;
|
||||
$grid -> order = [ 'column' => 'login', 'type' => 'ASC' ];
|
||||
$grid -> where = [ 'id[!]' => 1 ];
|
||||
$grid -> search = [
|
||||
[ 'name' => 'Login', 'db' => 'login', 'type' => 'text' ],
|
||||
[ 'name' => 'Aktywny', 'db' => 'status', 'type' => 'select', 'replace' => [ 'array' => [ 0 => 'nie', 1 => 'tak' ] ] ]
|
||||
];
|
||||
$grid -> columns_view = [
|
||||
[
|
||||
'name' => 'Lp.',
|
||||
'th' => [ 'class' => 'g-lp' ],
|
||||
'td' => [ 'class' => 'g-center' ],
|
||||
'autoincrement' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Aktywny',
|
||||
'db' => 'status',
|
||||
'replace' => [ 'array' => [ 0 => '<span style="color: #FF0000;">nie</span>', 1 => 'tak' ] ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 150px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Login',
|
||||
'db' => 'login',
|
||||
'sort' => true
|
||||
],
|
||||
[
|
||||
'name' => 'Edytuj',
|
||||
'action' => [ 'type' => 'edit', 'url' => '/admin/users/user_edit/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 50px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
],
|
||||
[
|
||||
'name' => 'Usuń',
|
||||
'action' => [ 'type' => 'delete', 'url' => '/admin/users/user_delete/id=[id]' ],
|
||||
'th' => [ 'class' => 'g-center', 'style' => 'width: 50px;' ],
|
||||
'td' => [ 'class' => 'g-center' ]
|
||||
]
|
||||
];
|
||||
$grid -> buttons = [
|
||||
[ 'label' => 'Dodaj użytkownika', 'url' => '/admin/users/user_edit/', 'icon' => 'fa-plus-circle', 'class' => 'btn-success' ]
|
||||
];
|
||||
echo $grid -> draw();
|
||||
Reference in New Issue
Block a user