cwt_community - Max. nur 1 custom search field: Bug?

  • schmidtsmikey schmidtsm...
    Jedi-Ritter
    0 x
    145 Beiträge
    0 Hilfreiche Beiträge
    12. 07. 2008, 15:34

    Hallo Community,

    im Manual steht bezüglich der Erweiterung der Suchfelder folgendes:

    Thereby you can customize the search options to your own needs without changing the extension itself. As with the previously introduced custom markers you will need to adhere to a special syntax in your template:

    [i]<input name="searchtext[__CUSTOM_SEARCH__<db_field from="" fe_users="">]" type="text" value="###__CUSTOM_SEARCH__<db_field from="" fe_users="">###"/>[/i]

    The extension will then recognize the additional search field and will moreover automatically change the internal search query.

    Das Problem ist, dass man aus irgendeinem Grund maximal nur ein eigenes Suchfeld hinzufügen kann, denn...

    ... ich kann das vordefinierte "custom search field", welches nach der Homepage sucht, ändern (aus __CUSTOM_SEARCH__www wird __CUSTOM_SEARCH__company)

    ... wenn ich ein weiteres Suchfeld (kopiert von Homepage) hinzufüge, steht in der zuvor noch funktionierenden Homepage-Suche ###CUSTOM_SEARCH__company###. Die Suche funktioniert nicht.

    ... wenn ich dann die Suche nach der Homepage wieder entferne, funktioniert das neue Suchfeld.

    ===> Aus irgendeinem Grund kann man nur ein einziges eigenes Suchfeld hinzufügen. Sofern ein zweites hinzukommt, gibt es Fehler. Ein fehlerhaftes Template kann man ausschließen, da das neue Suchfeld nach Entfernen des anderen Suchfelds funktioniert.

    Jemand eine Idee bzw. hat dasselbe Problem? Ansonsten muss ich den lieben Sebastion Faulhaber erneut kontaktieren :-)

    Auszug aus der tx_cwtcommunity_pi1_search.html

    !-- ###VIEW_SEARCH_EXTENDED### begin-->
    <form action="###FORM_ACTION###" method="POST" enctype="multipart/form-data">
    <table border="0">
    [b]<tr>
    <td>###__LL__CWT_PROFILE_COMPANY###</td>
    <td><input name="searchtext[__CUSTOM_SEARCH__company]" type="text" value="###__CUSTOM_SEARCH__company###" /></td>
    </tr> [/b]
    <tr>
    <td>###__LL__CWT_PROFILE_NAME###</td>
    <td><input name="searchtext[name]" type="text" value="###name###" /></td>
    </tr>
    <tr>
    <td>###__LL__CWT_PROFILE_USERNAME###</td>
    <td><input name="searchtext[username]" type="text" value="###username###" /></td>
    </tr>
    <tr>
    <td>###__LL__CWT_PROFILE_GENDER###</td>
    <td>
    <select name="searchtext[tx_cwtcommunityuser_sex]">
    <option value=""></option>###GENDER###</select>
    </td>
    </tr>
    <tr>
    <td>###__LL__CWT_PROFILE_CITY###</td>
    <td><input name="searchtext[city]" type="text" value="###city###" /></td>
    </tr>
    <tr>
    <td>###__LL__CWT_PROFILE_ZONE###</td>
    <td>
    <select name="searchtext[zone]">
    <option value=""></option>
    ###ZONES###
    </select>
    </td>
    </tr>
    <tr>
    <td>###__LL__CWT_PROFILE_COUNTRY###</td>
    <td>
    <select name="searchtext[country]">
    <option value=""></option>###COUNTRIES###</select>
    </td>
    </tr>
    [b]<tr>
    <td>###__LL__CWT_PROFILE_WWW###</td>
    <td><input name="searchtext[__CUSTOM_SEARCH__www]" type="text" value="###__CUSTOM_SEARCH__www###" /></td>
    </tr>[/b]
    <tr>
    <td colspan="2"><input type="submit" name="###CMD###" value="###__LL__FORM.BUTTON.SEARCH###" /></td>
    </tr>
    </table>
    </form>
    <b>###SEARCH.RESULT_02###</b>

    ###RES###

    <!-- ###VIEW_SEARCH_EXTENDED### end-->

    Wie man sieht, habe ich die Suche nach COMPANY hinzugefügt. In Verbindung mit der Suche nach WWW, funktioniert es nicht. Entferne ich WWW, dann klappt es wieder.


  • 1

  • 0 x
    22. 01. 2009, 09:45

    Hallo :)

    Ein halbes Jahr später stoße ich auf dasselbe Problem (die Ext. wurde ja auch nicht mehr aktualisiert  ;) ...)

    Zum Übergang hab ich jetzt erstmal in der res/class.tx_cwtcommunity_lib_search.php
    die Funktion getCustomSearchFieldsFromHTML folgendermaßen ersetzt:

    1. private function getCustomSearchFieldsFromHTML($html) {
    2. preg_match_all('/__CUSTOM_SEARCH__.*]/', $html, $matches);
    3.  
    4. $i = 0;
    5. foreach($matches as $temp_matches) {
    6. foreach ($temp_matches as $match) {
    7. $matches[$i] = str_replace(']', '', $match);
    8. $i++;
    9. }
    10. }
    11. return $matches;
    12. }

    So funktioniert es zwar erstmal ... aber kennt ihr vielleicht eine sauberere Lösung ohne manuell editieren zu müssen?

  • 1