Example #1
0
}
//Neu khong co IP
if (nv_is_banIp($client_info['ip'])) {
    trigger_error("Hi and Good-bye!!!", 256);
}
//IP Ban
if ($global_config['proxy_blocker'] != 0) {
    $client_info['is_proxy'] = $ips->nv_check_proxy();
    if (nv_is_blocker_proxy($client_info['is_proxy'], $global_config['proxy_blocker'])) {
        trigger_error('ERROR: You are behind a proxy server. Please disconnect and come again!', 256);
    }
}
//Xac dinh cac search_engine
$global_config['engine_allowed'] = array();
if (file_exists(NV_ROOTDIR . '/' . NV_DATADIR . '/search_engine.xml')) {
    $global_config['engine_allowed'] = nv_object2array(simplexml_load_file(NV_ROOTDIR . '/' . NV_DATADIR . '/search_engine.xml'));
}
//Ket noi voi class xu ly request
require_once NV_ROOTDIR . '/includes/class/request.class.php';
$nv_Request = new Request($global_config, $client_info['ip']);
//Ngon ngu
$language_array = nv_parse_ini_file(NV_ROOTDIR . '/includes/ini/langs.ini', true);
//'name_'
require_once NV_ROOTDIR . '/includes/language.php';
require_once NV_ROOTDIR . "/language/" . NV_LANG_INTERFACE . "/global.php";
$global_config['cookie_path'] = $nv_Request->cookie_path;
//vd: /ten_thu_muc_chua_site/
$global_config['cookie_domain'] = $nv_Request->cookie_domain;
//vd: .mydomain1.com
$global_config['site_url'] = $nv_Request->site_url;
//vd: http://mydomain1.com/ten_thu_muc_chua_site
Example #2
0
/**
 * nv_save_file_config_global()
 *
 * @return
 */
function nv_save_file_config_global()
{
    global $db, $sys_info, $global_config, $db_config;
    if ($global_config['idsite']) {
        return false;
    }
    $content_config = "<?php" . "\n\n";
    $content_config .= NV_FILEHEAD . "\n\n";
    $content_config .= "if ( ! defined( 'NV_MAINFILE' ) ) die( 'Stop!!!' );\n\n";
    //disable_classes
    $sys_info['disable_classes'] = (($disable_classes = ini_get('disable_classes')) != '' and $disable_classes != false) ? array_map('trim', preg_split("/[\\s,]+/", $disable_classes)) : array();
    if (!empty($sys_info['disable_classes'])) {
        $disable_classes = "'" . implode("','", $sys_info['disable_classes']) . "'";
    } else {
        $disable_classes = '';
    }
    $content_config .= "\$sys_info['disable_classes']=array(" . $disable_classes . ");\n";
    //disable_functions
    $sys_info['disable_functions'] = (($disable_functions = ini_get('disable_functions')) != '' and $disable_functions != false) ? array_map('trim', preg_split("/[\\s,]+/", $disable_functions)) : array();
    if (extension_loaded('suhosin')) {
        $sys_info['disable_functions'] = array_merge($sys_info['disable_functions'], array_map('trim', preg_split("/[\\s,]+/", ini_get('suhosin.executor.func.blacklist'))));
    }
    if (!empty($sys_info['disable_functions'])) {
        $disable_functions = "'" . implode("','", $sys_info['disable_functions']) . "'";
    } else {
        $disable_functions = '';
    }
    $content_config .= "\$sys_info['disable_functions']=array(" . $disable_functions . ");\n";
    //ini_set_support
    $sys_info['ini_set_support'] = (function_exists('ini_set') and !in_array('ini_set', $sys_info['disable_functions'])) ? true : false;
    $ini_set_support = $sys_info['ini_set_support'] ? 'true' : 'false';
    $content_config .= "\$sys_info['ini_set_support']= " . $ini_set_support . ";\n";
    //Kiem tra ho tro rewrite
    if (function_exists('apache_get_modules')) {
        $apache_modules = apache_get_modules();
        if (in_array('mod_rewrite', $apache_modules)) {
            $sys_info['supports_rewrite'] = 'rewrite_mode_apache';
        } else {
            $sys_info['supports_rewrite'] = false;
        }
    } elseif (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7.') !== false) {
        if (isset($_SERVER['IIS_UrlRewriteModule']) and class_exists('DOMDocument')) {
            $sys_info['supports_rewrite'] = 'rewrite_mode_iis';
        } else {
            $sys_info['supports_rewrite'] = false;
        }
    }
    if ($sys_info['supports_rewrite'] == 'rewrite_mode_iis' or $sys_info['supports_rewrite'] == 'rewrite_mode_apache') {
        $content_config .= "\$sys_info['supports_rewrite']='" . $sys_info['supports_rewrite'] . "';\n";
    } else {
        $content_config .= "\$sys_info['supports_rewrite']=false;\n";
    }
    $content_config .= "\n";
    $config_variable = array();
    $allowed_html_tags = '';
    $sql = "SELECT module, config_name, config_value FROM " . NV_CONFIG_GLOBALTABLE . " WHERE lang='sys' AND (module='global' OR module='define') ORDER BY config_name ASC";
    $result = $db->query($sql);
    while (list($c_module, $c_config_name, $c_config_value) = $result->fetch(3)) {
        if ($c_module == 'define') {
            if (preg_match('/^\\d+$/', $c_config_value)) {
                $content_config .= "define('" . strtoupper($c_config_name) . "', " . $c_config_value . ");\n";
            } else {
                $content_config .= "define('" . strtoupper($c_config_name) . "', '" . $c_config_value . "');\n";
            }
            if ($c_config_name == 'nv_allowed_html_tags') {
                $allowed_html_tags = $c_config_value;
            }
        } else {
            $config_variable[$c_config_name] = $c_config_value;
        }
    }
    $nv_eol = strtoupper(substr(PHP_OS, 0, 3) == 'WIN') ? '"\\r\\n"' : (strtoupper(substr(PHP_OS, 0, 3) == 'MAC') ? '"\\r"' : '"\\n"');
    $upload_max_filesize = min(nv_converttoBytes(ini_get('upload_max_filesize')), nv_converttoBytes(ini_get('post_max_size')), $config_variable['nv_max_size']);
    $content_config .= "define('NV_EOL', " . $nv_eol . ");\n";
    $content_config .= "define('NV_UPLOAD_MAX_FILESIZE', " . floatval($upload_max_filesize) . ");\n";
    if ($config_variable['openid_mode']) {
        $content_config .= "define('NV_OPENID_ALLOWED', true);\n\n";
    }
    $my_domains = array_map('trim', explode(',', $config_variable['my_domains']));
    $my_domains[] = NV_SERVER_NAME;
    $config_variable['my_domains'] = implode(',', array_unique($my_domains));
    $config_variable['check_rewrite_file'] = nv_check_rewrite_file();
    $config_variable['allow_request_mods'] = NV_ALLOW_REQUEST_MODS != '' ? NV_ALLOW_REQUEST_MODS : "request";
    $config_variable['request_default_mode'] = NV_REQUEST_DEFAULT_MODE != '' ? trim(NV_REQUEST_DEFAULT_MODE) : 'request';
    $config_variable['session_save_path'] = NV_SESSION_SAVE_PATH;
    $config_variable['log_errors_list'] = NV_LOG_ERRORS_LIST;
    $config_variable['display_errors_list'] = NV_DISPLAY_ERRORS_LIST;
    $config_variable['send_errors_list'] = NV_SEND_ERRORS_LIST;
    $config_variable['error_log_path'] = NV_LOGS_DIR . '/error_logs';
    $config_variable['error_log_filename'] = NV_ERRORLOGS_FILENAME;
    $config_variable['error_log_fileext'] = NV_LOGS_EXT;
    $config_variable['error_send_email'] = $config_variable['error_send_email'];
    $config_name_array = array('file_allowed_ext', 'forbid_extensions', 'forbid_mimes', 'allow_sitelangs', 'openid_servers', 'allow_request_mods', 'config_sso');
    if (empty($config_variable['openid_servers'])) {
        $config_variable['openid_mode'] = 0;
    }
    if ($config_variable['is_user_forum']) {
        $forum_files = @scandir(NV_ROOTDIR . '/' . DIR_FORUM . '/nukeviet');
        if (!empty($forum_files) and in_array('is_user.php', $forum_files) and in_array('changepass.php', $forum_files) and in_array('editinfo.php', $forum_files) and in_array('login.php', $forum_files) and in_array('logout.php', $forum_files) and in_array('lostpass.php', $forum_files) and in_array('register.php', $forum_files)) {
            $content_config .= "define( 'NV_IS_USER_FORUM', true );\n\n";
        } else {
            $config_variable['is_user_forum'] = 0;
        }
    }
    foreach ($config_variable as $c_config_name => $c_config_value) {
        if ($c_config_name == 'config_sso') {
            $config_sso = empty($c_config_value) ? '' : nv_var_export(unserialize($c_config_value));
            $content_config .= "\$global_config['" . $c_config_name . "']=" . $config_sso . ";\n";
        } elseif (in_array($c_config_name, $config_name_array)) {
            if (!empty($c_config_value)) {
                $c_config_value = "'" . implode("','", array_map("trim", explode(',', $c_config_value))) . "'";
            } else {
                $c_config_value = '';
            }
            $content_config .= "\$global_config['" . $c_config_name . "']=array(" . $c_config_value . ");\n";
        } else {
            if (preg_match('/^\\d+$/', $c_config_value) and $c_config_name != 'facebook_client_id') {
                $content_config .= "\$global_config['" . $c_config_name . "']=" . $c_config_value . ";\n";
            } else {
                $c_config_value = nv_unhtmlspecialchars($c_config_value);
                if (!preg_match("/^[a-z0-9\\-\\_\\.\\,\\;\\:\\@\\/\\s]+\$/i", $c_config_value) and $c_config_name != 'my_domains') {
                    $c_config_value = nv_htmlspecialchars($c_config_value);
                }
                $content_config .= "\$global_config['" . $c_config_name . "']='" . $c_config_value . "';\n";
            }
        }
    }
    $content_config .= "\$global_config['array_theme_type']=" . nv_var_export(array_filter(array_map('trim', explode(',', NV_THEME_TYPE)))) . ";\n";
    //allowed_html_tags
    if (!empty($allowed_html_tags)) {
        $allowed_html_tags = "'" . implode("','", array_map('trim', explode(',', $allowed_html_tags))) . "'";
    } else {
        $allowed_html_tags = '';
    }
    $content_config .= "\$global_config['allowed_html_tags']=array(" . $allowed_html_tags . ");\n";
    //Xac dinh cac search_engine
    $engine_allowed = file_exists(NV_ROOTDIR . '/' . NV_DATADIR . '/search_engine.xml') ? nv_object2array(simplexml_load_file(NV_ROOTDIR . '/' . NV_DATADIR . '/search_engine.xml')) : array();
    $content_config .= "\$global_config['engine_allowed']=" . nv_var_export($engine_allowed) . ";\n";
    $content_config .= "\n";
    $language_array = nv_parse_ini_file(NV_ROOTDIR . '/includes/ini/langs.ini', true);
    $tmp_array = array();
    $lang_array_exit = nv_scandir(NV_ROOTDIR . "/language", "/^[a-z]{2}+\$/");
    foreach ($lang_array_exit as $lang) {
        $tmp_array[$lang] = $language_array[$lang];
    }
    unset($language_array);
    $content_config .= "\$language_array=" . nv_var_export($tmp_array) . ";\n";
    $tmp_array = nv_parse_ini_file(NV_ROOTDIR . '/includes/ini/br.ini', true);
    $content_config .= "\$nv_parse_ini_browsers=" . nv_var_export($tmp_array) . ";\n";
    $tmp_array = nv_parse_ini_file(NV_ROOTDIR . '/includes/ini/mobile.ini', true);
    $content_config .= "\$nv_parse_ini_mobile=" . nv_var_export($tmp_array) . ";\n";
    $tmp_array = nv_parse_ini_file(NV_ROOTDIR . '/includes/ini/os.ini', true);
    $content_config .= "\$nv_parse_ini_os=" . nv_var_export($tmp_array) . ";\n";
    $tmp_array = nv_parse_ini_file(NV_ROOTDIR . '/includes/ini/timezone.ini', true);
    $content_config .= "\$nv_parse_ini_timezone=" . nv_var_export($tmp_array) . ";\n";
    $rewrite = array();
    $global_config['rewrite_optional'] = $config_variable['rewrite_optional'];
    $global_config['rewrite_op_mod'] = $config_variable['rewrite_op_mod'];
    $global_config['rewrite_endurl'] = $config_variable['rewrite_endurl'];
    $global_config['rewrite_exturl'] = $config_variable['rewrite_exturl'];
    if ($config_variable['check_rewrite_file']) {
        require NV_ROOTDIR . '/includes/rewrite.php';
    } else {
        require NV_ROOTDIR . '/includes/rewrite_index.php';
    }
    $content_config .= "\n";
    $nv_plugin_area = array();
    $_sql = 'SELECT * FROM ' . $db_config['prefix'] . '_plugin ORDER BY plugin_area ASC, weight ASC';
    $_query = $db->query($_sql);
    while ($row = $_query->fetch()) {
        $nv_plugin_area[$row['plugin_area']][] = $row['plugin_file'];
    }
    $content_config .= "\$nv_plugin_area=" . nv_var_export($nv_plugin_area) . ";\n\n";
    $content_config .= "\$rewrite_keys=" . nv_var_export(array_keys($rewrite)) . ";\n";
    $content_config .= "\$rewrite_values=" . nv_var_export(array_values($rewrite)) . ";\n";
    $return = file_put_contents(NV_ROOTDIR . "/" . NV_DATADIR . "/config_global.php", trim($content_config), LOCK_EX);
    nv_delete_all_cache();
    return $return;
}
/**
 * nv_html_meta_tags()
 *
 * @param bool $html
 * @return
 */
function nv_html_meta_tags($html = true)
{
    global $global_config, $db_config, $lang_global, $key_words, $description, $module_info, $home, $client_info, $op, $page_title, $canonicalUrl, $meta_property;
    $return = array();
    $site_description = $home ? $global_config['site_description'] : (!empty($description) ? $description : (empty($module_info['description']) ? '' : $module_info['description']));
    if (empty($site_description)) {
        $ds = array();
        if (!empty($page_title)) {
            $ds[] = $page_title;
        }
        if ($op != 'main') {
            $ds[] = $module_info['funcs'][$op]['func_custom_name'];
        }
        $ds[] = $module_info['custom_title'];
        $ds[] = $client_info['selfurl'];
        $site_description = implode(' - ', $ds);
    } elseif ($site_description == 'no') {
        $site_description = '';
    }
    if (!empty($site_description)) {
        $site_description = preg_replace(array('/<[^>]*>/', '/[\\r\\n\\t]+/'), ' ', $site_description);
        $site_description = trim(preg_replace('/[ ]+/', ' ', $site_description));
        if ($global_config['description_length']) {
            $site_description = nv_clean60($site_description, $global_config['description_length'], true);
        }
        $return[] = array('name' => 'name', 'value' => 'description', 'content' => $site_description);
    }
    $kw = array();
    if (!empty($key_words)) {
        if ($key_words != 'no') {
            $kw[] = $key_words;
        }
    } elseif (!empty($module_info['keywords'])) {
        $kw[] = $module_info['keywords'];
    }
    if ($home and !empty($global_config['site_keywords'])) {
        $kw[] = $global_config['site_keywords'];
    }
    if (!empty($kw)) {
        $kw = array_unique($kw);
        $key_words = implode(',', $kw);
        $key_words = preg_replace(array("/[ ]*\\,[ ]+/", "/[\\,]+/"), array(", ", ", "), $key_words);
        $key_words = nv_strtolower(strip_tags($key_words));
        $return[] = array('name' => 'name', 'value' => 'keywords', 'content' => $key_words);
        $return[] = array('name' => 'name', 'value' => 'news_keywords', 'content' => $key_words);
    }
    $return[] = array('name' => 'http-equiv', 'value' => 'Content-Type', 'content' => "text/html; charset=" . $global_config['site_charset']);
    if ($global_config['idsite'] and file_exists(NV_ROOTDIR . '/' . NV_DATADIR . '/site_' . $global_config['idsite'] . '_metatags.xml')) {
        $file_metatags = NV_ROOTDIR . '/' . NV_DATADIR . '/site_' . $global_config['idsite'] . '_metatags.xml';
    } else {
        $file_metatags = NV_ROOTDIR . '/' . NV_DATADIR . '/metatags.xml';
    }
    if (file_exists($file_metatags)) {
        $mt = file_get_contents($file_metatags);
        $patters = array();
        $patters['/\\{CONTENT\\-LANGUAGE\\}/'] = $lang_global['Content_Language'];
        $patters['/\\{LANGUAGE\\}/'] = $lang_global['LanguageName'];
        $patters['/\\{SITE\\_NAME\\}/'] = $global_config['site_name'];
        $patters['/\\{SITE\\_EMAIL\\}/'] = $global_config['site_email'];
        $mt = preg_replace(array_keys($patters), array_values($patters), $mt);
        $mt = preg_replace('/\\{(.*)\\}/', '', $mt);
        $mt = simplexml_load_string($mt);
        $mt = nv_object2array($mt);
        if ($mt['meta_item']) {
            if (isset($mt['meta_item'][0])) {
                $metatags = $mt['meta_item'];
            } else {
                $metatags[] = $mt['meta_item'];
            }
            foreach ($metatags as $meta) {
                if (($meta['group'] == 'http-equiv' or $meta['group'] == 'name' or $meta['group'] == 'property') and preg_match('/^[a-zA-Z0-9\\-\\_\\.\\:]+$/', $meta['value']) and preg_match("/^([^\\'\"]+)\$/", (string) $meta['content'])) {
                    $return[] = array('name' => $meta['group'], 'value' => $meta['value'], 'content' => $meta['content']);
                }
            }
        }
    }
    $return[] = array('name' => 'name', 'value' => 'generator', 'content' => 'NukeViet v4.0');
    if (defined('NV_IS_ADMIN')) {
        $return[] = array('name' => 'http-equiv', 'value' => 'refresh', 'content' => $global_config['admin_check_pass_time']);
    }
    if ($global_config['current_theme_type'] == 'r') {
        $return[] = array('name' => 'name', 'value' => 'viewport', 'content' => "width=device-width, initial-scale=1");
    }
    if ($home) {
        $canonicalUrl = nv_url_rewrite(NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $global_config['site_home_module'], true);
    } elseif (empty($canonicalUrl)) {
        $canonicalUrl = str_replace(NV_MY_DOMAIN . '/', NV_MAIN_DOMAIN . '/', $client_info['selfurl']);
    }
    if (substr($canonicalUrl, 0, 4) != 'http') {
        if (substr($canonicalUrl, 0, 1) != '/') {
            $canonicalUrl = NV_BASE_SITEURL . $canonicalUrl;
        }
        $canonicalUrl = NV_MAIN_DOMAIN . $canonicalUrl;
    }
    //Open Graph protocol http://ogp.me
    if ($global_config['metaTagsOgp']) {
        if (empty($meta_property['og:title'])) {
            $meta_property['og:title'] = $page_title;
        }
        if (empty($meta_property['og:description'])) {
            $meta_property['og:description'] = $site_description;
        }
        if (empty($meta_property['og:type'])) {
            $meta_property['og:type'] = 'website';
        }
        if (empty($meta_property['og:url'])) {
            $meta_property['og:url'] = $canonicalUrl;
        }
        $meta_property['og:site_name'] = $global_config['site_name'];
        foreach ($meta_property as $key => $value) {
            if (is_array($value)) {
                foreach ($value as $value_i) {
                    if (!empty($value_i)) {
                        $return[] = array('name' => 'property', 'value' => $key, 'content' => $value_i);
                    }
                }
            } elseif (!empty($value)) {
                $return[] = array('name' => 'property', 'value' => $key, 'content' => $value);
            }
        }
    } else {
        foreach ($meta_property as $key => $value) {
            if (!preg_match('/^og\\:/', $key) and !empty($value)) {
                $return[] = array('name' => 'property', 'value' => $key, 'content' => $value);
            }
        }
    }
    if (!$html) {
        return $return;
    }
    $res = "";
    foreach ($return as $link) {
        $res .= "<meta " . $link['name'] . "=\"" . $link['value'] . "\" content=\"" . $link['content'] . "\" />" . PHP_EOL;
    }
    return $res;
}
<?php

/**
 * @Project NUKEVIET BLOG 4.x
 * @Author PHAN TAN DUNG (phantandung92@gmail.com)
 * @Copyright (C) 2014 PHAN TAN DUNG. All rights reserved
 * @License GNU/GPL version 2 or any later version
 * @Createdate Dec 11, 2013, 09:50:11 PM
 */
if (!defined('NV_BLOG_ADMIN')) {
    die('Stop!!!');
}
$BL->callFrameWorks('shadowbox');
$page_title = $BL->lang('cfgStructureData');
$array = array();
$_array_locales = nv_object2array(simplexml_load_file(NV_ROOTDIR . '/modules/' . $module_file . '/locales/locales.xml')->xpath('locale'));
$array_locales = array();
foreach ($_array_locales as $locale) {
    $array_locales[$locale['codes']['code']['standard']['representation']] = $locale['englishName'];
}
unset($_array_locales, $locale);
// Lay thong tin submit
if ($nv_Request->isset_request('submit', 'post')) {
    $array['sysGoogleAuthor'] = nv_substr($nv_Request->get_title('sysGoogleAuthor', 'post', '', 0), 0, 30);
    $array['sysFbAppID'] = nv_substr($nv_Request->get_title('sysFbAppID', 'post', '', 0), 0, 30);
    $array['sysFbAdminID'] = nv_substr($nv_Request->get_title('sysFbAdminID', 'post', '', 0), 0, 30);
    $array['sysLocale'] = nv_substr($nv_Request->get_title('sysLocale', 'post', '', 0), 0, 255);
    $array['sysDefaultImage'] = $nv_Request->get_string('sysDefaultImage', 'post', '');
    if (!preg_match("/^([0-9]+)\$/", $array['sysGoogleAuthor'])) {
        $array['sysGoogleAuthor'] = '';
    }
 /**
  * Diagnostic::getInfo()
  *
  * @param mixed $time
  * @return
  */
 private function getInfo($time)
 {
     $content = array();
     $content['item'] = array();
     if (preg_match('/^localhost|127\\.0\\.0/is', $this->currentDomain)) {
         $content['item'][] = array('date' => gmdate('D, d M Y H:i:s', NV_CURRENTTIME) . ' GMT', 'PageRank' => 0, 'AlexaRank' => 0, 'AlexaBackLink' => 0, 'AlexaReach' => 0, 'GoogleBackLink' => 0, 'GoogleIndexed' => 0, 'BingBackLink' => 0, 'BingIndexed' => 0);
         return $content;
     }
     $lastProcess = 0;
     if (file_exists($this->currentCache)) {
         $content = simplexml_load_file($this->currentCache);
         $content = nv_object2array($content);
         if (!isset($content['item'][0])) {
             $content['item'] = array($content['item']);
         }
         if (!empty($time)) {
             $p = NV_CURRENTTIME - $time;
             $filemtime = @filemtime($this->currentCache);
             if ($filemtime < $p) {
                 return $this->newGetInfo($content);
             }
         }
         $lastProcess = $content['item'][sizeof($content['item']) - 1]['date'];
         $lastProcess = strtotime($lastProcess);
     }
     $currentMonth = mktime(0, 0, 0, date('m', NV_CURRENTTIME), 1, date('Y', NV_CURRENTTIME));
     if ($lastProcess < $currentMonth) {
         $content = $this->newGetInfo($content);
     }
     return $content;
 }
Example #6
0
    $error = $lang_global['error_valid_response'];
} elseif (!empty($array['error']['message'])) {
    $error = $array['error']['message'];
}
// Show error
if (!empty($error)) {
    $xtpl->assign('ERROR', $error);
    $xtpl->parse('main.error');
} elseif ($array['status'] == 'notlogin') {
    $xtpl->assign('LOGIN_NOTE', sprintf($lang_module['login_require'], NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=login&amp;redirect=' . nv_redirect_encrypt($client_info['selfurl'])));
    $xtpl->parse('main.login');
} elseif (empty($array['data'])) {
    $xtpl->parse('main.empty');
} else {
    // Save cookies
    nv_store_cookies(nv_object2array($cookies), $stored_cookies);
    foreach ($array['data'] as $row) {
        $row['rating_avg'] = ceil($row['rating_avg']);
        $row['type'] = $lang_module['types_' . intval($row['tid'])];
        $row['compatible_class'] = empty($row['compatible']) ? 'text-danger' : 'text-success';
        $row['compatible_title'] = empty($row['compatible']) ? $lang_module['incompatible'] : $lang_module['compatible'];
        if (empty($row['image_small'])) {
            $row['image_small'] = NV_BASE_SITEURL . 'themes/default/images/no_image.gif';
        }
        $row['install_link'] = NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=install&amp;id=' . $row['id'];
        $row['detail_link'] = NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=detail&amp;id=' . $row['id'];
        $row['detail_title'] = sprintf($lang_module['detail_title'], $row['title']);
        $xtpl->assign('ROW', $row);
        // Parse rating
        for ($i = 1; $i <= 5; $i++) {
            $xtpl->assign('STAR', $row['rating_avg'] == $i ? " active" : "");
Example #7
0
                    if (isset($userModules[$row['basename']])) {
                        continue;
                    }
                    $v = '';
                    $p = 0;
                    if (preg_match("/^([^\\s]+)\\s+([\\d]+)\$/", $row['version'], $matches)) {
                        $v = (string) $matches[1];
                        $p = (int) $matches[2];
                    }
                    $userModules[$row['basename']] = array('basename' => $row['basename'], 'version' => $v, 'mode' => isset($onlineModules[$row['basename']]['mode']) ? $onlineModules[$row['basename']]['mode'] : false, 'time' => $p, 'author' => $row['author']);
                }
            }
            $NvUpdate->module_info($onlineModules, $userModules);
        } elseif ($type == 'module') {
            $_modules = nv_getExtVersion(0);
            $_modules = nv_object2array($_modules);
            $_modules = $_modules['module'];
            $onlineModules = array();
            foreach ($_modules as $m) {
                $name = array_shift($m);
                $onlineModules[$name] = $m;
                unset($onlineModules[$name]['date']);
                $onlineModules[$name]['pubtime'] = strtotime($m['date']);
            }
            $NvUpdate->module_com_info($onlineModules);
        } else {
            die('&nbsp;');
        }
    }
    $contents = $NvUpdate->step3($array);
}
Example #8
0
/**
 * nv_html_meta_tags()
 *
 * @return
 */
function nv_html_meta_tags()
{
    global $global_config, $lang_global, $key_words, $description, $module_info, $home, $client_info, $op, $page_title, $canonicalUrl;
    $return = "";
    if ($home) {
        $return .= "<meta name=\"description\" content=\"" . strip_tags($global_config['site_description']) . "\" />\n";
    } else {
        if (!empty($description)) {
            $return .= "<meta name=\"description\" content=\"" . strip_tags($description) . "\" />\n";
        } elseif (!empty($module_info['description'])) {
            $return .= "<meta name=\"description\" content=\"" . strip_tags($module_info['description']) . "\" />\n";
        } else {
            $ds = array();
            if (!empty($page_title)) {
                $ds[] = $page_title;
            }
            if ($op != "main") {
                $ds[] = $module_info['funcs'][$op]['func_custom_name'];
            }
            $ds[] = $module_info['custom_title'];
            $ds[] = $client_info['selfurl'];
            $return .= "<meta name=\"description\" content=\"" . strip_tags(implode(" - ", $ds)) . "\" />\n";
        }
    }
    $kw = array();
    if (!empty($key_words)) {
        $kw[] = $key_words;
    }
    if (!empty($module_info['keywords'])) {
        $kw[] = $module_info['keywords'];
    }
    if (!empty($global_config['site_keywords'])) {
        $kw[] = $global_config['site_keywords'];
    }
    if (!empty($kw)) {
        $kw = array_unique($kw);
        $kw = implode(",", $kw);
        $kw = preg_replace(array("/[ ]*\\,[ ]+/", "/[\\,]+/"), array(",", ","), $kw);
        $key_words = nv_strtolower(strip_tags($kw));
        $return .= "<meta name=\"keywords\" content=\"" . $key_words . "\" />\n";
    }
    $return .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . $global_config['site_charset'] . "\" />\n";
    $file_metatags = NV_ROOTDIR . "/" . NV_DATADIR . "/metatags.xml";
    if (file_exists($file_metatags)) {
        $mt = file_get_contents($file_metatags);
        $patters = array();
        $patters['/\\{CONTENT\\-LANGUAGE\\}/'] = $lang_global['Content_Language'];
        $patters['/\\{LANGUAGE\\}/'] = $lang_global['LanguageName'];
        $patters['/\\{SITE\\_NAME\\}/'] = $global_config['site_name'];
        $patters['/\\{SITE\\_EMAIL\\}/'] = $global_config['site_email'];
        $mt = preg_replace(array_keys($patters), array_values($patters), $mt);
        $mt = preg_replace("/\\{(.*)\\}/", "", $mt);
        $mt = simplexml_load_string($mt);
        $mt = nv_object2array($mt);
        if ($mt['meta_item']) {
            if (isset($mt['meta_item'][0])) {
                $metatags = $mt['meta_item'];
            } else {
                $metatags[] = $mt['meta_item'];
            }
            foreach ($metatags as $meta) {
                if (($meta['group'] == "http-equiv" or $meta['group'] == "name") and preg_match("/^[a-zA-Z0-9\\-\\_\\.]+\$/", $meta['value']) and preg_match("/^([^\\'\"]+)\$/", (string) $meta['content'])) {
                    $return .= "<meta " . $meta['group'] . "=\"" . $meta['value'] . "\" content=\"" . $meta['content'] . "\" />\n";
                }
            }
        }
    }
    $return .= "<meta name=\"generator\" content=\"NukeViet v3.x\" />\n";
    if (defined('NV_IS_ADMIN')) {
        $return .= "<meta http-equiv=\"refresh\" content=\"" . NV_ADMIN_CHECK_PASS_TIME . "\" />\n";
    }
    if (empty($canonicalUrl)) {
        $canonicalUrl = $client_info['selfurl'];
    }
    if (substr($canonicalUrl, 0, 4) != "http") {
        if (substr($canonicalUrl, 0, 1) != "/") {
            $canonicalUrl = NV_BASE_SITEURL . $canonicalUrl;
        }
        $canonicalUrl = NV_MY_DOMAIN . $canonicalUrl;
    }
    $return .= "<link rel=\"canonical\" href=\"" . $canonicalUrl . "\" />\n";
    return $return;
}
Example #9
0
        $array2XML = new Array2XML();
        $array2XML->saveXML($metatags, 'metatags', $file_metatags, $global_config['site_charset']);
    }
    $metaTagsOgp = (int) $nv_Request->get_bool('metaTagsOgp', 'post');
    $description_length = $nv_Request->get_int('description_length', 'post');
    $db->query("UPDATE " . NV_CONFIG_GLOBALTABLE . " SET config_value = '" . $metaTagsOgp . "' WHERE lang = 'sys' AND module = 'site' AND config_name = 'metaTagsOgp'");
    $db->query("UPDATE " . NV_CONFIG_GLOBALTABLE . " SET config_value = '" . $description_length . "' WHERE lang = 'sys' AND module = 'site' AND config_name = 'description_length'");
    nv_delete_all_cache(false);
    Header('Location: ' . NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op . '&rand=' . nv_genpass());
    exit;
} else {
    if (!file_exists($file_metatags)) {
        $file_metatags = NV_ROOTDIR . '/' . NV_DATADIR . '/metatags.xml';
    }
    $mt = simplexml_load_file($file_metatags);
    $mt = nv_object2array($mt);
    if ($mt['meta_item']) {
        if (isset($mt['meta_item'][0])) {
            $metatags['meta'] = $mt['meta_item'];
        } else {
            $metatags['meta'][] = $mt['meta_item'];
        }
    }
}
$page_title = $lang_module['metaTagsConfig'];
$xtpl = new XTemplate('metatags.tpl', NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/modules/' . $module_file);
$xtpl->assign('LANG', $lang_module);
$xtpl->assign('GLANG', $lang_global);
$xtpl->assign('NOTE', sprintf($lang_module['metaTagsNote'], implode(', ', $ignore)));
$xtpl->assign('VARS', $lang_module['metaTagsVar'] . ': ' . implode(', ', $vas));
$xtpl->assign('NV_BASE_ADMINURL', NV_BASE_ADMINURL);
Example #10
0
                $module_info['layout_funcs'] = array();
                $sth = $db->prepare('SELECT f.func_name, t.layout FROM ' . NV_MODFUNCS_TABLE . ' f
					INNER JOIN ' . NV_PREFIXLANG . '_modthemes t ON f.func_id=t.func_id
					WHERE f.in_module = :module AND t.theme= :theme');
                $sth->bindParam(':module', $module_name, PDO::PARAM_STR);
                $sth->bindParam(':theme', $global_config['module_theme'], PDO::PARAM_STR);
                $sth->execute();
                while ($row = $sth->fetch()) {
                    $module_info['layout_funcs'][$row['func_name']] = $row['layout'];
                }
                $sth->closeCursor();
                $cache = serialize($module_info['layout_funcs']);
                nv_set_cache('modules', $cache_file, $cache);
            }
            // Doc file cau hinh giao dien
            $themeConfig = nv_object2array(simplexml_load_file(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/config.ini'));
            require NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/theme.php';
            // Ket noi ngon ngu theo theme
            if (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/' . NV_LANG_INTERFACE . '.php')) {
                require NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/' . NV_LANG_INTERFACE . '.php';
            } elseif (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/en.php')) {
                require NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/en.php';
            }
            // Xac dinh template module
            $module_info['template'] = $global_config['module_theme'];
            if (!file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/modules/' . $module_file)) {
                if (file_exists(NV_ROOTDIR . '/themes/default/modules/' . $module_file)) {
                    $module_info['template'] = 'default';
                }
            }
            // Ket noi voi file functions.php, file chua cac function dung chung
Example #11
0
/**
 * nv_html_meta_tags()
 *
 * @return
 */
function nv_html_meta_tags()
{
    global $global_config, $db_config, $lang_global, $key_words, $description, $module_info, $home, $client_info, $op, $page_title, $canonicalUrl, $meta_property, $id_profile_googleplus;
    $return = '';
    $site_description = $home ? $global_config['site_description'] : (!empty($description) ? $description : (empty($module_info['description']) ? '' : $module_info['description']));
    if (empty($site_description)) {
        $ds = array();
        if (!empty($page_title)) {
            $ds[] = $page_title;
        }
        if ($op != 'main') {
            $ds[] = $module_info['funcs'][$op]['func_custom_name'];
        }
        $ds[] = $module_info['custom_title'];
        $ds[] = $client_info['selfurl'];
        $site_description = implode(' - ', $ds);
    } elseif ($site_description == 'no') {
        $site_description = '';
    }
    if (!empty($site_description)) {
        $site_description = preg_replace('/<[^>]*>/', ' ', $site_description);
        // ----- remove HTML TAGs
        $site_description = str_replace("\r", '', $site_description);
        // --- replace with empty space
        $site_description = str_replace("\n", ' ', $site_description);
        // --- replace with space
        $site_description = str_replace("\t", ' ', $site_description);
        // --- replace with space
        $site_description = trim(preg_replace('/[ ]+/', ' ', $site_description));
        // ----- remove multiple spaces
        if ($global_config['description_length']) {
            $site_description = nv_clean60($site_description, $global_config['description_length'], true);
        }
        $return .= "<meta name=\"description\" content=\"" . $site_description . "\" />\n";
    }
    $kw = array();
    if (!empty($key_words)) {
        if ($key_words != 'no') {
            $kw[] = $key_words;
        }
    } elseif (!empty($module_info['keywords'])) {
        $kw[] = $module_info['keywords'];
    }
    if ($home and !empty($global_config['site_keywords'])) {
        $kw[] = $global_config['site_keywords'];
    }
    if (!empty($kw)) {
        $kw = array_unique($kw);
        $key_words = implode(',', $kw);
        $key_words = preg_replace(array("/[ ]*\\,[ ]+/", "/[\\,]+/"), array(", ", ", "), $key_words);
        $key_words = nv_strtolower(strip_tags($key_words));
        $return .= "<meta name=\"keywords\" content=\"" . $key_words . "\" />\n";
        $return .= "<meta name=\"news_keywords\" content=\"" . $key_words . "\" />\n";
    }
    $return .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . $global_config['site_charset'] . "\" />\n";
    if ($global_config['idsite'] and file_exists(NV_ROOTDIR . '/' . NV_DATADIR . '/site_' . $global_config['idsite'] . '_metatags.xml')) {
        $file_metatags = NV_ROOTDIR . '/' . NV_DATADIR . '/site_' . $global_config['idsite'] . '_metatags.xml';
    } else {
        $file_metatags = NV_ROOTDIR . '/' . NV_DATADIR . '/metatags.xml';
    }
    if (file_exists($file_metatags)) {
        $mt = file_get_contents($file_metatags);
        $patters = array();
        $patters['/\\{CONTENT\\-LANGUAGE\\}/'] = $lang_global['Content_Language'];
        $patters['/\\{LANGUAGE\\}/'] = $lang_global['LanguageName'];
        $patters['/\\{SITE\\_NAME\\}/'] = $global_config['site_name'];
        $patters['/\\{SITE\\_EMAIL\\}/'] = $global_config['site_email'];
        $mt = preg_replace(array_keys($patters), array_values($patters), $mt);
        $mt = preg_replace('/\\{(.*)\\}/', '', $mt);
        $mt = simplexml_load_string($mt);
        $mt = nv_object2array($mt);
        if ($mt['meta_item']) {
            if (isset($mt['meta_item'][0])) {
                $metatags = $mt['meta_item'];
            } else {
                $metatags[] = $mt['meta_item'];
            }
            foreach ($metatags as $meta) {
                if (($meta['group'] == 'http-equiv' or $meta['group'] == 'name' or $meta['group'] == 'property') and preg_match('/^[a-zA-Z0-9\\-\\_\\.\\:]+$/', $meta['value']) and preg_match("/^([^\\'\"]+)\$/", (string) $meta['content'])) {
                    $return .= "<meta " . $meta['group'] . "=\"" . $meta['value'] . "\" content=\"" . $meta['content'] . "\" />\n";
                }
            }
        }
    }
    $return .= "<meta name=\"generator\" content=\"NukeViet v4.x\" />\n";
    if (defined('NV_IS_ADMIN')) {
        $return .= "<meta http-equiv=\"refresh\" content=\"" . $global_config['admin_check_pass_time'] . "\" />\n";
    }
    if ($home) {
        $canonicalUrl = nv_url_rewrite(NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $global_config['site_home_module'], true);
    } elseif (empty($canonicalUrl)) {
        $canonicalUrl = str_replace(NV_MY_DOMAIN . '/', NV_MAIN_DOMAIN . '/', $client_info['selfurl']);
    }
    if (substr($canonicalUrl, 0, 4) != 'http') {
        if (substr($canonicalUrl, 0, 1) != '/') {
            $canonicalUrl = NV_BASE_SITEURL . $canonicalUrl;
        }
        $canonicalUrl = NV_MAIN_DOMAIN . $canonicalUrl;
    }
    //Open Graph protocol http://ogp.me
    if ($global_config['metaTagsOgp']) {
        if (empty($meta_property['og:title'])) {
            $meta_property['og:title'] = $page_title;
        }
        if (empty($meta_property['og:description'])) {
            $meta_property['og:description'] = $site_description;
        }
        if (empty($meta_property['og:type'])) {
            $meta_property['og:type'] = 'WebPage';
        }
        if (empty($meta_property['og:url'])) {
            $meta_property['og:url'] = $canonicalUrl;
        }
        $meta_property['og:site_name'] = $global_config['site_name'];
        foreach ($meta_property as $key => $value) {
            if (!empty($value)) {
                $return .= "<meta property=\"" . $key . "\" content=\"" . $value . "\" />\n";
            }
        }
    } else {
        foreach ($meta_property as $key => $value) {
            if (!preg_match('/^og\\:/', $key) and !empty($value)) {
                $return .= "<meta property=\"" . $key . "\" content=\"" . $value . "\" />\n";
            }
        }
    }
    //tài khoản Google+
    if ($id_profile_googleplus == 0) {
        $id_profile_googleplus = $module_info['gid'];
    }
    if ($id_profile_googleplus > 0) {
        $dbgoogleplus = nv_db_cache('SELECT gid, idprofile FROM ' . $db_config['prefix'] . '_googleplus', 'gid', 'seotools');
        if (isset($dbgoogleplus[$id_profile_googleplus]['idprofile'])) {
            $return .= "<link rel=\"author\" href=\"https://plus.google.com/" . $dbgoogleplus[$id_profile_googleplus]['idprofile'] . "/\" />\n";
        }
    }
    $return .= "<link rel=\"canonical\" href=\"" . $canonicalUrl . "\" />\n";
    return $return;
}
Example #12
0
/**
 * NukevietChange_getContents()
 *
 * @param bool $refresh
 * @return
 */
function NukevietChange_getContents($refresh = false)
{
    global $global_config;
    $url = "http://code.google.com/feeds/p/nuke-viet/svnchanges/basic";
    $xmlfile = "nukevietGoogleCode.cache";
    $load = false;
    $p = NV_CURRENTTIME - 18000;
    $p2 = NV_CURRENTTIME - 120;
    if (!file_exists(NV_ROOTDIR . "/" . NV_CACHEDIR . "/" . $xmlfile)) {
        $load = true;
    } else {
        $filemtime = @filemtime(NV_ROOTDIR . "/" . NV_CACHEDIR . "/" . $xmlfile);
        if ($filemtime < $p) {
            $load = true;
        } elseif ($refresh and $filemtime < $p2) {
            $load = true;
        }
    }
    if ($load) {
        include NV_ROOTDIR . '/includes/class/geturl.class.php';
        $UrlGetContents = new UrlGetContents($global_config);
        $content = $UrlGetContents->get($url);
        if (!empty($content)) {
            if (nv_function_exists('mb_convert_encoding')) {
                $content = mb_convert_encoding($content, "utf-8");
            }
            $content = simplexml_load_string($content);
            $content = nv_object2array($content);
            if (!empty($content)) {
                $code = array();
                $code['updated'] = strtotime($content['updated']);
                $code['link'] = $content['link'][0]['@attributes']['href'];
                $code['entry'] = array();
                if (isset($content['entry']) and !empty($content['entry'])) {
                    foreach ($content['entry'] as $entry) {
                        unset($matches);
                        $cont = $entry['content'];
                        preg_match_all("/(modify|add|delete)[^a-z0-9\\/\\.\\-\\_]+(\\/trunk\\/nukeviet\\/)([a-z0-9\\/\\.\\-\\_]+)/mi", $cont, $matches, PREG_SET_ORDER);
                        $cont = array();
                        if (!empty($matches)) {
                            foreach ($matches as $matche) {
                                $key = strtolower($matche[1]);
                                if (!isset($cont[$key])) {
                                    $cont[$key] = array();
                                }
                                $cont[$key][] = $matche[3];
                            }
                        }
                        unset($matches2);
                        preg_match("/Revision[\\s]+([\\d]*)[\\s]*\\:[\\s]+(.*?)/Uis", $entry['title'], $matches2);
                        $code['entry'][] = array('updated' => strtotime($entry['updated']), 'title' => $matches2[2], 'id' => $matches2[1], 'link' => $entry['link']['@attributes']['href'], 'author' => $entry['author']['name'], 'content' => $cont);
                    }
                    nv_set_cache($xmlfile, serialize($code));
                    return $code;
                }
            }
        }
    }
    $content = nv_get_cache($xmlfile);
    if (!$content) {
        return false;
    }
    $content = unserialize($content);
    return $content;
}