// 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 '
'; } ?>

تصعيد إسرائيلي في الجنوب السوري: دمشق تُضيّق الخناق على فصائل المقاومة

تصعيد إسرائيلي في الجنوب السوري: دمشق تُضيّق الخناق على فصائل المقاومة

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

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

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

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

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

لا يزال الطيران المُسيّر الإسرائيلي يحلّق بشكل يومي فوق أطراف دمشق الشمالية والغربية، حيث تنتشر المقرات العسكرية

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

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

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

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

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

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

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

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