Перейти к содержимому


Живой поиск (с картинками)


  • Вы не можете ответить в тему
Сообщений в теме: 205

#201 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 17 October 2014 - 08:18 PM

Я понимаю, что это две большие разницы.

Видимо, плохо понимаете.

Я спрашивал про: #$filter = ""; начальную инициализацию переменной.

Эта тема по модулю "Живой поиск", а не азам языка PHP. На сложный и интересный вопрос я бы с удовольствием ответил даже здесь, но этот вопрос, уж извините, детский сад какой-то. Если Вас сильно волнует закомментированность этой строки - раскомментируйте. Ничего в результате не изменится, а вопрос снимется :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#202 jiykka

    Пользователь

  • Download User
  • PipPip
  • 29 сообщений
Репутация: 0
Начинающий

Отправлено 07 June 2016 - 08:40 PM

Друзья, подскажите пожалуйста в чем может быть затык.
Пытаюсь уже не однократно поставить данный модуль себе на сайт на шаблон bootstrap, firebug ошибок не выводит никаких вродь.
На сайте из jq добален только слайдеры slitslider и highslide(штатный)
Делаю все по инструкции.
1 - index.tpl.html
<form role="form" action="index.php" method="get" name="formpoisk" id="formpoisk" >
	  <div class="input-group">
						 <input name="searchstring" type="text" maxlength="128" id="targetDiv" class="form-control" placeholder="{$smarty.const.FIND_BUTTON_PL}" value="{$searchstring}" ><span class="input-group-btn"><button type="submit" class="btn btn-default" value="search"><span class="glyphicon glyphicon-search"></span> {$smarty.const.FIND_BUTTON}</button></span>
	  </div>
	  {section name=sert loop=$searchstrings}<input type="hidden" name='search_string_{$smarty.section.sert.index}' value='{$searchstrings[sert]}'>{/section}
	 </form>

2 - head.tpl.html
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js" type="text/javascript"></script>
<script type='text/javascript' src='data/{$smarty.const.TPL}/jquery.autocomplete.pack.js'></script>
<link rel="stylesheet" type="text/css" href="data/{$smarty.const.TPL}/jquery.autocomplete.css" />


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="data/{$smarty.const.TPL}/js/jquery.js"></script>
<script src="data/shopcms/js/bootstrap.js"></script>	
<script src="data/{$smarty.const.TPL}/js/modernizr.custom.79639.js"></script> 
<script src="data/{$smarty.const.TPL}/js/jquery.ba-cond.min.js"></script>
<script src="data/{$smarty.const.TPL}/js/jquery.slitslider.js"></script>
<script src="data/shopcms/js/ie10-bug.js"></script> 
 
  {literal}
  <script type="text/javascript">
  
   $(function() {
  
    var Page = (function() {
	 var $nav = $( '#nav-dots > span' ),
	  slitslider = $( '#slider' ).slitslider( {
	   autoplay : 6000,
	   onBeforeChange : function( slide, pos ) {
	    $nav.removeClass( 'nav-dot-current' );
	    $nav.eq( pos ).addClass( 'nav-dot-current' );
	   }
	  } ),
	  init = function() {
	   initEvents();
	  
	  },
	  initEvents = function() {
	   $nav.each( function( i ) {
	  
	    $( this ).on( 'click', function( event ) {
		
		 var $dot = $( this );
		
		 if( !slitslider.isActive() ) {
		  $nav.removeClass( 'nav-dot-current' );
		  $dot.addClass( 'nav-dot-current' );
		
		 }
		
		 slitslider.jump( i + 1 );
		 return false;
	   
	    } );
	   
	   } );
	  };
	  return { init : init };
    })();
    Page.init();
    /**
	 * Notes:
	 *
	 * example how to add items:
	 */
    /*
   
    var $items  = $('<div class="sl-slide sl-slide-color-2" data-orientation="horizontal" data-slice1-rotation="-5" data-slice2-rotation="10" data-slice1-scale="2" data-slice2-scale="1"><div class="sl-slide-inner bg-1"><div class="sl-deco" data-icon="t"></div><h2>some text</h2><blockquote><p>bla bla</p><cite>Margi Clarke</cite></blockquote></div></div>');
   
    // call the plugin's add method
    ss.add($items);
    */
  
   });
  </script>{/literal}
<!--[if lt IE 9]><script src="data/{$smarty.const.TPL}/js/jshelper.js"></script><![endif]-->
<link rel="alternate" type="application/atom+xml" title="RSS" href="index.php?do=rss">
<script>
  <!--
  var confirmUnsubscribe_act1 =  '{$smarty.const.QUESTION_UNSUBSCRIBE}';
  var validate_act1 =  '{$smarty.const.ERROR_INPUT_EMAIL}';
  var validate_disc_act1 =  '{$smarty.const.ERROR_INPUT_NICKNAME}';
  var validate_disc_act2 =  '{$smarty.const.ERROR_INPUT_MESSAGE_SUBJECT}';
  var validate_search_act1 =  '{$smarty.const.ERROR_INPUT_PRICE}';
  var doCL_act1 =  '{$smarty.const.STRING_COMPARISON_IN}';
  var doCL_act2 =  '{$smarty.const.CART_CONTENT_EMPTY}';
  var doCL_act3 =  '{$smarty.const.STRING_COMPARISON_TITLE_OK}';
  var renbox_act1 =  '{$smarty.const.STRING_COMPARISON_PROCESS}';
  var renboxCL_act1 =  '{$smarty.const.STRING_COMPARISON_TITLE_CL}';
  var doreset_act1 =  '{$smarty.const.STRING_CART_PROCESS}';
  var printcart_act1 =  '{$smarty.const.STRING_CART_PROCESS}';
  var doCart_act1 =  '{$smarty.const.STRING_CART_PR}';
  var doCart_act2 =  '{$smarty.const.CART_CONTENT_NOT_EMPTY}';
  var doCart_act3 =  '{$smarty.const.STRING_CUR_PR}';
  var doCart_act4 =  '{$smarty.const.CART_PROCEED_TO_CHECKOUT}';
  var doCart_act5 =  '{$smarty.const.STRING_CART_OKAX}';
  var doCpr_act1 =  '{$smarty.const.STRING_COMPARISON_IN}';
  var doCpr_act2 =  '{$smarty.const.CART_CONTENT_NOT_EMPTY}';
  var doCpr_act3 =  '{$smarty.const.STRING_COMPARISON_INFOLDER}';
  var doCpr_act4 =  '{$smarty.const.STRING_COMPARISON_CLEAR}';
  var doCpr_act5 =  '{$smarty.const.STRING_CART_OKAX}';
  function doCart(req) {literal}{{/literal}
    if(req["shopping_cart_value"] > 0){literal}{{/literal}
	    $("span.cart").html(req["shopping_cart_items"]);
	    $("div.cartblock").html( '<b>' + doCart_act1 + ':<\/b>&nbsp;&nbsp;' + req["shopping_cart_items"] +
	    ' ' + doCart_act2 + '<br><b>' + doCart_act3 + ':<\/b>&nbsp;&nbsp;' + req["shopping_cart_value_shown"] +
	    '<br><a {if $smarty.const.CONF_OPEN_SHOPPING_CART_IN_NEW_WINDOW eq 1}href="#" onclick="open_window(\'index.php?do=cart\',\'{$smarty.const.CART_TITLE}\');"{else}href="{if $smarty.const.CONF_MOD_REWRITE eq 1}cart.html{else}index.php?shopping_cart=yes{/if}"{/if} class="btn btn-success nline">' + doCart_act4 + '<\/a>' );
	    document.getElementById('axcrt').innerHTML = doCart_act5;
  {literal}}}{/literal}
  function doCpr(req) {literal}{{/literal}
    if(document.getElementById('cprbox') && req["cpr_value"] > 0){literal}{{/literal}
	    document.getElementById('cprbox').innerHTML = doCpr_act1 + ' ' + req["cpr_value"] +
	    ' ' + doCpr_act2 + '<div class="nline"><a href="index.php?comparison_products=yes" class="btn btn-info">' + doCpr_act3 + '<\/a>&nbsp;&nbsp;<a href="#" onclick="doLoadcprCL(\'do=compare&amp;clear=yes\'); return false" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span><\/a><\/div>';
	    document.getElementById('axcrt').innerHTML = doCpr_act5;
  {literal}}}{/literal}
  function doStat(req) {literal}{{/literal}
    if(req){literal}{{/literal}
	    document.getElementById('tgenexe').innerHTML	 = req['tgenexe'];
	    document.getElementById('tgencompile').innerHTML = req['tgencompile'];
	    document.getElementById('tgendb').innerHTML	  = req['tgendb'];
	    document.getElementById('tgenall').innerHTML	 = req['tgenall'];
	    document.getElementById('tgensql').innerHTML	 = req['tgensql'];
  {literal}}}{/literal}
  //-->
</script>
<script src="data/{$smarty.const.TPL}/js/user.js"></script>
{if $main_content_template eq "product_detailed.tpl.html"}
<script src="data/{$smarty.const.TPL}/highslide/highslide-full.packed.js"></script>
<script>
<!--
    hs.graphicsDir = 'data/{$smarty.const.TPL}/highslide/graphics/';
    hs.outlineType = 'rounded-white';
    hs.showCredits = false;
    hs.loadingOpacity = 1;
    hs.lang.restoreTitle = '{$smarty.const.STRING_HS_RESTORETITLE}';
    hs.lang.loadingText = '{$smarty.const.STRING_HS_LOADINGTEXT}';
    hs.lang.loadingTitle = '{$smarty.const.STRING_HS_LOADINGTITLE}';
    hs.lang.focusTitle = '{$smarty.const.STRING_HS_FOCUSTITLE}';
    hs.lang.fullExpandTitle = '{$smarty.const.STRING_HS_FULLEXPANDTITLE}';
hs.dimmingOpacity = 0.75;
//-->
</script>

<link href="data/{$smarty.const.TPL}/highslide/highslide.css" rel="stylesheet">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js" type="text/javascript"></script>
<script type='text/javascript' src='data/{$smarty.const.TPL}/jquery.autocomplete.pack.js'></script>

<link rel="stylesheet" type="text/css" href="data/{$smarty.const.TPL}/jquery.autocomplete.css" />
{literal}
<script type="text/javascript">
$().ready(function() {
function liFormat (row, i, num) {
var result = "<table cellpadding='0' cellspacing='0'><tr valign='middle'><td align='center' width='80' rowspan='2'><img border = '0' height= '70' vspace='2' hspace='2' title='"
  +row[1]+"' src='"+row[3]+"'></td><td>"+row[1]+"</td></tr><tr><td>"+row[2]+"</td></tr></table>";
return result;
}
	  
$("#targetDiv").autocomplete("/devsearch.php", {
max: 30,
highlight: false,
scroll: true,
scrollHeight: 600,
width:250,
formatItem:liFormat
});
			   
$("#targetDiv").result(function () {
$('#formpoisk').submit();
});
});
</script>

3 - devsearch.php лежит в корне сайта.

Поиск работает в штатном режиме, ни автоподборки, ни картинок - ничерта...
Кэш чищу, принудительная так же включена.
  • 0

#203 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 07 June 2016 - 08:45 PM

Друзья, подскажите пожалуйста в чем может быть затык.

Возможен конфликт версий jquery, а вообще модулю сто лет в обед, вроде badisoft писал другой вариант под bootstrap, емнип.
  • 1
502 Bad Gateway

#204 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 June 2016 - 09:30 PM

вроде badisoft писал другой вариант под bootstrap, емнип.

Неа :).
Я писал другой вариант под jquery-ui, т.к. он с какой-то версии включил в себя плагин autocomplete (одну из реализаций).
Там больше возможностей, чем в отдельном jquery-плагине, примененном в этой теме в этом модуле. Но причина не в этом.

Насколько я помню, в дефолтовом шаблоне 3.1.3 и jquery, и bootstrap грузятся где-то в конце index.tpl.html. Т.е. загрузка в head.tpl.html библиотеки autocomplete бессмысленна, т.к. произойдет РАНЬШЕ загрузки jquery. Надо либо autocomplete перенести в index.tpl.html после загрузки jquery, либо jquery перенести в общепринятое место в head.tpl.html.

PS. to jiykka: честное слово, лучше купите http://badisoft.ru/s...livesearch.html
Модуль из этого треда писался мной в самом начале освоения ShopCMS и PHP. Много подводных камней и.. эээ... лазеек.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#205 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 June 2016 - 10:18 AM

Посмотрел Ваш код. Мнда.. Тут даже штатное расположение jquery в index.tpl.html ни при чем.

...
<script src="http://ajax.googleap.../jquery.min.js" type="text/javascript"></script>
<script type='text/javascript' src='data/{$smarty.const.TPL}/jquery.autocomplete.pack.js'></script>
<link rel="stylesheet" type="text/css" href="data/{$smarty.const.TPL}/jquery.autocomplete.css" />

<script type="text/javascript" src="http://ajax.googleap...n.js"></script>
<script src="data/{$smarty.const.TPL}/js/jquery.js"></script>
...

Зачем Вы загружаете три (три!) раза библиотеку jquery?
Уберите две последних загрузки и все заработает.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#206 jiykka

    Пользователь

  • Download User
  • PipPip
  • 29 сообщений
Репутация: 0
Начинающий

Отправлено 08 June 2016 - 03:25 PM

Cпасибо огромное. То что подключение jq 3 раза это я уже поплыл.
Так же стояла версия бутстрапа выше чем jq.
Все заработало - всем спасибо!
  • 0