klisl / laravel-comments by klisl

Package for using comments in Laravel-5
3,390
16
2
Package Data
Maintainer Username: klisl
Maintainer Contact: ksl80@ukr.net (Sergey Klimenchuk)
Package Create Date: 2017-07-13
Package Last Update: 2019-06-16
Language: PHP
License: MIT
Last Refreshed: 2024-12-23 03:00:32
Package Statistics
Total Downloads: 3,390
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 16
Total Watchers: 2
Total Forks: 5
Total Open Issues: 1

laravel-widgets

Laravel 5 License

Пакет для создания блока комментариев в Laravel-5.

Особенности и преимущества данного пакета:

  • Комментарии выводятся в виде древовидной структуры. Дочерние комментарии смещаются вправо от родительских (при ответе на другой комментарий).
  • Форма добавления нового комментария обрабатывается с помощью AJAX (без перезагрузки страницы).
  • При нажатии кнопки ответить, форма вставляется сразу после соответствующего (родительского) комментария.
  • При отправке формы, сразу формируется и выводится новый добавленный комментарий перед формой (можно отключить в настройках).
  • Комментарий может добавить незарегистрированный пользователь. При этом зарегистрированному пользователю можно не заполнять данные про имя автора и электронный адрес.
  • При отправке комментария в всплывающем окне пишется статус отправки и возможные ошибки.

Установка

Установка пакета с помощью Composer.

composer require klisl/laravel-comments

Если версия Laravel ниже чем 5.5 - добавьте в файл config/app.php вашего проекта в конец массива providers :

Klisl\Comments\CommentsServiceProvider::class,

Для версии >=5.5 данный шаг пропустить.

После этого выполните в консоли команду публикации нужных ресурсов:

php artisan vendor:publish --provider="Klisl\Comments\CommentsServiceProvider"

Проверить, возможно изменить настройки пакета в файле config\comments.php.

Выполнить миграции для создания нужных таблиц (консоль):

php artisan migrate

При желании, можно заполнить таблицу комментариев данными для тестирования (консоль):

composer dump-autoload
php artisan db:seed --class=TestCommentsSeeder

Использование

Вывод дерева комментариев вместе с формой осуществляется в шаблоне выводящем отдельный пост (статью/рубрику и тд.) с которым связаны комментарии. Для этого в шаблон нужно вставить секцию:

@section('comments')
	@include('comments.comments_block', ['essence' => $post])
@endsection

где $post содержит объект модели отдельного поста.

На равне с другими секциями, секция 'comments' должна быть подключена в макете, который наследует данный шаблон:

@yield('content')

В макете так же нужно подключить стили и скрипты указанные в примере:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		
		<link rel="stylesheet" type="text/css" media="all" href="{{asset('css')}}/app.css" />
		<link rel="stylesheet" type="text/css" media="all" href="{{asset('comments/css')}}/comments.css" />
		
		
		<script type="text/javascript" src="{{asset('js')}}/app.js" /></script>
		<script type="text/javascript" src="{{asset('comments/js')}}/comment-reply.js" /></script>
		<script type="text/javascript" src="{{asset('comments/js')}}/comment-scripts.js" /></script>

	</head>
	<body>
	
	…
	
	@yield('comments')	
	
	…

	</body>
</html>

Весь код тщательно прокомментирован.

Контроллер, обрабатывающий данные по добавлению комментариев, доступен для редактирования в файле app\Http\Controllers\CommentController.php.

Файл отправляющий запрос с помощью AJAX на сервер и отвечающий за вывод всплывающих окон с уведомлениями - public\comments\js\comment-scripts.js.

Настройка стилей блока комментариев осуществляется в файле public\comments\css\comments.css.

enter image description here

Мой блог: klisl.com