Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Problem z plikiem .tpl przy tworzeniu szablonu allegro
Forum PHP.pl > Forum > Przedszkole
umnierazniej
Mam problem ze skryptem który wysyła dane przez allegro webapi (kilka plików). Po wprowadzeniu nowych wymagań przez allegro skrypt do wystawiania aukcji przestał działać. Po zmianie szablonu działa tylko wtedy kiedy dane do opisu są zapisane na stałe (drugi przykład). Przy zastosowaniu zmiennej (tekst) nie działa mimo że ten opis jest "identyczny" w obu przypadkach. Poniżej jest szablon tpl który został sformatowany do nowych wymagań opisu i jest wysyłany z innymi danymi przy wystawianiu aukcji.

Plik *.tpl
Nie działa *** "content": "<p>{$lato}</p>" ***:
{
"sections": [{
"items": [{
"type": "TEXT",
"content": "<p>Canon 77D do jest najlepszy aparat w tej kategorii.</p>"
}]
},{
"items": [{
"type": "TEXT",
"content": "<p>{$lato}</p>"
}]
}]
}

Tutaj jest kod z pliku Allegro.php który podmienia dane:
$lato = str_replace(('{$lato}'),$description,file_get_contents($vals['template']));
// $description = htmlspecialchars($description);
// echo $description;
// echo htmlspecialchars($description);
// echo addcslashes($description,'A..z');
$fields[] = array(
'fid' => 341, // Był 24 Opis
'fvalueString' => $lato,
'fvalueInt' => 0,
'fvalueFloat' => 0,
'fvalueImage' => 0,
'fvalueDatetime' => 0,
'fvalueDate' => '',
'fvalueRangeInt' => array(
'fvalueRangeIntMin' => 0,
'fvalueRangeIntMax' => 0),
'fvalueRangeFloat' => array(
'fvalueRangeFloatMin' => 0,
'fvalueRangeFloatMax' => 0),
'fvalueRangeDate' => array(
'fvalueRangeDateMin' => '',
'fvalueRangeDateMax' => '')
);

Drugi przykład który działa
Plik *.tpl
Działa *** "content": "<p>To jest naprawde cudowny aparat dlugi</p>" ***:
{
"sections": [{
"items": [{
"type": "TEXT",
"content": "<p>Canon 77D do jest najlepszy aparat w tej kategorii.</p>"
}]
},{
"items": [{
"type": "TEXT",
"content": "<p>To jest naprawde cudowny aparat dlugi</p>"
}]
}]
}


Czy ktoś mam jakiś pomysł dlaczego jeden działa a drugi nie działa? Po sprawdzeniu używając "echo" wyglądają na "identyczne"?
nospor
Uzywaj bbcode dla wstawianych kodow na forum.

Ja tu widze powazny blad w twoim szablonie.
Uzywasz w nim { } do wygenerowania json ale to sa przeciez znaki zastrzezone w smarty. Skoro ci to dziala, to pewnie przed tym dales dyrektywe ktora wylacza smartowe {}. Jesli tak, nic dziwnego ze {$lato} ci nie dziala skoro wlaczyles te dyrektywe.
Musisz na czas wlozenia {$lato} wylaczyc spowrotem te dyrektywe.
umnierazniej
Cytat(nospor @ 8.05.2018, 09:40:34 ) *
Uzywaj bbcode dla wstawianych kodow na forum.

Ja tu widze powazny blad w twoim szablonie.
Uzywasz w nim { } do wygenerowania json ale to sa przeciez znaki zastrzezone w smarty. Skoro ci to dziala, to pewnie przed tym dales dyrektywe ktora wylacza smartowe {}. Jesli tak, nic dziwnego ze {$lato} ci nie dziala skoro wlaczyles te dyrektywe.
Musisz na czas wlozenia {$lato} wylaczyc spowrotem te dyrektywe.


Ok. teraz kod będę wklejał tam gdzie potrzeba...

Co do dyrektyw to nic takiego nie właczam ani nie wyłączam. Poniżej jest częściowy "output" tego co jest wygenerowane przez skrypt i przy użyciu {$lato} wygląda identycznie tak jak ten gdzie ta wartość jest dodana w szablonie, a mimo to nie mogę wystawić przedmiotu. Próbowałem z {literal} i {$lato|@json_encode nofilter} ale też nie działa. Nie wiem co robić...



Do wygenerowania tego użyłem kodu (wpisany tekst do szablonu->działa i użycie {$lato}->nie dzała):

Kod
echo "FID\Opis";
            foreach ( $fields as $var ) {
                echo "\n", $var['fid'], "\t\t", $var['fvalueString'];
            }
Pyton_000
Weź człowiecze sformatuj tego posta z kodem jak trzeba
umnierazniej
Cytat(Pyton_000 @ 9.05.2018, 13:18:32 ) *
Weź człowiecze sformatuj tego posta z kodem jak trzeba


To weź i pokaż jak to mam zrobić, a jeszcze lepiej jak byś pomógł w rozwiązaniu tego banalnego dla Ciebie problemu.
nospor
Powiem ci szczerze ze zaczynam sie gubic w tym co tu opisujesz....
Raz mowisz ze smarty i tpl, raz podajesz normalny kod php raz ze $lato a raz ze $lato->costam.
Zrozum, my nie siedzimy przed twoim monitorem i nie widzimy tego co tam masz. A takie haotyczne wypowiedzi co udzielasz w niczym nie pomagaja

Napisze jeszcze raz:
jesli w szablonie .tpl bez problemu wstawiasz {} by wygenerowac json, znaczy ze masz gdzies dyrektywe literal wlaczona. Z tego tez powodu nie bedzie ci dzialac {$zmienna}
Zas co do {$lato->costam} to z tego co pamietam to w smarty nei uzywa sie -> tylko kropek wiec {$lato.costam}. Ale dawno juz tego badziewia nie uzywalem i moge zle pamietac
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.