PDA

Zobacz pełną wersję : Jak usunąć niektóre strony z wyników wyszukiwania?



Novi
28-10-2007, 23:25
Jak usunąć niektóre strony z wyników wyszukiwania?
Zrobiłem kilka stron (artykułów) w mojej witrynie które mimo braku wpisanych meta danych pojawiają się w wynikach wyszukiwania (wyszukiwarka wbudowana) i tematach pokrewnych. Jak się tego pozbyć?

Pozdrawiam. :)

__________________________________________________ __________
Krzesła stylowe (http://www.radomskomeble.pl) - producent mebli do restauracji i hoteli

Novi
06-11-2007, 13:13
Rozumiem że się nie da ok. :)
Pytanie kolejne domyślnie sortuje wyniki od najnowszych gdzie mienić aby sortował odrazu od najpopularniejszych?
Mam nadzieję że tym razem doczekam się na pomoc :)
Pozdrawiam

kobylinski
06-11-2007, 14:18
Zacznę od drugiej sprawy.

plik: components/com_search/search.php, zmieniam


// z
$ordering = strtolower( strval( mosGetParam( $_REQUEST, 'ordering', 'newest') ) );
// na
$ordering = strtolower( strval( mosGetParam( $_REQUEST, 'ordering', 'popular') ) );


powinno pomóc.

Co do pierwszej:

plik: mambots/search/content.searchbot.xml dodaję dodatkowy parametr


<param name="negative_list" value="" type="text" label="Szukaj bez artykułów" description="Lista artykułów które nie mają być uwzględniane w wynikach. Wprowadzaj następująco 'id1,id2,id3'" />


plik: mambots/search/content.searchbot.php dodaję definicję parametru:


$botParams = new mosParameters( $mambot->params );

$limit = $botParams->def( 'search_limit', 50 );
$nonmenu = $botParams->def( 'nonmenu', 1 );

// dodane:
$negative_list = $botParams->def( 'negative_list', '' );

if($negative_list != ''){
$negative_list = "\n AND ( NOT a.id IN (".$negative_list."))";
}



Poniżej będą 4 zapytania sql które trzeba uzupełnić:



// search content items
$query = "SELECT a.title AS title,"
. "\n a.created AS created,"
. "\n CONCAT(a.introtext, a.fulltext) AS text,"
. "\n CONCAT_WS( '/', u.title, b.title ) AS section,"
. "\n CONCAT( 'index.php?option=com_content&task=view&id=', a.id ) AS href,"
. "\n '2' AS browsernav,"
. "\n 'content' AS type"
. "\n, u.id AS sec_id, b.id as cat_id"
. "\n FROM #__content AS a"
. "\n INNER JOIN #__categories AS b ON b.id=a.catid"
. "\n INNER JOIN #__sections AS u ON u.id = a.sectionid"
. "\n WHERE ( $where )"
. "\n AND a.state = 1"
. "\n AND u.published = 1"
. "\n AND b.published = 1"
. "\n AND a.access <= " . (int) $my->gid
. "\n AND b.access <= " . (int) $my->gid
. "\n AND u.access <= " . (int) $my->gid
. $negative_list // <------------------------ dodaj tą linijkę
. "\n AND ( a.publish_up = " . $database->Quote( $nullDate ) . " OR a.publish_up <= " . $database->Quote( $now ) . " )"
. "\n AND ( a.publish_down = " . $database->Quote( $nullDate ) . " OR a.publish_down >= " . $database->Quote( $now ) . " )"
. "\n GROUP BY a.id"
. "\n ORDER BY $order"
;


Trzy pozostałe zapytanie trzeba uzupełnić w ten sam sposób w ten sam sposób.

W panelu administracyjnym, w konfiguracji search bota pojawi się dodatkowe pole do którego trzeba wprowadzić id artykułów niechcianych po przecinku.