Jump to content
  • 0
TENAZ

Template do szukajki ($table)

Question

Witam,

mam problem, gdyż nie mam pojęcia jak zrobić template do $table, resztę mam:

		$table->tableTemplate  = array( \IPS\Theme::i()->getTemplate( 'tables', 'core', 'admin' ), 'table' );
		$table->rowsTemplate  = array( \IPS\Theme::i()->getTemplate( 'tables', 'core', 'admin' ), 'rows' );

lecz nie posiadam do szukajki i niestety ona nie działa (tabela nie jest w ACP)


#dodam, że próbowałem już zrobić tak: 

$table->searchTemplate  = array( \IPS\Theme::i()->getTemplate( 'tables', 'core', 'admin' ), 'search' );
Edited by TENAZ

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

A można jakoś inaczej zrobić tę szukajkę? Widziałem w niejednych aplikacjach, że mają takie i są one dostępne normalnie, bez potrzeby pisania

Share this post


Link to post
Share on other sites
  • 0

Ja mam tutaj: https://www.ipsbeyond.pl/image-host/

a kod od szukajki wygląda praktycznie analogicznie jak w acp:

{{if $quickSearch !== NULL or $table->advancedSearch or !empty( $table->filters )}}
			<div class='ipsClearfix ipsClear ipsPad sdWidgetToolbar ipsAreaBackground_dark' data-role="tableSortBar">
				{{if $quickSearch !== NULL or $table->advancedSearch}}
					{{if $table->advancedSearch}}
						<a class='ipsPos_right sdWidgetSearch' data-ipsTooltip aria-label='{lang="search"}' href='{$table->baseUrl->setQueryString( array( 'advancedSearchForm' => '1', 'filter' => $table->filter, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection ) )}' data-ipsDialog data-ipsDialog-title='{lang="search"}'><i class='fa fa-cog'></i></a>
					{{endif}}
					{{if $quickSearch !== NULL}}
						<input type='text' class='ipsField_short ipsPos_right sdTable_search ipsJS_show' data-role='tableSearch' results placeholder="{{if is_string( $quickSearch )}}{lang="search_prefix" sprintf="\IPS\Member::loggedIn()->language()->addToStack( $table->langPrefix . $quickSearch )"}{{else}}{lang="search"}{{endif}}" value="{expression="\IPS\Request::i()->quicksearch"}">
					{{endif}}
				{{endif}}
					
				{{if !empty( $table->filters )}}
					<div class='ipsButtonBar ipsClearfix ipsResponsive_showDesktop'>
						<ul class='ipsButtonRow ipsPos_left ipsClearfix'>
							<li data-action="tableFilter" data-filter="">
								<a href='{$table->baseUrl->setQueryString( array( 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection, 'page' => '1', 'filter' => '' ) )}' class='{{if !array_key_exists( $table->filter, $table->filters )}}ipsButtonRow_active{{endif}}'>{lang="all"}</a>
							</li>
							{{foreach $table->filters as $k => $q}}
								<li data-action="tableFilter" data-filter="{$k}">
									<a href='{$table->baseUrl->setQueryString( array( 'filter' => $k, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection, 'page' => '1' ) )}' class='{{if $k === $table->filter}}ipsButtonRow_active{{endif}}'>{lang="$k"}</a>
								</li>
							{{endforeach}}
						</ul>
					</div>
				{{endif}}
				<div class='ipsButtonBar ipsClearfix ipsResponsive_hideDesktop ipsResponsive_block'>
					{{if !empty( $table->filters )}}
						<ul class='ipsButtonRow ipsPos_left ipsClearfix'>
							<li>
								<a href='#elFilterMenu_menu' data-role="tableFilterMenu" id='elFilterMenu' data-ipsMenu data-ipsMenu-activeClass='ipsButtonRow_active' data-ipsMenu-selectable="radio">{lang="filter"} <i class='fa fa-caret-down'></i></a>
								<ul class='ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide' id='elFilterMenu_menu'>
									<li data-ipsMenuValue='' class='ipsMenu_item {{if !array_key_exists( $table->filter, $table->filters )}}ipsMenu_itemChecked{{endif}}'><a href={$table->baseUrl->setQueryString( array( 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection, 'page' => '1' ) )}'>{lang="all"}</a></li>
									{{foreach $table->filters as $k => $q}}
										<li class='ipsMenu_item {{if $k === $table->filter}}ipsMenu_itemChecked{{endif}}' data-action="tableFilter" data-ipsMenuValue='{$k}'><a href={$table->baseUrl->setQueryString( array( 'filter' => $k, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection, 'page' => '1' ) )}'>{lang="$k"}</a></li>
									{{endforeach}}
								</ul>
							</li>
						</ul>
					{{endif}}
					<ul class='ipsButtonRow ipsPos_left ipsClearfix'>
						<li>
							<a href='#elSortMenu_menu' id='elSortMenu' data-ipsMenu data-ipsMenu-activeClass='ipsButtonRow_active' data-ipsMenu-selectable="radio">{lang="sort_by"} <i class='fa fa-caret-down'></i></a>
							<ul class='ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide' id='elSortMenu_menu'>
								{{foreach $headers as $k => $header}}
									{{if $header !== '_buttons' && !in_array( $header, $table->noSort )}}
										<li class='ipsMenu_item {{if $header == $table->sortBy}}ipsMenu_itemChecked{{endif}}' data-ipsMenuValue='{$header}'>
											{{if $header == $table->sortBy and $table->sortDirection == 'desc'}}
												<a href='{$table->baseUrl->setQueryString( array( 'filter' => $table->filter, 'sortby' => $header, 'sortdirection' => 'desc' ) )}'>
											{{else}}
												<a href='{$table->baseUrl->setQueryString( array( 'filter' => $table->filter, 'sortby' => $header, 'sortdirection' => 'asc' ) )}'>
											{{endif}}
													{lang="{$table->langPrefix}{$header}"}
												</a>
										</li>
									{{endif}}
								{{endforeach}}
							</ul>
						</li>
						<li>
							<a href='#elOrderMenu_menu' id='elOrderMenu' data-ipsMenu data-ipsMenu-activeClass='ipsButtonRow_active' data-ipsMenu-selectable="radio">{lang="order_by"} <i class='fa fa-caret-down'></i></a>
							<ul class='ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide' id='elOrderMenu_menu'>
								<li class='ipsMenu_item {{if $table->sortDirection == 'asc'}}ipsMenu_itemChecked{{endif}}' data-ipsMenuValue='asc'>
									<a href='{$table->baseUrl->setQueryString( array( 'filter' => $table->filter, 'sortby' => $table->sortBy, 'sortdirection' => 'asc' ) )}'>{lang="ascending"}</a>
								</li>
								<li class='ipsMenu_item {{if $table->sortDirection == 'desc'}}ipsMenu_itemChecked{{endif}}' data-ipsMenuValue='desc'>
									<a href='{$table->baseUrl->setQueryString( array( 'filter' => $table->filter, 'sortby' => $table->sortBy, 'sortdirection' => 'desc' ) )}'>{lang="descending"}</a>
								</li>
							</ul>
						</li>
					</ul>
				</div>
			</div>
		{{endif}}

 

Share this post


Link to post
Share on other sites
  • 0

EDIT. Sprawdzę 

Edited by TENAZ

Share this post


Link to post
Share on other sites
  • 0

Ale ten kod co wkleiłem to musisz dać w szablonie tabeli czyli w Twoim przypadku tak jak masz to:

$table->tableTemplate  = array( \IPS\Theme::i()->getTemplate( 'tables', 'core', 'admin' ), 'table' );

to w takim szablonie

Share this post


Link to post
Share on other sites
  • 0

A to, że nie mam pola do wpisywania tylko same zębatki to co oznacza? Muszę coś dodać w kodzie, aby zadziałało?

Share this post


Link to post
Share on other sites
  • 0

No to z tego co widzę jest ok. Pod paginacją masz szybką szukajkę. Wygląd jest skopany trochę ale ogólnie wyszukiwarka jest.

Co do samego wyglądu to lepiej skopiować sobie te 2 szablony tabeli do swojej aplikacji i pozmieniać trochę klasy używając tych frontowych a nie z acp

Share this post


Link to post
Share on other sites
  • 0

Tylko, że ta szukajka w ogóle nie działa po wpisaniu jakiegokolwiek tekstu czy też wciśnięcia ENTER.

Po dodaniu &quicksearch=3 do URl wszystko działa, lecz w szukajce jak się wpiszę to nic, tak samo jak się wpiszę w URL to dodaje się np. te 3 do szukajki jako wpisane.

Share this post


Link to post
Share on other sites
  • 0

No bo jakbyś sobie sprawdził logi w konsoli przeglądarki to zobaczysz błędy. Dlatego pisałem, że musisz przerobić szablon admina. Powtarzam na froncie nie ma szukajki więc musisz ją "doprogramować" napisać np. swój kontroler JS

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.