2015-08-10 2 views
0

Это плагин wordpress, который я использовал Backbone Marionette для создания back-end. Проблема в том, что код шаблона (html и javascript) выполняется в php.Код javascript пытается быть выполнен как php

Фатальная ошибка: Вызов неопределенной функции подстроки() в ../main-menu.php на линии 304

<script type="text/template" id="amazon-result-item-view"> 
     <p class="small-text"> 
     <a href="<%= url %>" target="_blank" > 
     <%= name.substring(0,30) %>... //getting the php error at this line 
     </a></p> 

     <img width="100" src="<%= image_url %>" /> 
     <button data-product-index="<%= cid %>" 
     class="tiny add-amazon-product"> 
     Add product</button> 
    </script> 

Это из плагина, который работает в нескольких других сайтах WP я думаю, что это один разбор нибудь обернуть этим <% =%> в PHP, но не знает, почему ...

+2

Возможно, попробуйте использовать '_.templateSettings', чтобы установить другой синтаксис перехода? Пример в http://underscorejs.org/#template – ivarni

ответ

0

Как @ivarni упоминался вы можете изменить то, что ограничители underscore использует интерполировать значение. Например, вы можете передать следующее выражение для подчеркивания, чтобы переключить разделители на разделители стиля усов, которые должны работать в вашем случае.

_.templateSettings = { 
     evaluate: /\{\[([\s\S]+?)\]\}/g, 
     interpolate: /\{\{([\s\S]+?)\}\}/g, 
     escape: /\{\{-([\s\S]+?)\}\}/g 
}; 

Вы бы затем изменить шаблон на что-то вроде этого

<script type="text/template" id="amazon-result-item-view"> 
     <p class="small-text"> 
     <a href="{{ url }}" target="_blank" > 
     {[ name.substring(0,30) ]}... 
     </a></p> 

     <img width="100" src="{{ image_url }}" /> 
     <button data-product-index="{{ cid }}" 
     class="tiny add-amazon-product"> 
     Add product</button> 
    </script> 
0

Вы используете JSP синтаксис <%= %> вместо синтаксиса PHP {[ whatever ]}. В этом случае ваша четвертая строка должна быть такой:

{[ name.substring(0,30) ]}