/* Plugin Name: Zarif Tapetes Ambientados Plugin URI: https://zariftapetes.com.br/ Description: Carrossel de tapetes ambientados com painel administrativo e edição. Version: 3.1.8b2.20 Author: Zarif Dev Author URI: https://zariftapetes.com.br/ */ define('ZARIF_TAPETES_DIR', plugin_dir_path(__FILE__)); define('ZARIF_TAPETES_URL', plugin_dir_url(__FILE__)); register_activation_hook(__FILE__, function() { $upload_dir = wp_upload_dir(); $path = $upload_dir['basedir'] . '/zarif_tapetes_ambientados'; if (!file_exists($path)) { mkdir($path, 0755, true); } if (!file_exists($path)) { mkdir($path, 0755, true); } } }); } // Definições baseadas em wp_upload_dir() add_action('plugins_loaded', function() { $upload_dir = wp_upload_dir(); define('ZARIF_TAPETES_UPLOADS', $upload_dir['basedir'] . '/zarif_tapetes_ambientados'); define('ZARIF_TAPETES_UPLOADS_URL', $upload_dir['baseurl'] . '/zarif_tapetes_ambientados'); // Menu no painel add_action('admin_menu', function() { add_menu_page('Tapetes Ambientados', 'Tapetes Ambientados', 'manage_options', 'zarif-tapetes', 'zarif_tapetes_page'); // Painel administrativo function zarif_tapetes_page() { echo '
'; echo '

Zarif Tapetes Ambientados

'; echo '

Versão: 3.1.8b2.20 – Última atualização: 20/07/2025 às 22:06
Desenvolvido por Zarif Dev

'; // Upload echo '
'; echo '

Enviar novas imagens

'; echo ''; echo '

'; echo '
'; // Upload handling if (isset($_POST['upload']) && !empty($_FILES['tapete_upload'])) { foreach ($_FILES['tapete_upload']['tmp_name'] as $i => $tmp) { $name = basename($_FILES['tapete_upload']['name'][$i]); move_uploaded_file($tmp, ZARIF_TAPETES_UPLOADS . '/' . $name); } } $files = glob(ZARIF_TAPETES_UPLOADS . '/*.{jpg,jpeg,png}', GLOB_BRACE); if (!$files) { echo "

Nenhuma imagem na pasta.

"; return; } $index = isset($_POST['index']) ? (int)$_POST['index'] : 0; if ($index < 0) $index = 0; if ($index >= count($files)) $index = count($files) - 1; $file = $files[$index]; $basename = basename($file); $meta_file = $file . '.json'; $default_title = pathinfo($basename, PATHINFO_FILENAME); $meta = file_exists($meta_file) ? json_decode(file_get_contents($meta_file), true) : ['title' => $default_title, 'desc' => $default_title, 'link' => '#']; $alt_title = isset($meta['title']) && $meta['title'] ? $meta['title'] : pathinfo($file, PATHINFO_FILENAME); $description = isset($meta['desc']) && $meta['desc'] ? $meta['desc'] : pathinfo($file, PATHINFO_FILENAME); echo '
'; echo ''; echo ''; echo '
' . esc_attr($alt_title) . '

'; echo '

'; echo '

'; echo '

'; echo ''; echo '

'; echo '
'; echo '
'; if (isset($_POST['save_meta'])) { $meta_data = ['title' => sanitize_text_field($_POST['title']), 'desc' => sanitize_text_field($_POST['desc']), 'link' => esc_url_raw($_POST['link'])]; file_put_contents($file . '.json', json_encode($meta_data)); } echo ''; } // Shortcode add_shortcode('tapetes_ambientados', function() { $files = glob(ZARIF_TAPETES_UPLOADS . '/*.{jpg,jpeg,png}', GLOB_BRACE); if (!$files) return "

Sem imagens para exibir.

"; $items = []; foreach ($files as $file) { $basename = basename($file); $meta_file = $file . '.json'; $default_title = pathinfo($basename, PATHINFO_FILENAME); $meta = file_exists($meta_file) ? json_decode(file_get_contents($meta_file), true) : ['title' => $default_title, 'desc' => $default_title, 'link' => '#']; $items[] = ['img' => ZARIF_TAPETES_UPLOADS_URL . '/' . $basename, 'title' => $meta['title'], 'desc' => $meta['desc'], 'link' => $meta['link']]; } ob_start(); ?>

echo '
' . esc_attr($alt_title) . '

';