Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2006, 13:32
NokYA
 
Fecha de Ingreso: diciembre-2003
Mensajes: 27
Antigüedad: 20 años, 6 meses
Puntos: 0
Modificacion de un script de ultimos mensajes

Hola.

Vamos a ver, yo tengo un script para mostrar los ultimos mensajes de un foro invision. El caso es que, para otro uso, necesito que me muestre el primer mensaje de un foro o foros en concreto y no las respuestas (a menos que lo necesite, pero esto es menos importante).

El script es este:
Código PHP:
<?

// **************************************** //
// Original mod submitted by Miles Johnson. //
// Completely rewritten by Anthony Petito.. //
// V2.0: 4 April 2005...................... //
// V2.1: 10 April 2005..................... //
// **************************************** //

// This mod will pull the latest X posts from your forum and display them on your website.  
// This new version will also handle forums that you do not wish to show (excluded forums)

// Put this file where your FORUMS are located (e.g, http://domain.tld/forum).
// This should be in the same path as your conf_global.php file
// I've commented most of the code so that it's fairly understandable, however, 
// if you're unsure of what's going on here, stick to the comments on where to edit this file for your site.

// For this to work properly, copy the following code into your website.  Change it to match the link to THIS file.
/* <?php include("http://domain.tld/forum/latest_posts.php");?> */

/////////////////////////////
// User Editable variables //
/////////////////////////////

// Change this to the number of posts you would like to show.
$posts 10

// If you would like this mod to cut topics after a certain character length, leave this at 1.  Otherwise, change it to 0. 
$showtopiclength 1

// Length of title to display before cutting off.  If topic title length exceeds this value, it is followed by ellipses (...)
// Only useful if the above varaible is set to 1.
$topiclength 40

// Add forumid's to exclude from.  For example, you might want to exclude your private forums so that posts from it
// do not show up.  Seperate each forumid by a comma and ensure there's no spaces in between.  
$forumexclude "19,9,8"

// The following 2 lines can be changed to however you want the date and time to be displayed.  
// Default date: dd month year
// Default time: hh:mm ampm TIMEZONE (12 hour time)
// For more information on how the next 2 lines can be changed, please reference the README file.
$datedisplay 'd F Y';
//$timedisplay = 'h:i A T';

//////////////
// Required //
//////////////

require "ips_kernel/class_db_mysql.php";
require 
"conf_global.php";

//////////////
// Database //
//////////////

$db = new db_driver;
$db->obj['sql_database']     = $INFO['sql_database'];
$db->obj['sql_user']         = $INFO['sql_user'];
$db->obj['sql_pass']         = $INFO['sql_pass'];
$db->obj['sql_host']         = $INFO['sql_host'];
$db->obj['sql_tbl_prefix']   = $INFO['sql_tbl_prefix'];

// Connect to DB
$db->connect();

// Query the DB with the supplied user inputted variables.
$getposts $db->query("SELECT posts, last_poster_name, last_poster_id, title, tid, forum_id, last_post FROM ibf_topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $posts");

// Format and display the results.
while ($post $db->fetch_row($getposts)) {
$post[full_title] = $post[title];
if (
$showtopiclength == AND strlen($post[full_title]) > $topiclength) {
    
$post[short_title] = substr($post[full_title],0,$topiclength);
    
$post[short_title] = $post[short_title]."...";
}
else {
    
$post[short_title] = $post[full_title];    
}

$posted_on date($datedisplay$post[last_post]); // Need to change mySQL timestamp to something more human readable.
$today_date date($datedisplaytime()); // Grab today's date so we can compare it against the posted date

// If it was posted today, we want to display "Today, hh:mm AMPM"
If ($posted_on == $today_date) {
    
$datefield "Hoy";
    
$datefield $datefield "" date($timedisplay$post[last_post]);
}

// If it was posted yesterday, we want to display "Yesterday, hh:mm AMPM"
elseif (date('d F Y',strtotime("-1 day")) == $posted_on) {
    
$datefield "Ayer";
    
$datefield $datefield "" date($timedisplay$post[last_post]);
}

else {
    
$datefield $today_date;
}

echo
/////////////////
// Post Format //
/////////////////
// Between the EOD markers you can put whatever you want in HTML format.  Just ensure that the link stays somewhat the same.
<<<EOD

<a href="$INFO
[board_url]/index.php?showtopic=$post[tid]&view=getnewpost">$post[short_title]</a> por 
<a href="$INFO
[board_url]/index.php?showuser=$post[last_poster_id]">$post[last_poster_name]</a> <BR>
$datefield, $post
[posts] respuestas.<P>

EOD;
}
    
?>
El script para el uso al que esta hecho funciona a la perfeccion, pero quisiera hacerle esa modificacion y no lo consigo, a ver si me echais una mano.

Gracias :P