netliva / symfony-commenter
Netliva Symfony Comment Library
Installs: 59
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.1|^8.0
- symfony/framework-bundle: >=5.0
This package is auto-updated.
Last update: 2024-11-21 11:51:45 UTC
README
Projeleriniz içerisinde kullanmak için yorum scriptidir. Jquery, Bootstrap ve Font-awsome'a ihtiyaç duyar.
Kurulum
$ composer require netliva/symfony-commenter
Bundle'ı aktifleştir
config/bundles.php içerisinde
return [ // ... Netliva\CommentBundle\NetlivaCommentBundle::class => ['all' => true], ];
Assetleri Projeye Dahil Edin
Install assets
Aşağıdaki komut ile assets'lerin kurulumunu gerçekleştirin
$ php bin/console assets:install
Bu komut ile; public/bundles/netlivamedialib klasörü içerisinde oluşan js ve css dosyalarını projenize dahil ediniz.
// assets/js/app.js import '../../public/bundles/netlivacomment/comment.css' import '../../public/bundles/netlivacomment/comment'
Kullanıcı Entity Sınıf Ayarları
Kullanıcı sınıfınızın implements
'lerinde AuthorInterface
ekleyin
ve _toString fonksiyonunu ekleyin
namespace App\Entity; // ... use Netliva\CommentBundle\Entity\AuthorInterface; /** * Staff */ class Users implements UserInterface, \Serializable, AuthorInterface { // ... public function __toString () { return $this->getName(); } // ... }
Gerekli ayarları ekleyin;
# config/packages/netliva_commenter.yaml doctrine: orm: resolve_target_entities: Netliva\CommentBundle\Entity\AuthorInterface: App\Entity\Users # Opsiyonel: yorumlara bırakılan ifadeleri özelleştirmek isterseniz aşağıdakileri ekleyin netliva_comment: emotions: like : { emoji: '👍🏼', color: '#8A6749', desc: 'Beğen' } love : { emoji: '❤️', color: '#DD2E44', desc: 'Muhteşem' } haha : { emoji: '😂', color: '#DD9E00', desc: 'Hahaha' } wow : { emoji: '😮', color: '#DD9E00', desc: 'İnanılmaz' } sad : { emoji: '😔', color: '#DD9E00', desc: 'Üzgün' } angry : { emoji: '😡', color: '#DA2F47', desc: 'Kızgın' } # key olarak herhangi bir değer girilebilir
# config/routes/netliva_commenter.yaml netliva_comment_route: resource: "@NetlivaCommentBundle/Controller/" type: annotation prefix: /netliva
Kullanma
Yorum alanı eklemek istediğiniz yere aşağıdaki örneklerde olduğu gibi twig fonksiyonunu ekleyin.
commentbox("kanal_tanimi") şeklinde kullanılır. Kanal yorumları gruplandırmaya yarar.
// Belli bir sayfanın altında yorumlar {{ commentbox("page_"~page.id, options) }} // Ürün yorumları {{ commentbox("product_"~product.id, options) }} // Chat alanları {{ commentbox("room_1", options) }}
Options değişkeni key value şeklinde bir dizi değişkendir, aşağıdaki keyler ile değerler gönderilebilir;
Symfony Events
Aşağıda tetiklenen bazı symfony event'ler listelenmiştir. Bu olaylar oluşuğunda kendi kodlarınızın çalışmasını sağlayan subscriber'lar yazabilirsiniz.
Tetiklenen Olaylar
Subscribe Oluşturma
# aşağıdaki kodu service dosyanıza ekleyin services: # ... my_comment_box_user_image_subscriber: class: App\EventListener\CommentBoxUserImageSubscriber arguments: [ "@service_container", "@doctrine.orm.entity_manager", "@security.token_storage" ] tags: - { name: kernel.event_subscriber }
namespace App\EventListener; use Doctrine\ORM\EntityManagerInterface; use Netliva\CommentBundle\Event\NetlivaCommenterEvents; use Netliva\CommentBundle\Event\UserImageEvent; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; class CommentBoxUserImageSubscriber implements EventSubscriberInterface { public function __construct () { } public static function getSubscribedEvents () { return [ NetlivaCommenterEvents::USER_IMAGE => 'getUserImage' ]; } public function getUserImage (UserImageEvent $event) { // Kullanıcı mülküne ulaşın $user = $event->getAuthor(); // kullanıcının profil fotoğrafının resmine ulaşın $imgPath = $user->getPhoto(); if (!$imgPath || !file_exists($imgPath)) return null; // fotoğrafın yolunu set edin, böylece gerekli yerlerde kullanıcı fotoğrafları gösterilir $event->setImage($imgPath); } }
Js Events
Aşağıda tetiklenen bazı jquery olaylar listelenmiştir. Bu olaylar oluşuğunda kendi kodlarınızın çalışmasını sağlayabilirsiniz.
Tetiklenen Olaylar
netliva:commenter:init
Yorum gönderme alanı oluştuktan hemen sonra tetiklenir.
$(document).on("netliva:commenter:init", function(event, $comment_area, commenter){ // $comment_area : Yorum alanı jQuery öğesi // commenter : Yorum aksiyonlarının yer aldığı javascript nesnesi });
netliva:commenter:initline
Yorum satırları oluştuktan hemen sonra tetiklenir.
$(document).on("netliva:commenter:initline", function(event, $comment_line, commenter){ // $comment_line : Yorum satırı jQuery öğesi // commenter : Yorum aksiyonlarının yer aldığı javascript nesnesi });
netliva:commenter:send:click
Yorum gönderimi anında tetiklenir
$(document).on("netliva:commenter:send:click", function(event, $comment_area, commenter){ // $comment_area : Yorum alanı jQuery öğesi // commenter : Yorum aksiyonlarının yer aldığı javascript nesnesi });
netliva:commenter:send:complete
Yorum gönderimi tamamlanınca tetiklenir
$(document).on("netliva:commenter:send:complete", function(event, $comment_area, jqXHR, textStatus, commenter){ // $comment_area : Yorum alanı jQuery öğesi // jqXHR : jQuery ajax sonucu dönen XMLHttpRequest nesnesi (https://api.jquery.com/jQuery.ajax/#jqXHR) // textStatus : Dönen sonucun durumunu kategorize eden bir dize ("success", "notmodified", "nocontent", "error", "timeout", "abort", or "parsererror") // commenter : Yorum aksiyonlarının yer aldığı javascript nesnesi });
netliva:commenter:send:success
Yorum gönderim sonucu başarılıysa tetiklenir
$(document).on("netliva:commenter:send:success", function(event, $comment_area, response, textStatus, jqXHR, commenter){ // $comment_area : Yorum alanı jQuery öğesi // response : ajax sonrası dönen yanıt // jqXHR : jQuery ajax sonucu dönen XMLHttpRequest nesnesi (https://api.jquery.com/jQuery.ajax/#jqXHR) // commenter : Yorum aksiyonlarının yer aldığı javascript nesnesi });
netliva:commenter:send:error
Yorum gönderim sonucu hatalıysa tetiklenir
$(document).on("netliva:commenter:send:error", function(event, $comment_area, jqXHR, textStatus, commenter){ // $comment_area : Yorum alanı jQuery öğesi // jqXHR : jQuery ajax sonucu dönen XMLHttpRequest nesnesi (https://api.jquery.com/jQuery.ajax/#jqXHR) // commenter : Yorum aksiyonlarının yer aldığı javascript nesnesi });