[Help] Tăng hiệu quả của renderer (Online Customers)

Thảo luận trong 'Cấu hình, quản lý admin trong magento' bắt đầu bởi hungtk2707, 15 Tháng hai 2014.

  1. hungtk2707

    hungtk2707 Member

    Chào mọi người,

    Tình hình là mình có viết lại renderer của IP trong Online Customer để có thể render ra tên quốc gia của IP đó
    Code mình thế này

    PHP:
    class Mage_Adminhtml_Block_Customer_Online_Grid_Renderer_Ip extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
    {
        public function 
    render(Varien_Object $row)
        {
            
    $ip long2ip($row->getData($this->getColumn()->getIndex()));
            
    $ipData = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" $ip));
     
            if (
    $ipData && $ipData->geoplugin_countryName != null) {
                
    $result ' (' $ipData->geoplugin_countryName ')';
            } else {
                
    $result ' (Unknown)';
            }
     
            return 
    $ip $result;
        }
    }
    kết quả đã ra như ý mình muốn

    [​IMG]

    nhưng đôi kết quả trả về lại không có dữ liệu là chỉ hiện ra IP do dữ liệu về không kịp, ví dụ chỉ hiện 65.55.213.70 chứ không hiện gì nữa.
    Vậy cho mình hỏi là có cách nào khả thi hơn mà không phải tải cả data IP về không?

    Cám ơn

Chia sẻ trang này