PDA

Zobacz pełną wersję : mod_search - dodanie checbox'ow do pola input



plol123
07-07-2010, 19:27
Witam mam pytanie co zrobić żeby w module search standardowym dla joomli tym co się razem z nią instaluje obok okienka do którego wpisujemy to czego szukam pokazywały się 2 pola wyboru "szukaj artykułów" "szukaj kontaktu"

Chodzi mi o coś takiego jak rozszerzone wyszukiwanie opcje te pokazują się gdy już coś wyszukamy a pod nimi są rezultaty wyszukiwania.

Co zrobić żeby opcje "szukaj tylko tego lub tylko tego" pokazywały od razu obok okienka a nie gdy coś wyszukamy i pokaże się rozszerzone wyszukiwanie ?

moje
07-07-2010, 20:04
Skorzystaj z nadpisywania szablonem albo na podstawie obecnego modułu napisz własny i zainstaluj.

plol123
07-07-2010, 21:40
Chciałem nadpisać szablon ale nie mogę dać sobie rady może wy mi pomożecie.

To jest kod standardowego wyglądu


<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<form action="index.php" method="post">
<div class="search<?php echo $params->get('moduleclass_sfx') ?>">
<?php
$output = '<input name="searchword" id="mod_search_searchword" maxlength="'.$maxlength.'" alt="'.$button_text.'" class="inputbox'.$moduleclass_sfx.'" type="text" size="'.$width.'" value="'.$text.'" onblur="if(this.value==\'\') this.value=\''.$text.'\';" onfocus="if(this.value==\''.$text.'\') this.value=\'\';" />';

if ($button) :
if ($imagebutton) :
$button = '<input type="image" value="'.$button_text.'" class="button'.$moduleclass_sfx.'" src="'.$img.'" onclick="this.form.searchword.focus();"/>';
else :
$button = '<input type="submit" value="'.$button_text.'" class="button'.$moduleclass_sfx.'" onclick="this.form.searchword.focus();"/>';
endif;
endif;

switch ($button_pos) :
case 'top' :
$button = $button.'<br />';
$output = $button.$output;
break;

case 'bottom' :
$button = '<br />'.$button;
$output = $output.$button;
break;

case 'right' :
$output = $output.$button;
break;

case 'left' :
default :
$output = $button.$output;
break;
endswitch;

echo $output;
?>
</div>
<input type="hidden" name="task" value="search" />
<input type="hidden" name="option" value="com_search" />
<input type="hidden" name="Itemid" value=<?php echo $mitemid; ?> />

</form>
A to jest fragment kodu php wycięty z rozszerzonej opcji wyszukiwania to on odpowiada za pokazywanie "szukaj tylko"



<?php if ($this->params->get( 'search_areas', 1 )) : ?>
<?php echo JText::_( 'Search Only' );?>:
<?php foreach ($this->searchareas['search'] as $val => $txt) :
$checked = is_array( $this->searchareas['active'] ) && in_array( $val, $this->searchareas['active'] ) ? 'checked="checked"' : '';
?>
<input type="checkbox" name="areas[]" value="<?php echo $val;?>" id="area_<?php echo $val;?>" <?php echo $checked;?> />
<label for="area_<?php echo $val;?>">
<?php echo JText::_($txt); ?>
</label>
<?php endforeach; ?>
<?php endif; ?>
Nie znam się na php więc nie mam pojęcia jak to połączyć, co nie co z kodu rozumiem ale jak próbuje po swojemu wyskakują mi błędy w linii gdzie wstawiam kod.

moje
07-07-2010, 21:54
Korzystając z nadpisywania szablonem musisz dodać odpowiedniego js'a, którzy wykona zapytanie do bazy danych. Jeśli będziesz robił swój moduł, to wystarczy dodać 2 x radio buttony, a w warstwie logiki dodać kod który rozdziela wyszukiwanie.

plol123
07-07-2010, 22:16
nie wiele zrozumiałem z tego wszystkiego. A po co js z zapytaniem do bazy danych jak chyba w tym przypadku nie ma żadnych danych do pobrania z niej ?

moje
07-07-2010, 22:20
Ale trzeba zmienić regułę zapytania, bo wybierasz albo tylko artykuły albo tylko kontakty, a to są różne zapytania do bazy danych.

plol123
07-07-2010, 22:41
Sam na 100% tego nie napisze może znacie jakieś darmowe moduły które będą miały podobne działanie ?

moje
07-07-2010, 23:03
Polecam extensions.joomla.org + search w szukajkę ;)

plol123
08-07-2010, 08:10
To zrobiłem zanim dałem temat i znalazłem jeden moduł co by mi pasować ale płatny a mnie nie stać ;(

Myślałem, że może ktoś z was coś by miał takiego.

P.S A Mam jeszcze pytanie nie da się coś zrobić jakoś podmienić szablonów z tym od komponentu search bo jak ustawie nową stronę używając tego właśnie komponentu od razu pokazuje się rozszerzone wyszukiwanie

moje
09-07-2010, 12:18
Wygląd nie spełni wszystkie, nie można zapomnieć o warstwie logicznej, czyli o tym, co wykonuje zapytanie do bazy danych.

EDIT:

Kolego masz zapchaną skrzynkę, jak chcesz otrzymywać nowe wiadomości, to stare musisz usuwać.

---------- Post dodany 09-07-2010 o 12:18 ---------- Poprzedni post był 08-07-2010 o 12:40 ----------

Się powtórzę:
Kolego masz zapchaną skrzynkę, jak chcesz otrzymywać nowe wiadomości, to stare musisz usuwać.