{"id":6226,"date":"2013-12-27T23:37:15","date_gmt":"2013-12-27T23:37:15","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=6226"},"modified":"2016-05-19T14:00:16","modified_gmt":"2016-05-19T14:00:16","slug":"uso-del-objeto-context-en-prestashop-1-5-x","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/","title":{"rendered":"Uso del objeto context en Prestashop 1.5.x"},"content":{"rendered":"<p>El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales y sea m\u00e1s f\u00e1cil obtener informaci\u00f3n de contexxto en algunos controladores o m\u00f3dulos.<\/p>\n<p>El objeto context es un registro de las variables PHP que, en versiones anteriores de Prestashop se utilizaban como globales, como por ejemplo: $cookie, $smarty&#8230;<\/p>\n<p>El objetivo del objeto context es estandarizar el modo de acceso a estas variables haciendo que el c\u00f3digo sea m\u00e1s s\u00f3lido y f\u00e1cil de entender eliminando el uso de variables globales.<\/p>\n<p>En Prestashop 1.4 pod\u00edamos utilizar las variables globales para obtener informaci\u00f3n importante en un momento dado. Por ejemplo, para obtener el idioma que utiliza el cliente empleamos:<\/p>\n<div title=\"Hint: double-click to select code\">\n<div><code>$cookie<\/code><code>-&gt;id_lang;<\/code><\/div>\n<\/div>\n<p>En Prestashop 1.5, la forma correcta de acceder a este valor es utilizar el objeto context:<\/p>\n<div title=\"Hint: double-click to select code\">\n<div><code>$this<\/code><code>-&gt;context-&gt;language-&gt;id;<\/code><\/div>\n<\/div>\n<h2>\u00a0Contenido del objeto context<\/h2>\n<ul>\n<li><strong>Language<\/strong>. Lenguage del cliente o empleado.<\/li>\n<li><strong>Country<\/strong>. Toda la informaci\u00f3n del pa\u00eds del cliente que est\u00e1 en linea.<\/li>\n<li><strong>Currency<\/strong>. La moneda del cliente o la moneda de la tienda.<\/li>\n<li><strong>Shop<\/strong>. Tienda actual.<\/li>\n<li><strong>Cookie<\/strong>. Toda la informaci\u00f3n referente a la cookie o sesi\u00f3n establecida.<\/li>\n<li><strong>Link<\/strong>. Instancia Link actual.<\/li>\n<li><strong>Smarty<\/strong>. Instancia Smarty.<\/li>\n<li><strong>Customer<\/strong>. Toda la nformaci\u00f3n referente al cliente en linea.<\/li>\n<li><strong>Cart<\/strong>. Toda la informaci\u00f3n referente al carrito actual.<\/li>\n<li><strong>Controller<\/strong>. Instancia del controlador actual.<\/li>\n<li><strong>Employee<\/strong>. Empleado actual.<\/li>\n<\/ul>\n<p>Desde cualquier clase o controlador podemos hacer uso del objeto context de la siguiente forma:<\/p>\n<pre><code>$this-&gt;context-&gt;...<\/code><\/pre>\n<p>Tambi\u00e9n podemos capturar informaci\u00f3n del contexto en las plantillas .tpl de la siguiente forma:<\/p>\n<pre><code>Context::getContext()<\/code>-&gt;...<\/pre>\n<p>Ejemplos:<\/p>\n<pre>$this-&gt;context-&gt;language-&gt;id; \/\/Retorna el identificador del lenguaje actual\r\n$this-&gt;context-&gt;language-&gt;iso_code; \/\/Retorna el identificador ISO del lenguaje actual\r\n$this-&gt;context-&gt;currency; \/\/Retorna el objeto moneda actual\r\n$this-&gt;context-&gt;link; \/\/Retorna el objeto link\r\n$this-&gt;context-&gt;country-&gt;id_zone; \/\/Retorna el identificador de la zona del cliente actual\r\nif ($this-&gt;context-&gt;customer-&gt;isLogged()) \/\/Comprobaci\u00f3n de si est\u00e1 el cliente logeado o no\r\nif ($this-&gt;context-&gt;employee-&gt;isLoggedBack()) \/\/Comprobaci\u00f3n de si est\u00e1 logeado el empleado administrador\r\n$this-&gt;context-&gt;cart-&gt;getProducts(); \/\/Retorna los productos que hay en la cesta actualmente\r\n$this-&gt;context-&gt;smarty-&gt;assign(...); \/\/Asignaci\u00f3n de variables smarty para la plantilla\r\n$this-&gt;context-&gt;customer-&gt;birthday; \/\/Retorna la fecha de nacimiento del cliente en linea\r\n$this-&gt;context-&gt;cms-&gt;id; \/\/Retorna el identficador de la p\u00e1gina cms que se est\u00e1 visualizando<\/pre>\n<h2>Como podemos ver toda la informaci\u00f3n de contexto?<\/h2>\n<p>En cualquier controlador o clase podemos visualizar el array de objetos de la siguiente forma:<\/p>\n<pre>echo '&lt;pre&gt;';\r\nprint_r($this-&gt;context);\r\necho '&lt;\/pre&gt;';<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales y sea m\u00e1s f\u00e1cil obtener informaci\u00f3n de contexxto en algunos controladores o m\u00f3dulos. El objeto context es un registro de las variables PHP que, en versiones anteriores de Prestashop se utilizaban como globales, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4849,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[124],"class_list":["post-6226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-prestashop","tag-modulos-prestashop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Uso del objeto context en Prestashop 1.5.x - Jose Aguilar Blog<\/title>\n<meta name=\"description\" content=\"El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uso del objeto context en Prestashop 1.5.x - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2013-12-27T23:37:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-05-19T14:00:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png\" \/>\n\t<meta property=\"og:image:width\" content=\"217\" \/>\n\t<meta property=\"og:image:height\" content=\"208\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/\",\"name\":\"Uso del objeto context en Prestashop 1.5.x - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png\",\"datePublished\":\"2013-12-27T23:37:15+00:00\",\"dateModified\":\"2016-05-19T14:00:16+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"description\":\"El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png\",\"width\":217,\"height\":208},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Uso del objeto context en Prestashop 1.5.x\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Uso del objeto context en Prestashop 1.5.x - Jose Aguilar Blog","description":"El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Uso del objeto context en Prestashop 1.5.x - Jose Aguilar Blog","og_description":"El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales.","og_url":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2013-12-27T23:37:15+00:00","article_modified_time":"2016-05-19T14:00:16+00:00","og_image":[{"width":217,"height":208,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/","url":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/","name":"Uso del objeto context en Prestashop 1.5.x - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png","datePublished":"2013-12-27T23:37:15+00:00","dateModified":"2016-05-19T14:00:16+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"description":"El objeto context es una caracter\u00edstica t\u00e9cnica introducida en la versi\u00f3n 1.5 de Prestashop para evitar que los programadores empleen variables globales.","breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/09\/prestashop.png","width":217,"height":208},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/uso-del-objeto-context-en-prestashop-1-5-x\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Uso del objeto context en Prestashop 1.5.x"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=6226"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6226\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/4849"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=6226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=6226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=6226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}