/home/techb158/immovalet.com/platform/plugins/blog/src/Providers
Edit: /home/techb158/immovalet.com/platform/plugins/blog/src/Providers/HookServiceProvider.php (8847B)
registerLink(trans('plugins/blog::posts.post'), route('posts.create'), 'add-new');
});
}
if (function_exists('add_shortcode')) {
add_shortcode('blog-posts', trans('plugins/blog::base.short_code_name'),
trans('plugins/blog::base.short_code_description'), [$this, 'renderBlogPosts']);
shortcode()->setAdminConfig('blog-posts',
view('plugins/blog::partials.posts-short-code-admin-config')->render());
}
if (function_exists('theme_option')) {
add_action(RENDERING_THEME_OPTIONS_PAGE, [$this, 'addThemeOptions'], 35);
}
if (defined('LANGUAGE_MODULE_SCREEN_NAME')) {
add_action(BASE_ACTION_META_BOXES, [$this, 'addLanguageChooser'], 55, 2);
}
}
public function addThemeOptions()
{
$pages = $this->app->make(PageInterface::class)->pluck('name', 'id', ['status' => BaseStatusEnum::PUBLISHED]);
theme_option()
->setSection([
'title' => 'Blog',
'desc' => 'Theme options for Blog',
'id' => 'opt-text-subsection-blog',
'subsection' => true,
'icon' => 'fa fa-edit',
'fields' => [
[
'id' => 'blog_page_id',
'type' => 'select',
'label' => trans('plugins/blog::base.blog_page_id'),
'attributes' => [
'name' => 'blog_page_id',
'list' => ['' => trans('plugins/blog::base.select')] + $pages,
'value' => '',
'options' => [
'class' => 'form-control',
],
],
],
[
'id' => 'number_of_posts_in_a_category',
'type' => 'number',
'label' => trans('plugins/blog::base.number_posts_per_page_in_category'),
'attributes' => [
'name' => 'number_of_posts_in_a_category',
'value' => 12,
'options' => [
'class' => 'form-control',
],
],
],
[
'id' => 'number_of_posts_in_a_tag',
'type' => 'number',
'label' => trans('plugins/blog::base.number_posts_per_page_in_tag'),
'attributes' => [
'name' => 'number_of_posts_in_a_tag',
'value' => 12,
'options' => [
'class' => 'form-control',
],
],
],
],
]);
}
/**
* Register sidebar options in menu
* @throws Throwable
*/
public function registerMenuOptions()
{
if (Auth::user()->hasPermission('categories.index')) {
Menu::registerMenuOptions(Category::class, trans('plugins/blog::categories.menu'));
}
if (Auth::user()->hasPermission('tags.index')) {
Menu::registerMenuOptions(Tag::class, trans('plugins/blog::tags.menu'));
}
}
/**
* @param array $widgets
* @param Collection $widgetSettings
* @return array
* @throws Throwable
*/
public function registerDashboardWidgets($widgets, $widgetSettings)
{
if (!Auth::user()->hasPermission('posts.index')) {
return $widgets;
}
Assets::addScriptsDirectly(['/vendor/core/plugins/blog/js/blog.js']);
return (new DashboardWidgetInstance)
->setPermission('posts.index')
->setKey('widget_posts_recent')
->setTitle(trans('plugins/blog::posts.widget_posts_recent'))
->setIcon('fas fa-edit')
->setColor('#f3c200')
->setRoute(route('posts.widget.recent-posts'))
->setBodyClass('scroll-table')
->setColumn('col-md-6 col-sm-6')
->init($widgets, $widgetSettings);
}
/**
* @param Eloquent $slug
* @return array|Eloquent
* @throws BindingResolutionException
*/
public function handleSingleView($slug)
{
return (new BlogService)->handleFrontRoutes($slug);
}
/**
* @param stdClass $shortcode
* @return array|string
* @throws Throwable
*/
public function renderBlogPosts($shortcode)
{
$posts = get_all_posts(true, $shortcode->paginate, ['slugable', 'categories', 'categories.slugable', 'author']);
$view = 'plugins/blog::themes.templates.posts';
$themeView = Theme::getThemeNamespace() . '::views.templates.posts';
if (view()->exists($themeView)) {
$view = $themeView;
}
return view($view, compact('posts'))->render();
}
/**
* @param string|null $content
* @param Page $page
* @return array|string|null
* @throws Throwable
*/
public function renderBlogPage(?string $content, Page $page)
{
if ($page->id == theme_option('blog_page_id', setting('blog_page_id'))) {
$view = 'plugins/blog::themes.loop';
if (view()->exists(Theme::getThemeNamespace() . '::views.loop')) {
$view = Theme::getThemeNamespace() . '::views.loop';
}
return view($view, [
'posts' => get_all_posts(
true,
theme_option('number_of_posts_in_a_category', 12),
['slugable', 'categories', 'categories.slugable', 'author']
),
])
->render();
}
return $content;
}
/**
* @param string|null $name
* @param Page $page
* @return string|null
*/
public function addAdditionNameToPageName(?string $name, Page $page)
{
if ($page->id == theme_option('blog_page_id', setting('blog_page_id'))) {
$subTitle = Html::tag('span', trans('plugins/blog::base.blog_page'), ['class' => 'additional-page-name'])
->toHtml();
if (Str::contains($name, ' —')) {
return $name . ', ' . $subTitle;
}
return $name . ' —' . $subTitle;
}
return $name;
}
/**
* @param BaseModel $model
* @param string $priority
* @return string
* @throws Throwable
*/
public function addLanguageChooser($priority, $model)
{
if ($priority == 'head' && $model instanceof Category) {
$route = 'categories.index';
if ($route) {
echo view('plugins/language::partials.admin-list-language-chooser', compact('route'))->render();
}
}
}
}