PDO::ERRMODE_EXCEPTION] ); $notesId = 397340; $dryRun = false; // Изменить на false для реального исправления echo "=== ИСПРАВЛЕНИЕ ПУТИ ДОКУМЕНТА 397340 ===\n\n"; // Получаем текущие данные документа $sql = "SELECT notesid, title, s3_key, s3_bucket, filename FROM vtiger_notes WHERE notesid = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$notesId]); $doc = $stmt->fetch(PDO::FETCH_ASSOC); if (!$doc) { die("❌ Документ $notesId не найден!\n"); } echo "📄 Документ: {$doc['title']}\n"; echo " ID: {$doc['notesid']}\n"; echo " Текущий s3_key: {$doc['s3_key']}\n\n"; // Проверяем, есть ли префикс if (strpos($doc['s3_key'], 'crm2/CRM_Active_Files/') === 0) { // Убираем префикс $newS3Key = str_replace('crm2/CRM_Active_Files/', '', $doc['s3_key']); echo "✅ Найден префикс 'crm2/CRM_Active_Files/'\n"; echo " Новый s3_key: $newS3Key\n\n"; // Проверяем остальные документы проекта для сравнения $sql2 = "SELECT notesid, s3_key FROM vtiger_notes n INNER JOIN vtiger_senotesrel snr ON snr.notesid = n.notesid WHERE snr.crmid = 396447 AND n.notesid != ? AND n.s3_key IS NOT NULL LIMIT 3"; $stmt2 = $pdo->prepare($sql2); $stmt2->execute([$notesId]); $others = $stmt2->fetchAll(PDO::FETCH_ASSOC); echo "📊 Сравнение с другими документами проекта:\n"; foreach ($others as $other) { echo " ID {$other['notesid']}: {$other['s3_key']}\n"; } echo "\n"; // Обновляем filename тоже (если там есть полный URL) $newFilename = $doc['filename']; if (strpos($doc['filename'], 'crm2/CRM_Active_Files/') !== false) { $newFilename = str_replace('crm2/CRM_Active_Files/', '', $doc['filename']); // Если это полный URL, пересобираем его if (strpos($newFilename, 'https://') === false && $doc['s3_bucket']) { $newFilename = "https://s3.twcstorage.ru/{$doc['s3_bucket']}/" . rawurlencode($newS3Key); } } if (!$dryRun) { echo "🔧 ПРИМЕНЯЕМ ИСПРАВЛЕНИЕ...\n\n"; $updateSql = "UPDATE vtiger_notes SET s3_key = ?, filename = ? WHERE notesid = ?"; $updateStmt = $pdo->prepare($updateSql); $updateStmt->execute([$newS3Key, $newFilename, $notesId]); echo "✅ Документ обновлён!\n"; echo " Новый s3_key: $newS3Key\n"; echo " Новый filename: " . substr($newFilename, 0, 100) . "...\n"; } else { echo "⚠️ РЕЖИМ ПРОВЕРКИ (dry-run)\n"; echo " Для применения изменений установите \$dryRun = false\n"; } } else { echo "ℹ️ Префикс 'crm2/CRM_Active_Files/' не найден в пути.\n"; echo " Документ уже в правильном формате.\n"; } echo "\n=== ГОТОВО ===\n";