Maciej Cybulski

Maciej Cybulski Magik od WordPressa,
secjalista SEO

Temat: przekazywanie wartości zmiennych (php,xml,javascript)

Mam taki problem i nie wiem gdzie szukać istoty rozwiązania:
Mam program który generuje flashowe galerie. Pliki konfiguracyjne
do galerii są w formacie xml. Do tego zestaw zdjeć jest
przekazywany za pomocą specyficznego adresu URL.
Chciałbym aby kilka zmiennych które generuje program (i wpisuje do
pliku param.xml) było przekazywane dynamicznie przez php. Z uwagi
na szablonowość rozwiązania chciałem to zrobić w postaci
funkcji php. Coś takiego:

function
flash_gal_config($path,$bgcolor,$full_screen,$id_name,$height,$width,$gal_path)
{
echo"<script type=\"text/javascript\">
<!--
// Permalinks option
function flashPutHref(href) { location.href = href; }

// Expand browser option
var eB = true;
if (eB) {
window.moveTo(0,0);
window.resizeTo (screen.availWidth, screen.availHeight);
}

// SWFObject embed
var flashvars = {
xmlFilePath:\"$gal_path\",
paramXMLPath: \"$path/param.xml\",
initialURL: escape(document.location)
}
var params = {

sspHeight:\"$height\",
sspWidth:\"$width\",
bgcolor: \"$bgcolor\",
allowfullscreen: \"$full_screen\"
}
var attributes = {}
swfobject.embedSWF(\"$path/loader.swf\", \"$id_name\", \"$height\",
\"$width\", \"9.0.0\", \"$path/expressInstall.swf\", flashvars,
params, attributes);
/* below required for google chrome embed issue */

-->
</script>";
}

Zmienne podawane do skryptu są tej postaci:


$gal_path='http://galeria2.mc2studio.pl/images.php?album=16';
$path='./img/gal';
$bgcolor='#ff0000';
$full_screen='allow';
$id_name='flashcontent';
$height=380;
$width=477;

Niestety galeria nie działa. Plik galerii zgłasza że nie ma pliku
konfiguracyjnego czyli xmlFilePath.
Co robię źle?
Z góry dzięki za sugestie

konto usunięte

Temat: przekazywanie wartości zmiennych (php,xml,javascript)

Maciej "Merlin" Cybulski:
Mam taki problem i nie wiem gdzie szukać istoty rozwiązania:

Pokaż kod html, wraz z tym javascriptem, gdzie już masz podstawione wartości.
Domyślam się po nazwach zmiennych, że to slideshowpro :)
Maciej Cybulski

Maciej Cybulski Magik od WordPressa,
secjalista SEO

Temat: przekazywanie wartości zmiennych (php,xml,javascript)

No dokładnie SSP;)
Dla czytelności tutaj wrzuciłem tę funkcję na samym początku.
Generalnie chodzi mi o to aby konfigurację najistotniejszych elementów strony móc zapisać w jednym miejscu (pliku czy bazie), dlatego muszę mieć możliwość dynamicznego przekazywania wartości, szczególnie chodzi tu o zmienną xmlFilePath.
Przykładowy kod jest taki:

<?php
function flash_gal_config($path,$bgcolor,$full_screen,$id_name,$height,$width,$gal_path)
{
echo"<script type=\"text/javascript\">
<!--
function flashPutHref(href) { location.href = href; }
var eB = true;
if (eB) {
window.moveTo(0,0);
window.resizeTo (screen.availWidth, screen.availHeight);
}

// SWFObject embed
var flashvars = {
xmlFilePath:\"$gal_path\",
paramXMLPath: \"$path/param.xml\",
initialURL: escape(document.location)
}
var params = {

sspHeight:\"$height\",
sspWidth:\"$width\",
bgcolor: \"$bgcolor\",
allowfullscreen: \"$full_screen\"
}
var attributes = {}
swfobject.embedSWF(\"$path/loader.swf\", \"$id_name\", \"$height\", \"$width\", \"9.0.0\", \"$path/expressInstall.swf\", flashvars, params, attributes);
-->
</script>";
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="StyleSheet" href="./inc/style.css" type="text/css" />
<!-- Flash Gallery js-object -->
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/swffit.js"></script>
<script src="./js/click_toggle.js" type="text/javascript"></script>
<?php
/* include ('./inc/flash_gal_config.inc.php');*/
$gal_path='http://galeria2.mc2studio.pl/images.php?album=16';
$path='./img/gal';
$bgcolor='#ff0000';
$full_screen='true';
$id_name='flashcontent';
$height=380;
$width=477;
flash_gal_config($path,$bgcolor,$full_screen,$id_name,$height,$width,$gal_path);
?>
<!-- END -->

<title></title>
</head>
<body >
<div id="flashcontent"></div>
</body>
</html>
Maciej "Merlin" Cybulski edytował(a) ten post dnia 02.05.10 o godzinie 17:13

konto usunięte

Temat: przekazywanie wartości zmiennych (php,xml,javascript)

Czy wszystkie pliki znajduja sie w tej samej domenie?
flash, xml etc?
Maciej Cybulski

Maciej Cybulski Magik od WordPressa,
secjalista SEO

Temat: przekazywanie wartości zmiennych (php,xml,javascript)

Pliki wszystkie znajdują się w tej samej domenie. Powiem inaczej. Parametry które zdefiniowane są pod zmiennymi php czyli
$gal_path='http://galeria2.mc2studio.pl/images.php?album=16';
$path='./img/gal';
$bgcolor='#ff0000';
$full_screen='true';
$id_name='flashcontent';
$height=380;
$width=477;

gdy wpisuję bezpośrednio do pliku param.xml skutkują wyświetleniem poprawnej galerii. Problem polega tylko na tym jak z zewnątrz wprowadzić te parametry, tak aby galeria działała.

konto usunięte

Temat: przekazywanie wartości zmiennych (php,xml,javascript)

Maciej "Merlin" Cybulski:
gdy wpisuję bezpośrednio do pliku param.xml skutkują wyświetleniem poprawnej galerii. Problem polega tylko na tym jak z zewnątrz wprowadzić te parametry, tak aby galeria działała.

A, to inna bajka. Ja myślałem, że nie chce ci załadować param.xml.

Sprawdź, czy wartość xmlFilePath może być url'em i czy nie jest przypadkiem wymagana relatywna ścieżka.

Możesz też wygenerować param.xml dynamicznie. Ustaw np. w .htaccess odpowiedni rewrite, np. z param.xml?val1=a&val2=b na param.php z odpowiednimi parametrami i wypluj xml'a z php'a. Zwróć uwagę podczas testów, że flash pobierając tego xml'a, może go keszowac.

Z tego, co (słabo) pamiętam, slideshowpro łykał elegancko wartości tylko w wersji 'standalone'. Jeżeli używasz opcji "for flash" i sam budujesz sobie galeryjkę w oparciu o komponent, to trzeba samemu sobie flashvarsy i param.xml obsłużyć.

Warto mieć to na uwadze, chociaż z tego co piszesz, używasz wersji 'standalone', skoro działają zmiany ręcznie wprowadzone w param.xml.

No i nie wiem co wkleiłeś, ale chodziło mi o html'a, którego dostaje przeglądarka :)

edit: na moje oko, to, to co wprowadzasz jako flashvars trafia do flaszki: "loader.swf" i niekoniecznie potem do slideshowpro.swf, czy jak on się tam nazywa. Natomiast param.xml jest już ładowany przez właściwy plik swf generujący galerię. Ja bym się we flashvarsy nie bawił, tylko tak jak pisałem - dynamicznie generował cały param.xml.

A najlepiej, to pokaż to online :)

ps. mając na uwadze Twój avatar muszę przyznać, że dobrze piszesz po polsku. Nie jest Ci u nas gorąco w takiej czapie?Peter K. edytował(a) ten post dnia 02.05.10 o godzinie 22:25

Następna dyskusja:

[JavaScript] problem z funk...




Wyślij zaproszenie do