Zdroj: http://prochazka.clanweb.eu/index.php?a=php/list_download-verze-1.1.0 • Vydáno: 30.3.2013 17:26 • Autor: hacesoft
List_Download verze 1.1.0.
Modul pro RS (redakční systém) SunLight CMS 7.5.x. na zobrazení katalogu všech souboru, které jdou určeny na stažení.
Instalace je velice jednoduchá. Stažený soubor uložíte na Váš web do adresáře: \plugins\hcm. Tam vytvoříte adresář hacesoft a do něho uložíte soubor list_download.php a pager.php.
Pager.php je objekt staženy z: blog.jakubmaly.cz/programovani/php/strankovani-v-php-a-mysql-pohodlne-a-univerzalne
Do aktuálního template soubory nakopírujete CSS formátování.
Objekt list_download obsahuje několik konstant které lze měnit.
- První je nazev_tabulky, sem zadejte název tabulky pro HCM modul download.php.
- Cesta_k_obrazkum je konstanta ukazující na adresář kde se nacházejí obrázky hodnocení souboru.
- Pocet_zaznamu_na_stranku je konstanta říkající skriptu kolik záznamů je žádáno na jednu stránku.
Pokud chcete měnit způsob zobrazení stránkování, doporučuji si prostudovat manuál k objektu pager.php.
Tento skript pouze zobrazí data z databáze, které jsou plněna modulem download.php
download.php
Modul list_download.php neobsahuje žádnou administraci. Neumožňuje hodnotit jednotlivé soubory. Toto bude umožněno v dalším HCM modulu.
Do odpovídající sekce nebo stránky, kde zamýšlíte použít výpis, nakopírujte následující kód:
HTML5 code
[ hcm ]hacesoft/list_download[ /hcm ]
Stáhnout HCM modul: list_download verze 1.1.0.php.
CSS profil HCM modulu:
CSS code
thead
{background: #ccc url(../images/bar.gif) repeat-x left center;border-top: 1px solid #a5a5a5;border-bottom: 1px solid #a5a5a5;}
caption
{font-size: 1.2em;font-weight: bold;margin: 1em 0;}
col
{border-right: 1px solid #ccc;}
.DownloadOdd, .ObecnaOdd {background-color:#edf5ff;}
#DownloadHover:hover {background-color: #A8E8DB;color: #fff;}
.DownloadListTable, .ObecnaTable{border-collapse: collapse;width: 50em;border: 1px solid #666;}
.DownloadListTable th
, .DownloadListTable td
,ObecnaTable td
{padding: 0.1em 1em;}
col
#Downloadvelikostelikost, col
#ObecnaCol {border: none;}
col
#DoubleCol {border-right: 3px solid #ccc;}
HCM kód List_Download modulu:
PHP code
<?php
// Autor www.prochazka.zde.cz
// verze souboru v1.1.0.
// dne 25.02.2013 - vytvoreni modulu
if(!defined('_core')) exit;
define("nazev_tabulky", "download");
define("cesta_k_obrazkum", "web/images/gif");
define("pocet_zaznamu_na_stranku", 15);
define("Nazev_strankovani", "page");
require_once _indexroot
."plugins/hcm/hacesoft/pager.php";
require_once _indexroot
."plugins/hcm/hacesoft/download.php";
function _HCM_hacesoft_list_download
(){
$nazev_tabulky = _mysql_prefix
."-".nazev_tabulky
."-hac";
$sBuffer ='<table cellspacing="0" cellpadding="0" class="DownloadListTable">';
$list_download = new HCM_list_download
('SELECT * FROM `'.$nazev_tabulky.'` ' ,Nazev_strankovani
);
$list_download->nazev_tabulky = nazev_tabulky
;
$list_download->cesta_k_obrazkum = cesta_k_obrazkum
;
$list_download->PageSize = pocet_zaznamu_na_stranku
;
$list_download->PagerAlign = "center";
$list_download->DataBind(); //ziska z databaze pozadovanou cast vysledkove sady //nastaveni modu FirstLast
$firstLastMode = new FirstLastPagerMode
();
$firstLastMode->FirstPageText = "|<";
$firstLastMode->LastPageText = ">|";
$list_download->AddPagerMode($firstLastMode);
$prevNextMode = new PrevNextPagerMode
();
$prevNextMode->NextPageText = "> Další";
$prevNextMode->PrevPageText = "< Předchozí";
$list_download->AddPagerMode($prevNextMode);
$list_download->AddPagerMode(new DefaultPagerMode
);
$sBuffer .='<caption>'.$list_download->DrawPager()."</caption>";
$sBuffer .= $list_download->DrawHeader();
$sBuffer .= $list_download->vypis_list_download ();
$sBuffer .="</table>";
return $sBuffer;}
class HCM_list_download
extends Pager
{
Private $order = "order";
Private $sAdrScript;
Private $rev ="&rev=1"; //0 = asc , 1 = desc
Private $sRev="";
Private $sOrder="";
public $nazev_tabulky;
public $cesta_k_obrazkum;
public $lang;
public $sRevS =""; //s = soubor
public $sRevH =""; //h = hodnoceni
public $sRevR =""; //r = rubrika
public $sRevD =""; //d = stazeni
public $sRevV =""; //v = velikost
public function __construct
($SelectCommand, $UrlParameterName){
$this->list_download_lang();
$this->sAdrScript = $this->GetAdrScript();
$SelectCommand = $this->UpdateGetSql ($SelectCommand);
parent
::__construct
($SelectCommand, $UrlParameterName);}
private function UpdateGetSql
($SelectCommand){
if ($this->sOrder <>""){$sXrev="";
if ($this->sRev == 1){$sXrev ="DESC";} else{$sXrev="ASC";}
$SelectCommand = $SelectCommand." ORDER BY `".$this->sOrder."` ".$sXrev;
}
return $SelectCommand;}
private function GetAdrScript
(){
if (isset($_GET["rev"])){$this->sRev = $_GET['rev'];}
if (isset($_GET["order"])){$this->sOrder = $_GET['order'];}
$hrefprefix = $_SERVER['SCRIPT_NAME'];
$this->UrlParameterName = $this->order;
$this->first=1;
foreach ( $_GET as $key=>$value){
if ($key == $this->UrlParameterName){
if($value == "soubor"){if($this->sRev == 0){$this->sRevS = $this->rev;}else{$this->sRevS="";}}
if($value == "hodnoceni"){if($this->sRev == 0){$this->sRevH = $this->rev;}else{$this->sRevH="";}}
if($value == "rubrika"){if($this->sRev == 0){$this->sRevR = $this->rev;}else{$this->sRevR="";}}
if($value == "stazeni"){if($this->sRev == 0){$this->sRevD = $this->rev;}else{$this->sRevD="";}}
if($value == "velikost"){if($this->sRev == 0){$this->sRevV = $this->rev;}else{$this->sRevV="";}}
continue;}
if ($key == "rev"){continue;}
if ($this->first){
$hrefprefix .= "?".$key."=".$value;
$this->first = 0;}
else $hrefprefix .= "&".$key."=".$value;}
return $hrefprefix;}
public function vypis_list_download
(){
$sBuffer="";
$nBuffer =0;
while ($obj = $this->GetOne()){
$sClass ='';
$sNameFile = $obj->soubor;
$nStart = StrrPos($sNameFile, "/");
if ($nStart !== false) {$sNameFile = SubStr($sNameFile, $nStart + 1, (StrLen($sNameFile) - $nStart) - 1);}
$picture = (round($obj->hodnoceni*2)/2)*10;
$oDownload = new HCM_download
($sNameFile,$sNameFile, _indexroot
."web/download");
$oDownload->DataBind();
if ($nBuffer == 0){$sClass ='class="DownloadOdd"';$nBuffer=$nBuffer+1;}else $nBuffer=0;
$sBuffer .='<tbody><tr '.$sClass.' id="DownloadHover"><td class="pager-body-file"><h4>';
if (!isset($_GET[$oDownload->UrlParameterName])){
$sBuffer .="<a class='download' href='".$oDownload->sAdrScript.'&'.$oDownload->UrlParameterName.'='.$oDownload->SPatchFile."'
title='".$this->lang['download.voice.download'].$oDownload->SshowFile."'>".$oDownload->SshowFile."</a>";}
unset ($oDownload);
$sBuffer .='</h4><br /><span class="text-small">'.$this->lang['download.list.date'].$obj->datum.'</span><br />
<span class="text-small">'.$this->lang['download.list.date_download'].$obj->naposledy_stazen.'</span>';
$sBuffer .='</td><td class="pager-body-rating"><a href="'.$this->sAdrScript.'&hodnot='.$sNameFile.'" ><img src="'.$this->cesta_k_obrazkum.'/'.$picture.'.gif" title="'.$this->lang['download.voice.rate'].$obj->hodnoceni.'" /></a>
<br /><span class="text-small">('.$obj->pocet_hodnotitelu.'x '.$this->lang['download.voice.ranking'].')</span></td>
<td class="pager-body-sekce">'.$obj->rubrika.'</td><td class="pager-body-download">'.$obj->stazeni.'</td><td class="pager-body-size">'.$obj->velikost.'</td></tr>';}
$sBuffer .='</tbody>';
return $sBuffer;}
public function DrawHeader
(){
$sBuffer ='<colgroup><col id="DownloadSoubor" /><col id="DownloadHodnoceni" /><col id="DownloadRubrika" /><col id="DownloadStazeni" /><col id="Downloadvelikostelikost" /></colgroup> ';
$sBuffer .='<thead><tr>';
$sBuffer .= '<th scope="col"><a href="'.$this->sAdrScript.'&order=soubor'.$this->sRevS.'" title="'.$this->lang['download.header.files.alignmet'].'">'.$this->lang['download.header.files.name'].'</a></th>';
$sBuffer .= '<th scope="col"><a href="'.$this->sAdrScript.'&order=hodnoceni'.$this->sRevH.'" title="'.$this->lang['download.header.rating.alignmet'].'">'.$this->lang['download.header.rating.name'].'</a></th>';
$sBuffer .= '<th scope="col"><a href="'.$this->sAdrScript.'&order=rubrika'.$this->sRevR.'" title="'.$this->lang['download.header.category.alignmet'].'">'.$this->lang['download.header.category.name'].'</a></th>';
$sBuffer .= '<th scope="col"><a href="'.$this->sAdrScript.'&order=stazeni'.$this->sRevD.'" title="'.$this->lang['download.header.contracted.alignmet'].'">'.$this->lang['download.header.contracted.name'].'</a></th>';
$sBuffer .= '<th scope="col"><a href="'.$this->sAdrScript.'&order=velikost'.$this->sRevV.'" title="'.$this->lang['download.header.size.alignmet'].'">'.$this->lang['download.header.size.name'].'</a></th>';
$sBuffer .= '</tr></thead>';
return $sBuffer;}
function list_download_lang
(){
$lang['download.files.number']="Nalezený software celkem: ";
$lang['download.voice.rate']="Průměrné hodnocení: ";
$lang['download.voice.ranking']="hodnoceno";
$lang['download.list.date']="Datum vytvoření: ";
$lang['download.list.date_download']="Poslední stahnutí: ";
$lang['download.list.description']="Popis: ";
$lang['download.voice.download']="Stáhnout ";
$lang['download.header.files.alignmet']="Seřadit podle název programu";
$lang['download.header.rating.alignmet']="Seřadit podle hodnocení";
$lang['download.header.category.alignmet']="Seřadit podle kategorie";
$lang['download.header.contracted.alignmet']="Seřadit podle stažení";
$lang['download.header.size.alignmet']="Seřadit podle velikost";
$lang['download.header.files.name']="Název programu";
$lang['download.header.rating.name']="Hodnocení";
$lang['download.header.category.name']="Kategorie";
$lang['download.header.contracted.name']="Stažení";
$lang['download.header.size.name']="Velikost";
return $this->lang = $lang;}
}?>