MentionBB gelişmiş bir topluluk/forum yazılımıdır. Klasik forum sistemleriyle yeni nesli birleştiren bir dengeye sahiptir. Bununla birlikte en gelişmiş ve güvenilir teknolojiler kullanılarak inşa edilmiş bir projedir.
-
Esnek ve hızlı. Mention, gelişmiş algoritmalar kullanmasına rağmen önbellekleme teknolojileri sayesinde oldukça hafif bir yazılımdır. Öte yandan oldukça karmaşık ve daha önce görülmemiş bileşenler içeriyor.
-
Eklenti ve modüler. Mention benzersiz bir eklenti sistemi kullanır. Hemen hemen her kısmına zorlanmadan eklenti ekleyebileceğiniz bir sistemi mevcuttur. Eklenti sistemi tıpkı jQuery'deki gibi HTML/CSS işaretçisi aracılığıyla çalışır. Ayrıca gelişmiş alt yapısı ve modüler yapısı ile projelerinizde asla zorluk yaşamayacaksınız. Portal mı istiyorsunuz? Ekleyebilirsiniz. Blog? Ekleyebilirsiniz. Eklentilerle hızlı büyüyen bir platforma sahipsiniz.
-
Çoklu dil! Kesinlikle istediğiniz dile uyarlamanız için geliştirildi. Dil eklemek kolay ve basittir, dil dosyaları oldukça basittir ve bunları yönetici panelinden istediğiniz cümleye de dönüştürebilirsiniz.
-
Güzel bir tasarım ama istersen değiştirebilirsin. Varsayılan tema çözünürlüğe göre değişen, esnek bir yapıdadır ve birçok yeni teknolojiyle oluşturulmuştur, ancak bu temayı özelleştirebilir veya tamamen değiştirebilirsiniz.
-
Gelişmiş şablon sistemi. Mention, Twig 3 şablon motorunu kullanmaktadır. Bu motoru eklentilerde ve çeşitli her yerde kullanabilirsiniz. Yönetici panelinde şablonları düzenlemek için oldukça detaylı bir alan bulunmaktadır. Ayrıca sistem içinde hata sayfaları, kurulum gibi yerlerde kendi basit şablon motorumuzu kullandık.
Ve tabi ki çok daha fazlası sizi bekliyor!
MentionBB 3 yılı aşan bir yıldır geliştirilmeye devam ediliyor. GitHub'da gördüğünüz proje paralel ve gerçek zamanlı olarak geliştiriliyor. Hedefimiz tamamen yeni standartlara uygun, yeni nesil bir forum oluşturmaktır. Güncel haliyle sitenize yükleyip kullanabilirsiniz. Demo sitemiz ise sponsorlar sayesinde açık kalıyor.
Kurulum sihirbazı hazır değil, yani kurulumu bu aşamada elle yapmalısınız. Fakat özellikle Docker'da kurulum oldukça basittir.
- Docker Engine veya Docker Desktop
PHP ve gerekli eklentiler ayrıca Composer, Git dahil olmak üzere Docker'da hali hazırda vardır.
- Son sürümü indirin
Arşivi indirin ve çıkartın: https://github.com/mentionbb/mentionbb/releases/latest
- Container başlatma
Verdiğim ana Docker Compose dosyası Nginx Proxy Manager ile kurulmalıdır eğer Nginx Proxy Manager kullanmıyorsanız hazırladığım alternatif compose dosyasını tercih edin.
Nginx Proxy Kullanmıyorsanız alternatif compose dosyası ve çalıştırılması:
docker compose -f docker-compose-without-npm.yml up -dNginx Proxy Manager ile
docker compose up -d-
Nginx Proxy Manager ayarları
- Add Proxy Host >
- Scheme: http
- Forward hostname: svc.mentionbb_nginx
- Forward Port: 80
- Add Proxy Host >
-
PHP bağlılıklarını yükleme (Composer)
docker exec -it mention_dockerized-svc.mentionbb_php-1 composer installEğer Plesk kullanıyorsanız aşağıdaki repoyu takip edin:
https://github.com/mentionbb/mentionbb-plesk-setup
- PHP 8.4+
- Composer
- Git (optional)
- pdo
- pdo_mysql
- zip
- xsl
- gd
- intl
- opcache
- exif
- mbstring
- webp, avif (optional)
- Son sürümü indirin ve arşivden çıkarın
https://github.com/mentionbb/mentionbb/releases/latest
- Composer'i yükleyin
Linux / macOS: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos
Windows: https://getcomposer.org/doc/00-intro.md#installation-windows
- Bağlılıkları yükleyin
Projenin ana dizininde çalıştırın:
composer installComposer'ı çalıştıramıyorsanız, önceden derlenmiş vendor arşivini indirin ve src dizinine çıkarın:
https://github.com/mentionbb/mentionbb/raw/master/www/src/vendor.tar.gz
- Nginx örnek şablonu
server {
listen 80;
server_name example.com;
root /workspace/www/public;
index index.php index.html;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param HTTPS $https;
fastcgi_param HTTP_X_FORWARDED_PROTO $scheme;
internal;
}
location ~ \.php$ {
return 404;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
include /workspace/www/.nginx.conf;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
}
- Boş bir veritabanı oluşturun ve ana dizinde bulunan "db.sql" dosyasını içe aktarın.
Şu sütunun değişmesini gerekiyor:
settings > site_url
Bu sütuna site adresinizin tamamını yazın. Örnek: https://example.com
php bin/console mention:install-db [--dbadapter DBADAPTER] [--user USER] [--password PASSWORD] [--dbname DBNAME] [--dbhost DBHOST]*köşeli parantezler hariç.
Veya Adını değiştirin:
.env.example>.env
Bu dosya içine veritabanı ayarlarınızı yapabilirsiniz.
Dosyayı sunucunuzda çalıştırmak istediğiniz veritabanı sürücüsüne göre ayarlamalısınız. Tüm talimatlar dosyada mevcuttur. Varsayılan olarak pdo_mysql seçilidir ve bunu kullanmak için PDO eklentisinin yüklenmesi gerekir. Eğer PDO uzantısına sahip değilseniz sürücüyü mysqli olarak seçebilirsiniz.
Bu aşamadan sonra siteniz açık ve kullanıma hazır olacaktır.
Varsayılan kullanıcıadı:şifre
TestUser:123456.,
Admin panelde daha fazla ayar mevcuttur.
MentionBB, bazı dizinlerin web sunucusu tarafından yazılabilir olmasını gerektirir. Aksi takdirde, bazı fonksiyonlar (örneğin önbellekleme veya dosya yüklemeleri) çalışmayabilir.
# Web sunucusu tarafından yazılabilir dizinleri ayarlayın
sudo chmod -R 770 www/src/Cache
sudo chmod -R 770 www/src/Logs
sudo chmod -R 770 www/public/ui/uploads
sudo chmod -R 770 www/public/ui/editor
# Proje kök dizinin sahipliğini ayarlayın (www yerine proje klasörünüzü yazın)
sudo chown -R www-data:www-data www
# Genel dizin izinlerini 755, dosya izinlerini 644 olarak ayarlayın
sudo find www -type d -exec chmod 755 {} \;
sudo find www -type f -exec chmod 644 {} \;- www-data, Ubuntu/Debian sistemlerinde web sunucusu kullanıcı adıdır (Apache/Nginx). Farklı sistemlerde değişebilir.
- Dizinler: 755 → web sunucusu tarafından okunabilir ve yürütülebilir.
- Dosyalar: 644 → web sunucusu tarafından okunabilir.
- Yazılabilir dizinler: 770 → sadece sahibi ve web sunucusu tarafından okunabilir ve yazılabilir.
Bu ayarı kapatmanızı öneriyoruz, çünkü biz geliştirmeye yaparken şablonların veya bazı dosyaların yedeklenmesini bu şekilde istemiyoruz. Ancak son kullanıcı şablon değişikliği yaptığında bunların kolayca geri dönüştürülmesi ve karşılaştırılması gerekir. O yüzden bu ayarı kapatmanızı tavsiye ederiz.
src/App/App.php
\App\App::$devpublic static $dev = [
'_devMode' => false,
];MentionBB, Par2 adı verilen özel bir uygulama altyapısı kapsamında geliştirilmiştir. Daha önceki projelerimde de kullanmıştım ama bu çok daha gelişmiş bir versiyonudur.
Genel olarak Symfony Bileşenleri kullanılmaktadır.
- Symfony/Routing
- Symfony/HttpFoundation
- Symfony/Yaml
- Doctrine/Dbal
- Twig/Twig
- Masterminds/Html5
- Symfony/Serializer
- Symfony/DomCrawler
- Nesbot/Carbon
- Laminas/Escaper
- Guzzle/Guzzle
- Bootstrap 4
- Font Awesome 6
- TinyMCE 5
- Monaco Editor
- jQuery
Bunlar kullanılan ana paketlerdir. Mention'ı oluşturmak için daha pek çok üçüncü parti paket kullandık. Hepsine teşekkürü borç biliyoruz.
Mention açık kaynaklı bir projedir ve MIT lisansı altında dağıtılmaktadır. Daha fazla bilgi için: lisans dosyası.