Block Tạo block cập nhật giá cà phê từ 1 đoạn code

Thành viên năng động
Mình có dùng đoạn code này từ lâu bên wordpress để cập nhật giá cà phê ( demo: caphevietnam.net )
Mình có thể chuyển đoạn code này về nukeviet để sử dụng dưới dạng block được không nhỉ?
Đoạn code như sau:
PHP:
<?php
/*
Plugin Name: Giá Cà Phê
Plugin URI: http://wpvn.info/
Description: Widget giá cà phê by wpvn.info
Version: 1.0
Author: wpvn
Author URI: http://wpvn.info/
License: GPLv2 or later
*/

function register_wpvn_gia_ca_phe_widget() {
    register_widget( 'WPVN_Gia_Ca_Phe_Widget' );
}
add_action( 'widgets_init', 'register_wpvn_gia_ca_phe_widget' );

class WPVN_Gia_Ca_Phe_Widget extends WP_Widget {

    public function __construct() {
        parent::__construct(
            'wpvn_gia_ca_phe_widget', // Base ID
            'Giá Cà Phê', // Name
            array( 'description' => 'Giá Cà Phê', ) // Args
        );
    }

    public function widget( $args, $instance ) {
         echo $args['before_widget'];
        if ( ! empty( $instance['title'] ) ) {
            echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title'];
        }
        ?>
        <table id="wpvn-gcp">
            <tbody>
            <?php
            if ( false === ( $html = get_transient( 'wpvn_gia_ca_phe' ) ) )
            {
                $html = wp_remote_get('http://giacaphe.com/');
                $html = $html['body'];
                preg_match("'<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"gianoidia\">(.*?)</table>'si", $html, $match);
                if ( $match ) {
                    $html = trim( strip_tags( $match[1], '<tr><th><td>' ) );
                    set_transient( 'wpvn_gia_ca_phe', $html, 60*10 );
                } else {
                    $html = '<tr><td>Lỗi không lấy được dữ liệu!!!</td></tr>';
                }
            }
            echo $html;
            ?>
            </tbody>
        </table>
        <?php
        echo $args['after_widget'];
    }

    public function update( $new_instance, $old_instance ) {
        $instance = $old_instance;
        $instance['title'] = strip_tags($new_instance['title']);

        return $instance;
    }

    public function form( $instance ) {
        $title = ! empty( $instance['title'] ) ? $instance['title'] : 'Giá Cà Phê';
        ?>
        <p>
        <label for="<?php echo $this->get_field_id( 'title' ); ?>">Title:</label>
        <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
        </p>
        <?php
    }

}
 
--= Roll With The Wind =--
Quản trị viên
Bạn làm thử xem.
Một số hàm, chức năng thay bằng cái của NukeViet là được.
 
Thích: nvnghiem
Thành viên năng động
Bạn làm thử xem.
Một số hàm, chức năng thay bằng cái của NukeViet là được.
Mình cũng có làm thử mấy lần rồi mà vẫn chưa được đó bạn. Để mình mò thêm nữa xem sao !
 
Thành viên năng động
Bạn làm thử xem.
Một số hàm, chức năng thay bằng cái của NukeViet là được.
Vẫn không được bạn ơi. Hỗ trợ mình với nhé.
Cảm ơn nhiều.
 
--= Roll With The Wind =--
Quản trị viên
Mình có dùng đoạn code này từ lâu bên wordpress để cập nhật giá cà phê ( demo: caphevietnam.net )
Mình có thể chuyển đoạn code này về nukeviet để sử dụng dưới dạng block được không nhỉ?
Đoạn code như sau:
...
Block theme.
Đang là dùng cho theme default. Copy sang theme khác nếu cần.
Không có cache, phụ thuộc nguồn ngoài.
Nguồn mà tèo là xác định.
 

Attachments

Thành viên năng động
Block theme.
Đang là dùng cho theme default. Copy sang theme khác nếu cần.
Không có cache, phụ thuộc nguồn ngoài.
Nguồn mà tèo là xác định.
Haaaaa.....:laluot-22:
 
Thành viên năng động
Lấy thêm giá một số mặt hàng thực phẩm nữa thì okay nhể. :laluot-06:
 
--= Roll With The Wind =--
Quản trị viên
Cái này đơn giản nên lấy dễ lắm anh.
Chủ yếu là nguồn nó cấp tin như thế nào thôi.
 
Thành viên năng động
Block theme.
Đang là dùng cho theme default. Copy sang theme khác nếu cần.
Không có cache, phụ thuộc nguồn ngoài.
Nguồn mà tèo là xác định.
Chân thành cảm ơn bạn :)
 
Thích: anhyeuviolet
Thành viên mới
anhyeuviolet cho mình hỏi mình muốn get conten bảng gia của trang này https://tintaynguyen.com/gia-ca-phe-doanh-nghiep/ mình làm như thế này đúng chưa
Code:
<?php

/**
 * @Project NUKEVIET 4.x
 * @Author VINADES.,JSC (contact@vinades.vn)
 * @Copyright (C) 2014 VINADES ., JSC. All rights reserved
 * @License GNU/GPL version 2 or any later version
 * @Createdate Jan 17, 2011 11:34:27 AM
 */
if (! defined('NV_MAINFILE')) {
    die('Stop!!!');
}

if (! nv_function_exists('nv_tigia')) {

    /**
     * nv_tigia()
     *
     * @return
     *
     */
    function nv_tigia()
    {
        global $global_config, $module_info, $lang_global, $module_name, $op;
        
        if (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/blocks/global.tigia.tpl')) {
            $block_theme = $global_config['module_theme'];
        } elseif (file_exists(NV_ROOTDIR . '/themes/' . $global_config['site_theme'] . '/blocks/global.tigia.tpl')) {
            $block_theme = $global_config['site_theme'];
        } else {
            $block_theme = 'default';
        }
        
        $xtpl = new XTemplate('global.tigia.tpl', NV_ROOTDIR . '/themes/' . $block_theme . '/blocks');
        $xtpl->assign('LANG', $lang_global);
        $xtpl->assign('NV_BASE_SITEURL', NV_BASE_SITEURL);
        $xtpl->assign('TEMPLATE', $block_theme);
                
        $html = file_get_contents('https://tintaynguyen.com/gia-ca-phe-doanh-nghiep/');
        if( isset($html) AND !empty($html)){
            preg_match("'<table cellpadding=\"0\" cellspacing=\"0\" class=\"quotes-table\">(.*?)</table>'si", $html, $match);
            if ( $match ) {
                $html = trim( strip_tags( $match[1], '<tr><th><td>' ) );
            } else {
                $html = '<tr><td>Lỗi không lấy được dữ liệu!!!</td></tr>';
            }
        }

        $xtpl->assign('DATA', $html);
        $xtpl->parse('main');
        return $xtpl->text('main');
    }
}

if (defined('NV_SYSTEM')) {
    $content = nv_tigia();
}
 
--= Roll With The Wind =--
Quản trị viên
anhyeuviolet cho mình hỏi mình muốn get conten bảng gia của trang này https://tintaynguyen.com/gia-ca-phe-doanh-nghiep/ mình làm như thế này đúng chưa
Bạn đã làm thanh công chưa ?
 
Thích: thanhthuc010b19
Thành viên mới
Bạn đã làm thanh công chưa ?
Vẫn chưa bạn
 
--= Roll With The Wind =--
Quản trị viên
File PHP:

PHP:
<?php

/**
 * @Project NUKEVIET 4.x
 * @Author VINADES.,JSC (contact@vinades.vn)
 * @Copyright (C) 2014 VINADES ., JSC. All rights reserved
 * @License GNU/GPL version 2 or any later version
 * @Createdate Jan 17, 2011 11:34:27 AM
 */
if (! defined('NV_MAINFILE')) {
    die('Stop!!!');
}

if (! nv_function_exists('nv_get_giacafe')) {

/**
 * curl()
 *
 * @param mixed $url
 * @return
 *
 */
function curl( $url )
{

    $userAgents = array(
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)', //
        'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', //
        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', //
        'Mozilla/4.8 [en] (Windows NT 6.0; U)', //
        'Opera/9.25 (Windows NT 6.0; U; en)'
    );
    srand( ( float )microtime( ) * 10000000 );
    $rand = array_rand( $userAgents );
    $agent = $userAgents[$rand];

    $ch = @curl_init( );
    curl_setopt( $ch, CURLOPT_URL, $url );
    // $head[] = "Connection: keep-alive";
    // $head[] = "Keep-Alive: 300";
    // $head[] = "Cache-Control: no-cache";
    // $head[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    // $head[] = "Accept-Language: en-us,en;q=0.5";
    // $head[] = "X-Requested-With:XMLHttpRequest";
    
    curl_setopt( $ch, CURLOPT_USERAGENT, $agent );

    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
    curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );

    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $ch, CURLOPT_POST, 1 );
    curl_setopt( $ch, CURLOPT_ENCODING, "gzip" );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt( $ch, CURLOPT_TIMEOUT, 60 );
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 60 );

    // curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Expect:' ) );
    $page = curl_exec( $ch );
    curl_close( $ch );
    return $page;
}

    /**
     * nv_get_giacafe()
     *
     * @return
     *
     */
    function nv_get_giacafe()
    {
        global $global_config, $module_info, $lang_global, $module_name, $op;
        
        if (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/blocks/global.gia_cafe.tpl')) {
            $block_theme = $global_config['module_theme'];
        } elseif (file_exists(NV_ROOTDIR . '/themes/' . $global_config['site_theme'] . '/blocks/global.gia_cafe.tpl')) {
            $block_theme = $global_config['site_theme'];
        } else {
            $block_theme = 'default';
        }
        
        $xtpl = new XTemplate('global.gia_cafe.tpl', NV_ROOTDIR . '/themes/' . $block_theme . '/blocks');
        $xtpl->assign('LANG', $lang_global);
        $xtpl->assign('NV_BASE_SITEURL', NV_BASE_SITEURL);
        $xtpl->assign('TEMPLATE', $block_theme);
                
        $html = curl('https://tintaynguyen.com/gia-ca-phe-doanh-nghiep/');
        preg_match_all('/<table.*?>(.*?)<\/table>/si', $html, $matches);

        $xtpl->assign('DATA', $matches[1][0]);
        $xtpl->parse('main');
        return $xtpl->text('main');
    }
}

if (defined('NV_SYSTEM')) {
    $content = nv_get_giacafe();
}
File TPL :

HTML:
<!-- BEGIN: main -->
<div class="table-responsive">
  <table class="table">
  {DATA}
  </table>
</div>
<!-- END: main -->
Làm đúng thì nó ra như sau :
img-2018-10-01-13-33-08-1.png

Đính kèm bên dưới. Block theme.
 

Attachments

Thích: thanhthuc010b19
Thành viên quá tích cực
Quản trị viên
Block theme.
Đang là dùng cho theme default. Copy sang theme khác nếu cần.
Không có cache, phụ thuộc nguồn ngoài.
Nguồn mà tèo là xác định.
cái này cài lên k hiện nhôm ơi
 
Thành viên mới
File PHP:

PHP:
<?php

/**
* @Project NUKEVIET 4.x
* @Author VINADES.,JSC (contact@vinades.vn)
* @Copyright (C) 2014 VINADES ., JSC. All rights reserved
* @License GNU/GPL version 2 or any later version
* @Createdate Jan 17, 2011 11:34:27 AM
*/
if (! defined('NV_MAINFILE')) {
    die('Stop!!!');
}

if (! nv_function_exists('nv_get_giacafe')) {

/**
* curl()
*
* @param mixed $url
* @return
*
*/
function curl( $url )
{

    $userAgents = array(
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)', //
        'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', //
        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', //
        'Mozilla/4.8 [en] (Windows NT 6.0; U)', //
        'Opera/9.25 (Windows NT 6.0; U; en)'
    );
    srand( ( float )microtime( ) * 10000000 );
    $rand = array_rand( $userAgents );
    $agent = $userAgents[$rand];

    $ch = @curl_init( );
    curl_setopt( $ch, CURLOPT_URL, $url );
    // $head[] = "Connection: keep-alive";
    // $head[] = "Keep-Alive: 300";
    // $head[] = "Cache-Control: no-cache";
    // $head[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    // $head[] = "Accept-Language: en-us,en;q=0.5";
    // $head[] = "X-Requested-With:XMLHttpRequest";
   
    curl_setopt( $ch, CURLOPT_USERAGENT, $agent );

    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
    curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );

    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $ch, CURLOPT_POST, 1 );
    curl_setopt( $ch, CURLOPT_ENCODING, "gzip" );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt( $ch, CURLOPT_TIMEOUT, 60 );
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 60 );

    // curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Expect:' ) );
    $page = curl_exec( $ch );
    curl_close( $ch );
    return $page;
}

    /**
     * nv_get_giacafe()
     *
     * @return
     *
     */
    function nv_get_giacafe()
    {
        global $global_config, $module_info, $lang_global, $module_name, $op;
       
        if (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/blocks/global.gia_cafe.tpl')) {
            $block_theme = $global_config['module_theme'];
        } elseif (file_exists(NV_ROOTDIR . '/themes/' . $global_config['site_theme'] . '/blocks/global.gia_cafe.tpl')) {
            $block_theme = $global_config['site_theme'];
        } else {
            $block_theme = 'default';
        }
       
        $xtpl = new XTemplate('global.gia_cafe.tpl', NV_ROOTDIR . '/themes/' . $block_theme . '/blocks');
        $xtpl->assign('LANG', $lang_global);
        $xtpl->assign('NV_BASE_SITEURL', NV_BASE_SITEURL);
        $xtpl->assign('TEMPLATE', $block_theme);
               
        $html = curl('https://tintaynguyen.com/gia-ca-phe-doanh-nghiep/');
        preg_match_all('/<table.*?>(.*?)<\/table>/si', $html, $matches);

        $xtpl->assign('DATA', $matches[1][0]);
        $xtpl->parse('main');
        return $xtpl->text('main');
    }
}

if (defined('NV_SYSTEM')) {
    $content = nv_get_giacafe();
}
File TPL :

HTML:
<!-- BEGIN: main -->
<div class="table-responsive">
  <table class="table">
  {DATA}
  </table>
</div>
<!-- END: main -->
Làm đúng thì nó ra như sau :
View attachment 2755

Đính kèm bên dưới. Block theme.
Cảm ơn bạn nhiều
 
Thành viên mới
bạn anhyeuviolet cho mình hỏi chút xíu nữa mình get content của cái bảng tại trang này: http://www.giatieu.com/gia-tieu-truc-tuyen/ nhưng nó chỉ ra ntn không có số liệu trong bảng
Code:
<?php

/**
 * @Project NUKEVIET 4.x
 * @Author VINADES.,JSC (contact@vinades.vn)
 * @Copyright (C) 2014 VINADES ., JSC. All rights reserved
 * @License GNU/GPL version 2 or any later version
 * @Createdate Jan 17, 2011 11:34:27 AM
 */
if (! defined('NV_MAINFILE')) {
    die('Stop!!!');
}

if (! nv_function_exists('nv_get_giacafe')) {

/**
 * curl()
 *
 * @param mixed $url
 * @return
 *
 */
function curl( $url )
{

    $userAgents = array(
        'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)', //
        'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', //
        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', //
        'Mozilla/4.8 [en] (Windows NT 6.0; U)', //
        'Opera/9.25 (Windows NT 6.0; U; en)'
    );
    srand( ( float )microtime( ) * 10000000 );
    $rand = array_rand( $userAgents );
    $agent = $userAgents[$rand];

    $ch = @curl_init( );
    curl_setopt( $ch, CURLOPT_URL, $url );
    // $head[] = "Connection: keep-alive";
    // $head[] = "Keep-Alive: 300";
    // $head[] = "Cache-Control: no-cache";
    // $head[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    // $head[] = "Accept-Language: en-us,en;q=0.5";
    // $head[] = "X-Requested-With:XMLHttpRequest";
    
    curl_setopt( $ch, CURLOPT_USERAGENT, $agent );

    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
    curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );

    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt( $ch, CURLOPT_POST, 1 );
    curl_setopt( $ch, CURLOPT_ENCODING, "gzip" );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt( $ch, CURLOPT_TIMEOUT, 60 );
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 60 );

    // curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Expect:' ) );
    $page = curl_exec( $ch );
    curl_close( $ch );
    return $page;
}

    /**
     * nv_get_giacafe()
     *
     * @return
     *
     */
    function nv_get_giacafe()
    {
        global $global_config, $module_info, $lang_global, $module_name, $op;
        
        if (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/blocks/global.gia_cafe.tpl')) {
            $block_theme = $global_config['module_theme'];
        } elseif (file_exists(NV_ROOTDIR . '/themes/' . $global_config['site_theme'] . '/blocks/global.gia_cafe.tpl')) {
            $block_theme = $global_config['site_theme'];
        } else {
            $block_theme = 'default';
        }
        
        $xtpl = new XTemplate('global.gia_cafe.tpl', NV_ROOTDIR . '/themes/' . $block_theme . '/blocks');
        $xtpl->assign('LANG', $lang_global);
        $xtpl->assign('NV_BASE_SITEURL', NV_BASE_SITEURL);
        $xtpl->assign('TEMPLATE', $block_theme);
                
        $html = curl('http://www.giatieu.com/gia-tieu-truc-tuyen/');
        preg_match_all('/<table.*?>(.*?)<\/table>/si', $html, $matches);

        $xtpl->assign('DATA', $matches[1][0]);
        $xtpl->parse('main');
        return $xtpl->text('main');
    }
}

if (defined('NV_SYSTEM')) {
    $content = nv_get_giacafe();
}
 

Attachments

Thành viên mới
cái này cài lên k hiện nhôm ơi
bạn xem lại vision php