Всем добра!
Есть вопрос)
Как правильно вывести ссылку на другую страницу сайта в модуле php внутри имеющейся функции?
Ссылка размещена в строке массива.
У меня есть код
<?phpif(..............
$output_desc_name_num= $output;
$desc_name_ar = array(
"1" => "<a href='http:\\test.com'>link</a>",
"2" => "Описание.. 2",
"3" => "Описание.. 3",
);
if($output_desc_name_num == 1){
$desc_name = $desc_name_ar[1];
}
elseif($output_desc_name_num == 2){
$desc_name = $desc_name_ar[2];
}
elseif($output_desc_name_num == 3)
$desc_name = $desc_name_ar[3];
else
$desc_name ='';
............
return $response;
}?>
Комментарии
этанольный вопрос
вы же за это деньги получаете?
вообще то нет, я изучаю php сейчас, нашла несколько вариантов как это сделать в интернет, но это не работает для меня.
$desc_name_ar[$output_desc_name_num]
это значение я получаю так-же
$output_desc_name_num= $output;, но ссылка все равно не отображается как ссылка, только текст
где не отображается? в твиге?
там фильтр по умолчанию, который разметку в текст переводит
{{foo|raw}} так без фильтра
ну и вообще так не принято, надо или линк объект делать, или рендер массив, или в твиге ссылку форматировать
результат выводится в блоке модуля в форме я не использую твиг
Без полного примера кода будет сложно вам помочь.
PS. Ещё одно замечание относительно code style. Числовые ключи в массивах PHP хоть и допускаются в строковом представлении, но лучше (для однозначной интерпретации человеком) писать их именно как целые числа, т.е. без кавычек:
<?php
...
$desc_name_ar = array(
1 => "<a href='http:\\test.com'>link</a>",
2 => "Описание.. 2",
3 => "Описание.. 3",
);
...
?>
Тем более, что далее по коду вы адресуетесь к элементам по целочисленным значениям ключей. Т.е. здесь заключать ключи в кавычки никакого смысла нет.
да-да, проблема была в кавычках, я поняла это)) благодарю, как поменяла, все заработало.
По канонам значение атрибута href положено заключать в двойные кавычки. Т.е. вместо:
<?php
...
$desc_name_ar = array(
1 => "<a href='http:\\test.com'>link</a>",
2 => "Описание.. 2",
3 => "Описание.. 3",
);
...
?>
сделать так:
<?php
...
$desc_name_ar = array(
1 => '<a href="http:\\test.com">link</a>',
2 => "Описание.. 2",
3 => "Описание.. 3",
);
...
?>
В таким виде работает -
"1" => "<a class='use-ajax' data-dialog-type='modal' href=\"http://localsite.com/node/15\"> Ссылка - $output </a>",
не разобралась как туда теперь правильно ширину модального окна впихнуть - data-dialog-options='{'width': 700}'
<a href="http:\\test.com">
ГЫ... Никого не смущает ссылка ? )))
ссылка для примера в коде указана)