Advertisement:

Author Topic: osc_categories_select() que recuerde la página activa o selección [SOLUCIONADO]  (Read 4212 times)

blittcer

  • Jr. Member
  • **
  • Posts: 57
He probado ya varias funciones para crear un select en el buscador (search-sidebar.php), pero todas me daban problemas de algún tipo, la de la librería de osclass es la que mejor me ha funcionado pero tiene un problema no recuerda la página activa, ni si quiera la selección. ¿Como se puede solucionar?

Code: [Select]
if(osc_count_categories()) osc_categories_select('sCategory', null, __('Select a category', 'bender'));
Todas estas funciones dan problemas...

Code: [Select]
$aCategories = Category::newInstance()->listEnabled(); ?>
<?php if(count($aCategories) > ) { ?>
<select name="sCategory" id="sCategory" class="ui-autocomplete-input">
<option value=""><?php _e('Select a category''bender'); ?></option>
<?php foreach($aCategories as $Category) { ?>
<option value="<?php echo $Category['s_name'] ; ?>"><?php echo $Category['s_name'] ; ?></option>
<?php  }?>
</select>  <?php 

Code: [Select]
<?php $aCategories Category::newInstance()->listEnabled(); ?>
<?php if(count($aCategories) > ) { ?>
<select name="sCategory" id="sCategory">
<option value=""><?php _e('Select a region...')?></option>
<?php foreach($aCategories as $Category) { ?>
<option value="<?php echo $Category['s_name'] ; ?>" <?php if(Params::getParam('sCategory') == $Category['s_name']) { ?>selected<?php ?>><?php echo $Category['s_name'] ; ?></option>
<?php ?>
</select>
<?php ?>

Esta en cambio (la que viene por defecto en bender) funciona bastante bien y recuerda la página activa pero no es un select...

Code: [Select]
$category = __get("category");
     if(!isset($category['pk_i_id']) ) {
         $category['pk_i_id'] = null;
     }
<?php bender_sidebar_category_search($category['pk_i_id']);

Necesito un poco de luz entre tanta oscuridad...
« Last Edit: February 24, 2014, 09:06:50 pm by blittcer »

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #1 on: February 23, 2014, 09:22:31 pm »
Hola,

¿Y esto? ???

Code: [Select]
if(osc_count_categories()) osc_categories_select(__get("category"), null, __('Select a category', 'bender'));
Saludos

blittcer

  • Jr. Member
  • **
  • Posts: 57
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #2 on: February 23, 2014, 10:16:27 pm »
Eso debería de funcionar? porque no me funciona, si utilizo ese argumento para la función, no me hace las búsquedas.

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #3 on: February 23, 2014, 11:50:46 pm »
Disculpa, no uso Bender sino para pruebas, y lo tengo bastante podrido :D así que no puedo testearlo yo mismo, pero mira a ver esto:

Code: [Select]
$category = __get("category");
if(osc_count_categories()) osc_categories_select($category['pk_i_id'], null, __('Select a category', 'bender'));

Saludos


blittcer

  • Jr. Member
  • **
  • Posts: 57
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #4 on: February 24, 2014, 01:44:37 am »
eso lo había probado antes y tampoco funciona, lo volví a probar exactamente como lo pusiste y da un error Warning: Illegal string offset 'pk_i_id' in /bender/search-sidebar.php on line 43

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #5 on: February 24, 2014, 02:05:07 am »
Vaya por dios...  :-\ Solo he reproducido lo que dices que te da el valor correcto:

Esta en cambio (la que viene por defecto en bender) funciona bastante bien y recuerda la página activa pero no es un select...

Code: [Select]
$category = __get("category");
     if(!isset($category['pk_i_id']) ) {
         $category['pk_i_id'] = null;
     }
<?php bender_sidebar_category_search($category['pk_i_id']);

A ver, ¿cuál es el código que estás usando para construir el select en sí?

Saludos

blittcer

  • Jr. Member
  • **
  • Posts: 57
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #6 on: February 24, 2014, 02:17:20 am »
para hacer el select utilizo la función de select para categorías nativa de osclass,
Code: [Select]
if(osc_count_categories()) osc_categories_select('sCategory', null, __('Select a category', 'bender')); y tengo que decir que o no la entiendo o deja bastante que desear... jeje

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #7 on: February 24, 2014, 02:26:17 am »
Hmm... a ver que me concentre un poco... Dices que lo que quieres hacer es un selector de categorias, pero que "recuerde" la última categoría activa.. ¿y que la enseñe como opción predeterminada en el selector? ¿Es eso?

blittcer

  • Jr. Member
  • **
  • Posts: 57
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #8 on: February 24, 2014, 02:40:36 pm »
La función nativa de Osclass osc_categories_select() al recargar la página o entrar a una categoría no sale seleccionada la opción activa, si yo entro a /viviendas debería aparecer en el select viviendas seleccionada... si selecciono luego Pisos al buscar y recargar la página debería quedarse seleccionado la opción Pisos. Eso sería el comportamiento ideal en cualquier select hoy en día. Y algunas de esas funciones que puse lo guardan, pero en cambio no hacen bien las búsquedas... al contrario osc_categories_select() funciona perfecto, pero no guarda la selección...

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #9 on: February 24, 2014, 06:37:01 pm »
Prueba con esto a ver:

Code: [Select]
$category = __get("category");
     if(!isset($category['pk_i_id']) ) {
         $category['pk_i_id'] = null;
     }
<?php osc_categories_select('sCategory'$category['pk_i_id'], __('Select a category''bender')) ; ?>;

Saludos

blittcer

  • Jr. Member
  • **
  • Posts: 57
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #10 on: February 24, 2014, 08:02:20 pm »
Eso lo había probado ya, y desgraciadamente no funciona, lo he vuelto a probar exactamente como lo pusiste y no no funciona...  :(

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #11 on: February 24, 2014, 08:45:17 pm »
Bueno, al final ya me has picado :D, no lo he podido probar con Bender, sino con Modern, pero debería dar igual:

Code: [Select]
$category = __get("category");
     if(!isset($category['pk_i_id']) ) {
         $category['pk_i_id'] = null;
     }
<?php osc_categories_select('sCategory'$category__('Select a category''bender')) ; ?>;

Saludos :)
« Last Edit: February 24, 2014, 08:48:06 pm by teseo »

blittcer

  • Jr. Member
  • **
  • Posts: 57
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #12 on: February 24, 2014, 08:57:21 pm »
Esta si que si, gracias amigo! es que llevo ya 1 mes casi trabajando en Osclass y esto se me estaba resistiendo... encima funciona perfecto porque cuando entras desde la categoría y no desde el buscador ya queda marcada en cuestión!!

Saludos y gracias

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: osc_categories_select() que recuerde la página activa o selección
« Reply #13 on: February 24, 2014, 09:01:39 pm »
Bueeenooo... :D Ahora si no te importa, le añades [solucionado] al título de este hilo y ya que abriste otro hilo en la sección internacional, también deberías postear allí la solución y lo mismo, [Solved] ;)

Saludos


kmk

  • Full Member
  • ***
  • Posts: 116
Hola, qué hago para aplicar esa solución en mi theme?
Estoy usando el de infinity. :)