diff --git a/app/Controllers/MainController.php b/app/Controllers/MainController.php index c45e1cd..2061d3c 100644 --- a/app/Controllers/MainController.php +++ b/app/Controllers/MainController.php @@ -8,6 +8,7 @@ use \App\Core\Page; class MainController extends NGController { + private array $params = []; public function t() { $this->render('t'); @@ -53,9 +54,22 @@ class MainController extends NGController { Page::set('Feed'); } - public static function fav() + public function fav() { - Page::set('Fav'); + $photos = DB::query('SELECT * FROM photos_favorite WHERE user_id=:uid ORDER BY id DESC LIMIT 100', array(':uid'=>Auth::userid())); + $preparedData = []; + + foreach ($photos as $p) { + echo $p['posted_at']; + $preparedData[] = [ + 'photo' => new \App\Models\Photo($p['photo_id']), + 'user' => new \App\Models\User($p['user_id']), + 'views' => DB::query('SELECT COUNT(*) FROM photos_views WHERE photo_id=:id', array(':id'=>$p['id']))[0]['COUNT(*)'], + 'date' => \App\Services\Date::zmdate($p['posted_at']) + ]; + } + $this->params['photos'] = $preparedData; + $this->render('System/Fav', $this->params); } public static function gallery() { @@ -69,9 +83,9 @@ class MainController extends NGController { Page::set('Errors/EmailVerify'); } - public static function comments() + public function comments() { - Page::set('Comments/Index'); + $this->render('Comments/Index'); } public static function tour() { diff --git a/app/Models/Photo.php b/app/Models/Photo.php index 7c6b90f..e7d1daa 100644 --- a/app/Models/Photo.php +++ b/app/Models/Photo.php @@ -5,7 +5,7 @@ use \App\Services\DB; class Photo { public $photoid; - private $photo; + public $photo; function __construct($photo_id) { $this->photoid = $photo_id; $this->photo = DB::query("SELECT * FROM photos WHERE id=:id", array(':id'=>$this->photoid))[0]; diff --git a/app/Models/User.php b/app/Models/User.php index e3bd6e4..0a4aba9 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -5,7 +5,7 @@ use \App\Services\DB; class User { public $userid; - private $user; + public $user; function __construct($user_id) { $this->userid = $user_id; $this->user = DB::query("SELECT * FROM users WHERE id=:id", array(':id'=>$this->userid))[0]; diff --git a/static/js/photo.js b/static/js/photo.js index fd93de2..819a681 100644 --- a/static/js/photo.js +++ b/static/js/photo.js @@ -209,8 +209,8 @@ $(document).ready(function() $('#favLink').click(function() { const url = window.location.pathname; - const segments = url.split('/'); - const id = segments[segments.length - 1]; + const segments = url.split('/'); + const id = segments[2]; var faved = parseInt($(this).attr('faved')); $(this).html(faved ? 'Добавить фото в Избранное' : 'Удалить фото из Избранного').attr('faved', faved ? 0 : 1); if (!faved) $('.toggle').attr('class', 'toggle on'); diff --git a/views/pages/Comments/Index.php b/views/pages/Comments/Index.latte similarity index 59% rename from views/pages/Comments/Index.php rename to views/pages/Comments/Index.latte index 43c54b3..2e402d2 100644 --- a/views/pages/Comments/Index.php +++ b/views/pages/Comments/Index.latte @@ -1,29 +1,6 @@ - - - - - - - - - - - - -
- - - - - - -
+{layout '..\@layout.latte'} +{block content}

Лента комментариев

- -
- i('admin') === 1) { - $admintype = ' · Администратор сервера'; - } else if ($user->i('admin') === 2) { - $admintype = ' · Фотомодератор'; - } - if ((int)Vote::countcommrates($c['id'], -1) >= 1) { - $commclass = 'pro'; - $symb = '+'; - } else if ((int)Vote::countcommrates($c['id'], -1) < 0) { - $commclass = 'con'; - $symb = ''; - } else if ((int)Vote::countcommrates($c['id'], -1) === 0) { - $commclass = ''; - } - echo '
-
+ {var $comments = \App\Services\DB::query('SELECT * FROM photos_comments ORDER BY id DESC LIMIT 30')} + {foreach $comments as $c} + {var $user = new \App\Models\User($c[user_id])} + {var $content = json_decode($c[content], true)} + {var $photo = new \App\Models\Photo($c[photo_id])} + {if $user->i(admin) === 1} + {var $admintype = ' · Администратор сервера'} + {else} + {if $user->i(admin) === 2} + {var $admintype = ' · Фотомодератор'} + {/if} + {/if} + {if (int) \App\Models\Vote::countcommrates($c[id], -1) >= 1} + {var $commclass = pro} + {var $symb = '+'} + {else} + {if (int) \App\Models\Vote::countcommrates($c[id], -1) < 0} + {var $commclass = con} + {var $symb = ''} + {else} + {if (int) \App\Models\Vote::countcommrates($c[id], -1) === 0} + {var $commclass = ''} + {/if} + {/if} + {/if} +
+
- Ссылка + Ссылка
- '.$user->i('username').' · '.Date::zmdate($c['posted_at']).' -
Фото: '.Photo::fetchAll($c['user_id']).''.$admintype.'
-
'.$c['body'].'
+ {$user->i(username)} · {\App\Services\Date::zmdate($c[posted_at])} +
Фото: {\App\Models\Photo::fetchAll($c[user_id])}{$admintype}
+
{$c[body]}
- -
+
+ -
' . $symb . Vote::countcommrates($c['id'], -1) . '
+
{$symb}{\App\Models\Vote::countcommrates($c[id], -1)}
-
+' . Vote::countcommrates($c['id'], 1) . ' / ' . Vote::countcommrates($c['id'], 0) . '
+
+{\App\Models\Vote::countcommrates($c[id], 1)} / {\App\Models\Vote::countcommrates($c[id], 0)}
-
-
'; - } - ?> - - - +
+ {/foreach}
- - - - \ No newline at end of file + {/block} \ No newline at end of file diff --git a/views/pages/Errors/DB_42000.php b/views/pages/Errors/DB_42000.php deleted file mode 100644 index 62751b3..0000000 --- a/views/pages/Errors/DB_42000.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/views/pages/Errors/MethodNotAllowed.php b/views/pages/Errors/MethodNotAllowed.php deleted file mode 100644 index c2eb57f..0000000 --- a/views/pages/Errors/MethodNotAllowed.php +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -Server Error - - - -
-
-

Server Error

- -

Method not allowed for this page. Sorry!

- -
-
\ No newline at end of file diff --git a/views/pages/Errors/PublicProblems.latte b/views/pages/Errors/PublicProblems.latte index c3850e7..d19d940 100644 --- a/views/pages/Errors/PublicProblems.latte +++ b/views/pages/Errors/PublicProblems.latte @@ -1,5 +1,4 @@ {layout '..\@layout.latte'} -{var $photo = new \App\Models\Photo($photo_id)} {block content}

Произошла ошибка

diff --git a/views/pages/Fav.php b/views/pages/Fav.php deleted file mode 100644 index 95950c6..0000000 --- a/views/pages/Fav.php +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -
-

Избранные фотографии

- - - Auth::userid())); - foreach ($photos as $p) { - $photo = new Photo($p['photo_id']); - $user = new User($p['user_id']); - echo '
- - - - - - -
598 КБ -
-
'.DB::query('SELECT COUNT(*) FROM photos_views WHERE photo_id=:id', array(':id'=>$photo->i('id')))[0]['COUNT(*)'].'
-
-
-

'.htmlspecialchars($photo->i('postbody')).'

-

'.htmlspecialchars($photo->i('place')).'

-

'.Date::zmdate($photo->i('posted_at')).'
Автор: '.$user->i('username').'

-
-

'; - } - ?> - - - -
-
- - - - \ No newline at end of file diff --git a/views/pages/System/Fav.latte b/views/pages/System/Fav.latte new file mode 100644 index 0000000..d37c1d9 --- /dev/null +++ b/views/pages/System/Fav.latte @@ -0,0 +1,32 @@ +{layout '..\@layout.latte'} + +{block content} +

Избранные фотографии

+ {dump $photos} + {foreach $photos as $p} + {dump $p['photo']->photo['photourl']} +
+ + + + + +
+ + 598 КБ +
+
{$p['photo']->photo['views']}
+
+
+
+

{$p['photo']->photo['postbody']|noescape}

+

{$p['photo']->photo['place']|noescape}

+

+ {$p->date}
+ Автор: {$p['user']->user['username']} +

+
+
+
+ {/foreach} +{/block} \ No newline at end of file diff --git a/views/pages/FavAuthors.php b/views/pages/System/FavAuthors.php similarity index 100% rename from views/pages/FavAuthors.php rename to views/pages/System/FavAuthors.php diff --git a/views/pages/Feed.php b/views/pages/System/Feed.php similarity index 100% rename from views/pages/Feed.php rename to views/pages/System/Feed.php diff --git a/views/pages/Gallery.php b/views/pages/System/Gallery.php similarity index 100% rename from views/pages/Gallery.php rename to views/pages/System/Gallery.php diff --git a/views/pages/Live.php b/views/pages/System/Live.php similarity index 100% rename from views/pages/Live.php rename to views/pages/System/Live.php diff --git a/views/pages/Page.php b/views/pages/System/Page.php similarity index 100% rename from views/pages/Page.php rename to views/pages/System/Page.php diff --git a/views/pages/Rules.php b/views/pages/System/Rules/Index.php similarity index 100% rename from views/pages/Rules.php rename to views/pages/System/Rules/Index.php diff --git a/views/pages/PhotoRules.php b/views/pages/System/Rules/Photo.php similarity index 100% rename from views/pages/PhotoRules.php rename to views/pages/System/Rules/Photo.php diff --git a/views/pages/PublicationRules.php b/views/pages/System/Rules/Publication.php similarity index 100% rename from views/pages/PublicationRules.php rename to views/pages/System/Rules/Publication.php diff --git a/views/pages/VideoRules.php b/views/pages/System/Rules/Video.php similarity index 100% rename from views/pages/VideoRules.php rename to views/pages/System/Rules/Video.php diff --git a/views/pages/Top30.latte b/views/pages/System/Top30.latte similarity index 100% rename from views/pages/Top30.latte rename to views/pages/System/Top30.latte diff --git a/views/pages/Tour.php b/views/pages/System/Tour.php similarity index 100% rename from views/pages/Tour.php rename to views/pages/System/Tour.php diff --git a/views/pages/Update.php b/views/pages/System/Update.php similarity index 100% rename from views/pages/Update.php rename to views/pages/System/Update.php diff --git a/views/pages/t.php b/views/pages/t.php deleted file mode 100644 index e69de29..0000000