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

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:
na
To je snadné, ve druhém je to již o něco složitější. Je potřeba najít:
A to změnit na:
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.
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 == 0 )
{
$morelink .= '">'._NW_COMMENTS.'</a>';
}
else
{
if ( $fullcount < 1 )
{
if ( $ccount == 1 )
{
$morelink .= '">'._NW_READMORE.'</a> | '.$morelink2.'">'._NW_ONECOMMENT.'</a>';
}
else
{
$morelink .= '">'._NW_READMORE.'</a> | '.$morelink2.'">';
$morelink .= sprintf(_NW_NUMCOMMENTS, $ccount);
$morelink .= '</a>';
}
}
else
{
if ( $ccount == 1 )
{
$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 == 0 )
{
$morelink .= '">'._NW_COMMENTS.'</a>';
}
else
{
if ( $fullcount < 1 )
{
if ( $ccount == 1 )
{
$morelink .= '">'._NW_READMORE.'</a> | '.$morelink2.'">'._NW_ONECOMMENT.'</a>';
}
else
{
if (( $ccount >1 ) && ( $ccount <5))
{
$morelink .= '">';
$morelink .= sprintf(_NW_NUMCOMMENTS2, $ccount);
$morelink .= '</a>';
}
else
{
$morelink .= '">';
$morelink .= sprintf(_NW_NUMCOMMENTS5, $ccount);
$morelink .= '</a>';
}
}
}
else
{
if ( $ccount == 1 ) {
$morelink .= '">'._NW_ONECOMMENT.'</a>';
}
else
{
if (( $ccount >1 ) && ( $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 -



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
|
![]() 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
|
![]() 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ářů: 1260
|
![]() Však také MCU může za to, že tu Xoops běhá
![]() ![]() |