← Zurück zur Blog-Übersicht

Blog Artikel

load("main"); $fuser = new User($db); // Check if this is a KB article or traditional blog post $kb_id = GETPOST('kb', 'int'); $isKBArticle = !empty($kb_id); $article = null; $articleKeywords = array(); $articleImage = ''; $articleAuthor = ''; $articleIntro = ''; $articleContent = ''; $articleTitle = ''; $articleDate = 0; $articleCreator = 0; if ($isKBArticle) { // Load knowledgebase article require_once DOL_DOCUMENT_ROOT.'/knowledgemanagement/class/knowledgerecord.class.php'; $knowledgerecord = new KnowledgeRecord($db); $result = $knowledgerecord->fetch($kb_id); if ($result <= 0 || $knowledgerecord->status != 1) { header("Location: blog.php"); exit; } // Load custom fields $extrafields = new ExtraFields($db); $extrafields->fetch_name_optionals_label('knowledgemanagement_knowledgerecord'); $knowledgerecord->fetch_optionals(); // Map KB fields to article structure $articleTitle = $knowledgerecord->question; $articleContent = $knowledgerecord->answer; $articleDate = $knowledgerecord->date_creation; $articleCreator = $knowledgerecord->fk_user_creat; // Get custom field values $keywords = isset($knowledgerecord->array_options['options_keywords']) ? $knowledgerecord->array_options['options_keywords'] : ''; $articleImage = isset($knowledgerecord->array_options['options_image']) ? $knowledgerecord->array_options['options_image'] : ''; $articleAuthor = isset($knowledgerecord->array_options['options_author']) ? $knowledgerecord->array_options['options_author'] : ''; $articleIntro = isset($knowledgerecord->array_options['options_intro']) ? $knowledgerecord->array_options['options_intro'] : ''; if (!empty($keywords)) { $articleKeywords = array_map('trim', explode(',', $keywords)); } } else { // This is a traditional blog post - use existing logic // The page would normally be generated by Dolibarr's website system // This part maintains compatibility with existing blog posts // You would typically load $websitepage here for traditional blog posts // For now, redirect to maintain existing functionality if (!isset($websitepage) || empty($websitepage->title)) { header("Location: blog.php"); exit; } $articleTitle = $websitepage->title; $articleContent = $websitepage->content; $articleDate = $websitepage->date_creation; $articleCreator = $websitepage->fk_user_creat; $articleImage = $websitepage->image; if (!empty($websitepage->keywords)) { $articleKeywords = array_map('trim', explode(',', $websitepage->keywords)); } } ?>
← Zurück zur Blog-Übersicht


<?php echo $articleTitle; ?> <?php echo $articleTitle; ?>
fetchAll($website->id, 'DESC', 'date_creation', 20, 0, array('type_container'=>'blogpost', 'status'=>1)); foreach($arrayofblogs as $blog) { if (!empty($blog->keywords)) { $blogKeywords = array_map('trim', explode(',', $blog->keywords)); // Check for keyword overlap if (array_intersect($articleKeywords, $blogKeywords)) { $relatedItem = new stdClass(); $relatedItem->title = $blog->title; $relatedItem->url = $blog->pageurl . '.php'; $relatedItem->excerpt = substr(strip_tags($blog->description), 0, 120) . '...'; $relatedArticles[] = $relatedItem; } } } // Get related KB articles if ($isKBArticle) { require_once DOL_DOCUMENT_ROOT.'/knowledgemanagement/class/knowledgerecord.class.php'; $kbrecord = new KnowledgeRecord($db); $allKBArticles = $kbrecord->fetchAll('', '', 0, 20, array('status'=>1)); foreach($allKBArticles as $otherKB) { if ($otherKB->id != $kb_id) { $otherKB->fetch_optionals(); $otherKeywords = isset($otherKB->array_options['options_keywords']) ? $otherKB->array_options['options_keywords'] : ''; if (!empty($otherKeywords)) { $otherKeywordArray = array_map('trim', explode(',', $otherKeywords)); // Check for keyword overlap if (array_intersect($articleKeywords, $otherKeywordArray)) { $relatedItem = new stdClass(); $relatedItem->title = $otherKB->question; $relatedItem->url = 'blog-article.php?kb=' . $otherKB->id; $relatedItem->excerpt = substr(strip_tags($otherKB->answer), 0, 120) . '...'; $relatedArticles[] = $relatedItem; } } } } } // Remove duplicates and limit $relatedArticles = array_slice($relatedArticles, 0, 4); if (!empty($relatedArticles)): ?>