Drupal 7: ¿Como eliminar lista de artículos (main content) en la página principal?

Events happening in the community are now at Drupal community events on www.drupal.org.
antoniomanco's picture

Hola y gracias de antemano por la ayuda. Avanzo en Drupal 7 y creado varias vistas (views) que ubico en los bloques por defecto de mi plantilla en la página principal. Pero el problema es que aparte de las vistas creadas aparecen los resúmenes de 10 artículos que por defecto coloca Drupal en el frontpage. Desde /config/system/site-information, puedo dejar un artículo por defecto, pero quisiera eliminar todos. Intenté desde bloques desactivar el contenido excluyendo pero sigue apareciendo la lista de artículos.

Se que el módulo panels elimina frontpage y reordena en bloques independientes, pero según leí dicho módulo genera más consultas en la base de datos y no quisiera recargar tanto mi servidor. Espero algunas pistas y gracias de nuevo

Comments

Hola. Drupal mete la lista de

trigop's picture

Hola.

Drupal mete la lista de los nodos promocionados a la pantalla principal dentro de la región $content de tu theme . Puedes hacer varias cosas:

  • Existe un bloque que se llama 'Contenido de la página principal' que lo puedes cambiar de región para renderizarlo en otro lugar. Por mucho que lo desactives lo sigue sacando dentro de region['content']
  • Si quieres eliminarlo por completo puedes, o bien quitar el renderizado de $region['content'] de page--front.tpl.php, o hacer algo como
    <?php
    unset($page['content']['system_main']);
    ?>
    justo antes de renderizar tu región content
    <?php
    print render($page['content']);
    ?>
    de esta forma seguirás renderizando $content pero no te saca el contenido que genera por defecto drupal.

Espero que te sirva.
Un saludo

Dos formas: 1.- Puedes crear

hatuhay's picture

Dos formas:
1.- Puedes crear un nodo con el formato del front page y cambiar la página FRONT predeterminada de Drupal a ese nodo.
2.- Puedes reemplazar este código en el page-tpl.php, de forma que sólo en el front desaparezca el content por defecto del nodo.

<?php if (!drupal_is_front_page()) { ?>
  <?php if ($page['content']): ?>
    <?php print render($page['content']); ?>
  <?php endif; ?>
<?php } ?>

El problema de la segunda

trigop's picture

El problema de la segunda forma hatuhay es que los bloques que tengas en la región content no serán renderizados con lo cual si tienes algo allí no saldrá tampoco. Creo que es mejor eliminar de content los bloques que tengan que ver con el system de drupal tal y como sugiero en la segunda forma. De todas son formulas totalmente válidas.

Un saludo!

En proceso

antoniomanco's picture

Gracias probaré las opciones, sólo una duda. Una vez fuí a un intensivo de Drupal y recomendaron no alterar el Core. Al modificar page--front.tpl.php, ¿no estoy cambiando el Core no?... Otra duda "page--front.tpl.php" está en el bloque de plantillas??? Graciass

No, no estas alterando el

jdflorez's picture

No, no estas alterando el core.
En el directorio de tu tema debes tener una carpeta llamada templates. Ahi guardas el page--front.tpl.php
Lo más probable es que lo tengas que crear.

No es modificar el core

eliasdelatorre's picture

No es modificar el core porque en realidad lo que estás haciendo es modificar un template específico para tu tema, que pones dentro de la carpeta de templates.

Dirígete a la carpeta que tiene tu tema padre y copia el page.tpl.php que tenga a tu carpeta templates (que probablemente tengas que crear si no existe) dentro de tu tema hijo, una vez ahí puedes mover lo que gustes.

Modificar el core sería irte a mover el tema padre y hacer cosas allá, pero esta manera es correcta.

Ahora, ¿no se soluciona tu problema si te vas a editar cada nodo que aparece en el home y desmarcas la casilla que dice: "Promocionado a la página principal"? Hay una opción que algo así dice y es la que hace que los teaser de esos nodos aparezcan al inicio, ¿ya lo intentaste?

Saludos.

Aún dudas

antoniomanco's picture

Hola gracias, seguí lo pasos, tuve que crear page--front.tpl.php duplicando el archivo page.tpl.php. En el archivo page--front.tpl.php agregué

<?php
unset($page['content']['system_main']);
?>

Tal como explicó trigop, justo antes de

<?php
print render($page['content']);
?>

Luego cambié de ubicación de bloque contenido de página principal, ya en el front no se observa la lista de artículos por defecto, pero el problema es que cuando ingreso a un artículo no es visible el contenido, sólo el titular, fecha y los demás bloques. ¿Qué hice mal? Gracias por su paciencia

Has mirado que en el display

trigop's picture

Has mirado que en el display del nodo (completo o resumen) estés sacando todas las field que necesitas ? Esto lo miras a nivel de tipo de contenido.

Y donde te pasa? En todas las páginas ?

Hola trigop gracias por el

antoniomanco's picture

Hola trigop gracias por el apoyo, esto pasa en todas las páginas. Lo que hice fue crear page--front.tpl.php, dentro de la carpeta templates porque no existía y la modifiqué como indicaste. Ojo, tomé como base page.tpl.php que si existe en esa misma carpeta. Abajo el código.

<?php
print render($page['top_menu']);
?>
<?php
if ($site_name || $site_slogan):
?>

<?php
if ($site_name):
?>

<?php
print $site_name;
?>

<?php
endif;
?>

<?php
if ($site_slogan):
?>

<?php
print $site_slogan;
?>

<?php
endif;
?>

<?php
endif;
?>

<?php
if ($linked_site_logo):
?>

<?php
print $linked_site_logo;
?>

<?php
endif;
?>

<?php
print render($page['header']);
?>

<?php
print render($page['menu_bar']);
?>

<?php
print $messages;
?>

<?php
print render($page['help']);
?>

<?php
print render($page['secondary_content']);
?>

<?php
if ($breadcrumb):
?>

<?php
print $breadcrumb;
?>

<?php
endif;
?>

<?php
print render($page['highlighted']);
?>

<?php
$tag
= $title ? 'section' : 'div';
?>

<
<?php
print $tag;
?>
id="main-content" role="main">

<?php
print render($title_prefix);
?>

<?php
if ($title || $primary_local_tasks || $secondary_local_tasks || $action_links = render($action_links)):
?>

<?php
if ($title):
?>

<?php
print $title;
?>

<?php
endif;
?>

<?php
if ($primary_local_tasks || $secondary_local_tasks || $action_links):
?>

<?php
if ($primary_local_tasks):
?>
    <?php
    print render($primary_local_tasks);
    ?>

<?php
endif;
?>

<?php
if ($secondary_local_tasks):
?>
    <?php
    print render($secondary_local_tasks);
    ?>

<?php
endif;
?>

<?php
if ($action_links = render($action_links)):
?>

<?php
endif;
?>

<?php
endif;
?>

<?php
endif;
?>

<?php
print render($title_suffix);
?>

<?php
unset($page['content']['system_main']);
?>
<?php
print render($page['content']);
?>

<?php
print $feed_icons;
?>

<?php
print render($page['content_aside']);
?>

<?php
print render($page['sidebar_first']);
?>

<?php
print render($page['sidebar_second']);
?>

<?php
print render($page['tertiary_content']);
?>

<?php
if ($page['footer'] || $page['four_first'] || $page['four_second'] || $page['four_third'] || $page['four_fourth']):
?>

<?php
if ($page['four_first'] || $page['four_second'] || $page['four_third'] || $page['four_fourth']):
?>

<?php
print render($page['four_first']);
?>

<?php
print render($page['four_second']);
?>

<?php
print render($page['four_third']);
?>

<?php
print render($page['four_fourth']);
?>

<?php
endif;
?>

<?php
if ($page['footer']): print render($page['footer']); endif;
?>

<?php
endif;
?>

<?php
if ($collapsible = render($page['collapsible'])):
?>

<?php
print t('Toggle collapsible region');
?>

<?php
print $collapsible;
?>

<?php
endif;
?>

Ayudaaa

antoniomanco's picture

Como les comentaba subí page--front.tpl.php en la carpeta templates y agregué

<?php
unset($page['content']['system_main']);
?>
, pero al parecer no hay ningún efecto. Antes señalé que me eliminaba el body, pero he verificado bien y lo que ocurrió fue que cambié el bloque sin querer. En realidad creo que page--front.tpl.php no se reconoce entre los bloques.

Funcionó pero los CSS de views no cargan

antoniomanco's picture

Gracias al aporte de ustedes logré eliminar maincontent de mi pagina principal, pero ahora tengo otro pequeño problema que seguro tendrá solución. Sucede que no funcionan las CSS de views que había creado en mi página principal a manera de bloques. El titular, fecha y más aparecen en un mismo estilo.

Agradezco su apoyo

Como lo hiciste?

ivandomingo's picture

Antoniomanco como lo hiciste? yo he probado de añadir:

<?php
unset($page['content']['system_main']);
?>

el problema es que me lo elimina el content de todas las páginas y solo quiero de la home.

Mi problema es que yo en la home en content he puesto un bloque y justo debajo del bloque me sale "Aun no se ha creado contenido para la página principal." y no quiero que me salga esto (de momento estoy en local no debe ser por esto¿?)

saludos y gracias

@ivandomingo, si estás

soncco's picture

@ivandomingo, si estás editando eso en el page.tpl.php, entonces añade esto:

<?php
if($is_front) {
  unset(
$page['content']['system_main']);
}
?>

Esta funciona!!!

iosujamed's picture

Esta solución es la que me funciono, muchas gracias!!!

Solucionado

antoniomanco's picture

Hola soncco y ivandomingo, al final puedo solucionar este problema. En realidad solo debí borrar el caché desde configuración para ver los cambios, ahora todo marcha bien. Como dice soncco, si deseas eliminar main-content para el frontgpage hay que clonar page.tpl.php y denominar a la copia page--front.tpl.php, para luego agregarle

<?php
unset($page['content']['system_main']);
?>
antes del código
<?php
print render($page['content']);
?>
que ya existe. Así, page--front.tpl.php será nuestra portada en adelante y se podrá modificar al gusto del cliente, saludos.

Soncco Muchas Gracias

ivandomingo's picture

Soncco muchas gracias con

<?php
if($is_front) {
  unset(
$page['content']['system_main']);
}
?>

Problema solucionado gracias y felices fiestas a todos!!!!!!!!

Con CSS puedes ocultarlo sin

victor.galguera's picture

Con CSS puedes ocultarlo sin modificar el template:

#first-time {
  display: none;
}

Podrias utilizar este modulo

jmolivas's picture

Podrias utilizar este modulo Front Page:
http://drupal.org/project/front

Y configurar en la siguiente ruta:
admin/config/front/settings

--
http://jmolivas.com/
@jmolivas

Spanish

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: