Jump to content

Error


mari10

Recommended Posts

Buenos d铆as, cuando entro en mi prestashop al iniciar sesi贸n, me sale el siguiente error:

Unknown error en l铆nea 695 en archivo /homepages/37/d576280150/htdocs/oldhtdocs/tienda/modules/themeconfigurator/themeconfigurator.php
[8192] Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`

驴Qu茅 es y que debo hacer? Gracias

Link to comment
Share on other sites

Hola @mari10

El error que ves es simplemente porque han encadenado dos operadores ternarios. El operador ternario es una simplificaci贸n de una expresi贸n IF. Viene a decir

condici贸n ? haz esto si es verdadero : haz esto si es falso. En tu caso, si se cumple "a" hacer "b" y si no hacer "c".聽 Pero en esa linea han encadenado dos y el sistema te pide que le indiques con un par茅ntesis si lo que quieres es:

(a ? b : c) ? d : e

o

a ? b : (c ? d : e)

En tu caso particular, si (en negrita lo que va entre par茅ntesis)

'context' => (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : ($this->context->shop->getTotalShops() != 1) ? $this->context->shop->getContext() : 1

o

'context' => (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : ($this->context->shop->getTotalShops() != 1) ? $this->context->shop->getContext() : 1

Yo creo que es el segundo caso y pondr铆a:

'context' => (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : (($this->context->shop->getTotalShops() != 1) ? $this->context->shop->getContext() : 1)

  • Like 1
Link to comment
Share on other sites

6 minutes ago, Manuel_GT said:

Hola @mari10

El error que ves es simplemente porque han encadenado dos operadores ternarios. El operador ternario es una simplificaci贸n de una expresi贸n IF. Viene a decir

condici贸n ? haz esto si es verdadero : haz esto si es falso. En tu caso, si se cumple "a" hacer "b" y si no hacer "c".聽 Pero en esa linea han encadenado dos y el sistema te pide que le indiques con un par茅ntesis si lo que quieres es:

(a ? b : c) ? d : e

o

a ? b : (c ? d : e)

En tu caso particular, si (en negrita lo que va entre par茅ntesis)

'context' => (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : ($this->context->shop->getTotalShops() != 1) ? $this->context->shop->getContext() : 1

o

'context' => (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : ($this->context->shop->getTotalShops() != 1) ? $this->context->shop->getContext() : 1

Yo creo que es el segundo caso y pondr铆a:

'context' => (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : (($this->context->shop->getTotalShops() != 1) ? $this->context->shop->getContext() : 1)

Buenas, gracias por contestar, entonces si no me equivoco, lo que hay que hacer es a帽adirle un par茅ntesis al final no?

Link to comment
Share on other sites

8 minutes ago, Manuel_GT said:

Si. Te puse en negrita el par茅ntesis a帽adido aunque se ve poco.

馃檪

Espero te sirva.

Perdone de nuevo, le mando una captura del codigo con las lineas y aparecen unos parentesis:聽image.png.28c05efdc6833e6bd4929a9c563187d7.png

la 695 es lo mismo que envie, pero tengo que poner los mismos parentesis? perdone la molestia y gracias

Link to comment
Share on other sites

Si, en esa linea est谩 asignando la variable "context" con el resultado de la expresi贸n que enviaste. He estado revisando la expresi贸n despacio y es bastante enrevesada, con lo que no estoy ya tan seguro de que fuese la opci贸n dos. Ahora creo que es la opci贸n uno. Es decir, la expresi贸n es:

'context' => ((Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : ($this->context->shop->getTotalShops() != 1)) ? $this->context->shop->getContext() : 1

Creo que pretende determinar si es multitienda o no para devolver el contexto de la tienda o 1

Link to comment
Share on other sites

4 minutes ago, Manuel_GT said:

Si, en esa linea est谩 asignando la variable "context" con el resultado de la expresi贸n que enviaste. He estado revisando la expresi贸n despacio y es bastante enrevesada, con lo que no estoy ya tan seguro de que fuese la opci贸n dos. Ahora creo que es la opci贸n uno. Es decir, la expresi贸n es:

'context' => ((Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') == 0) ? 1 : ($this->context->shop->getTotalShops() != 1)) ? $this->context->shop->getContext() : 1

Creo que pretende determinar si es multitienda o no para devolver el contexto de la tienda o 1

lo que cambia de nuevo son los parentesis no?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...