Seditio Source
Root |
./othercms/dle15_0/upload/engine/inc/googlemap.php
<?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
 http://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004-2021 SoftNews Media Group
=====================================================
 This code is protected by copyright
=====================================================
 File: googlemap.php
-----------------------------------------------------
 Use: Create sitemap
=====================================================
*/
if( !defined( 'DATALIFEENGINE' ) OR !defined( 'LOGGED_IN' ) ) {
   
header( "HTTP/1.1 403 Forbidden" );
   
header ( 'Location: ../../' );
    die(
"Hacking attempt!" );
}

if( !
$user_group[$member_id['user_group']]['admin_googlemap'] ) {
   
msg( "error", $lang['index_denied'], $lang['index_denied'] );
}

$user_group = get_vars ( "usergroup" );

if (!
is_array( $user_group )) {
   
$user_group = array ();

   
$db->query ( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );

    while (
$row = $db->get_row () ) {

       
$user_group[$row['id']] = array ();

        foreach (
$row as $key => $value ) {
           
$user_group[$row['id']][$key] = stripslashes($value);
        }

    }
   
set_vars ( "usergroup", $user_group );
   
$db->free ();
}

function
send_url($url, $map) {
                   
   
$data = false;
           
   
$file = $url.urlencode($map);
                   
    if(
function_exists( 'curl_init' ) ) {
                       
       
$ch = curl_init();
       
curl_setopt( $ch, CURLOPT_URL, $file );
       
curl_setopt( $ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] );
       
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, false );
       
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
       
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
       
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);
                       
       
$data = curl_exec( $ch );
       
curl_close( $ch );
           
        return
$data;
                   
    } else {
           
        return @
file_get_contents( $file );
           
    }
           
}

if (
$_POST['action'] == "create") {
   
    if( !
defined('AUTOMODE') ) {
        if(
$_REQUEST['user_hash'] == "" OR $_REQUEST['user_hash'] != $dle_login_hash ) {
           
msg( "error", $lang['addnews_error'], $lang['sess_error'], "javascript:history.go(-1)" );
        }
    }
   
    include_once (
DLEPlugins::Check(ENGINE_DIR.'/classes/google.class.php'));
   
$map = new googlemap($config);

   
$config['charset'] = strtolower($config['charset']);

   
$map->limit = intval($_POST['limit']);
   
$map->news_priority = strip_tags(stripslashes($_POST['priority']));
   
$map->stat_priority = strip_tags(stripslashes($_POST['stat_priority']));
   
$map->cat_priority = strip_tags(stripslashes($_POST['cat_priority']));

   
$allow_list = explode ( ',', $user_group[5]['allow_cats'] );
   
$not_allow_cats = explode ( ',', $user_group[5]['not_allow_cats'] );
   
$stop_list = "";
   
$cat_join = "";

    if (
$allow_list[0] != "all") {
       
        if (
$config['allow_multi_category']) {
           
           
$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $allow_list ) . ")) c ON (p.id=c.news_id) ";
       
        } else {
           
           
$stop_list = "category IN ('" . implode ( "','", $allow_list ) . "') AND ";
       
        }
       
    }

    if(
$not_allow_cats[0] != "" ) {
       
        if (
$config['allow_multi_category']) {
           
           
$stop_list = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $not_allow_cats ) . ") ) AND ";

           
        } else {
           
           
$stop_list = "category NOT IN ('" . implode ( "','", $not_allow_cats ) . "') AND ";
       
        }
       
    }
   
   
$thisdate = date( "Y-m-d H:i:s", time() );
    if(
$config['no_date'] AND !$config['news_future'] ) $where_date = " AND date < '" . $thisdate . "'";
    else
$where_date = "";

   
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post p {$cat_join}WHERE {$stop_list}approve=1{$where_date}" );

    if ( !
$map->limit ) $map->limit = $row['count'];

    if (
$map->limit > 40000 ) {

       
$pages_count = @ceil( $row['count'] / 40000 );

       
$sitemap = $map->build_index( $pages_count );

       
$handler = fopen(ROOT_DIR. "/uploads/sitemap.xml", "wb+");
       
fwrite($handler, $sitemap);
       
fclose($handler);
   
        @
chmod(ROOT_DIR. "/uploads/sitemap.xml", 0666);

       
$sitemap = $map->build_stat();

       
$handler = fopen(ROOT_DIR. "/uploads/sitemap1.xml", "wb+");
       
fwrite($handler, $sitemap);
       
fclose($handler);
   
        @
chmod(ROOT_DIR. "/uploads/sitemap1.xml", 0666);
       
       
$n = 0;

        for (
$i =0; $i < $pages_count; $i++) {

           
$t = $i+2;
           
$n = $n+1;

           
$sitemap = $map->build_map_news( $n );

           
$handler = fopen(ROOT_DIR. "/uploads/sitemap{$t}.xml", "wb+");
           
fwrite($handler, $sitemap);
           
fclose($handler);
       
            @
chmod(ROOT_DIR. "/uploads/sitemap{$t}.xml", 0666);

        }


    } else {

       
$sitemap = $map->build_map();
   
       
$handler = fopen(ROOT_DIR. "/uploads/sitemap.xml", "wb+");
       
fwrite($handler, $sitemap);
       
fclose($handler);
   
        @
chmod(ROOT_DIR. "/uploads/sitemap.xml", 0666);
    }

    if(
defined('AUTOMODE')) {
       
        if (
strpos($config['http_home_url'], "//") === 0) $config['http_home_url'] = "https:".$config['http_home_url'];
        elseif (
strpos($config['http_home_url'], "/") === 0) $config['http_home_url'] = "https://".$_SERVER['HTTP_HOST'].$config['http_home_url'];
           
        if (
$config['allow_alt_url']) {
   
           
$map_link = $config['http_home_url']."sitemap.xml";
       
        } else {
       
           
$map_link = $config['http_home_url']."uploads/sitemap.xml";
       
        }

       
send_url("https://google.com/webmasters/sitemaps/ping?sitemap=", $map_link);
//        send_url("https://ping.blogs.yandex.ru/ping?sitemap=", $map_link);
       
send_url("https://www.bing.com/webmaster/ping.aspx?siteMap=", $map_link);

        die(
"done");

    } else {
$db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '38', '')" ); }

}

echoheader( "<i class=\"fa fa-google position-left\"></i><span class=\"text-semibold\">{$lang['opt_google']}</span>", $lang['header_g_1'] );

if (
strpos($config['http_home_url'], "//") === 0) $config['http_home_url'] = "https:".$config['http_home_url'];
elseif (
strpos($config['http_home_url'], "/") === 0) $config['http_home_url'] = "https://".$_SERVER['HTTP_HOST'].$config['http_home_url'];

echo <<<HTML
<div class="row">
<div class="col-md-7">
<form action="" method="post" class="form-horizontal">
<input type="hidden" name="action" value="create">
<input type="hidden" name="user_hash" value="
{$dle_login_hash}">
<div class="panel panel-default">
  <div class="panel-heading">
   
{$lang['google_map']}
  </div>
  <div class="panel-body">

HTML;

    if(!@
file_exists(ROOT_DIR. "/uploads/sitemap.xml")){

        echo
$lang['no_google_map'];

    } else {
       
        if( !
$langformatdatefull ) $langformatdatefull = "d.m.Y H:i";

       
$file_date = date($langformatdatefull, filectime(ROOT_DIR. "/uploads/sitemap.xml") );

        echo
"<b>".$file_date."</b> ".$lang['google_map_info'];

        if (
$config['allow_alt_url']) {

           
$map_link = $config['http_home_url']."sitemap.xml";

            echo
" <a href=\"".$map_link."\" target=\"_blank\">".$config['http_home_url']."sitemap.xml</a>";

        } else {

           
$map_link = $config['http_home_url']."uploads/sitemap.xml";

            echo
" <a href=\"".$map_link."\" target=\"_blank\">".$config['http_home_url']."uploads/sitemap.xml</a>";

        }

       
$map_link = base64_encode(urlencode($map_link));

        echo
"<br /><br /><input id=\"sendbutton\" name=\"sendbutton\" type=\"button\" class=\"btn bg-slate-600 btn-sm btn-raised mb-10\" value=\"{$lang['google_map_send']}\" /><div id=\"send_result\"></div>";

    }


echo <<<HTML
<script>
$(function(){
    $('#sendbutton').click(function() {
        $('#send_result').html('
{$lang['dle_updatebox']}');
        $.post("engine/ajax/controller.php?mod=sitemap", { url: "
{$map_link}", user_hash: "{$dle_login_hash}" } , function( data ){
                    $('#send_result').html(data);
        });
    });
});
</script>
        <div class="form-group">
          <label class="control-label col-sm-4 col-xs-6">
{$lang['google_nnum']}</label>
          <div class="col-sm-8 col-xs-6">
            <input type="text" class="form-control" style="width:60px;" name="limit"><i class="help-button visible-lg-inline-block text-primary-600 fa fa-question-circle position-right position-left" data-rel="popover" data-trigger="hover" data-placement="auto right" data-content="
{$lang['hint_g_num']}" ></i>
           </div>
         </div>
        <div class="form-group">
          <label class="control-label col-sm-4 col-xs-6">
{$lang['google_stat_priority']}</label>
          <div class="col-sm-8 col-xs-6">
            <input type="text" class="form-control" style="width:60px;" name="stat_priority" value="0.5"><i class="help-button visible-lg-inline-block text-primary-600 fa fa-question-circle position-right position-left" data-rel="popover" data-trigger="hover" data-placement="auto right" data-content="
{$lang['hint_g_priority']}" ></i>
           </div>
         </div>
        <div class="form-group">
          <label class="control-label col-sm-4 col-xs-6">
{$lang['google_priority']}</label>
          <div class="col-sm-8 col-xs-6">
            <input type="text" class="form-control" style="width:60px;" name="priority" value="0.6">
           </div>
         </div>
        <div class="form-group">
          <label class="control-label col-sm-4 col-xs-6">
{$lang['google_cat_priority']}</label>
          <div class="col-sm-8 col-xs-6">
            <input type="text" class="form-control" style="width:60px;" name="cat_priority" value="0.7">
           </div>
         </div>    
   </div>
   <div class="panel-footer"><input type="submit" class="btn bg-teal btn-sm btn-raised" value="
{$lang['google_create']}"></div>    
</div>
</form>
</div>
HTML;

echo <<<HTML
<div class="col-md-5">
<div class="panel panel-default">
  <div class="panel-heading">
   
{$lang['google_main']}
  </div>
  <div class="panel-body">
   
     
{$lang['google_info']}
     
   
   </div>
</div>
</div>
</div>
HTML;


echofooter();
?>