|
|
·
Skindario
Buscar en el Foro Buscar Tags
Portal
Foro
Usuario
Foro
Normas
RSS
Etiquetas
Avatares
Rangos
Eventos
Staff
Entrevistas
Noticias
Caretos
F.A.Q
Subforos Privados
Estadisticas
Estadisticas
Usuarios
OnLine
Actividad
Funciones
Favoritos
P. Inicio
Imprimir
Buscar
Afiliados
¿Tu Web Aquí?
Comunidad ESDLA
Foros DWP
Websmasters Foro
Mundo Deluxe
Photosherox
Descargas-V
Enlázanos

i
Ayuda con include
 
Portal · Foros · Zona Webmasters · PHP
Noticias · Buscar · Tags · Imágenes · Usuarios · Fisgona
Autor Mensaje 
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#1 ·
Ayuda con include

Hola, :D

Miren, tengo una dudilla... Tengo un sistema de noticias, el cual se sabe que se puede separar por categorias ¿verdad? Osea, uno elige que cada noticia o artículos salga en detarminada categoria predeterminada...

Tengo varias categorias creadas y me gustaria saber si se puede hacer un include a una sola categoria, pues en el manual de instalacion solo hace referencia al index de noticias (El lugar donde salen todas juntas)

He intentado, pero el tipo de url que da la categoria es del tipo "http://miarroba.com/foros/post.php?foroid=768873" (Ejemplo)

Y no se me ocurre como hacerlo


Si existe alguna forma de conseguirlo, les agradeceria mucho que me explicaran...

21/Ago/2007 03:10 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#2 ·
RE: Ayuda con include

Si usa base de datos, te puedo ayudar. Simplemente ponme el codigo que muestra TODAS las noticias y te digo la linea que deberias modificar.

25/Ago/2007 21:24 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#3 ·
RE: Ayuda con include

Muchas gracías de antemano :D

El codigo es un MOD de phpBB, sirbe para mostrar artículos entre otras cosas.

El codigo es el siguiente:

<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/cms_auth.'.$phpEx);
include($phpbb_root_path . 'includes/cms_functions.'.$phpEx);
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_cms.'.$phpEx);

get_cms_config();


//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_CMS_ARTICLES);
init_userprefs($userdata);
//
// End session management
//


//
// Start auth check
//
$is_auth_ary = array();
$is_auth_ary = cms_auth(AUTH_LIST_ALL, $userdata);
//
// End auth check
//


//
// Parameters
//
$start = ( isset($HTTP_POST_VARS['start']) ) ? intval($HTTP_POST_VARS['start']) : ( ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0 );
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? htmlspecialchars($HTTP_POST_VARS['mode']) : ( ( isset($HTTP_GET_VARS['mode']) ) ? htmlspecialchars($HTTP_GET_VARS['mode']) : '' );
$article_id = ( isset($HTTP_POST_VARS['aid']) ) ? intval($HTTP_POST_VARS['aid']) : ( ( isset($HTTP_GET_VARS['aid']) ) ? intval($HTTP_GET_VARS['aid']) : 0 );
$chapter_id = ( isset($HTTP_POST_VARS['cid']) ) ? intval($HTTP_POST_VARS['cid']) : ( ( isset($HTTP_GET_VARS['cid']) ) ? intval($HTTP_GET_VARS['cid']) : 0 );


//
// Get chapter info
//
$parent_chapter_row = get_chapters();
$child_chapter_row = get_chapters(true);

if( $chapter_id )
{
$sql = "SELECT *
FROM " . CMS_CHAPTERS_TABLE . "
WHERE chapter_id = $chapter_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve chapter information', '', __LINE__, __FILE__, $sql);
}

if( !$chapter_info = $db->sql_fetchrow($result) )
{
message_die(GENERAL_MESSAGE, 'Chapter_not_exist');
}

$db->sql_freeresult($result);
}


//
// Define censored word matches
//
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);


//
// Start auth check
//
if( $chapter_id )
{
$is_auth = array();
$is_auth = cms_auth($chapter_id, $userdata, $chapter_info);
}
else
{
$auth_ary_parents = array();
$auth_ary_parents = cms_auth(AUTH_LIST_ALL, $userdata, $parent_chapter_row);
$auth_ary_children = array();
$auth_ary_children = cms_auth(AUTH_LIST_ALL, $userdata, $child_chapter_row);
}
//
// End auth check
//


//
// Get the article icons
//
$cms_config['icons_path'] = 'images/icons';
$sql = "SELECT * FROM " . CMS_ICONS_TABLE . " ORDER BY icon_id ASC";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve article icons', '', __LINE__, __FILE__, $sql);
}

$icon_row = array();
while( $row = $db->sql_fetchrow($result) )
{
$icon_row[] = $row;
}
$db->sql_freeresult($result);


//
// Show descriptive text of permissions
//
$s_auth_can = '';
if( $chapter_id )
{
$s_auth_can .= ( $is_auth['a_new'] ) ? $lang['Can_post_articles'] : $lang['Cannot_post_articles'];
$s_auth_can .= ( $is_auth['a_edit'] ) ? $lang['Can_edit_articles'] : $lang['Cannot_edit_articles'];
$s_auth_can .= ( $is_auth['a_delete'] ) ? $lang['Can_delete_articles'] : $lang['Cannot_delete_articles'];
$s_auth_can .= ( $is_auth['a_rate'] ) ? $lang['Can_rate_articles'] : $lang['Cannot_rate_articles'];
$s_auth_can .= ( $chapter_info['pending_article'] ) ? ( ( $is_auth['a_approve'] ) ? $lang['Can_approve_articles'] : $lang['Cannot_approve_articles'] ) : '';
if( $chapter_info['enable_comments'] )
{
$s_auth_can .= '<br />';
$s_auth_can .= ( $is_auth['c_new'] ) ? $lang['Can_post_comments'] : $lang['Cannot_post_comments'];
$s_auth_can .= ( $is_auth['c_edit'] ) ? $lang['Can_edit_comments'] : $lang['Cannot_edit_comments'];
$s_auth_can .= ( $is_auth['c_delete'] ) ? $lang['Can_delete_comments'] : $lang['Cannot_delete_comments'];
$s_auth_can .= ( $is_auth['c_rate'] ) ? $lang['Can_rate_comments'] : $lang['Cannot_rate_comments'];
$s_auth_can .= ( $chapter_info['pending_comments'] ) ? ( ( $is_auth['a_approve'] ) ? $lang['Can_approve_comments'] : $lang['Cannot_approve_comments'] ) : '';
}
}


//
// Output page to template
//
$page_title = $lang['Articles'] . ' - ' . $chapter_info['chapter_name'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
'body' => 'cms_articles_body.tpl'
)
);

$template->assign_vars(array(
'L_ARTICLES' => $lang['Articles'],
'L_AUTHOR' => $lang['Author'],
'L_CHAPTER' => $lang['Chapter'],
'L_COMMENTS' => $lang['Comments'],
'L_RATING' => $lang['Rating'],
'L_VIEWS' => $lang['Views'],
'L_NO_ARTICLES' => $lang['No_articles'],
'L_TIME' => $lang['Time'],

'CHAPTER_NAME' => $chapter_info['chapter_name'],
'CHAPTER_DESC' => $chapter_info['chapter_desc'],

'U_VIEW_CHAPTER' => append_sid("cms_articles.$phpEx?cid=" . $chapter_info['chapter_id']),

'S_AUTH_CAN' => $s_auth_can
)
);

make_chapterbox("cms_articles.$phpEx");
make_cms_navlinks($chapter_id);


if( !$chapter_id )
{
$template->assign_block_vars('showchapter', array());

$sql = "SELECT * FROM " . CMS_CHAPTERS_TABLE . " ORDER BY chapter_id";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve chapter information', '', __LINE__, __FILE__, $sql);
}

$chapter_data = array();
while( $row = $db->sql_fetchrow($result) )
{
$chapter_data[] = $row;
}

$db->sql_freeresult($result);

$is_auth_ary = array();
$is_auth_ary = cms_auth(AUTH_LIST_ALL, $userdata);

$chapter_sql = '';
for( $i = 0; $i < count($chapter_data); $i++ )
{
$this_chapter_id = $chapter_data[$i]['chapter_id'];
if( $is_auth_ary[$this_chapter_id]['a_view'] && $is_auth_ary[$this_chapter_id]['a_read'] )
{
$chapter_sql .= ( ( $chapter_sql != '' ) ? ', ' : '' ) . $this_chapter_id;
}
}

if( $chapter_sql != '' )
{
$pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND a.article_pending = 0';
$sql = "SELECT a.*, at.*, c.chapter_name, u.username
FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . CMS_CHAPTERS_TABLE . " c, " . USERS_TABLE . " u
WHERE at.article_id = a.article_id
AND u.user_id = a.user_id
AND c.chapter_id = a.chapter_id
AND c.chapter_id IN ($chapter_sql)
$pending_sql
ORDER BY time DESC
LIMIT 0, " . $cms_config['articles_on_list'];
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve most recent articles information', '', __LINE__, __FILE__, $sql);
}

$article_row = array();
while( $row = $db->sql_fetchrow($result) )
{
$article_row[] = $row;
}

$db->sql_freeresult($result);
}
}
else
{
if( !$is_auth['a_view'] && !$is_auth['a_read'] )
{
message_die(GENERAL_MESSAGE, 'No_such_chapter_id');
}

//
// Fetch the articles
//
$pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND article_pending = 0';
$sql = "SELECT COUNT(*) AS total
FROM " . CMS_ARTICLES_TABLE . "
WHERE chapter_id = $chapter_id
$pending_sql";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve articles total information', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

$total_articles = $row['total'];

$pagination = '';
if( $total_articles > 0 )
{
$template->assign_vars(array(
'PAGINATION' => generate_pagination("cms_articles.$phpEx?cid=$chapter_id", $total_articles, $cms_config['articles_per_page'], $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($cms_config['articles_per_page']) ) + 1 ), ceil( $total_articles / intval($cms_config['articles_per_page']) ))
)
);
}
else
{
$template->assign_block_vars('switch_no_articles', array());
}


$pending_sql = ( $userdata['user_level'] == ADMIN ) ? '' : 'AND a.article_pending = 0';
$sql = "SELECT a.*, at.* , u.username
FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . USERS_TABLE . " u
WHERE a.chapter_id = $chapter_id
AND at.article_id = a.article_id
AND u.user_id = a.user_id
$pending_sql
ORDER BY time DESC
LIMIT $start, " . $cms_config['articles_per_page'];
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not retrieve articles information', '', __LINE__, __FILE__, $sql);
}

$article_row = array();
while( $row = $db->sql_fetchrow($result) )
{
$article_row[] = $row;
}

$db->sql_freeresult($result);
}


for( $i = 0; $i < count($article_row); $i++ )
{
$row_class = ( $i % 2 ) ? $theme['td_class1'] : $theme['td_class2'];
$row_color = ( $i % 2 ) ? $theme['td_color1'] : $theme['td_color2'];

$article_title = $article_row[$i]['article_title'];
if ( count($orig_word) )
{
$article_title = preg_replace($orig_word, $replacement_word, $article_title);
}

$article_icon = '';
for( $j = 0; $j < count($icon_row); $j++ )
{
if( $icon_row[$j]['icon_id'] == $article_row[$i]['article_icon'] )
{
$article_icon = '<img src="' . $cms_config['icons_path'] . '/' . $icon_row[$j]['icon_href'] . '" width="19" height="19" alt="" border="0" hspace="3" />';
}
}

//
// Set the username
// If user is anonymous and has a username, set it as well
//
$s_author = ( $article_row[$i]['user_id'] == ANONYMOUS ) ? $lang['Guest'] : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&u=" . $article_row[$i]['user_id']) . '">' . $article_row[$i]['username'] . '</a>';
if( $article_row[$i]['user_id'] == ANONYMOUS )
{
if( $article_row[$i]['article_username'] != '' )
{
$s_author = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $article_row[$i]['article_username']) : $article_row[$i]['article_username'];
}
}


$template->assign_block_vars('articlerow', array(
'ROW_CLASS' => $row_class,
'ROW_COLOR' => '#' . $row_color,

'ARTICLE_TITLE' => $article_title,
'ARTICLE_VIEWS' => intval($article_row[$i]['article_views']),
'ARTICLE_COMMENTS' => intval($article_row[$i]['article_comments']),
'ARTICLE_ICON' => $article_icon,
'ARTICLE_RATING' => calc_rating('article', $article_row[$i]['article_id'], true),
'POST_TIME' => create_date($board_config['default_dateformat'], $article_row[$i]['time'], $board_config['board_timezone']),

'U_VIEW_ARTICLE' => append_sid("cms_view_article.$phpEx?aid=" . $article_row[$i]['article_id']),

'S_AUTHOR' => $s_author
)
);

if( !$chapter_id )
{
$template->assign_block_vars('articlerow.showchapter', array(
'CHAPTER_NAME' => $article_row[$i]['chapter_name'],

'U_VIEW_CHAPTER' => append_sid("cms_articles.$phpEx?cid=" . $article_row[$i]['chapter_id'])
)
);
}
}


include($phpbb_root_path . 'includes/cms_articles_navigate.'.$phpEx);
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

Ojala puedas ayudarme, en el caso que noh, no te preocupes :D

25/Ago/2007 22:23 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#4 ·
RE: Ayuda con include

Uf, con cosas de phpbb por medio es un poco mas lioso xD Pensaba que seria algo tipo Cute News que en ese caso seria muy facil.

Te explico lo que habria que hacer y ya lo haces tu, ¿vale?
No lo hago yo, porque no estoy seguro de lo que habria que cambiar y asi haces tu varias pruebas.




1 En primer lugar, crea un nuevo fichero con ese codigo que se llame, por ejemplo, art_categorias.php

2 El segundo paso, seria decidir la forma en que vas a pedirle una categoria u otra. Por ejemplo si el fichero lo insertaras con un include el codigo que usaras sera:

<?
$categoria = "0"; //pon el id de la categoria a mostrar
include("art_categorias.php");
?>

En este caso no tocarias el codigo de art_categorias.php

Si lo insertaras con un iframe, el codigo que pondrias seria:

<iframe src="art_categorias.php?categoria=0"></iframe>

Despues en art_categoria.php deberias añadir:

$categoria = $_GET['categoria'];


Obviamente 0 sera la id de la categoria de la que quieres mostrar articulos.


3 El tercer y ultimo paso es modificar el codigo para que muestre los articulos de una unica categoria.
He aqui el problema. Supongo que en la tabla de los articulos en la base de datos habra un campo que guarde la id de la categoria. Yo le voy a llamar xxxx, tendras que mirar la base de datos para ver cual es.

Al consultar la base de datos para sacar datos, siempre das las condiciones que quieres para que te muestre unos datos u otros. En tu caso, simplemente quieres añadir una condicion. Tendras que buscar los codigos que saquen datos y añadirle esa condicion.

Esos codigos son de este estilo:

Codigo



No tendras problemas para identificarlos porque siempre hacen la consulta con $sql = buscas eso y encontraras todas las consultas.

El codigo que deberias añadir es

AND xxxx = '$categoria'

El problema es que entre todos los codigos, tendras que decidir cuales modificas y cuales no porque, quiza, no lo he revisado todo, no todos sean consultas a la base de los articulos.


Para que te quede mas claro del codigo modificado, te pongo el ejemplo de antes modificado:


$sql = "SELECT a.*, at.*, c.chapter_name, u.username
FROM " . CMS_ARTICLES_TABLE . " a, " . CMS_ARTICLES_TEXT_TABLE . " at, " . CMS_CHAPTERS_TABLE . " c, " . USERS_TABLE . " u
WHERE at.article_id = a.article_id
AND u.user_id = a.user_id
AND c.chapter_id = a.chapter_id
AND c.chapter_id IN ($chapter_sql)
AND xxxx = '$categoria'
$pending_sql
ORDER BY time DESC
LIMIT 0, " . $cms_config['articles_on_list'];






Espero esto te sirva para resolver tu problema

25/Ago/2007 23:10 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#5 ·
RE: Ayuda con include

Encontré esto:

$sql = "SELECT *
            FROM " . CMS_CHAPTERS_TABLE . "
            WHERE chapter_id = $chapter_id";

Entonces, por lo que entendí, deberia quedar así ¿verdad?

$sql = "SELECT *
            FROM " . CMS_CHAPTERS_TABLE . "
            WHERE chapter_id = $chapter_id";
            AND xxxx = '$categoria'


Sorry por molestar tanto, la explicación que arriba diste, denota mucha entrega, gracías :D

26/Ago/2007 03:37 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#6 ·
RE: Ayuda con include

Por cierto, casi se me olvida... Todo el codigo que esta arriba, lo saque de un archivo llamado cms_articles.php

Tengo otra duda... Como esto trabaja con templates... No entiendo muy bien lo que pasaria al hacer el include... Sorry, soy tonto x'D

Gracías ... Otra ves

26/Ago/2007 03:42 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#7 ·
RE: Ayuda con include

En vez de:

$sql = "SELECT *
FROM " . CMS_CHAPTERS_TABLE . "
WHERE chapter_id = $chapter_id
AND xxxx = '$categoria'";

Las comillas y el punto coma deben ir al final. Ese, por lo que veo, si que sacalos articulos. Aunque quiza, o mejor dicho seguramente, haya mas. Ves probando mejor de uno en uno. Una pista, que aparezca: CMS_ARTICLES_TABLE y si ves cosas como c.algo, u.algo en el mismo codigo, ahi no toques nada porque esta sacando datos de dos tablas diferentes y no se modificaria igual.



Sobre lo de hacerle el include, no creo que de problemas (igual me equivoco) ya que el codigo es el que se encarga de transformarlo. El unico problema que podria surgir es que intente transformarlo con el template de donde hagas el include. Es mirarlo, si te pasara habrias de copiar el .tpl que luego vas a crear y ponerlo en el .tpl del fichero donde haces el include. Habra que hacer mas modificaciones El .tpl es: cms_articles_body.tpl tu llamalo de otra forma y luego has de editar esta linea:


$template->set_filenames(array(
'body' => 'cms_articles_body.tpl'
)


Borrar el pie y cabecera de pagina:
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);


Igual no cambia, pero por si las moscas, yo cambiaria los include
Codigo



por require_once

Codigo



No deberia dar problemas, pero mejor ponerlo asi.



Tambien, deberas buscar el cms_articles.tpl y modificarlo, pero guardandolo como (segun el ejemplo) art_categorias.php. Entre otras cosas deberas quitarle el codigo que no necesites. Por ejemplo, al estar insertado en otra pagina, no necesitras ninguno de estos tags <html>, <head>, <body>, <title>, <meta> y quiza alguno mas.


Lo unico que faltaria entonces, seria que igual hay paginadores o cosas asi.

26/Ago/2007 14:46 GMT+1
Haz clic para ir al tema anterior Haz clic para ir al tema siguiente
Portal · Foros · Zona Webmasters · PHP
Temas similares
Asunto Autor#VisitasÚltima respuesta
Ayuda con web/blog05/Ene/2009, 04:17
soltjager
013No hay respuestas
Ayuda27/Nov/2007, 19:41
nicods20055
111117/Dic/2007, 21:45
EffectedCard Ir al último mensaje del tema
PROBLEMON FATAL¡ AYUDA:(04/Oct/2007, 04:45
nicods20055
1823117/Oct/2007, 23:23
EffectedCard Ir al último mensaje del tema
Include por Categoria (Sist. Noticias)04/Oct/2007, 03:53
Overlick
0114No hay respuestas
problema con escript AYUDA URGENTE11/Sep/2007, 05:05
nicods20055
311412/Sep/2007, 19:47
nicods20055 Ir al último mensaje del tema
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  

TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Todas las fechas y horas son GMT+1. Ahora son las 01:01

Afiliados Plus
Skindario - Soporte Webmasters, Diseño Grafico, Miarroba, Rol + RPG y Mucho Mas TuarrobaGames - Emuladores, Roms, Juegos y RPG TuarrobaEbooks - Ebooks en castellano y Audiolibros Websmasters foro MundoDeluxe Photosherox - Diseñando & Aprendiendo
¿Tu Web Aquí?
Admin: EffectedCard - Skindario, foro soporte de Tuarroba desde el 16/10/04