// Only define DEBUG_MODE if it's not already defined if (!defined('DEBUG_MODE')) { define('DEBUG_MODE', false); } // Only show errors in development if (DEBUG_MODE === true) { ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); } // Check if article exists if (empty($article)) { // Article not found, show 404 page include_once FRONTEND_PATH . '/templates/404.php'; exit; } // Set page variables $pageTitle = $article['title'] . ' - ' . APP_NAME; $pageDescription = !empty($article['excerpt']) ? strip_tags($article['excerpt']) : truncate_text(strip_tags($article['content']), 160); // Clean any remaining HTML entities from the description $pageDescription = html_entity_decode(strip_tags($pageDescription)); $ogType = 'article'; $ogImage = !empty($article['featured_image']) ? 'https://' . $_SERVER['HTTP_HOST'] . '/' . $article['featured_image'] : null; $currentUrl = 'https://' . $_SERVER['HTTP_HOST'] . '/article/' . $article['slug']; $activeNav = ''; $showBreadcrumbs = true; // Set breadcrumbs $breadcrumbs = []; // Add category to breadcrumbs if available if (!empty($articleCategories) && count($articleCategories) > 0) { $category = $articleCategories[0]; // Use first category $breadcrumbs[] = [ 'title' => $category['name'], 'url' => '/category/' . $category['slug'] ]; } // Add article to breadcrumbs $breadcrumbs[] = [ 'title' => $article['title'], 'active' => true ]; // Generate schema.org markup for article $schemaMarkup = generate_article_schema($article); // The update_tags function has been moved to frontend/includes/functions.php // Debug: Before view count increment error_log("DEBUG: Before increment_article_views - Article ID: " . $article['id']); // Increment view count before displaying increment_article_views($article['id']); // Debug: After view count increment error_log("DEBUG: After increment_article_views - Article ID: " . $article['id']); // For debugging - create a debug log that will be displayed on the page $debugLog = []; $debugLog[] = "Debug: Article ID: " . $article['id']; // Get database connection global $db; // Initialize debug log $debugLog[] = "Using existing database connection via dbQuery"; // Debug: Database connection check error_log("DEBUG: Database connection check - DB is " . ($db ? "available" : "NOT available")); // Make sure article tags are loaded and initialized as an array if (!isset($articleTags)) { // Fetch existing tags for this article try { if ($db) { $tagQuery = "SELECT t.id, t.name, t.slug FROM tags t JOIN news_tags nt ON t.id = nt.tag_id WHERE nt.news_id = ?"; $tagStmt = $db->prepare($tagQuery); $tagStmt->execute([$article['id']]); $articleTags = $tagStmt->fetchAll(PDO::FETCH_ASSOC); } else { $articleTags = []; error_log('Database connection not available when fetching article tags'); } } catch (Exception $e) { // If there's an error, initialize as empty array $articleTags = []; error_log('Error fetching article tags: ' . $e->getMessage()); } } // Ensure $articleTags is always an array if (!is_array($articleTags)) { $articleTags = []; } // Debug: Before calling update_tags error_log("DEBUG: About to call update_tags function - Article ID: " . $article['id']); error_log("DEBUG: ArticleTags count before update: " . count($articleTags)); // Update article tags based on content $tagsUpdated = false; $tagsUpdated = update_tags(); error_log("DEBUG: update_tags function returned: " . ($tagsUpdated ? "TRUE" : "FALSE")); // Refresh article tags after potential updates if update was successful if ($tagsUpdated && $db) { error_log("DEBUG: Refreshing article tags after successful update"); try { $tagQuery = "SELECT t.id, t.name, t.slug FROM tags t JOIN news_tags nt ON t.id = nt.tag_id WHERE nt.news_id = ?"; $tagStmt = $db->prepare($tagQuery); $tagStmt->execute([$article['id']]); $articleTags = $tagStmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { // Log error but continue with existing tags error_log('Error refreshing article tags: ' . $e->getMessage()); } } // Update debug log with more information $debugLog[] = "Debug: Database connection: " . ($db ? "Available" : "NOT available"); $debugLog[] = "Debug: ArticleTags count: " . count($articleTags); // Add function call trace for debugging $debugLog[] = "Debug: Execution trace:"; $debugLog[] = "- Before increment_article_views"; $debugLog[] = "- After increment_article_views"; $debugLog[] = "- Database connection check: " . ($db ? "SUCCESS" : "FAILED"); $debugLog[] = "- Article tags loaded: " . (isset($articleTags) ? "YES" : "NO"); $debugLog[] = "- About to call update_tags"; $debugLog[] = "- update_tags result: " . ($tagsUpdated ? "SUCCESS" : "FAILED"); // Add database connection details $debugLog[] = "Debug: Database connection details:"; if ($db) { $debugLog[] = "- Connection type: " . get_class($db); $debugLog[] = "- Connection hash: " . spl_object_hash($db); } // Add more detailed database info if ($db) { try { $debugLog[] = "Debug: Database info:"; $stmt = $db->query("SELECT DATABASE() as db_name"); $dbInfo = $stmt->fetch(PDO::FETCH_ASSOC); $debugLog[] = "- Current database: " . ($dbInfo['db_name'] ?? 'unknown'); // Check if tags table exists and has data $stmt = $db->query("SELECT COUNT(*) as tag_count FROM tags"); $tagCount = $stmt->fetch(PDO::FETCH_ASSOC); $debugLog[] = "- Tags in database: " . ($tagCount['tag_count'] ?? 'unknown'); } catch (Exception $e) { $debugLog[] = "- Error getting DB info: " . $e->getMessage(); } } // Include header include_once FRONTEND_PATH . '/includes/header.php'; // Display debug information at the top of the page (only during development) if (defined('DEBUG_MODE') && DEBUG_MODE === true) { echo '
'; echo '

Debug Information

'; echo ''; // Direct test of update_tags function with sample data if ($db) { echo '

Direct Test of update_tags Function

'; // Create sample data with proper string values $sampleArticle = [ 'id' => $article['id'], 'title' => 'Sample Title for Testing', 'content' => 'This is sample content for testing the update_tags function.' ]; // Ensure all values are strings to avoid null values $sampleArticle['title'] = (string)$sampleArticle['title']; $sampleArticle['content'] = (string)$sampleArticle['content']; $sampleTags = []; // Try to get some real tags for testing try { $stmt = $db->query("SELECT id, name, slug FROM tags LIMIT 5"); $testTags = $stmt->fetchAll(PDO::FETCH_ASSOC); echo '

Test with ' . count($testTags) . ' sample tags:

'; echo ''; // Run the test echo '

Running test update_tags function...

'; // Set global variables for the test global $article, $articleTags; $originalArticle = $article; $originalTags = $articleTags; // Temporarily set global variables for the test $article = $sampleArticle; $articleTags = $sampleTags; // Run the test $testResult = update_tags(); // Restore original values $article = $originalArticle; $articleTags = $originalTags; echo '

Test result: ' . ($testResult ? 'SUCCESS' : 'FAILED') . '

'; } catch (Exception $e) { echo '

Error during test: ' . htmlspecialchars($e->getMessage()) . '

'; } } echo '
'; } ?>

سوريا بعد الحرب: هل يتحقق السلام بالعدالة الانتقالية أم بالسلم الأهلي أولاً؟

سوريا بعد الحرب: هل يتحقق السلام بالعدالة الانتقالية أم بالسلم الأهلي أولاً؟

بعد انتهاء الحرب، يواجه السوريون اليوم صراعاً جديداً لا يقل ضراوة أو خطورة على البلاد، تتطلب مواجهته إعادة إرساء الاستقرار ووقف العنف، والتعامل مع المظالم المعقدة، والسعي للمساءلة عن الفظائع الماضية، وتعزيز المصالحة بين السكان المنقسمين بشدة.

في الثامن من كانون الأول/ ديسمبر 2024، طُويت صفحة دامية في تاريخ سوريا بإسقاط نظام الأسد، ولكن السلام الحقيقي ما زال بعيد المنال. انتهت الحرب، نعم، لكن آثارها لا تزال ماثلة في أركان البلاد، في النفوس المكسورة، والمدن المدمرة، وفي الأجساد التي أنهكها الاعتقال والتعذيب، وفي ذاكرة جماعية مثقلة بالانتهاكات والمآسي.

وبينما يحاول السوريون، حكومة وشعباً، إعادة بناء ما تهدم، يبرز سؤال محوري: كيف يمكن لسوريا أن تنتقل من حالة "اللاحرب" إلى سلام حقيقي مستدام؟ بعد انتهاء الحرب، يواجه السوريون اليوم، حكومة وشعباً صراعاً جديداً – لا يقل ضراوة أو خطورة على البلاد – مع تداعيات النزاع المسلح الذي استمر 14 عاماً، وانتهاكات حقوق الإنسان الفظيعة واسعة النطاق، وإرث النظام القمعي الذي استمر لأكثر من نصف قرن. كل هذا يحدث تحت تهديد التدخل الخارجي، والتقسيم، والأزمة الاقتصادية الخانقة. تتطلب مواجهة هذا الصراع إعادة إرساء الاستقرار ووقف العنف، والتعامل مع المظالم المعقدة، والسعي للمساءلة عن الفظائع الماضية، وتعزيز المصالحة بين السكان المنقسمين بشدة. ضمن هذا السياق، يبرز السلم الأهلي والعدالة الانتقالية كإطارين حاسمين غير متطابقين لمواجهة هذا الصراع.

تمكّن العدالة الانتقالية المجتمعات من مواجهة ماضيها، وتضميد جراح ضحاياها، وإعادة بناء الثقة بين الأفراد والدولة، وبين مكونات المجتمع

يتجاوز تحقيق السلام مجرد إسكات صوت البنادق وإنهاء العنف. فكثيراً ما نشهد مجتمعات تكسب الحرب وتخسر السلام. التجارب القريبة في العراق ولبنان تثبت أن غياب القتال لا يعني نهاية الصراع، إذ يتوقف الصراع المسلح، ولكن تبقى الجروح العميقة للمظالم دون معالجة، مما يزرع بذور النزاعات المستقبلية، ويحوّل البلد إلى دولة فاشلة ورهينة للتدخلات الخارجية ودوائر العنف غير المنتهية والانقسامات الداخلية. هنا يكمن الدور الأساسي للعدالة الانتقالية، حيث تحوّل التركيز من معركة السلاح إلى معارك القلم والعقلانية والحكمة. تمكّن العدالة الانتقالية المجتمعات من مواجهة ماضيها، وتضميد جراح ضحاياها، وإعادة بناء الثقة بين الأفراد والدولة، وبين مكونات المجتمع.

التوازي لا التنازع

في سوريا، يبدو أن السلم الأهلي الذي تعمل عليه الدولة يسعى إلى إنهاء العنف الحالي بشكل مرحلي ومنفصل عن مسار العدالة الانتقالية، بينما تركز العدالة الانتقالية التي يطالب بها شريحة واسعة من الشعب على كيفية التعامل مع الماضي المؤلم لبناء مستقبل أكثر عدلاً وسلاماً، معتبرين أن السلم الأهلي يأتي بعد تحقيق العدالة الانتقالية كنتيجة لها. وهذان التوجّهان ليسا متناقضين، بل متكاملين. عندما تتضافر جهود السلم الأهلي لإنهاء العنف وضمان التعايش السلمي الحالي، مع عمليات العدالة الانتقالية لمعالجة الأسباب الجذرية للصراع، يصبح الطريق نحو سلم أهلي مستدام أمراً ممكناً يحمي أسس بناء الدولة بما فيها السياسية والاجتماعية والاقتصادية. هذا التكامل والموازنة السليمة هو ما يحوّل حالة “اللاحرب” الراهنة في سوريا إلى سلام حقيقي وعادل يضمن عدم نشوء صراعات مستقبلية.

السلم الأهلي: أساس الاستقرار والتقدم

يشير السلم الأهلي إلى حالة من اللاعنف والاستقرار داخل المجتمع، أي غياب الحرب الأهلية أو الصراع الداخلي واسع النطاق. كما يشير إلى حالة مجتمعية تُحل فيها النزاعات بوسائل سلمية، وتعمل مؤسسات الدولة بشكل جدي فعال لإدارة التوترات، وتوفير الأمن الأساسي للناس. لا يعني السلم الأهلي فقط غياب النزاع المسلح الداخلي، بل أيضاً درجة من التماسك الاجتماعي والثقة المتبادلة والاعتراف بالمواطنة المشتركة التي تسمح بالتقدم الجماعي للبلاد. غالباً، يتطلب تحقيق السلم الأهلي تسويات سياسية، وعمليات نزع السلاح، وإرساء حكم القانون الأساسي. السلم الأهلي المستدام هو حجر الزاوية لأي مجتمع يريد الاستقرار والتقدم، فهو الضمان لمنع الصراعات الداخلية وتجنيب البلاد ويلات الحروب والعنف المدمر. تحقيق السلم الأهلي ليس مجرد غياب للصراع، بل هو حالة من التعايش والتفاهم والاحترام المتبادل بين أفراد ومكونات المجتمع والدولة. لكن السلم الأهلي السطحي، الذي يتحقق فقط من خلال المقايضات السياسية أو بقوة السلاح، من المرجح أن يكون هشاً إذا استمرت المظالم الكامنة، والظلم الذي لم يُعالَج، والمعاناة التي لم يعترف بها. العدالة الانتقالية هي إطار شامل للعمليات والآليات التي تستخدمها المجتمعات بعد التعرض لانتهاكات جماعية لحقوق الإنسان أو فترات الحكم الاستبدادي أو حروب داخلية، وهي التي اجتمعت في الحالة السورية. يتمثل هدف عملية العدالة الانتقالية الأسمى في معالجة إرث انتهاكات الماضي، وضمان المساءلة، وتوفير الإنصاف للضحايا، وتعزيز المصالحة، ومنع تكرار مثل هذه الفظائع، ويجب ألا تعتمد على “عدالة المنتصر” بل تمهد الطريق نحو مستقبل أكثر عدلاً وسلاماً.

السلم يمهد الطريق للعدالة، والعدالة تضمن استمرارية السلم

العلاقة بين السلم الأهلي والعدالة الانتقالية

العلاقة بين السلم الأهلي والعدالة الانتقالية هي تكاملية وأساسية للاستقرار على المدى الطويل. السلم الأهلي الآني شرط لبدء عملية العدالة الانتقالية، والعدالة الانتقالية أساس لسلمٍ أهلي مستدام. السلم الأهلي يوفر بيئة للعدالة الانتقالية: لا يمكن أن تتحقق العدالة الانتقالية في ظل الفوضى، بل تحتاج إلى حد أدنى من الاستقرار السياسي والأمني كي تُنفذ بفعالية، وتكون ذات مصداقية أمام المجتمع المحلي والدولي. لا يمكن لآليات العدالة الانتقالية أن تعمل بفعالية إلا في بيئة تتمتع بحد أدنى من السلم والاستقرار. غياب العنف يسمح لمؤسسات الدولة بالعمل بشكل مناسب، بما فيه لجان الحقيقة والمحاكم. في ظل استمرار الصراع أو عدم الاستقرار الأمني الشديد، يصعب تطبيق آليات العدالة الانتقالية بفعالية، بل قد يؤدي الشروع فيها إلى تفاقم التوترات الحالية بدلاً من حلها. الاستقرار الذي يوفره السلم الأهلي يخلق المساحة اللازمة لهذه العمليات الحساسة والمؤلمة في كثير من الأحيان. العدالة الانتقالية أساس السلم الأهلي المستدام: لا يمكن بناء سلم أهلي دائم على مظالم لم تُعالج ومعاناة لم يُعترف بها. بمواجهة الماضي من خلال كشف الحقيقة والمساءلة والتعويضات، تُساعد العدالة الانتقالية على التئام جراح المجتمع، وإعادة بناء الثقة، وإزالة الأسباب الكامنة وراء أي صراع مستقبلي محتمل. فبدون معالجة المظالم التاريخية، يمكن أن تستمر بذور الخلاف في التفاقم، مما يُهدد أي سلم أهلي هش.

استمرار الصراع أو عدم الاستقرار الأمني الشديد، يصعب تطبيق آليات العدالة الانتقالية بفعالية، بل قد يؤدي الشروع فيها إلى مفاقمة التوترات الحالية بدلاً من حلها

السلم الأهلي والعدالة الانتقالية ليسا مجرد خيارات محتملة، بل هما مكونان أساسيان مترابطان لأي عملية انتقال ناجحة بعد الصراع. يوفر السلم الأهلي الهدوء الفوري والآني وهو الأرضية التي تسمح ببدء عملية العدالة الانتقالية لمعالجة مظالم الماضي، بما فيه تحقيق العدالة، والاعتراف بالحقيقة، وتعزيز المصالحة، وإلى سلم أهلي مستدام في نهاية المطاف. النهج الشامل الذي يجمع بين مبادرات السلم الأهلي وآليات العدالة الانتقالية القوية يوفر المسار الأكثر نجاحاً للمجتمعات للتحول من دوامات العنف إلى استقرار دائم، وتماسك اجتماعي، واحترام لحقوق الإنسان. على الدولة أن تتخلى عن سياسات “جبنا لكم البلد” و”ثقوا بنا” والعمل السري، وإهدار الوقت الذي لا نملكه. بل يجب عليها أن تعمل يداً بيد وبشفافية مع المجتمع المدني والخبرات الدولية لتصميم منهج واضح، عملي وواقعي لتحقيق السلم الأهلي الآني وعملية العدالة الانتقالية للوصول إلى السلم العادل والمستدام. أيضاً، للمجتمع المدني دور أساسي في مراقبة ومواجهة هذه التحديات، ويجب أن يكون المجتمع المدني الناقد بناءً، بحيث لا يكتفي فقط بالانتقاد دون تقديم حلول، وإنما الانخراط مع الدولة لتقديم ومناقشة وتصميم اقتراحات عملية ومبادرات فعالة. المطلوب في سوريا اليوم ليس إعادة اختراع العجلة، بل تبنّي منهج واضح، يستفيد من تجارب دول أخرى، مع مراعاة خصوصية الحالة السورية. يمكن للجنة السلم الأهلي أن تُمهّد الأرضية لبدء مسار العدالة الانتقالية، بالعمل مع هيئة العدالة الانتقالية، على أن يكون المجتمع المدني شريكاً فاعلاً في كل المراحل، لا مجرد مراقب أو ناقد من الخارج، لضمان عدم إهدار حقوق الضحايا الشخصية، أو ردم المظالم وتحويلها إلى ألغام تحت أساس الدولة.

مشاركة المقال:

Warning: Undefined variable $tagsUpdated in /home/comparecarriers/public_html/yallasyrianews.com/frontend/templates/article.php on line 419