Add author management functionality and update routing rules
- Updated .htaccess rules to allow trailing slashes for specific routes. - Introduced a new .gitignore file to exclude the cache directory. - Created project configuration file for Serena with language and tool settings. - Implemented Authors class for managing author data, including methods for saving, deleting, and editing authors. - Added factory class for Authors to handle database interactions related to authors. - Developed Article class to manage article data and interactions, including fetching articles and updating views. - Created Page class with a placeholder method for sorting pages. - Added front factory class for fetching author details with caching.
This commit is contained in:
@@ -2,6 +2,17 @@
|
||||
namespace admin\controls;
|
||||
class Articles
|
||||
{
|
||||
//autorzy artykułów
|
||||
static public function articles_authors()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
return \Tpl::view( 'articles/articles-authors' );
|
||||
}
|
||||
|
||||
public static function duplicate_article()
|
||||
{
|
||||
global $user;
|
||||
@@ -16,6 +27,22 @@ class Articles
|
||||
exit;
|
||||
}
|
||||
|
||||
static public function files_order_save()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
{
|
||||
echo json_encode( [ 'status' => 'error', 'msg' => 'Nie masz uprawnień' ] );
|
||||
exit;
|
||||
}
|
||||
|
||||
if ( \admin\factory\Articles::files_order_save( \S::get( 'article_id' ), \S::get( 'order' ) ) )
|
||||
echo json_encode( [ 'status' => 'ok', 'msg' => 'Artykuł został zapisany.' ] );
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
public static function gallery_order_save()
|
||||
{
|
||||
global $user;
|
||||
@@ -32,6 +59,18 @@ class Articles
|
||||
exit;
|
||||
}
|
||||
|
||||
static public function article_url_browser()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
return \Tpl::view( 'articles/articles-browse-list', [
|
||||
'modal' => true
|
||||
] );
|
||||
}
|
||||
|
||||
public static function browse_list()
|
||||
{
|
||||
global $user;
|
||||
@@ -75,10 +114,10 @@ class Articles
|
||||
$values['params'] = $params;
|
||||
|
||||
if ( $id = \admin\factory\Articles::article_save(
|
||||
$values['id'], $values['title'], $values['entry'], $values['text'], $values['status'], $values['show_title'], $values['show_date_add'], $values['date_add'],
|
||||
$values['show_date_modify'], $values['seo_link'], $values['meta_title'], $values['meta_description'], $values['meta_keywords'], $values['layout_id'],
|
||||
$values['id'], $values['title'], $values['main_image'], $values['entry'], $values['text'], $values['table_of_contents'], $values['status'], $values['show_title'], $values['show_table_of_contents'], $values['show_date_add'], $values['date_add'],
|
||||
$values['show_date_modify'], $values['date_modify'], $values['seo_link'], $values['meta_title'], $values['meta_description'], $values['meta_keywords'], $values['layout_id'],
|
||||
$values['pages'], $values['noindex'], $values['repeat_entry'], $values['copy_from'], $values['social_icons'], $values['event_date'], $values['hidden-tags'], $values['block_direct_access'],
|
||||
$values['priority'], $values['password'], $values['pixieset'], $params
|
||||
$values['priority'], $values['password'], $values['pixieset'], $values['id_author'], $params
|
||||
) )
|
||||
$response = [ 'status' => 'ok', 'msg' => 'Artykuł został zapisany.', 'id' => $id ];
|
||||
|
||||
@@ -92,22 +131,23 @@ class Articles
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration',
|
||||
$user['id'] ) )
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
\admin\factory\Articles::delete_nonassigned_images();
|
||||
\admin\factory\Articles::delete_nonassigned_files();
|
||||
|
||||
return \admin\view\Articles::article_edit( [
|
||||
'article' => \admin\factory\Articles::article_details( \S::get( 'id' ) ),
|
||||
'menus' => \admin\factory\Pages::menus_list(),
|
||||
'languages' => \admin\factory\Languages::languages_list(),
|
||||
'layouts' => \admin\factory\Layouts::layouts_list(),
|
||||
'additional_params_lon' => \admin\factory\Articles::additional_params( 1 ),
|
||||
'additional_params_loff' => \admin\factory\Articles::additional_params( 0 ),
|
||||
'settings' => \admin\factory\Settings::settings_details()
|
||||
] );
|
||||
'article' => \admin\factory\Articles::article_details( \S::get( 'id' ) ),
|
||||
'menus' => \admin\factory\Pages::menus_list(),
|
||||
'languages' => \admin\factory\Languages::languages_list(),
|
||||
'layouts' => \admin\factory\Layouts::layouts_list(),
|
||||
'additional_params_lon' => \admin\factory\Articles::additional_params( 1 ),
|
||||
'additional_params_loff' => \admin\factory\Articles::additional_params( 0 ),
|
||||
'settings' => \admin\factory\Settings::settings_details(),
|
||||
'authors' => \admin\factory\Authors::get_simple_list(),
|
||||
'user' => $user
|
||||
] );
|
||||
}
|
||||
|
||||
public static function view_list()
|
||||
@@ -119,6 +159,5 @@ class Articles
|
||||
|
||||
return \admin\view\Articles::articles_list();
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
65
autoload/admin/controls/class.Authors.php
Normal file
65
autoload/admin/controls/class.Authors.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?
|
||||
namespace admin\controls;
|
||||
class Authors
|
||||
{
|
||||
// usunięcie autora
|
||||
static public function delete()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
$response = [ 'status' => 'error', 'msg' => 'Podczas usuwania autora wystąpił błąd. Proszę spróbować ponownie.' ];
|
||||
$values = \S::json_to_array( \S::get( 'values' ) );
|
||||
|
||||
if ( \admin\factory\Authors::delete_author( \S::get( 'id' ) ) )
|
||||
\S::alert( 'Autor został usunięty.' );
|
||||
|
||||
header( 'Location: /admin/authors/view_list/' );
|
||||
exit;
|
||||
}
|
||||
|
||||
// zapis autora
|
||||
static public function save()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
$response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania autora wystąpił błąd. Proszę spróbować ponownie.' ];
|
||||
$values = \S::json_to_array( \S::get( 'values' ) );
|
||||
|
||||
if ( $author_id = \admin\factory\Authors::save_author( $values['id'], $values['author'], $values['image'], $values['description'] ) )
|
||||
$response = [ 'status' => 'ok', 'msg' => 'Autor został zapisany.', 'id' => $author_id ];
|
||||
|
||||
echo json_encode( $response );
|
||||
exit;
|
||||
}
|
||||
|
||||
// edycja autora
|
||||
static public function edit()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
return \Tpl::view( 'authors/author-edit', [
|
||||
'author' => \admin\factory\Authors::get_single_author( \S::get( 'id' ) ),
|
||||
'languages' => \admin\factory\Languages::languages_list()
|
||||
] );
|
||||
}
|
||||
|
||||
//autorzy artykułów
|
||||
static public function view_list()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'article_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
return \Tpl::view( 'authors/view-list' );
|
||||
}
|
||||
}
|
||||
@@ -4,21 +4,20 @@ namespace admin\controls;
|
||||
|
||||
class Pages
|
||||
{
|
||||
public static function pages_url_browser()
|
||||
static public function pages_url_browser()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'page_administration', $user['id'] ) )
|
||||
return \S::alert( 'Nie masz uprawnień' );
|
||||
|
||||
echo \admin\view\Pages::browse_list(
|
||||
\admin\factory\Pages::menus_list(),
|
||||
\S::get( 'modal' )
|
||||
);
|
||||
exit;
|
||||
|
||||
return \Tpl::view( 'pages/pages-browse-list', [
|
||||
'menus' => \admin\factory\Pages::menus_list(),
|
||||
'modal' => true
|
||||
] );
|
||||
}
|
||||
|
||||
public static function browse_list()
|
||||
static public function browse_list()
|
||||
{
|
||||
global $user;
|
||||
|
||||
|
||||
@@ -2,40 +2,73 @@
|
||||
namespace admin\controls;
|
||||
|
||||
class Settings
|
||||
{
|
||||
{
|
||||
public static function settings_save()
|
||||
{
|
||||
global $user;
|
||||
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'settings_administration', $user['id'] ) )
|
||||
return \S::alert('Nie masz uprawnień');
|
||||
|
||||
|
||||
$settings = \admin\factory\Settings::settings_details();
|
||||
$values = \S::json_to_array( \S::get( 'values' ) );
|
||||
|
||||
\admin\factory\Settings::settings_save(
|
||||
$values['firm_name'], $values['firm_adress'], $values['additional_info'], $values['contact_form'], $values['contact_email'], $values['email_host'],
|
||||
$values['email_port'], $values['email_login'], $values['email_password'], $values['google_maps'], $values['facebook_link'], $values['statistic_code'], $values['htaccess'],
|
||||
$values['robots'], $settings['newsletter_header'], $settings['newsletter_footer_1'], $settings['newsletter_footer_2'], $values['google_map_key'], $values['google_search_console'], $values['update'], $values['devel'],
|
||||
$values['news_limit'], $values['visit_counter'], $values['calendar'], $values['tags'], $values['ssl'], $values['mysql_debug'], $values['htaccess_cache'], $settings['visits'],
|
||||
$values['links_structure'], $values['link_version'], $values['widget_phone'], $values['update_key'], $values['newsletter_cron']
|
||||
\admin\factory\Settings::settings_save(
|
||||
$values['firm_name'],
|
||||
$values['firm_adress'],
|
||||
$values['additional_info'],
|
||||
$values['contact_form'] == 'on' ? 1 : 0,
|
||||
$values['contact_email'],
|
||||
$values['email_host'],
|
||||
$values['email_port'],
|
||||
$values['email_login'],
|
||||
$values['email_password'],
|
||||
$values['google_maps'],
|
||||
$values['facebook_link'],
|
||||
$values['statistic_code'],
|
||||
$values['htaccess'],
|
||||
$values['robots'],
|
||||
$settings['newsletter_header'],
|
||||
$settings['newsletter_footer_1'],
|
||||
$settings['newsletter_footer_2'],
|
||||
$values['google_map_key'],
|
||||
$values['google_search_console'],
|
||||
$values['update'],
|
||||
$values['devel'],
|
||||
$values['news_limit'],
|
||||
$values['visit_counter'],
|
||||
$values['calendar'],
|
||||
$values['tags'],
|
||||
$values['ssl'],
|
||||
$values['mysql_debug'],
|
||||
$values['htaccess_cache'],
|
||||
$settings['visits'],
|
||||
$values['links_structure'],
|
||||
$values['link_version'],
|
||||
$values['widget_phone'],
|
||||
$values['update_key']
|
||||
);
|
||||
|
||||
|
||||
\admin\factory\Settings::settings_update( 'image_px', $values['image_px'] );
|
||||
|
||||
\admin\factory\Settings::settings_update( 'newsletter_cron', $values['newsletter_cron'] );
|
||||
\admin\factory\Settings::settings_update( 'lazy_loading', $values['lazy_loading'] == 'on' ? 1 : 0 );
|
||||
\admin\factory\Settings::settings_update( 'generate_webp', $values['generate_webp'] == 'on' ? 1 : 0 );
|
||||
\admin\factory\Settings::settings_update( 'contact_form_captcha', $values['contact_form_captcha'] == 'on' ? 1 : 0 );
|
||||
\admin\factory\Settings::settings_update( 'url_version', $values['url_version'] );
|
||||
|
||||
\S::alert( 'Ustawienia zostały zapisane.' );
|
||||
|
||||
echo json_encode( [ 'status' => 'ok', 'msg' => 'Ustawienia zostały zapisane.' ] );
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
public static function view()
|
||||
{
|
||||
global $user;
|
||||
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'settings_administration', $user['id']))
|
||||
return \S::alert('Nie masz uprawnień');
|
||||
|
||||
|
||||
return \admin\view\Settings::view(
|
||||
\admin\factory\Settings::settings_details()
|
||||
);
|
||||
|
||||
@@ -1,59 +1,65 @@
|
||||
<?php
|
||||
namespace admin\controls;
|
||||
|
||||
class Users
|
||||
{
|
||||
class Users
|
||||
{
|
||||
public static function user_delete()
|
||||
{
|
||||
global $user;
|
||||
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'users_administration', $user['id'] ) )
|
||||
return \S::alert('Nie masz uprawnień');
|
||||
|
||||
|
||||
if ( \admin\factory\Users::user_delete( \S::get( 'id' ) ) )
|
||||
\S::alert( 'Użytkownik został usunięty.' );
|
||||
|
||||
|
||||
header( 'Location: /admin/users/view_list/' );
|
||||
exit;
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
public static function user_save()
|
||||
{
|
||||
global $user;
|
||||
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'users_administration', $user['id'] ) )
|
||||
return \S::alert('Nie masz uprawnień');
|
||||
|
||||
|
||||
$values = \S::json_to_array( \S::get( 'values' ) );
|
||||
$response = \admin\factory\Users::user_save(
|
||||
$values['id'], $values['login'], $values['status'], $values['active_to'], $values['password'], $values['password_re'], $values['admin'], $values['privileges']
|
||||
$response = \admin\factory\Users::user_save(
|
||||
$values['id'], $values['login'], $values['status'], $values['active_to'], $values['password'], $values['password_re'], $values['admin'], $values['privileges'], $values['twofa_enabled'], $values['twofa_email']
|
||||
);
|
||||
echo json_encode( $response );
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
public static function user_edit()
|
||||
{
|
||||
global $user;
|
||||
|
||||
|
||||
if ( !\admin\factory\Users::check_privileges( 'users_administration', $user['id'] ) )
|
||||
return \S::alert('Nie masz uprawnień');
|
||||
|
||||
return \admin\view\Users::user_edit(
|
||||
\admin\factory\Users::user_details(
|
||||
|
||||
return \admin\view\Users::user_edit(
|
||||
\admin\factory\Users::user_details(
|
||||
\S::get( 'id' ) ),
|
||||
\admin\factory\Users::user_privileges(
|
||||
\admin\factory\Users::user_privileges(
|
||||
\S::get( 'id' ) )
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public static function view_list()
|
||||
{
|
||||
global $user;
|
||||
if( !\admin\factory\Users::check_privileges( 'users_administration', $user['id']))
|
||||
return \S::alert('Nie masz uprawnień');
|
||||
|
||||
|
||||
return \admin\view\Users::users_list();
|
||||
}
|
||||
|
||||
static public function twofa() {
|
||||
return \Tpl::view( 'site/unlogged', [
|
||||
'content' => \Tpl::view( 'users/user-2fa' )
|
||||
] );
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user