• Resolved Losmi

    (@uloszaminje)


    Poz! Primetio sam da, ukoliko se pismo eksplicitno ne postavi na cirilicu, PHP funkcija unserialize na podacima iz WP baze podataka nece da radi, ovo vraca prazan string:

    unserialize(get_post_meta( get_the_ID(), 'wpsm_accordion_data', true));

    Da li mozda mogu negde u PHP-u u svojoj temi da izvrsim proveru da li je pismo podeseno na cirilicu, i ako nije, podesim ga na cirilicu. Ovaj unserialize mi je bitan jer plugin Accordion FAQ onda ne radi…

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author Ivijan-Stefan Stipic

    (@ivijanstefan)

    Možda bi bilo dobro u Transliterator dodatku ugasiti filtere za get_post_metadata .

    unserialize() je PHP funkcija i plugin nema eksplicitno uticaj na njega ali ima na podatak koji vraćaš.

    Koja su podešavanja dodatka?

    Thread Starter Losmi

    (@uloszaminje)

    Kada je aktivno preslovljavanje na latinicu, ova linija koda plugina ‘responsive accordion’:

    $accordion_data = unserialize(get_post_meta( get_the_ID(), 'wpsm_accordion_data', true));

    proizvodi sledeće obaveštenje:

    PHP Notice: unserialize(): Error at offset 135 of 21978 bytes in ….

    Problem je u tome što sadržaj u bazi (koji je inicijalno serijalizovan na ćirilici) biva promenjen transliteracijom, što narušava integritet serijalizovanih podataka. To dovodi do greške prilikom pokušaja da se ti podaci unserialize.

    Da li mogu deo PHP koda da izopštim iz transliteracije? Ako bi možda mogli da uradimo unserialize i tek nakon toga dobijeni tekst da preslovljavamo ako treba…

    Thread Starter Losmi

    (@uloszaminje)

    Ne znam da li je moguće ugasiti filter za get_post_meta(), lako ću ja posle da preslovim ovo u php-u ili javaskriptu?

    Thread Starter Losmi

    (@uloszaminje)

    Da li funkcija Serbian_Transliteration_Utilities::exclude_transliteration() može da se koristi da za delove PHP skripte isključim transliteraciju pa je zatim ponovo uključim?

    Thread Starter Losmi

    (@uloszaminje)

    Resio sam problem, malo sam bio nevaljao i izmenio sam definiciju funkcije exclude_transliteration() u serbian-transliteration/inc/Utilities.php:

    public static $force_exclude = null;
    public static function exclude_transliteration() : bool {
    if (self::$force_exclude !== null) {
    return self::$force_exclude;
    }
    $locale = self::get_locale();
    $exclude = get_rstr_option('disable-by-language', []);
    return isset($exclude[$locale]) && $exclude[$locale] === 'yes';
    }

    Sada mogu da po potrebi iskljucujem transliteraciju…

Viewing 5 replies - 1 through 5 (of 5 total)

The topic ‘unserialize ne radi ako cirilica eksplicitno nije izabrana’ is closed to new replies.