Mister Spy Say ="Hello Kids ... :D"
___ ____ _ _____
| \/ (_) | | / ___|
| . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _
| |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | |
| | | | \__ \ || __/ | /\__/ / |_) | |_| |
\_| |_/_|___/\__\___|_| \____/| .__/ \__, |
| | __/ |
|_| |___/
Bot Mister Spy V3
Mister Spy
Mister Spy
<?php
if (file_exists('class.noticias.php')) require_once('class.noticias.php');
if (file_exists('class.eventos.php')) require_once('class.eventos.php');
if (file_exists('class.rubros.php')) require_once('class.rubros.php');
if (file_exists('class.productos.php')) require_once('class.productos.php');
if (file_exists('class.videos.php')) require_once('class.videos.php');
if (file_exists('class.audios.php')) require_once('class.audios.php');
if (file_exists('class.faqs.php')) require_once('class.faqs.php');
require_once('class.categorias.php');
require_once('class.configuraciones.php');
require_once('class.modulos.php');
require_once('class.sitemapchangefreq.php');
require_once('class.sitemaps.php');
abstract class SitemapGenerator
{
static public function BuildIndexMap()
{
/* declaramos variables necesarias */
$oModulos = new Modulos();
/* abrimos el archivo */
$Handdle = fopen(dirname(__FILE__) . '/../espanol/sitemap.xml', "w");
/* obtenemos informacion de los modulo para verificar cuales estan activos */
$oModuloNoticias = $oModulos->GetById(Modulo::Noticias);
$oModuloEventos = $oModulos->GetById(Modulo::Eventos);
$oModuloDescargas = $oModulos->GetById(Modulo::Descargas);
$oModuloVideos = $oModulos->GetById(Modulo::Videos);
$oModuloFaqs = $oModulos->GetById(Modulo::Faqs);
$oModuloAudios = $oModulos->GetById(Modulo::Audios);
$oModuloCatalogo = $oModulos->GetById(Modulo::Catalogo);
$oModuloCampanias = $oModulos->GetById(Modulo::Campanias);
/* generamos los sitemaps por contenido */
SitemapGenerator::BuildMap('General');
if ($oModuloNoticias->Activo) SitemapGenerator::BuildMap('Noticias');
if ($oModuloEventos->Activo) SitemapGenerator::BuildMap('Eventos');
if ($oModuloDescargas->Activo) SitemapGenerator::BuildMap('Descargas');
if ($oModuloVideos->Activo) SitemapGenerator::BuildMap('Videos');
if ($oModuloFaqs->Activo) SitemapGenerator::BuildMap('Faqs');
if ($oModuloAudios->Activo) SitemapGenerator::BuildMap('Audios');
if ($oModuloCatalogo->Activo) SitemapGenerator::BuildMap('Catalogo');
if ($oModuloCampanias->Activo) SitemapGenerator::BuildMap('Newsletter');
$Node = '<?xml version="1.0" encoding="UTF-8"?>';
$Node.= '<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/siteindex.xsd">';
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_general.xml', 'sitemap_general.xml');
if ($oModuloNoticias->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_noticias.xml', 'sitemap_noticias.xml');
if ($oModuloEventos->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_eventos.xml', 'sitemap_eventos.xml');
if ($oModuloDescargas->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_descargas.xml', 'sitemap_descargas.xml');
if ($oModuloVideos->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_videos.xml', 'sitemap_videos.xml');
if ($oModuloFaqs->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_faqs.xml', 'sitemap_faqs.xml');
if ($oModuloAudios->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_audios.xml', 'sitemap_audios.xml');
if ($oModuloCatalogo->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_catalogo.xml', 'sitemap_catalogo.xml');
if ($oModuloCampanias->Activo)
$Node.= SitemapGenerator::AddChildMap(Config::UrlSitioEspanol . 'sitemap_newsletter.xml', 'sitemap_newsletter.xml');
$Node.= '</sitemapindex>';
fwrite($Handdle, $Node);
fclose($Handdle);
/* notificamos a los buscadores que se ha actualizado el sitemap */
SitemapGenerator::PingToAll();
}
static private function AddChildMap($Loc, $FileName)
{
if (file_exists($FileName))
{
$Node = "<sitemap>\n";
$Node.= "<loc>" . $Loc . "</loc>\n";
$Node.= "<lastmod>" . date("Y-m-d\TH:i:s", filemtime($FileName)) . "-07:00</lastmod>\n";
$Node.= "</sitemap>\n";
return $Node;
}
return '';
}
static public function BuildMap($MapName = 'General')
{
$oCategorias = new Categorias();
/* obtenemos informacion de configuracion del sitio */
$oConfiguraciones = new Configuraciones();
$oConfiguracion = $oConfiguraciones->GetRow();
$Node = '<?xml version="1.0" encoding="UTF-8"?>';
$Node.= '<urlset
xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">';
/* Verificamos el mapa a generar */
switch ($MapName)
{
case 'General':
$FileName='sitemap_general.xml';
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'nosotros', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'delivery', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'contacto', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'ayuda', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'contrasenia_recovery', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'home', '0.5', SitemapChangeFreq::Hourly);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'login', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'mi_cuenta', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'registro', '0.5', SitemapChangeFreq::Never);
break;
case 'Noticias':
$oNoticias = new Noticias();
$FileName = 'sitemap_servicios.xml';
$arrNoticias = $oNoticias->GetAll();
foreach ($arrNoticias as $oNoticia)
{
$Url = Config::UrlSitioEspanol . 'servicios/';
$Url.= UrlFriendly($oNoticia->Titulo) . '_' . $oNoticia->IdNoticia;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
break;
case 'Eventos':
$oEventos = new Eventos();
$FileName = 'sitemap_eventos.xml';
$arrEventos = $oEventos->GetAll();
foreach ($arrEventos as $oEvento)
{
$Url = Config::UrlSitioEspanol . 'eventos/';
$Url.= UrlFriendly($oEvento->Titulo) . '_' . $oEvento->IdEvento;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
break;
case 'Descargas':
$oArchivos = new Archivos();
$FileName = 'sitemap_descargas.xml';
$arrDescargas = $oArchivos->GetAll();
$arrCategoriasDescargas = $oCategorias->GetByIdTipo(ContenidoTipos::Archivos);
foreach ($arrDescargas as $oDescarga)
{
$Url = Config::UrlSitioEspanol . 'archivos/';
$Url.= UrlFriendly($oDescarga->Titulo) . '_' . $oDescarga->IdArchivo;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
foreach ($arrCategoriasDescargas as $oCategoria)
{
$Url = Config::UrlSitioEspanol . 'descargas/';
$Url.= UrlFriendly($oCategoria->KeyCategoria);
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
break;
case 'Videos':
$oVideos = new Videos();
$FileName = 'sitemap_videos.xml';
$arrVideos = $oVideos->GetAll();
$arrCategoriasVideos = $oCategorias->GetByIdTipo(ContenidoTipos::Videos);
foreach ($arrVideos as $oVideo)
{
$Url = Config::UrlSitioEspanol . 'videos/';
$Url.= UrlFriendly($oVideo->Nombre) . '_' . $oVideo->IdVideo;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
foreach ($arrCategoriasVideos as $oCategoria)
{
$Url = Config::UrlSitioEspanol . 'videos/';
$Url.= UrlFriendly($oCategoria->KeyCategoria);
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
break;
case 'Faqs':
$oFaqs = new Faqs();
$FileName = 'sitemap_faqs.xml';
$arrFaqs = $oFaqs->GetAll();
$arrCategoriasFaqs = $oCategorias->GetByIdTipo(ContenidoTipos::Faq);
foreach ($arrFaqs as $oFaq)
{
$Url = Config::UrlSitioEspanol . 'faqs/';
$Url.= UrlFriendly($oFaq->Pregunta) . '_' . $oFaq->IdFaq;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
foreach ($arrCategoriasFaqs as $oCategoria)
{
$Url = Config::UrlSitioEspanol . 'faq/';
$Url.= UrlFriendly($oCategoria->KeyCategoria);
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
break;
case 'Audios':
$oAudios = new Audios();
$FileName = 'sitemap_audios.xml';
$arrAudios = $oAudios->GetAll();
$arrCategoriasAudios = $oCategorias->GetByIdTipo(ContenidoTipos::Audio);
foreach ($arrAudios as $oAudio)
{
$Url = Config::UrlSitioEspanol . 'audio/';
$Url.= UrlFriendly($oAudio->Nombre) . '_' . $oAudio->IdAudio;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
foreach ($arrCategoriasAudios as $oCategoria)
{
$Url = Config::UrlSitioEspanol . 'audio/';
$Url.= UrlFriendly($oCategoria->KeyCategoria);
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
break;
case 'Catalogo':
$oRubros = new Rubros();
$oProductos = new Productos();
$FileName = 'sitemap_catalogo.xml';
$arrRubros = $oRubros->GetAll();
$arrProductos = $oProductos->GetAll();
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'ofertas', '0.5', SitemapChangeFreq::Hourly);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'catalogo', '0.5', SitemapChangeFreq::Hourly);
/* contenido de rubros
foreach ($arrRubros as $oRubro)
{
$Url = Config::UrlSitioEspanol . 'productos/';
$Url.= $oRubro->KeyRubro;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}*/
/* contenido de subrubros */
if ($oConfiguracion->TipoCatalogo == 'B' || $oConfiguracion->TipoCatalogo == 'C')
{
foreach ($arrRubros as $oRubro)
{
$arrSubrubros = $oRubro->GetAllSubrubros();
foreach ($arrSubrubros as $oSubrubro)
{
$Url = Config::UrlSitioEspanol . 'productos/';
$Url.= $oRubro->KeyRubro . '/' . $oSubrubro->KeySubrubro;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
}
}
/* contenido de categorias */
if ($oConfiguracion->TipoCatalogo == 'C')
{
foreach ($arrRubros as $oRubro)
{
$arrSubrubros = $oRubro->GetAllSubrubros();
foreach ($arrSubrubros as $oSubrubro)
{
$arrCategorias = $oSubrubro->GetAllCategorias();
foreach ($arrCategorias as $oCategoria)
{
$Url = Config::UrlSitioEspanol . 'productos/';
$Url.= $oRubro->KeyRubro . '/' . $oSubrubro->KeySubrubro . '/' . $oCategotia->KeyCategoria;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
}
}
}
/* contenido de productos */
foreach ($arrProductos as $oProducto)
{
$Url = Config::UrlSitioEspanol . 'productos/';
$Url.= UrlFriendly($oProducto->Producto) . '_' . $oProducto->IdProducto;
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
break;
case 'Newsletter':
$oEdiciones = new Ediciones();
$FileName = 'sitemap_newsletter.xml';
$arrEdiciones = $oEdiciones->GetAll();
foreach ($arrEdiciones as $oEdicion)
{
$Url = $oEdicion->GetUrl();
$Node.= SitemapGenerator::AddUrl($Url, '0.5', SitemapChangeFreq::Never);
}
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'newsletter_cancelar', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'newsletter_cancelar_ok', '0.5', SitemapChangeFreq::Never);
$Node.= SitemapGenerator::AddUrl(Config::UrlSitioEspanol . 'newsletter_registro', '0.5', SitemapChangeFreq::Never);
break;
}
$Node.= '</urlset>';
$FileName = dirname(__FILE__) . '/../espanol/' . $FileName;
$Handdle = fopen($FileName, "w");
fwrite($Handdle, $Node);
fclose($Handdle);
}
static private function AddUrl($Url = '', $Priority = '0.5', $Freq = 'never')
{
if (empty($Url)) $Url = Config::UrlSitioEspanol;
$Node = "<url>\n";
$Node.= " <loc>" . $Url . "</loc>\n";
$Node.= " <priority>" . $Priority . "</priority>\n";
$Node.= " <changefreq>" . $Freq . "</changefreq>\n";
$Node.= "</url>\n";
return $Node;
}
static private function PingGoogleSitemaps($Url_xml = '')
{
$Url_xml = Config::UrlSitioEspanol . 'sitemap.xml';
$status = 0;
$google = 'www.google.com';
if ($fp = @fsockopen($google, 80))
{
$req = 'GET /webmasters/sitemaps/ping?sitemap=' .
urlencode( $Url_xml ) . " HTTP/1.1\r\n" .
"Host: $google\r\n" .
"User-Agent: Mozilla/5.0 (compatible; " .
PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
"Connection: Close\r\n\r\n";
fwrite($fp, $req);
while (!feof($fp))
{
if (@preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m))
{
$status = intval( $m[1] );
break;
}
}
fclose($fp);
}
return($status);
}
static private function Ping($Url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
}
static private function PingToAll()
{
/* hacemos un ping para avisar a Yahoo */
$Url = 'http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=' . Config::UrlSitioEspanol . 'sitemap.xml';
SitemapGenerator::Ping($Url);
/* hacemos un ping para avisar a Google */
$Url = 'http://www.google.com/webmasters/sitemaps/ping?sitemap=' . Config::UrlSitioEspanol . 'sitemap.xml';
SitemapGenerator::Ping($Url);
/* hacemos un ping para avisar a Ask */
$Url = 'http://submissions.ask.com/ping?sitemap=' . Config::UrlSitioEspanol . 'sitemap.xml';
SitemapGenerator::Ping($Url);
}
}
?>
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat