Bilgi Bankası Görünüm Kancaları
Ziyaretçinin gördüğü bilgi bankasının dokuz kancası: gövde, ağaç, kapsam, popüler kutusu, arama ve dört gözlem noktası.
Genel Bakış
Ziyaretçinin gördüğü her şey bu kancalardan geçer: makale gövdesi, kategori ağacı, popüler kutusu ve arama sonuçları. Dördü de bağla geçer, yani değişikliği döndürerek değil, gelen değerin üzerine yazarak yaparsınız.
Yanlarında dört gözlem kancası bulunur: makale okunması, kategori açılışı, oy ve arama. Bunlar bir şeyi değiştirmez, olduğunu bildirir.
Referans
Makale okunmasını izleme
Bir makale görüntülendiğinde çalışır. Ziyaretçi giriş yapmamış olabilir.
Hook::add('action:knowledgebase.article.viewed', 10, function ($id, $article) {
// Ziyaretci giris yapmamis olabilir: kimlik varsayimi kurmayin.
Acme::trackRead($id);
});Makale oyunu izleme
Ziyaretçi bir makaleyi yararlı ya da yararsız bulduğunda çalışır.
useful ya da useless.Hook::add('action:knowledgebase.article.voted', 10, function ($id, $type) {
// Yararsiz oylari yazi ekibine biriktirin.
if ($type === 'useless') Acme::flagForReview($id);
});Kategori açılışını izleme
Bir kategori sayfası görüntülendiğinde çalışır.
Hook::add('action:knowledgebase.category.viewed', 10, function ($catId, $cat) {
Acme::trackCategory($catId);
});Aramayı izleme
Ziyaretçi arama yaptığında çalışır. Sonuç boş olabilir; sonuçsuz aramalar yazılacak makaleyi gösteren en iyi listedir.
Hook::add('action:knowledgebase.searched', 10, function ($query, $results, $lang) {
// Sonucsuz aramalar yazilacak makaleyi gosterir.
if (!$results) Acme::noteGap($query, $lang);
});Makale gövdesini değiştirme
Makale gövdesi ekrana gitmeden önce çalışır. Kendi kısa kodlarınızı burada çözer, sürüm numarası gibi değişkenleri buraya gömersiniz.
Hook::add('filter:knowledgebase.article_content', 10, function (&$content, &$ctx) {
// Kendi kisa kodunuzu cozun.
$content = str_replace('[surum]', Acme::currentVersion(), $content);
});Görünecek kategorileri sınırlama
Makale sorguları kurulurken çalışır. Bilgi bankasını bir kitleye daraltmanın yolu budur: bayilere ayrı, son müşteriye ayrı.
Hook::add('filter:knowledgebase.category_scope', 10, function (&$scope, &$ctx) {
// Bos birakmak "kisit yok" demektir: daraltmak istiyorsaniz doldurun.
if (!Acme::isReseller()) $scope = Acme::publicCategories();
});Kategori ağacını değiştirme
Yan taraftaki kategori ağacı hazırlandıktan sonra çalışır.
Hook::add('filter:knowledgebase.category_tree', 10, function (&$tree, &$ctx) {
// Ic kullanim dalini ziyaretciden gizleyin.
$tree = array_values(array_filter($tree, fn ($n) => ($n['id'] ?? 0) !== Acme::INTERNAL_CAT));
});Popüler makale listesini değiştirme
Yan taraftaki popüler makale kutusu doldurulurken çalışır.
Hook::add('filter:knowledgebase.popular_articles', 10, function (&$articles, &$ctx) {
// Sinir baglamda gelir: fazlasi kutuya sigmaz.
array_unshift($articles, Acme::featuredArticle());
$articles = array_slice($articles, 0, (int) ($ctx['limit'] ?? 6));
});Arama sonuçlarını değiştirme
Arama sonuçları ekrana gitmeden önce çalışır. Kendi kaynağınızdan sonuç eklemenin ya da sıralamayı değiştirmenin yeri burasıdır.
Hook::add('filter:knowledgebase.search_results', 10, function (&$results, &$ctx) {
// Kendi kaynaginizdan sonuc ekleyin.
foreach (Acme::search($ctx['query'] ?? '', $ctx['lang'] ?? '') as $row) $results[] = $row;
});Tuzaklar
Kapsam listesi kancaya her zaman boş girer ve boş kalması “bilgi bankasının tamamı görünsün” demektir. Erişimi daraltmak isteyip listeyi boş bırakmak, tam tersini yapar.
Makale gövdesi doğrudan ekrana gider; temizlenmez. Gövdeye dışarıdan gelen bir değer gömüyorsanız kaçışını kendiniz yapın.
İlgili Makaleler
- Bilgi Bankası ve Bildirim Kancaları
- Bildirim Kancaları
- Kancalar Nasıl Çalışır
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.