• User Newbie

    Problema di ricerca su CMS php Mysql

    Salve io ho un cms "socialengine4" e ho un problema sulla ricerca. Praticamente quando vado nella pagina di ricerca mi trova tutti gli utenti registrati io vorrei che trovasse solamente una tipologia di utenti. Non riesco a capire come funziona il codice.


  • User

    probabilmente ci sarà un filtro di ricerca credo, sinceramente non ho capito bene il tuo problema dacci più info!

    M.


  • User Newbie

    La pagina in questione è padovaeventi.com/members

    Allora premetto che il php lo conosco poco alcune modifiche sono riuscito a farle ma questa dopo ore di prove non riesco ad ottenere nulla. Allora ho trovato la pagina che gestisce la ricerca che credo utilizzi zend macredo si rifaccia ad altri pezzi di codice in altre pagine.

    Posto il frammento di codice che gestisce la ricerca e sul database gli utenti hanno due id diversi io vorrei che la ricerca prendesse solo il tipo di utente locale che ha id 4.

    public function getMemberTypeElement()
    {
    $multiOptions = array('' => ' ');
    $profileTypeFields = Engine_Api::_()->fields()->getFieldsObjectsByAlias($this->_fieldType, 'profile_type');
    if( count($profileTypeFields) !== 1 || !isset($profileTypeFields['profile_type']) ) return;
    $profileTypeField = $profileTypeFields['profile_type'];

    $options = $profileTypeField->getOptions();
    
    if( count($options) <= 1 ) {
      if( count($options) == 1 ) {
        $this->_topLevelId = $profileTypeField->field_id;
        $this->_topLevelValue = $options[0]->option_id;
      }
      return;
    }
    
    foreach( $options as $option ) {
      $multiOptions[$option->option_id] = $option->label;
    }
    
    $this->addElement('Select', 'profile_type', array(
      'label' => 'Member Type',
      'order' => -1000001,
      'class' =>
        'field_toggle' . ' ' .
        'parent_' . 0 . ' ' .
        'option_' . 0 . ' ' .
        'field_'  . $profileTypeField->field_id  . ' ',
      'onchange' => 'changeFields($(this));',
      'decorators' => array(
        'ViewHelper',
        array('Label', array('tag' => 'span')),
        array('HtmlTag', array('tag' => 'li'))
      ),
      'multiOptions' => $multiOptions,
    ));
    return $this->profile_type;
    

    }

    Dopo aver selezionato il tipo di utente apre campi personalizzati che sono stati creati dinamicamente per ogni tipologia di utente. Io vorrei che si aprisse solamente già settato con tipologia locale con i campi di ricerca locale. Cioè senza la possibilità di scegliere il tipo di utente. Grazie per l'attenzione e la disponibilità.


  • User

    direi che ci si può lavorare ma vista l'ora direi di rimandare a domani mattina!

    lo studio e ti faccio sapere!


  • User Newbie

    Grazie gargamella attendo tue notizie e se necessiti di più informazioni te le inoltro subito. Grazie ancora


  • User

    credo che bisogna lavorare qui:

    $options = $profileTypeField->getOptions();

    if( count($options) <= 1 ) {
      if( count($options) == 1 ) {
        $this->_topLevelId = $profileTypeField->field_id;
        $this->_topLevelValue = $options0]->option_id;
      }
      return;
    }
    

    field_id e option_id sono dei campi della tabella del db vero?

    poi pensavo, se a te ti interessa visualizzare solo un determinato campo agli utenti perche non fare una semplice chiamata al DB e una query al campo che ti interessa??


  • User Newbie

    Esatto anche secondo me quello è il passaggio che stabilisce il numero di tipi di utenti e se maggiore di uno ti da possibilità di scegliere quale tipo di utente visualizzare. Poi dopo aver selezionato il tipo di utente assegna i vari checkbox di ricerca per quel tipo di utente. Non saprei come fare a modificare quelle righe.


  • User Newbie

    [...]


  • User

    [...]


  • User

    ci sto lavorando, come ti ho detto in un modo o nell'altro troveremo la soluzione!