Как вставить php в js ?
Здравствуйте!
Ситуация следующая: есть файл jquery.prettyPhoto.js, и в этом файле находится html структура всплывающего окна:
markup: '<div class="pp_pic_holder"> \
<div class="ppt"> </div> \
<div class="pp_top"> \
<div class="pp_left"></div> \
<div class="pp_middle"></div> \
<div class="pp_right"></div> \
</div> \
<div class="pp_content_container"> \
<div class="pp_left"> \
<div class="pp_right"> \
<div class="pp_content"> \
<div class="pp_loaderIcon"></div> \
<div class="pp_fade"> \
<a href="#" class="pp_expand" title="Expand the image">Expand</a> \
<div class="pp_hoverContainer"> \
<a class="pp_next" href="#">next</a> \
<a class="pp_previous" href="#">previous</a> \
</div> \
<div id="pp_full_res"></div> \
<div class="pp_details"> \
<div class="pp_nav"> \
<a href="#" class="pp_arrow_previous">Previous</a> \
<p class="currentTextHolder">0/0</p> \
<a href="#" class="pp_arrow_next">Next</a> \
</div> \
<p class="pp_description"></p> \
<div class="pp_social">{pp_social}</div> \
<a class="pp_close" href="#">Close</a> \
</div> \
</div> \
</div> \
</div> \
</div> \
</div> \
<div class="pp_bottom"> \
<div class="pp_left"></div> \
<div class="pp_middle"></div> \
<div class="pp_right"></div> \
</div> \
</div> \
<div class="pp_overlay"></div>',
Проблема в том что мне нужно, вставить в эту структуру еще одну кнопочку из другого плагина, которая должны вызываться через php
<div><?php if(function_exists('wp_ulike')) wp_ulike('get'); ?></div>
Как быть? |
Через РНР на клиенте ничего не вызывается. Если эту кнопку нужно вывести по условию на сервере, значит jquery.prettyPhoto.js должен формировать и отдавать клиенте интерпретатор.
|
смотрите, если бы верстка всплывающего окна была в обычном php файле я бы просто туда добавил код в нужное место:
<?php if(function_exists('wp_ulike')) wp_ulike('get'); ?>
и у меня бы эта кнопка вызывалась... а в js файл я php добавить не могу (или не умею)...В приведенном выше js коде есть строчка которая вызывает "родные" кнопки без использования php
<div class="pp_social">{pp_social}</div> \
..т.е. получается, мне нужно где-то создать отдельный код, что бы можно было также выводить и эту кнопку просто по классу или id? |
Кнопки соцсетей а данном плагине определяются конфигурацией. Если вам нужно добавить к этим кнопкам свою, которая определяется неким условием на сервере, то кроме сервера ее никто в код не добавит. Запрашивать .js файл при этом совсем не обязательно как
<script src=".....jquery.prettyPhoto.js"></script> это может быть запрос к php-файлу, который отдаст серверу данный скрипт, добавив в него кнопку: <script src=".....name.php"></script> где:
header('Content-type: text/javascript');
$pp_social = условие ? 'html-код кнопки' : '';
include '.....jquery.prettyPhoto.js';
//и в этом файле в нужном месте
<?=$pp_social?>
|
А как мне это практически реализовать?
вот есть у меня в файле jquery.prettyPhoto.js такая строчка:
if(settings.social_tools){
facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href));
$pp_pic_holder.find('.pp_social').html(facebook_like_link);
}
..если я меняю html(facebook_like_link) на html('12345678') то у меня в лайтбоксе отображается 12345678.. а что мне нужно вставить что бы отобразился результат действия php
<?php if(function_exists('wp_ulike')) wp_ulike('get'); ?>
Извиняюсь, что так неграмотно все объясняю и спрашиваю... но очень надо - третий день уже ничего не могу сделать (( |
Ну я же писал как. Заменить в моем примере строку 2 на
$pp_social = function_exists('wp_ulike') ? wp_ulike('get') : null';
А вывод (в примере строка), перенести в файл js (строка 3)
$pp_pic_holder.find('.pp_social').html( <?=$pp_social?>);
Но это будет неправильно - facebook_like_link, это все определенные в плагине соц. кнопки. А надо html-код своей кнопки добавить к html-коду определенных. |
Цитата:
|
что-то пока не получается... ((
а разве можно в js файл php-код вставлять? <?=$pp_social?> |
Цитата:
Цитата:
|
самое обидное, что там на самом деле все наверное достаточно просто - если я в медиафайлах (cms wordpress) вставляю в title вместо текста шорт-код плагина Ulike [wp_ulike] (насколько я понимаю, это тоже самое что и просто вызов php функции плагина, только для используется в самом тексте) - то у меня эта кнопка появляется вместо названия (правда только при просмотре единичных изображений, в галерее отображается текстом [wp_ulike])... т.е. получается, что проблема в том, что я не могу правильно задать переменную $pp_social где-то в php файлах, что бы js понял ее как html-код и отобразил в окне? ((
|
| Часовой пояс GMT +3, время: 22:22. |