Overview

Packages

  • None
  • PHPShopAjaxElements
  • PHPShopAjaxElementsDepricated
  • PHPShopArray
  • PHPShopClass
    • Helper
  • PHPShopCore
  • PHPShopCoreDepricated
  • PHPShopCoreFunction
  • PHPShopDepricated
  • PHPShopElements
  • PHPShopElementsDepricated
  • PHPShopGUI
  • PHPShopInc
  • PHPShopObj
  • PHPShopParser
  • PHPShopShopCore
  • PHPShopTest

Classes

  • AjaxNotice
  • AjaxPricemail
  • AjaxReview
  • fase4_rdf
  • inwords
  • PHPShop404
  • PHPShopAdminRule
  • PHPShopAnalitica
  • PHPShopArray
  • PHPShopBannerElement
  • PHPShopBase
  • PHPShopBaseXml
  • PHPShopBonus
  • PHPShopBrandsElement
  • PHPShopCart
  • PHPShopCartElement
  • PHPShopCategory
  • PHPShopCategoryArray
  • PHPShopClients
  • PHPShopCloudElement
  • PHPShopCommerceML
  • PHPShopCompanyArray
  • PHPShopCompare
  • PHPShopCore
  • PHPShopCoreElement
  • PHPShopCoretest
  • PHPShopCssParser
  • PHPShopCurrencyElement
  • PHPShopDate
  • PHPShopDebug
  • PHPShopDelivery
  • PHPShopDeliveryArray
  • PHPShopDoc
  • PHPShopDone
  • PHPShopElements
  • PHPShopError
  • PHPShopExcel
  • PHPShopFail
  • PHPShopFile
  • PHPShopForma
  • PHPShopFrontInterface
  • PHPShopGbook
  • PHPShopGbookElement
  • PHPShopGUI
  • PHPShopIndex
  • PHPShopInterface
  • PHPShopLang
  • PHPShopLinks
  • PHPShopMail
  • PHPShopMailFile
  • PHPShopMap
  • PHPShopMath
  • PHPShopModules
  • PHPShopNav
  • PHPShopNewprice
  • PHPShopNews
  • PHPShopNewsElement
  • PHPShopNewtip
  • PHPShopObj
  • PHPShopOpros
  • PHPShopOprosElement
  • PHPShopOrder
  • PHPShopOrderDelivery
  • PHPShopOrderFunction
  • PHPShopOrderStatusArray
  • PHPShopOrm
  • PHPShopPage
  • PHPShopPageCatalogElement
  • PHPShopPageCategory
  • PHPShopPageCategoryArray
  • PHPShopPages
  • PHPShopParentNameArray
  • PHPShopParser
  • PHPShopPayment
  • PHPShopPaymentArray
  • PHPShopPaymentResult
  • PHPShopPhoto
  • PHPShopPhotoCategory
  • PHPShopPhotoCategoryArray
  • PHPShopPhotoElement
  • PHPShopPrice
  • PHPShopPricemail
  • PHPShopPrint
  • PHPShopProduct
  • PHPShopProductArray
  • PHPShopProductElements
  • PHPShopProductFunction
  • PHPShopProductIconElements
  • PHPShopProductIndexElements
  • PHPShopPromotions
  • PHPShopPush
  • PHPShopReadCsvNative
  • PHPShopRecaptchaElement
  • PHPShopRestore
  • PHPShopRssParser
  • PHPShopSearch
  • PHPShopSecurity
  • PHPShopSelection
  • PHPShopSelectioncat
  • PHPShopShop
  • PHPShopShopCatalogElement
  • PHPShopShopCore
  • PHPShopSkinElement
  • PHPShopSliderElement
  • PHPShopSort
  • PHPShopSortAjax
  • PHPShopSortArray
  • PHPShopSortCategoryArray
  • PHPShopSortElement
  • PHPShopSortSearch
  • PHPShopSpec
  • PHPShopString
  • PHPShopSuccess
  • PHPShopSystem
  • PHPShopTemplates
  • PHPShopText
  • PHPShopTextElement
  • PHPShopUnsubscribe
  • PHPShopUpdate
  • PHPShopUser
  • PHPShopUserElement
  • PHPShopUserFunction
  • PHPShopUsers
  • PHPShopUserStatus
  • PHPShopUserStatusArray
  • PHPShopValuta
  • PHPShopValutaArray
  • rateForComment
  • XMLparser

Functions

  • __
  • __hide
  • _e
  • action_order_info
  • allowedFunctions
  • array2iconv
  • avg_rate
  • calendar
  • catalog_meta
  • CheckCanGzip
  • comment_rate
  • debug
  • delivery
  • DispComment
  • evalstr
  • GetDeliveryPrice
  • getExcelInfoUid
  • GetFile
  • getFotoIconPodrobno
  • getfullname
  • getgoodname
  • getLicense
  • GetVoteValue
  • getYandexSearchSql
  • GzDocOut
  • image_gallery
  • import
  • json_encode
  • json_fix_cyr
  • json_fix_utf
  • mailcartforma
  • makeCalendar
  • message_activation
  • message_register_success
  • MessageList
  • moname
  • Nav_comment
  • Nav_messages
  • notice_add
  • notice_list
  • notice_mail
  • NumFrom
  • option_check
  • option_select
  • option_select_add
  • order_list
  • ordercartforma
  • Page_comment
  • Page_messages
  • parse_ini_file_true
  • parseDatabase
  • Parser
  • ParseTemplate
  • ParseTemplateReturn
  • PHPShopAutoLoadClass
  • phpshopparserevalstr
  • preExtractCallBack
  • product_meta
  • query_filter
  • query_multibase
  • rating
  • ratingshort
  • ratingtop
  • readDatabase
  • returnSmile
  • search_base
  • set_meta
  • setAutokeyword
  • ShowStars
  • ShowStars2
  • sort_table
  • sorttemplateexample
  • stripslashes_deep
  • SysValueReturn
  • timer
  • tmpGetFile
  • user_message
  • usercartforma
  • userdeleveryforma
  • userfiles
  • userorderdoclink
  • userorderfiles
  • userorderpaymentlink
  • utf8_win1251
  • writeLangFile
  • xml2array
  • Overview
  • Package
  • Class
  • Tree
  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421: 422: 423: 424: 425: 426: 427: 428: 429: 430: 431: 432: 433: 434: 435: 436: 437: 438: 439: 440: 441: 442: 443: 444: 445: 446: 447: 448: 449: 450: 451: 452: 453: 454: 455: 456: 457: 458: 459: 460: 461: 462: 463: 464: 465: 466: 467: 468: 469: 470: 471: 472: 473: 474: 475: 476: 477: 478: 479: 480: 481: 482: 483: 484: 485: 486: 487: 488: 
<?php

/**

 * @author PHPShop Software
 * @version 1.4
 * @package PHPShopClass
 */
class PHPShopAnalitica {

    var $status = false;
    var $code;

    public function __construct() {

        // OpenGraph
        PHPShopParser::set('ogTitle', $GLOBALS['PHPShopSystem']->getName());
        PHPShopParser::set('ogImage', $GLOBALS['PHPShopSystem']->getLogo());
        PHPShopParser::set('ogUrl', $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
        PHPShopParser::set('ogDescription', $GLOBALS['PHPShopSystem']->getParam('descrip'));

        //
        $this->metrica_enabled = $GLOBALS['PHPShopSystem']->getSerilizeParam('admoption.metrica_enabled');
        $this->metrica_id = intval($GLOBALS['PHPShopSystem']->getSerilizeParam('admoption.metrica_id'));
        $this->ecommerce = $GLOBALS['PHPShopSystem']->getSerilizeParam('admoption.metrica_ecommerce');
        $this->webvizor = $GLOBALS['PHPShopSystem']->getSerilizeParam('admoption.metrica_webvizor');

        //
        $this->google_enabled = $GLOBALS['PHPShopSystem']->getSerilizeParam('admoption.google_enabled');
        $this->google_id = "UA-" . $GLOBALS['PHPShopSystem']->getSerilizeParam('admoption.google_id');
        $this->analitics = $GLOBALS['PHPShopSystem']->getSerilizeParam('admoption.google_analitics');
    }

    /**



     */
    public function init($name, $data) {
        if (method_exists($this, $name)) {
            $this->status = $this->$name($data);
        }
    }

    /**


     */
    public function CID_Product($row) {

        // OpenGraph
        PHPShopParser::set('ogTitle', $row['name']);
        PHPShopParser::set('ogImage', $row['pic_small']);
        PHPShopParser::set('ogUrl', $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);

        if (!empty($row['description']))
            PHPShopParser::set('ogDescription', strip_tags($row['description']));


        if ($this->analitics or $this->ecommerce) {
            $this->code .= "
        <script>
              $(window).load(function(){  
                  $('body').on('click', '.addToCartList', function(){
               var s_id = $(this).attr('data-uid');
               var s_num = $(this).attr('data-num'); 
                
               if(s_num = '') s_num = 1;
   
                $.ajax({
                type: 'POST',
                url: '/shop/UID_'+s_id+'.html?ajax=json',
                success: function(json)
                {

                    if (json['success'] == 1) {
                    
                       var s_price = json['price'];
                       var s_name = json['name']; 
                       var s_category = json['category']";

            if ($this->analitics)
                $this->code .= "
                
                     /* Google */
                     ga('create', '" . $this->google_id . "', 'auto');  
                     ga('require', 'ec');
                     ga('ec:addProduct', {
                           'id': s_id,
                           'name': s_name,
                           'category': s_category,
                           'brand': '',
                           'variant': '',
                           'price': s_price,
                           'quantity': s_num
                            });
                     ga('ec:setAction', 'add');
                     ga('send', 'event', 'UX', 'click', 'add to cart');
                     ";

            if ($this->ecommerce)
                $this->code .= "     
                
                     /* Yandex */  
                     window.dataLayer = window.dataLayer || [];
                     dataLayer.push({
                         'ecommerce': {
                             'add': {
                               'products': [{
                                    'id': s_id,
                                    'name': s_name,
                                    'price': s_price,
                                    'brand':'',
                                    'category': s_category,
                                    'quantity': s_num
                               }]
                             }
                         }
                      });
                   ";

            $this->code .= "}
               }
          });
     });
  }); 
         </script>";
            return true;
        }
    }

    /**


     */
    public function id_delete($data) {

        if ($this->analitics or $this->ecommerce) {

            $PHPShopProduct = new PHPShopProduct($data['id_delete']);

            $this->code = "<script>
    $(window).load(function(){";

            if ($this->analitics)
                $this->code .= "
    
                     /* Google */
                     ga('create', '" . $this->google_id . "', 'auto');  
                     ga('require', 'ec');
                     ga('ec:addProduct', {
                           'id': '" . $data['id_delete'] . "',
                           'name': '" . $PHPShopProduct->getParam('name') . "',
                           'category': '',
                           'brand': '',
                           'variant': '" . $PHPShopProduct->getParam('uid') . "',
                           'price': '" . $PHPShopProduct->getPrice() . "',
                           'quantity': '1'
                            });
                     ga('ec:setAction', 'remove');
                     ga('send', 'event', 'UX', 'click', 'remove to cart');
                     ";

            if ($this->ecommerce)
                $this->code .= "     
                  
                   /* Yandex */
                   window.dataLayer = window.dataLayer || []; 
                    dataLayer.push({
                         'ecommerce': {
                              'remove': {
                                  'products': [{
                                              'id': '" . $data['id_delete'] . "',
                                              'name': '" . $PHPShopProduct->getParam('name') . "',
                                              'category': '',
                                              'quantity': '1'
                                            }]
                                          }
                                       }
                    });
                }); 
     </script>";
        }
    }

    /**

     */
    public function click() {

        if ($this->analitics or $this->ecommerce) {
            $this->code .= "
         <script>  
             $(window).load(function(){                     
               $('body').on('click', '.addToCartList,.addToCartFull', function(){ 
                    
               var s_id = $(this).attr('data-uid');
               var s_num = $(this).attr('data-num'); 
   
                $.ajax({
                type: 'POST',
                url: '/shop/UID_'+s_id+'.html?ajax=json',
                success: function(json)
                {

                    if (json['success'] == 1) {
                    
                       var s_price = json['price'];
                       var s_name = json['name']; 
                       var s_category = json['category']";

            if ($this->analitics)
                $this->code .= "
                
                     /* Google */
                     ga('create', '" . $this->google_id . "', 'auto');  
                     ga('require', 'ec');
                     ga('ec:addProduct', {
                           'id': s_id,
                           'name': s_name,
                           'category': s_category,
                           'brand': '',
                           'variant': '',
                           'price': s_price,
                           'quantity': s_num
                            });
                     ga('ec:setAction', 'add');
                     ga('send', 'event', 'UX', 'click', 'add to cart');     
                     ";

            if ($this->ecommerce)
                $this->code .= "  
                
                     /* Yandex */
                     window.dataLayer = window.dataLayer || [];
                     dataLayer.push({
                         'ecommerce': {
                             'add': {
                               'products': [{
                                    'id': s_id,
                                    'name': s_name,
                                    'price': s_price,
                                    'brand':'',
                                    'category': s_category,
                                    'quantity': s_num
                               }]
                             }
                         }
                      });";

            $this->code .= " } 
                    }
                });
            }); ";

            $this->code .= "   
                     });
                   </script>        
                   ";
        }
    }

    /**


     */
    public function UID($row) {

        // OpenGraph
        PHPShopParser::set('ogTitle', $row['name']);
        PHPShopParser::set('ogImage', $row['pic_small']);
        PHPShopParser::set('ogUrl', $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);

        if (!empty($row['description']))
            PHPShopParser::set('ogDescription', strip_tags($row['description']));

        if ($this->analitics or $this->ecommerce) {
            $this->code .= "
         <script>  
             $(window).load(function(){";


            if ($this->analitics)
                $this->code .= "
                
                     /* Google */
                     ga('create', '" . $this->google_id . "', 'auto');  
                     ga('require', 'ec');
                     ga('ec:addProduct', {
                                   'id': '" . $row['id'] . "',
                                   'name': '" . $row['name'] . "',
                                   'category': '" . $row['category'] . "',
                                   'price': '" . $row['price'] . "',
                                   'brand': '',
                                   'variant': '" . $row['uid'] . "'
                                 }
                         );
                      ga('ec:setAction', 'detail');
                      ga('send', 'pageview'); ";

            if ($this->ecommerce)
                $this->code .= " 
                
                      /* Yandex */  
                      window.dataLayer = window.dataLayer || [];                    
                      dataLayer.push({
                             'ecommerce': {
                                'detail': {
                                  'products': 
                                     [{
                                        'id': '" . $row['id'] . "',
                                        'name' : '" . $row['name'] . "',
                                        'price': '" . $row['price'] . "',
                                        'brand':'',
                                        'category': '" . $row['catregory'] . "',
                                        'variant' : '" . $row['uid'] . "'
                                      },
                                      {
                                         'name': '" . $row['name'] . "',
                                         'price': '" . $row['price'] . "'
                                      }]
                                  }
                              }
                         }); ";

            $this->code .= "   
                     });
                   </script>        
                   ";
        }
    }

    /**


     */
    public function send_to_order($obj) {

        if ($this->analitics or $this->ecommerce) {
            $this->code = "<script>
            $(window).load(function(){";

            //
            if ($this->analitics)
                $this->code .= "
        /* Google */
        ga('create', '" . $this->google_id . "', 'auto');
        ga('require', 'ec');";

            if ($this->ecommerce)
                $this->code .= "
        /* Yandex */      
        window.dataLayer = window.dataLayer || [];
        dataLayer.push({'ecommerce': {'purchase': {'actionField': {'id' : '" . $obj->ouid . "'},
                            'products': [";

            //
            foreach ($obj->PHPShopCart->_CART as $cart_prod) {

                //
                if ($this->ecommerce)
                    $this->code .= "{
                    'id': '" . $cart_prod['id'] . "',
                    'name': '" . $cart_prod['name'] . "',
                    'price': '" . $cart_prod['price'] . "',
                    'quantity': '" . $cart_prod['num'] . "'
                },";

                //
                if ($this->analitics)
                    $this->code .= "ga('ec:addProduct', {
                    'id': '" . $cart_prod['id'] . "',
                    'name': '" . $cart_prod['name'] . "',
                    'price': '" . $cart_prod['price'] . "',
                    'variant': '" . $cart_prod['uid'] . "',
                    'quantity': '" . $cart_prod['num'] . "'
                    });";
            }

            //
            if ($this->ecommerce)
                $this->code .= "]}}});";

            //
            if ($this->analitics)
                $this->code .= "ga('ec:setAction', 'purchase', {
                    'id': '" . $obj->ouid . "',
                    'revenue': '" . $obj->total . "',
                    'shipping': '" . $obj->delivery . "'
                    });
                    ga('send', 'pageview');";


            $this->code .= "});
            </script>";
        }
    }

    /**

     */
    public function counter() {

        if ($this->google_enabled) {

            if ($this->analitics)
                echo "
                <!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
</script>
<!--/ Google Analytics -->";
            else
                echo "
                <!-- Google Analytics -->
<script async src=\"https://www.googletagmanager.com/gtag/js?id=" . $this->google_id . "\"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', '" . $this->google_id . "');
</script>
<!--/ Google Analytics -->
";
        }

        if ($this->metrica_enabled) {

            if ($this->ecommerce)
                $ecommerce = ',
                    ecommerce:"dataLayer"';
            else
                $ecommerce = null;

            if ($this->webvizor)
                $webvizor = '
                    webvisor:true,';
            else
                $webvizor = null;

            echo '
                <!-- Yandex.Metrika counter -->
  <script>
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter' . $this->metrica_id . ' = new Ya.Metrika2({
                    id:' . $this->metrica_id . ',
                    clickmap:true,
                    trackLinks:true,' . $webvizor . '
                    accurateTrackBounce:true' . $ecommerce . '
                });
            } catch(e) { }
        });

        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/tag.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks2");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/' . $this->metrica_id . '" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!--/ Yandex.Metrika counter -->';
        }


        //
        if ($this->analitics or $this->ecommerce) {
            if (!$this->status) {
                $this->click();
            }
        }

        echo $this->code;
    }

}

?>
PHPShop 6.X API documentation generated by ApiGen