Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

PHP-Nuke: Añadir opción de mostrar MD5 en descargas en la sección Download de PHP-Nuke
CMS, ECM, Gestor de contenidos web


Os explicamos cómo añadir la posibilidad de mostrar el MD5 (función HASH criptográfica) de un fichero en la sección Descargas (Downloads) de la web, utilizando PHP-Nuke como gestor de contenidos web. Muchos sitios web suelen mostrar el MD5 de la descarga como una forma eficaz de saber si el fichero descargado es el fichero original. Con esta opción daremos mayor credibilidad a nuestras descargas y una forma eficaz de que un usuario pueda saber si el fichero que ha obtenido (de otras webs o mediante P2P) es el original.



Añadir opción de mostrar el MD5 de una descarga en la sección Download de PHP-Nuke

En primer lugar accederemos a la base de datos MySQL (o en la que se haya creado) de PHP-Nuke, mediante cualquier software cliente de MySQL, como por ejemplo AjpdSoft Administración Bases de Datos (aplicación freeware, gratuita, con código fuente (open source) disponible en Delphi 6), pondremos el nombre del servidor (o la IP), el usuario y la contraseña con permisos suficientes para modificar tablas y nos conectaremos a MySQL:

AjpdSoft Administración Bases de Datos

Ejecutaremos la siguiente consulta SQL para agregar el campo "hash" a la tabla nuke_downloads_downloads:

ALTER TABLE nuke_downloads_downloads ADD COLUMN
hash VARCHAR(200) AFTER homepage

Consulta SQL - AjpdSoft Administración Bases de Datos

Al añadir este campo a la tabla nuke_downloads_downloads afectará al funcionamiento de la administración de las descargas, el efecto colateral es que si se intenta añadir una descarga desde la administración de PHP-Nuke no dará error pero tampoco la añadirá. Esto se puede solucionar modificando la línea 1034:

sql_query("insert into ".$prefix."_downloads_downloads values (NULL, '$cat[0]', '$cat[1]', '$title', '$url', '$description', now(), '$name', '$email', '$hits','$submitter',0,0,0, '$filesize', '$version', '$homepage')", $dbi);

del fichero /admin/modules/download.php, por este otro código PHP:

sql_query("insert into ".$prefix."_downloads_downloads values (NULL, '$cat[0]', '$cat[1]', '$title', '$url', '$description', now(), '$name', '$email', '$hits','$submitter',0,0,0, '$filesize', '$version', '$homepage', '')", $dbi);

Haciendo esta modificación, de momento servirá para salir del paso y que la inserción de una nueva descarga funcione. Lógicamente explicaremos más adelante cómo modificar el código PHP de este fichero (download.php) para poder añadir el MD5 desde el propio formulario de alta de descarga.

A continuación modificaremos el fichero /modules/Downloads/index.php para que este nuevo dato (MD5) aparezca en la página de los detalles de cada descarga:

AjpdSoft - Sección Descargas

Modificaremos la línea 379 de la función NewDownloadsDate:

$sql = "SELECT lid, cid, title, description, date, hits, downloadratingsummary, totalvotes, totalcomments, filesize, version, homepage FROM ".$prefix."_downloads_downloads WHERE date LIKE '%$newdownloadDB%' ORDER BY title ASC";

por esta otra:

$sql = "SELECT lid, cid, title, description, date, hits, downloadratingsummary, totalvotes, totalcomments, filesize, version, homepage, hash FROM ".$prefix."_downloads_downloads WHERE date LIKE '%$newdownloadDB%' ORDER BY title ASC";

Añadiremos esta línea a partir de la línea 395, en la función NewDownloadsDate:

$hash = $row[hash];

Añadiremos esta línea a partir de la línea 412:

echo "MD5: $hash
";

Haremos lo mismo en la función TopRated, modificaremos la línea 487:

$sql = "SELECT lid, cid, title, description, date, hits, downloadratingsummary, totalvotes, totalcomments, filesize, version, homepage FROM ".$prefix."_downloads_downloads WHERE downloadratingsummary != 0 AND totalvotes >= $downloadvotemin ORDER BY downloadratingsummary DESC LIMIT 0,$topdownloads";

por:

$sql = "SELECT lid, cid, title, description, date, hits, downloadratingsummary, totalvotes, totalcomments, filesize, version, homepage, hash FROM ".$prefix."_downloads_downloads WHERE downloadratingsummary != 0 AND totalvotes >= $downloadvotemin ORDER BY downloadratingsummary DESC LIMIT 0,$topdownloads";

Añadiremos esta línea a partir de la línea 505, en la función TopRated:

$hash = $row[hash];

Añadiremos esta línea a partir de la línea 522:

echo "MD5: $hash
";

Haremos exactamente lo mismo en la función MostPopular, modificando también la línea 596:

while(list($lid, $cid, $title, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage) = sql_fetch_row($result, $dbi)) {

por:

while(list($lid, $cid, $title, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage, $hash) = sql_fetch_row($result, $dbi)) {

Modificaremos la línea a partir de la línea 732, en la función viewdownload:

while(list($lid, $title, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage)=sql_fetch_row($result, $dbi)) {

por

while(list($lid, $title, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage, $hash)=sql_fetch_row($result, $dbi)) {

Añadiremos esta línea a partir de la línea 753:

echo "MD5: $hash
";

Lo mismo para la función viewsdownload, cambiaremos la línea 897:

$result=sql_query("SELECT lid, url, title, description, date, hits, downloadratingsummary, totalvotes, totalcomments, filesize, version, homepage FROM ".$prefix."_downloads_downloads WHERE sid=$sid order by $orderby limit $min,$perpage", $dbi);

por:

$result=sql_query("SELECT lid, url, title, description, date, hits, downloadratingsummary, totalvotes, totalcomments, filesize, version, homepage, hash FROM ".$prefix."_downloads_downloads WHERE sid=$sid order by $orderby limit $min,$perpage", $dbi);

La línea 902:

while(list($lid, $url, $title, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage)=sql_fetch_row($result, $dbi)) {

por

while(list($lid, $url, $title, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage, $hash)=sql_fetch_row($result, $dbi)) {

Añadiremos esta línea a partir de la línea 921:

echo "MD5: $hash
";

Para la función search, línea 1154:

while(list($lid, $cid, $title, $url, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage) = sql_fetch_row($result, $dbi)) {

cambiaremos por:

while(list($lid, $cid, $title, $url, $description, $time, $hits, $downloadratingsummary, $totalvotes, $totalcomments, $filesize, $version, $homepage, $hash) = sql_fetch_row($result, $dbi)) {

Añadiremos a partir de la línea 1176:

echo "MD5: $hash
";

Más de lo mismo para la función viewdownloaddetails, cambiaremos estas dos líneas :

$res = sql_query("SELECT name, email, description, filesize, version, homepage FROM ".$prefix."_downloads_downloads WHERE lid='$lid'", $dbi);
list($auth_name, $email, $description, $filesize, $version, $homepage) = sql_fetch_row($res, $dbi);

por:

$res = sql_query("SELECT name, email, description, filesize, version, homepage, hash FROM ".$prefix."_downloads_downloads WHERE lid='$lid'", $dbi);
list($auth_name, $email, $description, $filesize, $version, $homepage, $hash) = sql_fetch_row($res, $dbi);

 

Nota: puede que el número de línea varíe, lo importante es buscar en qué sección del código se muestra la información de la descarga (fecha, autor, votos, etc) y añadir ahí el hash (MD5). Normalmente habrá que añadir el campo en la consulta SQL, salvo que lleve un * y añadir el correspondiente "echo" para que aparezca.

Al final quedará algo así:

AjpdSoft - Sección Descargas (downloads) con campo MD5

A continuación explicaremos cómo añadir el campo MD5 en el formulario de alta y modificación de descarga (administración), para poder añadir este dato y permitir que aparezca.

AjpdSoft - Administración - Nueva descarga

Modificaremos la línea 57 del fichero /admin/modules/download.php

$result = sql_query("select lid, cid, sid, title, url, description, name, email, submitter, filesize, version, homepage from ".$prefix."_downloads_newdownload order by lid", $dbi);

por

$result = sql_query("select lid, cid, sid, title, url, description, name, email, submitter, filesize, version, homepage, hash from ".$prefix."_downloads_newdownload order by lid", $dbi);

Modificaremos la línea 62 del fichero /admin/modules/download.php

while(list($lid, $cid, $sid, $title, $url, $description, $name, $email, $submitter, $filesize, $version, $homepage) = sql_fetch_row($result, $dbi)) {

por

while(list($lid, $cid, $sid, $title, $url, $description, $name, $email, $submitter, $filesize, $version, $homepage, $hash) = sql_fetch_row($result, $dbi)) {

Accederemos a este fichero, en la función downloads a partir de la línea 75 añadiremos esta nueva línea:

."MD5:
"

Accederemos a este fichero, en la función downloads a partir de la línea 168 añadiremos esta nueva línea:

."MD5: "

En la función DownloadsModDownload, modificaremos la línea 269:

$result = sql_query("select cid, sid, title, url, description, name, email, hits, filesize, version, homepage from ".$prefix."_downloads_downloads where lid='$lid'", $dbi);

por

$result = sql_query("select cid, sid, title, url, description, name, email, hits, filesize, version, homepage, hash from ".$prefix."_downloads_downloads where lid='$lid'", $dbi);

Modificaremos la línea 276:

while(list($cid, $sid, $title, $url, $description, $name, $email, $hits, $filesize, $version, $homepage) = sql_fetch_row($result, $dbi)) {

por

while(list($cid, $sid, $title, $url, $description, $name, $email, $hits, $filesize, $version, $homepage, $hash) = sql_fetch_row($result, $dbi)) {

Tras la línea 285 añadiremos la línea:

."MD5:
"

Modificaremos la línea 674 de la función DownloadsModDownloadS:

function DownloadsModDownloadS($lid, $title, $url, $description, $name, $email, $hits, $cat, $filesize, $version, $homepage) {

por

function DownloadsModDownloadS($lid, $title, $url, $description, $name, $email, $hits, $cat, $filesize, $version, $homepage, $txthash) {

Modificaremos la línea 685 de la función DownloadsModDownloadS

sql_query("update ".$prefix."_downloads_downloads set cid='$cat[0]', sid='$cat[1]', title='$title', url='$url', description='$description', name='$name', email='$email', hits='$hits', filesize='$filesize', version='$version', homepage='$homepage where lid='$lid'", $dbi);

por

sql_query("update ".$prefix."_downloads_downloads set cid='$cat[0]', sid='$cat[1]', title='$title', url='$url', description='$description', name='$name', email='$email', hits='$hits', filesize='$filesize', version='$version', homepage='$homepage, hash='$txthash' where lid='$lid'", $dbi);

Modificaremos la línea 1037:

sql_query("insert into ".$prefix."_downloads_downloads values (NULL, '$cat[0]', '$cat[1]', '$title', '$url', '$description', now(), '$name', '$email', '$hits','$submitter',0,0,0, '$filesize', '$version', '$homepage')", $dbi);

por

sql_query("insert into ".$prefix."_downloads_downloads values (NULL, '$cat[0]', '$cat[1]', '$title', '$url', '$description', now(), '$name', '$email', '$hits','$submitter',0,0,0, '$filesize', '$version', '$homepage','$txthash')", $dbi);

Al final del fichero, en la cláusula switch modificaremos la línea 1073:

DownloadsAddDownload($new, $lid, $title, $url, $cat, $description, $name, $email, $submitter, $filesize, $version, $homepage, $hits);

por

DownloadsAddDownload($new, $lid, $title, $url, $cat, $description, $name, $email, $submitter, $filesize, $version, $homepage, $hits, $txthash);

y la línea 1141:

DownloadsModDownloadS($lid, $title, $url, $description, $name, $email, $hits, $cat, $filesize, $version, $homepage);

por

DownloadsModDownloadS($lid, $title, $url, $description, $name, $email, $hits, $cat, $filesize, $version, $homepage, $txthash);

El formulario de alta de nueva descarga quedará así:

AjpdSoft - Administración - Nueva descarga con campo MD5

y el de modificación de descarga:

AjpdSoft - Administración - Modificación de descarga con campo MD5

Lógicamente, para obtener el MD5 y poder insertarlo en la descarga deberemos utilizar algún programa que lo obtenga, por ejemplo AjpdSoft Hash, software completamente gratuito (freeware) desarrollado por AjpdSoft y con código fuente (open source) disponible en Delphi 6:

AjpdSoft Hash

Por supuesto, también hay otras formas de mostrar el MD5, incluso automáticas (sin necesidad de utilizar software de terceros para obtener el HASH MD5), por ejemplo utilizando PHP para obtener directamente el MD5 de la descarga del servidor antes de mostrar los detalles de la misma.

Este artículo también se puede emplear para añadir cualquier otro campo a la sección Descargas de PHP-Nuke, por ejemplo: Tipo de licencia, Requerimientos (sistema operativo), etc.

Para realizar este artículo hemos usado:


Anuncios


Enviado el Domingo, 13 abril a las 11:54:18 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A