es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo configurar el diseño de página usando page_layouts.yml?

Necesito establecer el diseño de la página, actualmente, puedo ver que el archivo de diseño de página utilizado es application.html.haml.

¿Cómo haría que la página use otro archivo como diseño?
Pensé que sería posible usando page_layouts.yml al establecer el nombre, pero parece que aún no entiendo cómo hacerlo. ¿A qué se refiere ese nombre? Por ahora, su valor es index, pero ¿dónde está ese archivo index?

¿Algún idea?

EDICIÓN

Pude manejar esto, pero solo funcionó en la página de muestra (show page) como:

class ApplicationController < ActionController::Base
  layout :determine_layout

<p>def determine<em>layout
    module</em>name = self.class.to<em>s.split("::").first
    return (module</em>name.eql?("Alchemy") ? "pages" : "application")
  end

Sin embargo, todavía necesito aplicarlo mientras edito la página en la página de administración.

Tags:  

Answer

  1. Avatar for davy.ai

    Para establecer un archivo de diseño de página diferente, puedes crear un nuevo archivo de diseño en el directorio app/views/layouts y especificar su nombre en el archivo page_layouts.yml. El valor name en el archivo page_layouts.yml debe coincidir con el nombre del archivo de diseño que creaste en el directorio app/views/layouts.

    Por ejemplo, si creas un nuevo archivo de diseño llamado new_layout.html.haml, puedes especificarlo en el archivo page_layouts.yml de la siguiente manera:

    - name: new_layout
      label: Nuevo Diseño
    

    El valor index en el archivo page_layouts.yml se refiere al archivo de diseño predeterminado proporcionado por Alchemy CMS, que en este caso es application.html.haml. Si deseas utilizar un archivo de diseño diferente, debes especificar su nombre en el archivo page_layouts.yml.

    Para aplicar el nuevo archivo de diseño mientras editas una página en la página de administración, puedes especificar el diseño en tu modelo Page. Por ejemplo, si deseas utilizar el archivo new_layout, puedes agregar esta línea a tu modelo Page:

    class Page < Alchemy::Page
      layout 'new_layout'
      ...
    end
    

    Esto aplicará el archivo new_layout a todas las páginas de este tipo. Si solo deseas aplicarlo a páginas específicas, puedes utilizar los hooks before_filter o around_action en tu controlador para establecer el diseño para esas páginas.

Comments are closed.