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

البرنامج النووي الإيراني: نظرة على المنشآت الرئيسية ومخاطر التخصيب

البرنامج النووي الإيراني: نظرة على المنشآت الرئيسية ومخاطر التخصيب

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

وكان ترامب قال أمس الأربعاء إن الموظّفين الأميركيين سيُجلون من الشرق الأوسط لأنّه “قد يكون مكاناً خطيراً”.

فيما يلي نظرة على بعض المنشآت النووية الرئيسية في إيران:

أين تقع المنشآت النووية الإيرانية؟

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

هل تمتلك إيران برنامجاً للأسلحة النووية؟

تعتقد الولايات المتحدة والوكالة الدولية للطاقة الذرية التابعة للأمم المتحدة أن إيران كان لديها برنامج سري منسق للأسلحة النووية أوقفته في عام 2003. وتنفي الجمهورية الإسلامية امتلاك أي برنامج نووي أو التخطيط لامتلاك مثل هذا البرنامج.

وافقت إيران على تقييد أنشطتها النووية مقابل تخفيف العقوبات الدولية بموجب اتفاق أبرمته عام 2015 مع قوى عالمية، لكن هذا الاتفاق انهار بعد أن سحب الرئيس الأميركي آنذاك دونالد ترامب بلاده منه في عام 2018، وهو ما دفع إيران في العام التالي للتخلّي عن القيود التي فرضتها على تلك الأنشطة النووية.

هل تزيد إيران من تخصيب اليورانيوم؟

أجل. بدأت إيران منذ ذلك الحين التوسع في برنامج تخصيب اليورانيوم، ما قلّص ما يسمى “وقت الاختراق” الذي تحتاجه لإنتاج ما يكفي من اليورانيوم الذي يستخدم في صنع قنبلة نووية إلى أسابيع وليس عاماً على الأقل بموجب اتفاق عام 2015.

وفي واقع الأمر فإن صنع قنبلة بهذه المادة سيستغرق وقتاً أطول. ولكن المدّة ليست واضحة تماماً ومحل جدل.

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

نطنز

مجمع يقع في صلب برنامج التخصيب الإيراني على سهل يجاور الجبال خارج مدينة قم المقدّسة لدى الشيعة، جنوبي طهران. ويضم المجمع منشآت تشمل محطّتي تخصيب: محطّة تخصيب الوقود الضخمة تحت الأرض ومحطّة تخصيب الوقود التجريبية فوق الأرض.

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

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

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

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

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

فوردو

على الجانب الآخر من قم، أُقيم موقع فوردو للتخصيب داخل جبل، وبالتالي ربما يكون محميا حماية أفضل من القصف المحتمل مقارنة بمحطة تخصيب الوقود تحت الأرض.

لم يسمح الاتفاق الذي تسنى التوصل إليه عام 2015 مع القوى الكبرى لإيران بالتخصيب في فوردو على الإطلاق. ولديها الآن أكثر من ألفي جهاز طرد مركزي تعمل هناك، ومعظمها من أجهزة آي.آر-6 المتقدّمة التي يعمل 350 جهازاً منها على التخصيب حتى نسبة نقاء 60 بالمئة.

في عام 2009 أعلنت الولايات المتحدة وبريطانيا وفرنسا أن إيران كانت تبني منشأة فوردو سرّاً لسنوات، وأنّها تقاعست عن إبلاغ وكالة الطاقة الذرية. وقال الرئيس الأميركي باراك أوباما آنذاك “لا يتفق حجم هذه المنشأة وتكوينها مع برنامج سلمي”.

أصفهان

تملك إيران مركزاً كبيراً للتكنولوجيا النووية على مشارف أصفهان، ثاني أكبر مدنها.

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

وتوجد في أصفهان معدّات لصنع معدن اليورانيوم، وهي عملية بالغة الحساسة فيما يتصل بالانتشار النووي لأنّها يمكن أن تستخدم في تصميم قلب القنبلة النووية.

وذكرت وكالة الطاقة الذرية أن هناك آلات لصنع قطع غيار أجهزة الطرد المركزي في أصفهان، ووصفتها في عام 2022 بأنها “موقع جديد”.

خونداب

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

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

وأبلغت إيران الوكالة الطاقة الذرية بأنّها تنوي تشغيل المفاعل في عام 2026″.

مركز طهران للأبحاث

تتضمّن منشآت الأبحاث النووية في طهران مفاعلاً للأبحاث.

بوشهر

تستخدم محطّة الطاقة النووية الوحيدة العاملة في إيران على ساحل الخليج الوقود الروسي الذي تستعيده موسكو بعد استنفاده، ما يقلّل من خطر الانتشار النووي.

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

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