Otra vez vuelvo a por ayuda...
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
He creado una página de relatos con la posibilidad de que mis visitantes suban sus propios relatos (http://www.sexoparamo.com/relatos/relatos.php).
Consta de varios scripts que conseguí en http://php.resourceindex.com/Complete_Scripts/
- relatos.php : Es la página principal, en ella llamo al sumario de relatos con <? include("article_summary.php"); ?>
- config.php : Archivo de configuración básica
- t_summary.php : Template del sumario de relatos
- t_article.php : Template de la página de relato
- latest.php : Últimos n relatos subidos
- news.php : Subir relatos
- template.inc : PHPLib template library
- article_(article_id_here).php : Página de relato único(script will - create these files)
- article_summary.php : Lista de relatos subidos(script will create this file).
Códigos:
- config.php
Código PHP:
<?
$summary_template = "t_summary.php";
$article_template = "t_article.php";
$max_summary = 4;
$max_latest = 3;
$password = "test";
?>
Código PHP:
<p>
<b><a href={article_url}>{subject}</a></b>
<br>
<font size=1>{date}</font>
<p>
{summary}
<p>
Código PHP:
<p>
<b>{subject}</b>
<br>
<font size=1>{date}</font>
<p>
{body}
<p>
Código PHP:
<?
require('config.php');
$filename = "article_summary.php";
#- open article summaries
if(file_exists($filename)){
$fh = fopen($filename, "r");
$old_news = fread($fh, filesize($filename));
fclose($fh);
}
#- get first five article
$articles = explode("<!--ARTICLE-->", $old_news);
$i=0;
foreach ( $articles as $article ){
if(count($articles)>$i){
if($max_latest >= $i++){
print $article;
}
}
}
?>
Código PHP:
<html>
<body bgcolor=yellow>
<basefont size=2 face=arial>
<b>Add Article</b>
<?
include ("template.inc");
include ("config.php");
$summary_template = "t_summary.php";
$article_template = "t_article.php";
$max_summary = 5;
function summary_page ($subject, $date, $summary, $article_id)
{
global $summary_template;
$t = new Template();
$t->set_file("SummaryPage", $summary_template);
$article_url = "article_".$article_id.".php";
$date = nl2br($date);
$summary = nl2br($summary);
$t->set_var( array(
"subject" => $subject,
"date" => $date,
"summary" => $summary,
"article_url" => $article_url
));
$t->parse("Summary", "SummaryPage");
return $t->get_var("Summary");
}
function main_page ($subject, $date, $summary, $article_id, $body)
{
global $article_template;
$t = new Template();
$t->set_file("ArticlePage", $article_template);
$article_url = "article_".$article_id.".php";
$date = nl2br($date);
$summary = nl2br($summary);
$body = nl2br($body);
$t->set_var( array(
"subject" => $subject,
"date" => $date,
"summary" => $summary,
"body" => $body,
"article_url" => $article_url
));
$t->parse("Article", "ArticlePage");
return $t->get_var("Article");
}
function add_article($filename, $news)
{
if(file_exists($filename)){
$fh = fopen($filename, "r");
$old_news = fread($fh, filesize($filename));
fclose($fh);
}
/* TODO: Multipage articles
preg_match_all("<!--ARTICLE PAGE=(\d*)-->", $old_news, $matches;
if( count($matches[0]) >= $max_summary){
$oldfilename = $filename.($matches[0][0]+1);
}
*/
$fh = fopen($filename, "w");
$news = stripslashes($news);
fwrite($fh, "\n<!--ARTICLE-->\n$news $old_news");
fclose($fh);
}
?>
<?
if(strcmp($subject, "")){
if(!(strcmp($passwd, $password))){
add_article("article_summary.html", summary_page($subject, $date, $summary, $article_id));
add_article("article_$article_id.html", main_page($subject, $date, $summary, $article_id, $body));
echo "<p> Article has been added! <p>";
}else{
echo "<p><b> Password is wrong! </b>";
}
}
?>
<form action=news.php method=post>
<table border=0>
<tr> <td> (Password): </td><td> <input type=text name=passwd size=30> </td></tr>
<tr> <td> Subject: </td><td> <input type=text name=subject size=30> </td></tr>
<tr> <td> Article ID: </td><td> <input type=text name=article_id value=<? echo date("Y_m_j_is"); ?> size=30> </td></tr>
<tr> <td> Date/Author/etc: </td><td> <textarea name=date rows=2 cols=30 wrap=soft><? echo date("M j, Y\n"); ?>Author: </textarea> </td></tr>
<tr> <td> Summary: </td><td> <textarea name=summary rows=5 cols=30 wrap=soft></textarea> </td></tr>
<tr> <td> Body: </td><td> <textarea name=body rows=15 cols=30></textarea> </td></tr>
</table>
<input type=submit name=submit value=Add>
</form>
Pues bien, el único problema es que no me crea varias páginas cuando el número de relatos excede del que yo le marco en config.php.
Creo que el error está en news.php. He cambiado
Código PHP:
/* TODO: Multipage articles
preg_match_all("<!--ARTICLE PAGE=(\d*)-->", $old_news, $matches;
if( count($matches[0]) >= $max_summary){
$oldfilename = $filename.($matches[0][0]+1);
}
*/
Código PHP:
// TODO: Multipage articles
preg_match_all("<!--ARTICLE PAGE=(\d*)-->", $old_news, $matches;
if( count($matches[0]) >= $max_summary){
$oldfilename = $filename.($matches[0][0]+1);
}
Salu2.