Stadtteil Filter funktioniert nicht

Technische Fragen & Probleme zum OpenEstate-ImmoTool
Forum rules
Bitte beachten Sie die allgemeinen Forenregeln, bevor Sie sich an der Diskussion beteiligen.

Stadtteil Filter funktioniert nicht

Postby Nicki » Thu 23. Feb 2017, 11:23

Hallo Andreas, Hallo Walter,

ich habe einen neuen Filter für Stadtteile nach eurem Beispiel erstellt.

Code: Select all
<?php
/**
 * Website-Export, Filter nach Ortsteil.
 * $Id$
 *
 * @author Andreas Rudolph & Walter Wagner
 * @copyright 2009-2012, OpenEstate.org
 * @license http://www.gnu.org/licenses/gpl-3.0.txt
 */

if (!defined('IN_WEBSITE')) exit;
require_once( IMMOTOOL_BASE_PATH . 'include/class.filter.php' );

class ImmoToolFilter_district extends ImmoToolFilter {
  /**
   * Überprüfung, ob ein Objekt von dem Filter erfasst wird.
   */
  function filter( $object, &$items ) {
    $value = (isset($object['adress']['city_part']))?
            $object['adress']['city_part']: null;
    if (!is_string($value)) return;
    $value = trim($value);
    if (strlen($value)==0) return;
    if (!isset($items[$value]) || !is_array($items[$value])) $items[$value] = array();
    $items[$value][] = $object['id'];
  }

  /**
   * Name des Filters.
   */
  function getName() {
    return 'district';
  }

  /**
   * Titel des Filters, abhängig von der Sprache.
   */
  function getTitle( &$translations, $lang ) {
    if ($lang=='de') {
      return 'Ortsteil';
    }
    else if ($lang=='en') {
      return 'District';
    }
    else {
      return $this->getName();
    }
  }

  /**
   * HTML-Code zur Auswahl des Filterkriteriums erzeugen.
   */
  function getWidget( $selectedValue, $lang, &$translations, &$setup ) {
    if (!$this->readOrRebuild($setup->CacheLifeTime)) return null;
    $widget = '';
    $options = array_keys( $this->items );
    asort( $options );
    if (is_array($options) && count($options)>0) {
      $by = $this->getTitle( $translations, $lang );
      $widget .= '<select id="filter_' . $this->getName() . '" name="'.IMMOTOOL_PARAM_INDEX_FILTER.'[' . $this->getName() . ']">';
      $widget .= '<option value="">[ ' . $by . ' ]</option>';
      foreach ($options as $city) {
        $selected = ($selectedValue==$city)? 'selected="selected"': '';
        $widget .= '<option value="' . $city . '" ' . $selected . '>' . $city . '</option>';
      }
      $widget .= '</select>';
    }
    return $widget;
  }
}


Wenn ich allerdings die entsprechenden Immobilien mit folgendem Link filtern will, bekomme ich die Meldung "Keine Immobilien gefunden".
[url]http://www.example.de/immobilien/index.php?clearFilters=1&filter[district]=Blasewitz[/url]

Wo kann der Fehlerteufel stecken? Vielen Dank schon mal.

Herzliche Grüße
Nicki
OpenEstate Immotool 1.0 beta
Nicki
 
Posts: 27
Joined: Thu 28. Aug 2014, 12:13

Re: Stadtteil Filter funktioniert nicht

Postby Andreas Rudolph » Sun 26. Feb 2017, 02:16

Hallo Nicki,

bitte prüfe mal, ob du alle Dateien aus dem cache-Ordner auf dem Webspace gelöscht hast. Eventuell wurden deine Anpassungen am Filter blos noch nicht wirksam, weil noch ein altes Zwischenergebnis im cache-Ordner gespeichert war.

Verwendest du ImmoTool 0.9 oder 1.0? - Bei ImmoTool 1.0 müsstest du den Zugriff auf

Code: Select all
$object['adress']

ändern auf

Code: Select all
$object['address']


Die filter-Funktion würde für ImmoTool 1.0 dann wie folgt aussehen:

Code: Select all
  function filter( $object, &$items ) {
    $value = (isset($object['address']['city_part']))?
            $object['address']['city_part']: null;
    if (!is_string($value)) return;
    $value = trim($value);
    if (strlen($value)==0) return;
    if (!isset($items[$value]) || !is_array($items[$value])) $items[$value] = array();
    $items[$value][] = $object['id'];
  
Mit freundlichem Gruß / Yours sincerely
Andreas Rudolph
User avatar
Andreas Rudolph
 
Posts: 3739
Joined: Tue 16. Feb 2010, 21:48
Location: Berlin, Germany

Re: Stadtteil Filter funktioniert nicht

Postby Nicki » Sun 26. Feb 2017, 12:26

Hallo Andreas,

stimmt, ihr hattet ja bei Version 1 auf englische Bezeichnungen umgestellt. Beide Tipps, sowohl das englische Attribut "address", als auch das anschließende löschen des Cache haben geholfen! Jetzt klappt alles wie es soll!

Vielen Dank und einen schönen Sonntag!!!

Herzliche Grüße
Nicki
OpenEstate Immotool 1.0 beta
Nicki
 
Posts: 27
Joined: Thu 28. Aug 2014, 12:13


Return to Technische Probleme

Who is online

Users browsing this forum: No registered users and 8 guests