Author Topic: Listar imagenes mas cometadas ¿?  (Read 14212 times)

0 Members and 1 Guest are viewing this topic.

Offline bacterio

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Listar imagenes mas cometadas ¿?
« on: January 20, 2006, 07:15:15 PM »
Hola.
He intentado hacer el script para listar las imágenes mas comentadas aprovechando el top.php, pero me supera.
Estoy buscando por los foros y solo he encontrado Top de usuarios con mas comentarios, peor no imágenes mas comentadas.

Existe y no lo encuentro ???

Un saludo.

Offline benzo

  • Moderator
  • Hero Member
  • *****
  • Posts: 748
  • El que nada duda, nada sabe. :-)
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #1 on: January 20, 2006, 10:12:25 PM »
Bueno, he creado estas modificaciones y parece que funciona.

MOD Top comentarios

# Edición de top.php

Busca:

Code: [Select]
// Downloads
Añade encima:

Code: [Select]
// Comentarios
$sql = "SELECT i.image_id, i.user_id, i.cat_id, i.image_name, i.image_comments, c.cat_name".get_user_table_field(", u.", "user_name")."
        FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_active = 1 AND i.cat_id NOT IN ($cat_id_sql) AND i.cat_id = c.cat_id
        $cat_match_sql
        ORDER BY i.image_comments DESC, i.image_name ASC
        LIMIT 10";
$result = $site_db->query($sql);
$top_list = array();
$i = 1;
while ($row = $site_db->fetch_array($result)) {
  $top_list[$i] = $row;
  $i++;
}
$site_db->free_result();

for ($i = 1; $i <= 10; $i++) {
  if (isset($top_list[$i])) {
    $register_array['image_comments_'.$i] = (check_permission("auth_viewimage", $top_list[$i]['cat_id'])) ? "<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$top_list[$i]['image_id'])."\">".htmlspecialchars($top_list[$i]['image_name'])."</a>" : htmlspecialchars($top_list[$i]['image_name']);
    $register_array['image_comments_openwindow_'.$i] = (check_permission("auth_viewimage", $top_list[$i]['cat_id'])) ? "<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$top_list[$i]['image_id'])."\" onclick=\"opendetailwindow()\" target=\"detailwindow\">".htmlspecialchars($top_list[$i]['image_name'])."</a>" : htmlspecialchars($top_list[$i]['image_name']);
    if (isset($top_list[$i][$user_table_fields['user_name']]) && $top_list[$i]['user_id'] != GUEST) {
      $user_profile_link = (!empty($url_show_profile)) ? preg_replace("/{user_id}/", $top_list[$i]['user_id'], $url_show_profile) : ROOT_PATH."member.php?action=showprofile&amp;".URL_USER_ID."=".$top_list[$i]['user_id'];
      $register_array['image_comments_user_'.$i] = "<a href=\"".$site_sess->url($user_profile_link)."\">".htmlspecialchars($top_list[$i][$user_table_fields['user_name']])."</a>";
    }
    else {
      $register_array['image_comments_user_'.$i] = $lang['userlevel_guest'];
    }
    $register_array['image_comments_cat_'.$i] = "<a href=\"".$site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$top_list[$i]['cat_id'])."\">".htmlspecialchars($top_list[$i]['cat_name'])."</a>";
    $register_array['image_comments_number_'.$i] = "<b>".$top_list[$i]['image_comments']."</b>";
  }
  else {
    $register_array['image_comments_'.$i] = "--";
    $register_array['image_comments_user_'.$i] = "--";
    $register_array['image_comments_cat_'.$i] = "--";
    $register_array['image_comments_number_'.$i] = "--";
  }
}



Busca:

 
Code: [Select]
"lang_top_image_rating" => $lang['top_image_rating'],
añade debajo:

 
Code: [Select]
"lang_top_image_comments" => $lang['top_image_comments'],

# Edición de templates/default/top.html

Puedes añadir este código en la posición que quieras, pero por ejemplo, busca:

Code: [Select]
<td valign="top" class="row2" nowrap>{image_downloads_number_10}</td>
                          </tr>

Añade debajo:

Code: [Select]
<tr>
    <td class="head1" valign="top" colspan="5">{lang_top_image_comments}</td>
  </tr>
  <tr>
    <td valign="top" class="row1" align="center"><b>1</b></td>
    <td valign="top" class="row1">{image_comments_1}</td>
    <td valign="top" class="row1">{image_comments_user_1}</td>
    <td valign="top" class="row1">{image_comments_cat_1}</td>
    <td valign="top" class="row1" nowrap="nowrap">{image_comments_number_1}</td>
  </tr>
  <tr>
    <td valign="top" class="row2" align="center"><b>2</b></td>
    <td valign="top" class="row2">{image_comments_2}</td>
    <td valign="top" class="row2">{image_comments_user_2}</td>
    <td valign="top" class="row2">{image_comments_cat_2}</td>
    <td valign="top" class="row2" nowrap="nowrap">{image_comments_number_2}</td>
  </tr>
  <tr>
    <td valign="top" class="row1" align="center"><b>3</b></td>
    <td valign="top" class="row1">{image_comments_3}</td>
    <td valign="top" class="row1">{image_comments_user_3}</td>
    <td valign="top" class="row1">{image_comments_cat_3}</td>
    <td valign="top" class="row1" nowrap="nowrap">{image_comments_number_3}</td>
  </tr>
  <tr>
    <td valign="top" class="row2" align="center"><b>4</b></td>
    <td valign="top" class="row2">{image_comments_4}</td>
    <td valign="top" class="row2">{image_comments_user_4}</td>
    <td valign="top" class="row2">{image_comments_cat_4}</td>
    <td valign="top" class="row2" nowrap="nowrap">{image_comments_number_4}</td>
  </tr>
  <tr>
    <td valign="top" class="row1" align="center"><b>5</b></td>
    <td valign="top" class="row1">{image_comments_5}</td>
    <td valign="top" class="row1">{image_comments_user_5}</td>
    <td valign="top" class="row1">{image_comments_cat_5}</td>
    <td valign="top" class="row1" nowrap="nowrap">{image_comments_number_5}</td>
  </tr>
  <tr>
    <td valign="top" class="row2" align="center"><b>6</b></td>
    <td valign="top" class="row2">{image_comments_6}</td>
    <td valign="top" class="row2">{image_comments_user_6}</td>
    <td valign="top" class="row2">{image_comments_cat_6}</td>
    <td valign="top" class="row2" nowrap="nowrap">{image_comments_number_6}</td>
  </tr>
  <tr>
    <td valign="top" class="row1" align="center"><b>7</b></td>
    <td valign="top" class="row1">{image_comments_7}</td>
    <td valign="top" class="row1">{image_comments_user_7}</td>
    <td valign="top" class="row1">{image_comments_cat_7}</td>
    <td valign="top" class="row1" nowrap="nowrap">{image_comments_number_7}</td>
  </tr>
  <tr>
    <td valign="top" class="row2" align="center"><b>8</b></td>
    <td valign="top" class="row2">{image_comments_8}</td>
    <td valign="top" class="row2">{image_comments_user_8}</td>
    <td valign="top" class="row2">{image_comments_cat_8}</td>
    <td valign="top" class="row2" nowrap="nowrap">{image_comments_number_8}</td>
  </tr>
  <tr>
    <td valign="top" class="row1" align="center"><b>9</b></td>
    <td valign="top" class="row1">{image_comments_9}</td>
    <td valign="top" class="row1">{image_comments_user_9}</td>
    <td valign="top" class="row1">{image_comments_cat_9}</td>
    <td valign="top" class="row1" nowrap="nowrap">{image_comments_number_9}</td>
  </tr>
  <tr>
    <td valign="top" class="row2" align="center"><b>10</b></td>
    <td valign="top" class="row2">{image_comments_10}</td>
    <td valign="top" class="row2">{image_comments_user_10}</td>
    <td valign="top" class="row2">{image_comments_cat_10}</td>
    <td valign="top" class="row2" nowrap="nowrap">{image_comments_number_10}</td>
  </tr>

# Edición de lang/spanish/main.php

Busca:

Code: [Select]
$lang['top_image_votes'] = "Top  películas por votos";
Añade debajo:

Code: [Select]
$lang['top_image_comments'] = "Top  películas por comentarios";

Espero que te sirva. 8)
Un saludo.

¡ Antes de actualizar o modificar el script, realiza una copia de seguridad de todos los archivos y datos !

Tenemos una pequeña faq en español, también la faq oficial ( en inglés  ) y un buscador muy hermoso

Offline bacterio

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #2 on: January 20, 2006, 10:46:31 PM »
Hola.

Siento haberte echo perder parte de tu tiempo, iba a responderme a mi mismo diciendo que ya lo había conseguido.
No he probado tu sript, pero creo que es exactamente igual que el que yo he preparado.

Muchas gracias de todas formas por tu rapida respuesta.

Offline benzo

  • Moderator
  • Hero Member
  • *****
  • Posts: 748
  • El que nada duda, nada sabe. :-)
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #3 on: January 21, 2006, 12:51:22 AM »
Me alegro que lo hallas conseguido, la cosa era cambiar el nombre de las variables.

Por lo menos queda para otras personas que lo necesiten.  :lol:

Un saludo.
¡ Antes de actualizar o modificar el script, realiza una copia de seguridad de todos los archivos y datos !

Tenemos una pequeña faq en español, también la faq oficial ( en inglés  ) y un buscador muy hermoso

Offline bacterio

  • Jr. Member
  • **
  • Posts: 82
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #4 on: January 21, 2006, 08:27:30 AM »
Efectivamente, solo era cabiar las variables porque se utilizan las mismas tablas.

Ahora me surje otro script, lo publico en nuevo mensaje.

Un saludo.

Offline shaitan

  • Pre-Newbie
  • Posts: 7
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #5 on: April 22, 2007, 12:15:17 PM »
Hola, he seguido todas las intrucciones y cuando accedo a top.html me sale la página con el siguiente error, me podeis ayudar? gracias de antemano

DB Error: Bad SQL Query: SELECT i.image_id, i.user_id, i.cat_id, i.image_name, i.image_comments, c.cat_name, u.user_name FROM 4images_images i, 4images_categories c LEFT JOIN 4images_users u ON (u.user_id = i.user_id) WHERE i.image_active = 1 AND i.cat_id NOT IN (0) AND i.cat_id = c.cat_id ORDER BY i.image_comments DESC, i.image_name ASC LIMIT 10
Unknown column 'i.user_id' in 'on clause'

Offline excitex2

  • Addicted member
  • ******
  • Posts: 1.590
  • He desactivado la galería y el buscador
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #6 on: April 22, 2007, 09:18:34 PM »
Saludos,,,

Que versión de 4images y PHP usas ????

excitex
Lo importante no es saber,,, lo importante es tener el E-Mail de quien sabe

Offline shaitan

  • Pre-Newbie
  • Posts: 7
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #7 on: April 23, 2007, 05:48:52 PM »
Saludos,,,

Que versión de 4images y PHP usas ????

excitex


Php 5.0.5
4images 1.7.4

Offline excitex2

  • Addicted member
  • ******
  • Posts: 1.590
  • He desactivado la galería y el buscador
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #8 on: April 23, 2007, 10:48:29 PM »
Saludos,,,,

Localiza :

Code: [Select]
// Comentarios
$sql = "SELECT i.image_id, i.user_id, i.cat_id, i.image_name, i.image_comments, c.cat_name".get_user_table_field(", u.", "user_name")."
        FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_active = 1 AND i.cat_id NOT IN ($cat_id_sql) AND i.cat_id = c.cat_id
        $cat_match_sql
        ORDER BY i.image_comments DESC, i.image_name ASC
        LIMIT 10";

cambia a :

Code: [Select]
// Comentarios
$sql = "SELECT i.image_id, i.user_id, i.cat_id, i.image_name, i.image_comments, c.cat_name".get_user_table_field(", u.", "user_name")."
        FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_active = 1 AND i.cat_id NOT IN ($cat_id_sql) AND i.cat_id = c.cat_id
        $cat_match_sql
        ORDER BY i.image_comments DESC, i.image_name ASC
        LIMIT 10";

excitex
Lo importante no es saber,,, lo importante es tener el E-Mail de quien sabe

Offline shaitan

  • Pre-Newbie
  • Posts: 7
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #9 on: April 23, 2007, 11:09:38 PM »
Saludos,,,,

Localiza :

Code: [Select]
// Comentarios
$sql = "SELECT i.image_id, i.user_id, i.cat_id, i.image_name, i.image_comments, c.cat_name".get_user_table_field(", u.", "user_name")."
        FROM ".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_active = 1 AND i.cat_id NOT IN ($cat_id_sql) AND i.cat_id = c.cat_id
        $cat_match_sql
        ORDER BY i.image_comments DESC, i.image_name ASC
        LIMIT 10";

cambia a :

Code: [Select]
// Comentarios
$sql = "SELECT i.image_id, i.user_id, i.cat_id, i.image_name, i.image_comments, c.cat_name".get_user_table_field(", u.", "user_name")."
        FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_active = 1 AND i.cat_id NOT IN ($cat_id_sql) AND i.cat_id = c.cat_id
        $cat_match_sql
        ORDER BY i.image_comments DESC, i.image_name ASC
        LIMIT 10";

excitex

Gracias, lo probaré mañana x la mañana, ya te contaré

Offline shaitan

  • Pre-Newbie
  • Posts: 7
    • View Profile
Re: Listar imagenes mas cometadas ¿?
« Reply #10 on: April 23, 2007, 11:24:06 PM »
Funcionado.... Graciasss