+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Search Plugin für die Komponente "Image Weblinks"

  1. #1
    Neu an Board
    Registriert seit
    26.01.2007
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Search Plugin für die Komponente "Image Weblinks"

    Hallo ich benutze,
    Joomla 1.5.14 und die Komponente Image Weblinks (www.australien-suche.de)

    Ich möchte mir ein Plugin basteln, damit die Image Weblinks auch in der Joomla-Suche angezeigt werden.

    Ich bin jetzt soweit, dass die Ergebnisse richtig angezeigt werden. Klickt man jedoch auf einen Link, gelangt man zu einer leeren Seite.

    So sieht mein Script aus:

    <?php
    defined('_JEXEC')
    or die( 'Restricted access' );
    $mainframe->registerEvent('onSearch',
    'plgSearchImgWeblinks');
    $mainframe->registerEvent('onSearchAreas',
    'plgSearchImgWeblinksAreas');
    function &plgSearchImgWeblinksAreas() {
    static $areas = array('imgWeblinks' => 'ImgWeblinks');
    return $areas;
    }

    function plgSearchImgWeblinks( $text, $phrase='',
    $ordering='', $areas=null ){
    $db =& JFactory::getDBO();
    $user =& JFactory::getUser();
    if (is_array( $areas )) {
    if (!array_intersect( $areas,
    array_keys( plgSearchImgWeblinksAreas() ) )) {
    return
    array();
    }
    }
    $plugin =& JPluginHelper::getPlugin('search', 'ImgWeblinks');
    $pluginParams = new JParameter( $plugin->params );
    $limit = $pluginParams->def( 'search_limit', 50 );
    $text = trim( $text );
    if ($text == '') {
    return array();
    }
    $section = JText::_( 'ImgWeblinks' );
    $wheres = array();
    switch ($phrase){
    case 'exact':
    $text = $db->getEscaped($text);
    $wheres2 = array();
    $wheres2[]= "LOWER(a.title)
    LIKE '%$text%'";
    $wheres2[]= "LOWER(a.description)
    LIKE '%$text%'";
    $where = '(' . implode( ')
    OR (', $wheres2 ) . ')';
    break;
    case 'all':
    case 'any':
    default:
    $words = explode( ' ', $text );
    $wheres = array();
    foreach ($words as $word) {
    $word = $db->getEscaped($word);
    $wheres2 = array();
    $wheres2[] = "LOWER(a.title)
    LIKE '%$word%'";
    $wheres2[] = "LOWER(a.description)
    LIKE '%$word%'";
    $wheres[] = implode( ' OR ', $wheres2 );
    }
    $where= '('.implode(($phrase == 'all'
    ? ') AND ('
    : ') OR ('), $wheres ) . ')';
    break;
    }
    switch ( $ordering ) {
    default:
    $order = 'a.title ASC';
    break;
    }
    $query = "SELECT * FROM #__imgweblinks AS a"
    ."\n WHERE ( $where )"
    ."\n AND published = '1'"
    ."\n ORDER BY $order";
    $db->setQuery( $query, 0, $limit );
    $rows = $db->loadObjectList();
    foreach($rows as $key => $row) {
    $rows[$key]->href = 'index.php?option=com_imgweblinks&view=category&id ';
    }
    return $rows;
    }
    ?>

    Ein Link eines Ergebnisses, führt mich z.B. zu der Seite

    http://www.australien-suche.de/index...y&id=&Itemid=2

    Der Pfad ist ja oben so angegeben. Nur wo kommt das "=&Itemid=2" her?

  2. #2
    Gehört zum Inventar Avatar von blaulichttreff
    Registriert seit
    30.04.2007
    Ort
    Heidenrod
    Beiträge
    7.703
    Bedankte sich
    134
    Erhielt 2.557 Danksagungen
    in 2.421 Beiträgen

    Standard

    von der vorgängerseite (der seite mit der ausgabe der ergebnisse)
    Code:
    http://www.australien-suche.de/index.php?searchword=mietwagen&ordering=&searchphrase=all&Itemid=2&option=com_search
    das ist ein joomlaeigenes feature (oder problem ) , dass die itemid der vorgängerseite weitergegeben wird, es sei denn, es wird für die nächste seite eine neue definiert, etwa dadurch, dass du sie über einen menüpunkt aufrufst. dann wird dessen itemid verwendet.

    im plugin der orginalkomponente wird der pfad on the fly erzeugt
    PHP-Code:
    foreach($rows as $key => $row) {
                    
    $rows[$key]->href WeblinksHelperRoute::getWeblinkRoute($row->slug$row->catslug);
            } 
    bei dir ist er fest eingestellt, ev. musst du daran schrauben
    Gruß Sascha
    Viele kennen Google, aber nur wenige scheinen es zu nutzen Problem gelöst? | Joomla FAQ
    FF Springen

  3. #3
    Neu an Board
    Registriert seit
    26.01.2007
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo blaulichttreff,
    schon mal danke für die schnelle und gute Antwort.
    Wenn ich auf "suchmaschinenfreundliche URLs" umschalte, sieht das ganze schon etwas besser aus.

    Hier bekomme ich z.B. als Ergebnis den Link

    http://www.australien-suche.de/index.php/weblinks/

    Also z.B.

    Ergebnis 1 - http://www.australien-suche.de/index.php/weblinks/
    Ergebnis 2 - http://www.australien-suche.de/index.php/weblinks/
    Ergebnis 3 - http://www.australien-suche.de/index.php/weblinks/

    Jetzt würde ich gerne an das Ende der URL, die jeweilige Kategorienr. anhängen.

    Ergebnis 1 und Ergbnis 2 gehören z.B. zu Kategorie 3. Der Link bei beiden Ergebnissen sollte dann http://www.australien-suche.de/index.php/weblinks/3 lauten.

    Das Feld Kategorie hat den Spaltennamen catid in der Tabelle imgweblinks.

    Kannst du mir einen Tip geben wie man das machen kann?

    P.S. Wo gibt es denn bereits ein Plugin zur Image Weblinks?

    Gruß
    Sascha

  4. #4
    Gehört zum Inventar Avatar von blaulichttreff
    Registriert seit
    30.04.2007
    Ort
    Heidenrod
    Beiträge
    7.703
    Bedankte sich
    134
    Erhielt 2.557 Danksagungen
    in 2.421 Beiträgen

    Standard

    schau dir doch bitte mal das weblink-searchplugin (orginalkomp) genauer an. vergleiche da die db-abfrage mit dem daraus erzeugten link zum ergebnis. für deine zwecke könnte es so aussehen
    Code:
    index.php?option=com_imgweblinks&view=category&id='.$rows->catid
    Gruß Sascha
    Viele kennen Google, aber nur wenige scheinen es zu nutzen Problem gelöst? | Joomla FAQ
    FF Springen

  5. #5
    Neu an Board
    Registriert seit
    26.01.2007
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,
    sorry, stehe da im moment leider etwas auf dem Schlauch, weil ich mich dem Thema "Plugin selber erstellen" erst seit gerade befasse.

    Ich habe mittlerweile auf "suchmaschinenfreundliche URLs" umgestellt.

    Dementsprechende sieht die Zeile jetzt so aus:

    $rows[$key]->href = 'http://www.australien-suche.de/index.php/weblinks/'.$rows->catid;

    Klicke ich auf den Link eines Suchergebnisses, wird http://www.australien-suche.de/index.php/weblinks/ geöffnet.

    Die ID der entsprechenden Kategorie wird nicht geliefert.

    Gruß
    Sascha

  6. #6
    Gehört zum Inventar Avatar von blaulichttreff
    Registriert seit
    30.04.2007
    Ort
    Heidenrod
    Beiträge
    7.703
    Bedankte sich
    134
    Erhielt 2.557 Danksagungen
    in 2.421 Beiträgen

    Standard

    Zitat Zitat von Sambino Beitrag anzeigen
    Dementsprechende sieht die Zeile jetzt so aus:

    $rows[$key]->href = 'http://www.australien-suche.de/index.php/weblinks/'.$rows->catid;
    das war auch nur dahingepfuscht von mir. du musst es mit der richtigen syntax in deine url einsetzen, damit der php-code ($rows->catid) auch umgesetzt wird.
    Gruß Sascha
    Viele kennen Google, aber nur wenige scheinen es zu nutzen Problem gelöst? | Joomla FAQ
    FF Springen

  7. Erhielt Danksagungen von:


  8. #7
    Neu an Board
    Registriert seit
    26.01.2007
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Das ist ja auch aktuell mein Problem:

    Ergebnis gehört z.B. zu Kategorie 3

    und die Zeile sieht so aus

    $rows[$key]->href = 'http://www.australien-suche.de/index.php/weblinks/'.$rows->catid;

    Das Suchergebnis sollte mir demnach den Link

    http://www.australien-suche.de/index.php/weblinks/3

    liefern.

    Dann wäre alles in Ordnung.

    Ausgegeben wird aber lediglich

    http://www.australien-suche.de/index.php/weblinks/

    Ich hoffe ich gehe dir damit nicht zu sehr auf den Keks. Aber ich seh´s einfach noch nicht.

    Gruß
    Sascha

  9. #8
    Gehört zum Inventar Avatar von blaulichttreff
    Registriert seit
    30.04.2007
    Ort
    Heidenrod
    Beiträge
    7.703
    Bedankte sich
    134
    Erhielt 2.557 Danksagungen
    in 2.421 Beiträgen

    Standard

    oh, ich sehe gerade, es könnte an dem s in rows liegen, versuche mal $row->catid. und lass dir durch das script das array $rows und das array $row mal ausgeben, z.b. mit
    PHP-Code:
    print_r($rows); 
    Gruß Sascha
    Viele kennen Google, aber nur wenige scheinen es zu nutzen Problem gelöst? | Joomla FAQ
    FF Springen

  10. #9
    Neu an Board
    Registriert seit
    26.01.2007
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Das "s" war´s. Nun klappt es.

    Vielen Dank für deine Hilfe.

    Gruß
    Sascha

  11. #10
    Neu an Board
    Registriert seit
    26.01.2007
    Beiträge
    30
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,
    nochmal eine Frage.

    Ich habe gerade nochmal die original-Komponente mit meiner verglichen.

    Ich kann nicht erkennen, an welcher Stelle ich die Ausgabefelder definieren kann.

    Zur Zeit bekomme ich als Ergebnis nur einen Link.

    Ich würde aber gerne noch zu jedem Link eine description anzeigen, so wie in der original weblink-Komponente.

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein