Добавляем поиск в верхнее меню форума

Hope

Premium
Сообщения
48,305
Решения
22
Реакции
71,868
Баллы
40,905
example1.png

В шаблоне header находим:
Код:
<xen:if is="{$canSearch}"><xen:include template="search_bar" /></xen:if>

И заменяем на:
Код:
<xen:comment><xen:if is="{$canSearch}"><xen:include template="search_bar" /></xen:if></xen:comment>


В шаблоне navigation находим:
Код:
<!-- no selection -->
		<xen:if is="!{$selectedTab}">
			<li class="navTab selected"><div class="tabLinks"></div></li>
		</xen:if>

И после добавляем:
Код:
<xen:if is="{$canSearch}">
			<li class="navTab search Popup PopupControl PopupClosed">
	 
				<a href="/search/" class="navLink NoPopupGadget" rel="Menu">{xen:phrase search}</a>
	 
				<div class="Menu JsOnly tabMenu">
					<xen:include template="search_bar" />
				</div>
			</li>
		</xen:if>


В шаблоне search_bar находим:
Код:
<div class="Popup" id="commonSearches">
							<a rel="Menu" class="button NoPopupGadget Tooltip" title="{xen:phrase useful_searches}" data-tipclass="flipped"><span class="arrowWidget"></span></a>
							<div class="Menu">
								<div class="primaryContent menuHeader">
									<h3>{xen:phrase useful_searches}</h3>
								</div>
								<ul class="secondaryContent blockLinksList">
									<!-- block: useful_searches -->
									<li><a href="{xen:link find-new/threads, '', 'recent=1'}">{xen:phrase recent_threads}</a></li>
									<xen:if is="{$visitor.user_id}">
									<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=thread'}">{xen:phrase your_threads}</a></li>
									<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=post'}">{xen:phrase your_posts}</a></li>
									<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=profile_post'}">{xen:phrase your_profile_posts}</a></li>
									</xen:if>
									<!-- end block: useful_searches -->
								</ul>
							</div>
						</div>

И заменяем на:
Код:
<xen:comment><div class="Popup" id="commonSearches">
							<a rel="Menu" class="button NoPopupGadget Tooltip" title="{xen:phrase useful_searches}" data-tipclass="flipped"><span class="arrowWidget"></span></a>
							<div class="Menu">
								<div class="primaryContent menuHeader">
									<h3>{xen:phrase useful_searches}</h3>
								</div>
								<ul class="secondaryContent blockLinksList">
									<!-- block: useful_searches -->
									<li><a href="{xen:link find-new/threads, '', 'recent=1'}">{xen:phrase recent_threads}</a></li>
									<xen:if is="{$visitor.user_id}">
									<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=thread'}">{xen:phrase your_threads}</a></li>
									<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=post'}">{xen:phrase your_posts}</a></li>
									<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=profile_post'}">{xen:phrase your_profile_posts}</a></li>
									</xen:if>
									<!-- end block: useful_searches -->
								</ul>
							</div>
						</div></xen:comment>


В шаблоне search_bar.css находим:
Код:
#QuickSearch
	{
		display: block;
 
		position: absolute;
		right: 20px;
		top: -18px;
 
		margin: 0;
 
		background-color: @content.background-color;
		border-radius: 5px;
		padding-top: 5px;
		_padding-top: 3px;
		z-index: 7500;
	}
	 
		#QuickSearch .secondaryControls
		{
			display: none;
		}
 
		#QuickSearch.active
		{
			box-shadow: 5px 5px 25px rgba(0,0,0, 0.5);
			padding-bottom: 5px;
		}

И заменяем на:
Код:
#QuickSearch
	{
		display: block;
 
		margin: 0;
 
		background-color: @content.background-color;
		padding-top: 5px;
		_padding-top: 3px;
		z-index: 7500;
		float: left; /* Fix for the element not wrapping correctly */
	}


Открываем файл /js/xenforo/xenforo.js, в нём находим:
Код:
XenForo.QuickSearch=function(a){var b=0;a.find("#QuickSearchQuery").focus(function(){b++;console.log("Show quick search menu (%s)",b);b==1&&c.browser.msie&&c.browser.version<9&&a.find("input").keydown(function(a){if(a.keyCode==13)return c(this).parents("form").submit(),
!1});a.addClass("active");a.find(".secondaryControls").slideDown(0);c(h).bind("click",function(b){c(b.target).parents("#QuickSearch").length||(console.log("Hide quick search menu"),c(this).unbind(b),a.find(".secondaryControls").slideUp(XenForo.speed.xfast,function(){a.removeClass("active")}))})})};

И заменяем на:
Код:
/*XenForo.QuickSearch=function(a){var b=0;a.find("#QuickSearchQuery").focus(function(){b++;console.log("Show quick search menu (%s)",b);b==1&&c.browser.msie&&c.browser.version<9&&a.find("input").keydown(function(a){if(a.keyCode==13)return c(this).parents("form").submit(),
!1});a.addClass("active");a.find(".secondaryControls").slideDown(0);c(h).bind("click",function(b){c(b.target).parents("#QuickSearch").length||(console.log("Hide quick search menu"),c(this).unbind(b),a.find(".secondaryControls").slideUp(XenForo.speed.xfast,function(){a.removeClass("active")}))})})};*/
 
  • Мне нравится
Реакции: Huan
плагинчик бы..... в последнее время понял, что правка кода - это не самое лучшее решение.
 
Тоже был ступор на последнем пункте. В точь-точь такой строчки не было, но начало было одно. В строчку добавил не "/*XenForo.QuickSearch=...", а "/XenForo.QuickSearch=...". Вроде, все получилось.

Ага, только после этого админка вся зависла с форумом...
 
Последнее редактирование:
Если есть желающие собрать мод в плагиньчик, готов отблагодарить 100 wmr, если есть желающие присоединится к благодарности, пишите тут.
 
Местный троль 100% может собрать за 5 мин. Думаю если ему написать в ЛС не откажит.
 
там каждый может собрать за пять минут :) и че писать в лс, я и так вижу, позже че нить придумаем
 
Время только надо, верно говоришь и даже не потролил ))))
 
Короче описанное выше не катит на новых версиях движка, файл xenforo.js, другой, попробовал закоментить, как указано здесь, нужную функцию, но она совсем другая и в конечном результате, нет выпадающего меню, просто переход на страницу поиска.
 
Может все таки кто-то знает, как реализовать данную фичу в новых версиях движка?

У меня, кстати, проблемы уже начались с шаблона search_bar, нет такого кода:

<div class="Popup" id="commonSearches">
<a rel="Menu" class="button NoPopupGadget Tooltip" title="{xen:phrase useful_searches}" data-tipclass="flipped"><span class="arrowWidget"></span></a>
<div class="Menu">
<div class="primaryContent menuHeader">
<h3>{xen:phrase useful_searches}</h3>
</div>
<ul class="secondaryContent blockLinksList">
<!-- block: useful_searches -->
<li><a href="{xen:link find-new/threads, '', 'recent=1'}">{xen:phrase recent_threads}</a></li>
<xen:if is="{$visitor.user_id}">
<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=thread'}">{xen:phrase your_threads}</a></li>
<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=post'}">{xen:phrase your_posts}</a></li>
<li><a href="{xen:link search/member, '', 'user_id={$visitor.user_id}', 'content=profile_post'}">{xen:phrase your_profile_posts}</a></li>
</xen:if>
<!-- end block: useful_searches -->
</ul>
</div>
</div>
 
А я вообще не закомментировал последний кусок кода и все работает
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу