Autor Tema: [Clase] clase para mostrar noticias  (Leído 2522 veces)

Desconectado chevaz

  • PHPerit@
  • *
  • Mensajes: 3
  • Karma: 0
  • Lo que con mucho trabajo se adquiere, más se ama.
    • Ver Perfil
    • Mi sitio personal
[Clase] clase para mostrar noticias
« en: 25 de Febrero de 2012, 23:13:53 pm »
Hola :D
Bueno, cuando comencé con PHP la primer clase que hice fue esta, que es una clase que con MySQL te permite mostrar noticias, comentarios y un par de cositas más. Tiene las funciones básicas (mostrar comentarios, formulario, listar noticias, etc) y utiliza una sencilla base de datos para almacenar las noticias.

También reemplaza smilies, y viene con un conjunto "default" de smilies que se reemplazan por ": D, : ), : P :lol:" etc. (sin espacios).
Otra cosa interesante es que me fijé en todo lo que es seguridad, para evitar SQLi y ataques XSS.
Todo se concentra en un solo archivo, que es el class.core y en una carpeta con los smilies. Si mal no recuerdo, el peso de todo eso no superaba los 200kB.

El proyecto no lo seguí, pues me falta todo lo que es el panel de administración de entradas, pero si sabes como poner noticias desde consultas, te puede ser útil (creo yo).

Link de descarga
http://blog.chevaz.com.ar/wp-content/uploads/2012/02/core.rar

En la creación de artículos detecta los saltos de línea (no hace falta poner <br>) y permite tags HTML. Por el contrario, los comentarios tienen habilitados los emoticones solamente (por seguridad).

USO DE LA CLASE

listar_news();   Hace un listado de todas las noticias.
get_new(id);    Muestra la noticia. Necesita que indiquen la ID.
show_comments(id);   Muestra los comentarios de la noticia por ID.
form_comment();         Muestra el formulario para agregar un comentario.

EJEMPLOS
Para mostrar una noticia (usando $_GET para conseguir la ID):

require_once "/core/class.core.php"//Llamamos a la clase
if(empty($_GET['id'])){
    
header("/news.php");
    }else{
$manager->get_new($_GET['id']);


Para mostrar una noticia y los comentarios:

require_once "/core/class.core.php";
if(empty(
$_GET['id'])){
    
header("/news.php");
    }else{
$manager->get_new($_GET['id']);
$manager->show_comments($_GET['id']);


Para mostrar una noticia, los comentarios y un formulario para agregar comentario:

require_once "/core/class.core.php";
if(empty(
$_GET['id'])){
    
header("/news.php");
    }else{
$manager->get_new($_GET['id']);
$manager->show_comments($_GET['id']);
$manager->form_comment();


Así de simple  :D

BASE DE DATOS
Copian y pegan esto en la consola:
Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `comentarios` (
  `new_id` int(11) NOT NULL,
  `nombre` varchar(25) NOT NULL,
  `mail` varchar(30) NOT NULL,
  `mensaje` varchar(200) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `noticias` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `contenido` text NOT NULL,
  `titulo` varchar(25) NOT NULL,
  `autor` varchar(25) NOT NULL,
  `fecha` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Crea las tablas para las noticias y los comentarios.

CONFIGURACIÓN
Hay que configurarle la conexión al a base de datos. Iba a hacer un archivo de "configuración", pero preferí dejar todo allí y tener menos archivos :P
Vamos al archivo class.core.php y buscamos la línea "mysql_connect(...)" y modificamos con nuestra información (host, usuario, contraseña). Luego vamos una línea más abajo y editamos el nombre de la base de datos. Guardamos y listo.

RESULTADOS (CON ESTILO FEO xd)
Bueno les dejo algunas imágenes con los resultados del uso de la clase :P Está claro que si se sabe de CSS, puedes editar a tu gusto el estilo de las noticias ^^







Con el tiempo me di cuenta de que hay varias cosas que se pueden mejorar en la clase, pero desafortunadamente carezco de tiempo para hacerlo. Por eso, la clase es de libre edición :D Siempre y cuando dejen los créditos.

Saludos y espero les sea de utilidad :P
Para información un poco más detallada sobre la configuración y el uso de las funciones se pueden pasar por aquí.

Comunidad PHPeros

[Clase] clase para mostrar noticias
« en: 25 de Febrero de 2012, 23:13:53 pm »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Clase] clase para mostrar noticias
« Respuesta #1 en: 28 de Febrero de 2012, 01:41:32 am »
No hay ningún código reutilizable por lo que veo...

Aquí algunas recomendaciones:
- Utiliza MySQLi
- No imprimas en los métodos. Los métodos deben devolver valores, ya sean cadenas, arreglos o lo que quieras.
- Piensa una mejor forma para que el usuario pueda cambiarle el diseño sin tener que modificar la clase.

Desconectado Animus

  • PHPero Avanzado
  • ****
  • Mensajes: 273
  • Karma: 1
  • Sexo: Masculino
  • Aprende a aprender, el resto vendrá solo.
    • Ver Perfil
Re:[Clase] clase para mostrar noticias
« Respuesta #2 en: 17 de Abril de 2012, 09:15:05 am »
Buena, Physlet, mysqli por qué? mejoras al mysql?

Cuando devuelves en una función 1 valor sólo puedes devolver 1 único valor.


La red social de tus sueños.