Ingrese Clave

$maxFileSize) { $message = 'Archivo demasiado grande (máx 50MB).'; $messageType = 'danger'; } else { $fileName = basename($file['name']); $fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION)); $filePath = $uploadDir . $fileName; if (!move_uploaded_file($file['tmp_name'], $filePath)) { $message = 'Error al guardar el archivo subido.'; $messageType = 'danger'; } else { // Preview (opcional) $previewUrl = ''; if ($previewFile && $previewFile['error'] === UPLOAD_ERR_OK) { $previewName = basename($previewFile['name']); $previewPath = $uploadDir . $previewName; move_uploaded_file($previewFile['tmp_name'], $previewPath); $previewUrl = "/uploads/" . $previewName; } // Slug único $slug = preg_replace('/[^a-z0-9-]/', '-', strtolower($title)); $slug = preg_replace('/-+/', '-', trim($slug, '-')); $baseSlug = $slug ?: 'contenido-' . time(); $counter = 1; while (file_exists($contentDir . $slug . '.html')) { $slug = $baseSlug . '-' . $counter++; } $outputFile = $contentDir . $slug . '.html'; // OG meta tags $ogTags = ' '; if ($previewUrl) { $ogTags .= ' '; } if (in_array($fileExt, ['mp4', 'webm', 'ogg'])) { $ogTags .= ' '; } elseif (in_array($fileExt, ['jpg', 'jpeg', 'png', 'gif'])) { $ogTags .= ' '; } // Contenido principal con heredoc correcto $htmlContent = << {$title} {$ogTags}

{$title}

{$description}

HTML; if (in_array($fileExt, ['mp4', 'webm', 'ogg'])) { $htmlContent .= << Tu navegador no soporta este formato de video ({$fileExt}). Descargar video HTML; } elseif (in_array($fileExt, ['jpg', 'jpeg', 'png', 'gif'])) { $htmlContent .= << HTML; } elseif ($fileExt === 'html') { $uploadedHtml = file_get_contents($filePath); $htmlContent = preg_replace('/(]*>)/i', '$1' . $ogTags, $uploadedHtml, 1); } $htmlContent .= << HTML; // Guardar if (file_put_contents($outputFile, $htmlContent) !== false) { $shareLink = $siteUrl . '/content/' . $slug . '.html'; $message = '¡Publicado correctamente!'; $messageType = 'success'; } else { $message = 'No se pudo guardar la página (verifica permisos en /content/).'; $messageType = 'danger'; } } } } ?> Portal Personal

Publicar Contenido

Salir