Obrázek   
Přihlášení
Uživatelské jméno:

Heslo:

Pamatovat si mne



Zapomenuté heslo

Nová registrace
Kam dále?
Hledání
Vzhled

(3 vzhledů)
Kdo je Online
29 uživatel(ů) je online (5 uživatel(ů) si prohlíží Články a povídání)

Uživatelé: 0
Hosté: 29

více...
Noví uživatelé
POKEC
POKEC
21.03.2024
Luigi
Luigi
14.03.2024
zirafak
zirafak
26.02.2024
rorejs
rorejs
27.12.2023
maroš
maroš
07.11.2023
vlada
vlada
17.09.2023
VIKIRYCH
VIKIRYCH
28.12.2022
jiang
jiang
13.12.2022
panezi
panezi
08.09.2022
BigLadin
BigLadin
25.07.2022
Kdo za co může
Administrátorka
Žirafka
Žirafka
Žirafička
Žirafička
Redaktoři
bernard
bernard
IvanH
IvanH
 
Emeritní
KatyH
KatyH

Zápisník pojídačky koláčů pro Xoops - Problém s počtem komentářů

Napsal/a Žirafka v 22. 11. 2009 v 18:12 (přečtení 8103×) Další články tohoto autora
Zápisník pojídačky koláčů pro Xoops
     Trošku jsem se vrtala v systému Žirafovin a napadlo mě několik drobností. Téměř všechno se týkalo buď mých modulů a nebo jazykových souborů. Ale pak mi do očí padla jedna věc a to zobrazování počtu komentářů u článků. Sice to bylo správně, ale nebylo to ono.

     Na webu je dosti často kritizovaný fakt, že autoři programů, či jiných systémů, nepočítají s jiným jazykem než je ten jejich. Takže různé počty bývají zobrazované správně v původním jazyce, ale v češtině to je „divné“. Ale nejde jen o češtinu, některé jiné jazyky jsou na tom podobně. Při překladu se to pak obchází například takto: „Počet komentářů: 3“ místo správnějšího „3 komentáře“. Když ale původní program dovede rozlišit pouze jeden nebo více komentářů, je to problém.

     A právě proto jsem se pustila do zkoumání modulu News, jenž se na Žirafovinách stará o články. Je to dosti složitý modul, možná jeden z nejsložitějších vůbec, ale nakonec jsem našla vše potřebné a trošku jej „hacknula“

     Důležité jsou tyto dva soubory:

language/jazyk/main.php a
class/class.newsstory.php

    Oba jsou umístěné ve struktuře modulu.

     V tom první je potřeba změnit:

define("_NW_NUMCOMMENTS","%s komentáře");

na
define("_NW_NUMCOMMENTS2","%s komentáře");
define("_NW_NUMCOMMENTS5","%s komentářů");


     To je snadné, ve druhém je to již o něco složitější. Je potřeba najít:

if (XOOPS_COMMENT_APPROVENONE != $xoopsModuleConfig['com_rule'])
{
$ccount $this->comments();
$morelink .= '<a href="'.XOOPS_URL.'/modules/news/article.php?storyid='.$this->storyid().'';
$morelink2 '<a href="'.XOOPS_URL.'/modules/news/article.php?storyid='.$this->storyid().'';

if ( 
$ccount == )
{
$morelink .= '">'._NW_COMMENTS.'</a>';
}
else
{
if ( 
$fullcount )
{
if ( 
$ccount == )
{
$morelink .= '">'._NW_READMORE.'</a> | '.$morelink2.'">'._NW_ONECOMMENT.'</a>';
}
else
{
$morelink .= '">'._NW_READMORE.'</a> | '.$morelink2.'">';
$morelink .= sprintf(_NW_NUMCOMMENTS$ccount);
$morelink .= '</a>';
}
}
else
{
if ( 
$ccount == )
{
$morelink .= '">'._NW_ONECOMMENT.'</a>';
}
else
{
$morelink .= '">';
$morelink .= sprintf(_NW_NUMCOMMENTS$ccount);
$morelink .= '</a>';
}
}
}
}


     A to změnit na:

if (XOOPS_COMMENT_APPROVENONE != $xoopsModuleConfig['com_rule'])
{
$ccount $this->comments();
$morelink .= '<a href="'.XOOPS_URL.'/modules/news/article.php?storyid='.$this->storyid().'';
$morelink2 '<a href="'.XOOPS_URL.'/modules/news/article.php?storyid='.$this->storyid().'';

if ( 
$ccount == )
{
$morelink .= '">'._NW_COMMENTS.'</a>';
}
else
{
if ( 
$fullcount )
{
if ( 
$ccount == )
{
$morelink .= '">'._NW_READMORE.'</a> | '.$morelink2.'">'._NW_ONECOMMENT.'</a>';
}
else
{
if (( 
$ccount >) && ( $ccount <5))
{
$morelink .= '">';
$morelink .= sprintf(_NW_NUMCOMMENTS2$ccount);
$morelink .= '</a>';
}
else
{
$morelink .= '">';
$morelink .= sprintf(_NW_NUMCOMMENTS5$ccount);
$morelink .= '</a>';
}
}
}
else
{
if ( 
$ccount == ) {
$morelink .= '">'._NW_ONECOMMENT.'</a>';
}
else
{
if (( 
$ccount >) && ( $ccount <5))
{
$morelink .= '">';
$morelink .= sprintf(_NW_NUMCOMMENTS2$ccount);
$morelink .= '</a>';
}
else
{
$morelink .= '">';
$morelink .= sprintf(_NW_NUMCOMMENTS5$ccount);
$morelink .= '</a>';
}
}
}
}
}


     No a to je vlastně všechno. Úprava začne fungovat okamžitě, pokud však máte zapnutou vyrovnávací paměť, je potřeba ji nejprve vymazat, jinak se změna projeví až po jejím vyprázdnění.

     A jako vždy na závěr povídání o úpravách systému: před každou úpravou si proveďte zálohu původních souborů. Člověk nikdy neví, co se kde může zvrtnout.
Hodnocení: 10,00 (1 hlas) - Ohodnotit -
Formátovat pro tisk Poslat známému Vytvořit z článku PDF
Komentář je vlastnictvím svého autora. Vyjadřuje jeho názory, ne názory redakce nebo provozovatele webu či serveru.
Napsal/a Vlákno
Host
Publikováno dne: 23.11.2009. 23:38  
 Odp: Problém s počtem komentářů
Každý počin na pozdvihnutí kultury jazyka českého je záslužný a chvályhodný, i kdyby byl jakkoli malý a zdánlivě bezvýznamný. Když člověk poslouchá třeba některé adolescentní moderátory soukromých rozhlasových stanic, zaplakal by. O to víc potěší poznání, že se najdou i takoví, kteří se snaží jít proti tomu zneuctívajícímu proudu.

Jen tak dál! Ať příklady táhnou!
Pavel
Host
Publikováno dne: 10.12.2009. 21:14  
 Odp: Problém s počtem komentářů
Ten Xoops je stejně pěknej RS, myslím že autorka dobře uctila památku starého MCU serveru (kterej na něm jel taky, škoda ho )
Žirafka
Publikováno dne: 10.12.2009. 22:43   Aktualizováno dne:23.12.2009. 15:08
Administrátorka
Datum registrace: 04.05.2008
Bydliště: Ústecký kraj
Počet komentářů: 1251
 Odp: Problém s počtem komentářů
Však také MCU může za to, že tu Xoops běhá Před iks lety jsem se ptala Kosti, co to tam má za systém a on mě navedl na Xoops, on měl ale Xoops 1 a tenkrát už byla venku dvojka. No a tak jsem to s ním zkusila a zůstala u něj. Původně na úplně jiném serveru no a před rokem a půl vznikly Žirafoviny Potíž začíná být s kódováním češtiny, ale to není problém Xoopsu ale PHP5 a MySQL... :-/
Obrázek Obrázek
ObrázekObrázekObrázekObrázekObrázek
Obrázek
Redakční systém XOOPS 2.5.10
Obsah © 2008-2020 Žirafoviny