Loading



 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio
06-07-2012, 05:31 PM
Mensaje: #1
Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio

Crear una vista con los temas recientemente publicados (hotpost) que debe ser presentada en site principal.


Por razones de diseño y sistematización del desarrollo los siguientes diagramas adjuntos demuestran con exactitud que hacer y como implementarlo.


Aquellos postulantes que presenten sus trabajos deben tener en cuenta que se evaluará no sólo el funcionamiento de la solución propuesta, sinó también cuánto se ajusta a lo solicitado en cuanto a la forma.


Reglas Generales
- Utilizar los recursos que provee Yii al máximo,
- Evitar bajo todo punto de vista la utilización de código SQL "crudo" o "explicito" excepto que no exista modo alguno de poder realizar la consulta con los recursos provistos por Yii,
- Código autodocumentado,
- Se aprecia la claridad del código más que el uso de atajos, técnicas poco ortodoxas, "trucos" o cualquier técnica o estrategia que ofusque el claro seguimiento del código. En un futuro podría ser mejorado o actualizado por otro voluntario y puede no compartir estrategias "personales" que por efectivas que resulten, demoren los arreglos.
- La solución que respete estos lineamientos (y los que se agreguen en función de las necesidades y experiencias resultantes) será puesta en producción y su creador incluido en el grupo de desarrollo de YiiFramework En Español, con los créditos correspondientes.
- La participación en el proyecto implica la sesión de los derechos sobre el código (no la autoría del mismo, que siempre conservará su creador y será acreditado textualmente en el sitio)
- Las propuestas que no cubran todas las expectativas, serán informadas a sus desarrolladores quedando los mismos en una lista de referencia para futuras convocatorias sin implicar obligación alguna por ninguna de las partes a sostener ese compromiso futuro.
- La sola presentación de alguna propuesta a esta solicitud implica la aceptación total de las condiciones expuestas.


Requerimiento:
Los candidatos deberán instalar en su entorno de desarrollo y prueba la aplicación MyBB (utilizada para construir el foro) y crear, editar publicaciones de modo que su propuesta sea capaz de presentar una vista de los temas recientes.


Para tal efecto, el modelo deberá ser creado mediante Gii.


Desarrollar una acción en "SiteController" (actionHotpost) que arme un "dataprovider" que será provisto a la vista de pruebas "index-test", la cual mostrará el despliegue de los registros de la vista usando un widget CListView.


Gráficos que refuerzan lo solicitado


Caso de Uso
[Imagen: hotpost--caso-de-uso.gif]


Diagrama de Clase
[Imagen: hotpost--diagrama-de-clases.gif]


Diagrama de Secuencia
[Imagen: hotpost--diagrama-de-secuencia.gif]


Ante cualquier duda, deje su inquietud que a la brevedad será respondida.


Gracias por participar.


Éxitos a todos.

QUOTE
09-07-2012, 06:53 PM (Este mensaje fue modificado por última vez en: 09-07-2012 06:56 PM por carlos_belisario.)
Mensaje: #2
RE: Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio

buenas estaba leyendo un tanto el UML que colocas para ver si me decido a hacer algo por la comunidad y se me generan varias dudas, la primera si es "hotpost" debería según mi criterio ser los post con mayor visitas o con mayor cantidad de comentarios, si es recentPost ya es otra cosa Sonrisa,


Segunda pregunta viendolo desde mi punto de vista para obtener el hotpost segun las veces que ha sido visto entonces solo con tener un JOIN entre posts y trheads tendriamos lo necesario sin necesidad de crear una vista (casi siempre las uso para cosas mucho mas complejas Sonrisa), de hecho me coloque a hacer algunos test de esta forma que indique con el hotpost segun la visita (todavia sin datos muy relevantes y salio algo así)

Código PHP:
//en el modelo post que es lo que estamos trabajando
/**

    * @method hotPost 
    * @param @void
    * @return CActiveDataProvider
    */
    
public function hotPost()
    {        
        
$dataProvider = new CActiveDataProvider($this, array(
            
'criteria' => array(
                
'select' => 'subject, message, username',
                
'with'=>array('Threads'),            
                
'order' => 'Threads.views DESC',
                
            ),            
            
'pagination'=>array(
                
'pageSize'=>20// constante por ahora
            
),
        ));
        return 
$dataProvider;
    } 
controller


Código PHP:
public function actionHotpost()
{
        
$post = new Posts();
        
$dataProvider $post->hotPost();
        
//echo "<pre>";var_dump($dataProvider);echo "</pre>";
    
$this->render('index-test',array('dataProvider'=>$dataProvider));        
        

y con eso obtuve hasta ahora algo simple ordenado por la cantidad de visitas sin complicar mucho las cosas (siempre busco la manera de hacer las cosas simples Gran sonrisa)


Pudiera incluso limitarse la cantidad de post a 5 o 6 que serían los mas calientes por lo tanto los que deberían de salir, ahora como le dije también pudiera hacer unos cambios para ordenar por cantidad de respuestas y así obtener los hotpost por respuestas o incluso que el método nos sirva para ambos,


Espero se me entienda porque a veces armo un palabrerio, saludos


Aprende de los Errores e Incrementa los conocimientos
blog
php the right way

QUOTE
09-07-2012, 10:19 PM
Mensaje: #3
RE: Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio

muy sana y decente la implementacion, a pesar de que el req indica crear una vista, esta via que propones es simple.


quisiera dejar en claro algo,


en este caso, la solucion de carlos es tan clara y tan directa que no hace falta hacer isolate hacia una vista aparte, esto ultimo como se propone es suficiente. cuando uno desea que se usen vistas es cuando estas son complejas e involucran a mas de 3 tablas mas una serie de condicionales para generar la vista que bien pueden caber en el uso de un storedproc, toda esa logica debe estar aislada en "un modelo de datos" (una vista en alojada en el motor de datos).




QUOTE
26-07-2012, 09:25 PM
Mensaje: #4
RE: Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio

lo prometido es deuda, acá esta un proyecto simple con yii que contiene el hotposts para mybb, pronto cuando se tenga un tiempo los admin crearan en el repo oficial de la comunidad este pequeño script como le llamo yo Sonrisa, este es el modelo
repo completo https://github.com/carlosbelisario/hotpost/
modelos
https://github.com/carlosbelisario/hotpo...hreads.php
https://github.com/carlosbelisario/hotpo.../Posts.php


controller
https://github.com/carlosbelisario/hotpo...roller.php


views
https://github.com/carlosbelisario/hotpo...x-test.php
https://github.com/carlosbelisario/hotpo...stitem.php
https://github.com/carlosbelisario/hotpo...mvisit.php


Como ven donde esta la magia es en el Threads por la forma en que esta diseñada la base de dato de MyBB, aunque no tuvo mayor complicación mas que ponerse a ver bien que era lo que se quería de esta =S, echen por favor un vistazo a la fecha que no me deja muy confiado, cualquier mejora es bienvenida así aprendemos todos, por cierto ando pensando también en hacer un usuarios que mas postean por semana, pero para cuando me desocupe un poco, si alguien se anima y va posteando lo que realice en este foro y nos echamos una mano entre todos, saludos


Aprende de los Errores e Incrementa los conocimientos
blog
php the right way

QUOTE
09-09-2013, 08:14 AM
Mensaje: #5
RE: Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio

{{{{{ This post is so great and nice }}}}}}


Como ven donde esta la magia es en el Threads por la forma en que esta diseñada la base de dato de MyBB, aunque no tuvo mayor complicación mas que ponerse a ver bien que era lo que se quería de esta =S, echen por favor un vistazo a la fecha que no me deja muy confiado,


pmp practice exam pmp practice exam
pmp books pmp books

QUOTE
01-11-2013, 06:24 AM
Mensaje: #6
RE: Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio

we would not need to create a view (almost always used for things much more complex Smile), I actually do some test place thus indicating the hotpost second visit (still not very relevant data and left something)


.......Em Crazy..........

QUOTE
07-01-2017, 02:21 AM
Mensaje: #7
RE: Desarrollo de Publicaciones Recientes (Hot Post) para mostrar en Página de Inicio

Google

QUOTE


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Yii Framework en Español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS