Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Event Espresso Lite
Štítky: htmlentities(), kalendář, události
Zvolené téma neobsahuje zatím 1žádnou odpověď. Do diskuze (3 účastníci) se naposledy zapojil uživatel admin a poslední změna je stará 12 let, 10 měsíců.
-
AutorPříspěvky
-
10. dubna 2011 (20:07) #940
Dobrý den,
po instalaci Event Espresso Lite si pridam kategorie udalosti. Pokud chci vsak kategorii smazat, vypise: Fatal error: Call to a member function query() on a non-object in /www/wp-content/plugins/advanced-events-registration/includes/admin_event_categories.php on line 14
Navic u kategorii nefunguje cestina hacky a carky, u udalosti atd ano.
Nevite nekdo, co s tim? Popripade lepsi plugin na events popripade i s cestinou?
Diky za rady, Michal
12. dubna 2011 (9:42) #8125Máte pravdu, plugin Event Espresso Lite – Event Registration and Management jsem zkoušel a objevil jsem přesně ty samé chyby.
Trochu jsem se díval na kód pluginu a problém spočívá v následujících bodech:
1) Problém s mazáním rubriky je patrně způsoben chybějící deklarací globální proměnné $wpdb. V souboru pluginu advanced-events-registration/includes/admin-event-categories.php to můžete opravit tak, že na osmý řádek před kód
if($_POST){
vložíte ještě
global $wpdb;
2) Problém s českými znaky je zase způsoben použitím funkce htmlentities2(), která asi defaultně nepodporuje kódování UTF-8.
Ve stejném souboru najděte kód
$category_desc= htmlentities2($_REQUEST);
a upravte ho následujícím způsobem
$category_desc= htmlentities($_REQUEST, ENT_QUOTES, 'UTF-8' );
Pozor, je to tam dvakrát (jednou pro přidání události a jednou pro úpravu), takže to musíte upravit na dvou místech.
Po těchto úpravách už by mělo vše v pořádku fungovat. Napsal jsem to i autorům pluginu, takže to třeba časem opraví. I když se asi spíše soustředí na prémiovou (placenou) verzi pluginu (cca 60 USD). Nemám s ní zkušenosti, ale možná by stála za zvážení. I když samotný plugin není asi navržen zrovna ideálně…
Pluginů pro správu událostí je mnoho, ale dost jich je placených a mnoho již zastaralých. Často také neumí přesně tu funkci, kterou bysme zrovna potřebovali. Zkusíme ale připravit nějaký aktuální přehled nejlepších pluginů…
12. dubna 2011 (11:22) #8126Děkuji za reakci, na odstranění problému s hlášenou chybou jsem použil funkci z jiného souboru a také funguje.
Za tu češtinu děkuji!! Jen je ještě problém při odesílání automatického emailu jako potvrzení o registraci do události. Email přijde také se špatným kódováním. Nejspíš to bude podobný problém?!
13. dubna 2011 (12:29) #8127Jakou funkci jste pro zajímavost použil?
Ano, s emaily to bude něco podobného. Nezkoušel jsem to, ale vidím tam funkci html_entity_decode(), takže bych zkusil změnit (v souboru advanced-events-registration/event_regis.php) kód
html_entity_decode( wpautop($email_body))
na
html_entity_decode( wpautop($email_body), ENT_QUOTES, 'UTF-8');
Vyzkoušejte a dejte vědět. Jak tak ale celý plugin procházím, tak je vidět, že není zcela ideální, neumožňuje ani jednoduchý překlad do češtiny (není gettextován).
13. dubna 2011 (12:39) #8128Zdravím, chtěl jsem trošku přispět tak jsem zkoušel najít nějaké podobné pluginy, ale jak koukám tak to s nimi není teda vůbec lehké…
Našel jsem 3 a všechny jsou reportovány na secunii, kvůli nějaké bezpečnostní chybě, naštěstí tady ten tam není :)
13. dubna 2011 (14:40) #8129Tu co je pouzita u registrace udalosti tusim…. $result = mysql_query($sql) or die(mysql_error());
Ale ted jsem se tim zabyval a i po uprave souborů se mi cestina nevlozi… zkusim si s tim jeste pohrat, ale je to divne…
Podivam se do databaze, jak se to tam uklada, jake kodovani atd a dam vedet.
13. dubna 2011 (14:52) #8130on je problem u categorie_desc ale i categorie_name… ale kdyz to upravim i tam, tak to stejne nejede… popis kategorie s cestinou uz jede
13. dubna 2011 (15:16) #8131tak ani ta cestina v odeslanem mailu nejede… ono se generuje do predmetu zpravy nazev kempu, ten se taky zobrazi spatne a zprava je taky ve spatnem formatu.
Bude to asi na podrobnejsi rozbor.
14. dubna 2011 (10:56) #8132Raději mysql_query() nepoužívejte, lepší je využít třídu wpdb() a nadefinovat globální proměnnou. Už jenom tato ukázka bohužel něco naznačuje o autorovi pluginu…
Pro název rubriky je třeba provést stejnou úpravu jako pro její popis. Ve stejném souboru pluginu advanced-events-registration/includes/admin-event-categories.php tedy najděte kód
$category_name= htmlentities2($_REQUEST);
a upravte ho následujícím způsobem
$category_name= htmlentities($_REQUEST, ENT_QUOTES, 'UTF-8' );
Pozor, opět je to na dvou místech – jednou pro vytvoření nové rubriky a podruhé pro její úpravy.
A u emailu by mohlo ještě vadit špatné kódování, zkuste změnit (v souboru advanced-events-registration/event_regis.php) kód
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
na kódování utf-8
$headers .= "Content-Type: text/html; charset=utf-8rn";
Uvidíme, třeba se ještě něco objeví. A nerozumím větě “do predmetu zpravy nazev kempu” – co je to kemp? Nic podobného tam nemám, možná vlastní překlad?
14. dubna 2011 (19:30) #8133Tak mi to nedalo a mrknul jsem na to a popravdě to vzdávám, v tom pluginu se prostě nevyznám.
Napadlo mně ještě zkusit použít
mb_internal_encoding("UTF-8");
někde na začátku pluginu, tím by se “globálně” nastavilo kodovani i pro ostatní funkce které jsou v tom pluginu a které nejsou binárně bezpečné (substr atd…)
Popřípadě zrovna u toho mejlu bych asi ty vstupní data zkusil ještě prohnat přes
mb_convert_encoding($obsah_mejlu, "UTF-8", "ISO-8859-2");
uvedený kód v předchozím příspěvku totiž (pokud mi nic neuteklo) nastaví do UTF-8 jen hlavičku mejlu, ale skutečná data která se mají vypisovat můžou přijít v jiném kodovani. Ale je to jen nápad, nezkoušel jsem to, možná je chyba úplně někde jinde…
22. června 2011 (8:34) #8134Nakonec to asi zůstává nedořešeno, ale všiml jsem si, že došlo k velké aktualizaci pluginu na verzi 3.x, která už výše uvedenými problémy netrpí. A celkově plugin vypadá docela dobře, doporučuji vyzkoušet…
Pozor, plugin je v oficiálním adresáři pluginů uveden pod stejným názvem, ale jinou adresou: Event Espresso Lite – Event Registration and Management. Takže si dejte pozor, kterou verzi instalujete…
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.