LINUX.ORG.RU

Smarty insert - вставка SVG файла


0

0

Использую сабж:
http://www.smarty.net/manual/ru/language.function.insert.php

Нужно включить в HTML страницу SVG файл:
https://developer.mozilla.org/en/SVG_In_HTML_Introduction

читаю содержимое SVG файла.

$result = file_get_contents($outputfile);
return $result;

мягко говоря возвращает не то, что нужно.

кто виноват?

file_get_contents или Smarty?

и как лечить?

ну и еще более общий вопрос: а как быть с браузерами, отличными от Firefox?

короче нужен работающий пример вставки SVG файлов в HTML страницу для FF/Op/IE (ненужно зачеркнуть), желательно потом поддержка управления скриптами.

GotDotNet
() автор топика

>мягко говоря возвращает не то, что нужно.

это означает, что браузер выводит НЕ то, что нужно.

Начало SVG-файла:
<svg width="816pt" height="978pt"
viewBox="0.00 0.00 816.00 978.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 974)">
<title>Graph</title>
<!-- . -->
<g id="node1" class="node"><title>.</title>

GotDotNet
() автор топика

конкертно:

FF 3.0.10 показывает только текстовые значения из узлов SVG файла

<text>только это он показывает, а все остальное игнорирует</text>

GotDotNet
() автор топика

проблема заключается в следующем:

Firefox не может определить, что ему передают XML файл.

Когда я сохраняю исходный текст сгенерированной страницы в локальном файле и открываю его заново в FF - все нормально отображается.

как лечить?

Хидер:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

GotDotNet
() автор топика
Ответ на: комментарий от svr69

нужно делать через object:

<object data="get_svg.php?param1=<param1>;param2=<param2>"
type="image/svg+xml">
</object>

get_svg.php:
...
header('Content-Type: image/svg+xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="no"?>';
echo file_get_contents($svg_file);
...

у меня не получилось корректно отобразить нелокальный HTML+SVG...

на самом деле через object - абсолютно правильное кроссбраузерное решение.

GotDotNet
() автор топика
Ответ на: комментарий от GotDotNet

Правильное, но там по ссылкам есть кроссбраузерное решение с инлайном.

svr69 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.