Loading

Author Topic: Páginas y Modern Theme  (Read 203 times)

vicmontol

  • Newbie
  • *
  • Posts: 7
    • Email
Páginas y Modern Theme
« on: January 24, 2012, 03:29:49 am »
En el modern theme 2.3.4 / 2.3.5 , las páginas que creas se listan al final, en el footer.
Al tratar de cambiar el mísmo código al header del tema, para mostrarlas arribas, la página aparece vacía, no muestra nada en el <h1> ni en el contenido del <div>. Me pregunto si hay alguna limitación a la hora de usar las funciones correspondientes antes del footer, es un bug del theme o simplemente soy yo que estoy obtuso.:

Code: [Select]
<?php osc_reset_static_pages() ; ?>
        <?php while( osc_has_static_pages() ) { ?>
            <a href="<?php echo osc_static_page_url() ; ?>"><?php echo osc_static_page_title() ; ?></a> |
        <?php ?>

Gracias anticipadas.

_CONEJO

  • Administrator
  • Hero Member
  • *****
  • Posts: 1919
Re: Páginas y Modern Theme
« Reply #1 on: January 24, 2012, 11:34:30 am »
Hola vicmontol,

Es un problema de sobreescribir las variables.

Con este código (no lo he probado), debería ser suficiente :

Pon esto al principio del archivo del theme

<?php $static_page View::newInstance()->_get('page'); ?>



Luego, muestra el menu


<?php osc_reset_static_pages() ; ?>
        <?php while( osc_has_static_pages() ) { ?>
            <a href="<?php echo osc_static_page_url() ; ?>"><?php echo osc_static_page_title() ; ?></a> |
        <?php ?>



Justo después del menú pon esto otro


View
::newInstance()->_exportVariableToView('pages'$static_page);


Te explico lo que pasa. Hay una variable "page" que es la que contiene la información de la página que estás viendo, también hay una variable "pages" que contiene los datos de las páginas apra ponerlas en el footer. Los "helpers" (por ejemplo osc_static_page_title(); ) buscan que exista alguna de las dos vairables, primero pages y luego page (aunque para este ejemplo es lo mismo). Básicamente lo que pasa es que antes de cargar la página guardamos los datos de esa página en concreto en "page", luego los sobre escribimos con los datos de TODAS las páginas para mostrar los enlaces en el footer (si te fijas, se hace un osc_reset_static_pages();) con lo que la información se reemplaza de una por otra.

Lo que hace el código no es más que guardar los datos de la página estática en una tercera variable, sobreescribir la información para mostrar los enlaces y volver a exportar la variable para que el resto del template funcione.

Saludos

vicmontol

  • Newbie
  • *
  • Posts: 7
    • Email
Re: Páginas y Modern Theme
« Reply #2 on: May 01, 2012, 08:43:48 pm »
Ok, perdon por tardar en contestar, pero la solución es perfecta, la dejo aqui bien indicada para cualquier futuro usuario que necesite cambiar de lugar en el tema el menu de navegación de páginas:

1. colocar en main.php:
Code: [Select]
<?php $static_page View::newInstance()->_get('page'); ?>
2.Colocar en header.php:
Code: [Select]
<?php osc_reset_static_pages() ; ?>
        <?php while( osc_has_static_pages() ) { ?>
            <a href="<?php echo osc_static_page_url() ; ?>"><?php echo osc_static_page_title() ; ?></a> |
        <?php ?>

3. E inmediatamente después del anterior:
Code: [Select]
<?php View::newInstance()->_exportVariableToView('pages'$static_page);?>
Gracias a _CONEJO y a todos por este genial CMS.