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
8 uživatel(ů) je online (4 uživatel(ů) si prohlíží Články a povídání)

Uživatelé: 0
Hosté: 8

více...
Noví uživatelé
dědek_hank
dědek_hank
21.02.2020
JosefJosef
JosefJosef
17.01.2020
pavelk
pavelk
20.12.2019
FERYAKT
FERYAKT
07.10.2019
Kolorka
Kolorka
24.09.2019
pospichal
pospichal
03.05.2019
Steppenwolf
Steppenwolf
15.03.2019
numitron
numitron
04.03.2019
vvrsek
vvrsek
31.01.2019
EMANUEL
EMANUEL
21.12.2018
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í 3076×) 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ářů: 1115
 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