- # Extract requested namespaces
- $this->namespaces = $this->powerSearch( $request );
- if( empty( $this->namespaces ) ) {
- $this->namespaces = SearchEngine::userNamespaces( $user );
+
+
+ # Extract manually requested namespaces
+ $nslist = $this->powerSearch( $request );
+ $this->profile = $profile = $request->getVal( 'profile', null );
+ $profiles = $this->getSearchProfiles();
+ if ( $profile === null) {
+ // BC with old request format
+ $this->profile = 'advanced';
+ if ( count( $nslist ) ) {
+ foreach( $profiles as $key => $data ) {
+ if ( $nslist === $data['namespaces'] && $key !== 'advanced') {
+ $this->profile = $key;
+ }
+ }
+ $this->namespaces = $nslist;
+ } else {
+ $this->namespaces = SearchEngine::userNamespaces( $user );
+ }
+ } elseif ( $profile === 'advanced' ) {
+ $this->namespaces = $nslist;
+ } else {
+ if ( isset( $profiles[$profile]['namespaces'] ) ) {
+ $this->namespaces = $profiles[$profile]['namespaces'];
+ } else {
+ // Unknown profile requested
+ $this->profile = 'default';
+ $this->namespaces = $profiles['default']['namespaces'];
+ }