Как вставить 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, время: 11:29. |