// validate elevation language if ( !$http->hasPostVariable( 'ezfind-elevate-language' ) ) { $feedback['missing_language'] = true; $doStorage = false; } // Do storage, and create the associated feedback if ( $doStorage ) { // Filter the not yet filtered fields $queryString = htmlspecialchars( $http->postVariable( 'ezfind-elevate-searchquery' ), ENT_QUOTES ); $languageCode = htmlspecialchars( $http->postVariable( 'ezfind-elevate-language' ), ENT_QUOTES ); // Do actual storage here. $conf = eZFindElevateConfiguration::add( $queryString, $http->postVariable( 'elevateObjectID' ), $languageCode ); // Give feedback message if ( $conf instanceof eZFindElevateConfiguration ) { $feedback['creation_ok'] = $conf; $tpl->resetVariables(); // redirect to the original page if any. // Useful to not duplicate storage code and input validation : the storage form can be submitted from another place. // Pseudo-code example: redirectURI='/ezfind/elevation_detail/86' if ( $http->hasPostVariable( 'redirectURI' ) ) { $module->redirectTo( $http->postVariable( 'redirectURI' ) ); } }
/** * test for fetchConfigurationForObject() */ public function testFetchConfigurationForObject() { // clean up the table beforehand $db = eZDB::instance(); $rows = $db->query('TRUNCATE TABLE ezfind_elevate_configuration;'); # start 1 : invalid object ID $expected1 = null; $configuration1 = eZFindElevateConfiguration::fetchConfigurationForObject('non numeric'); self::assertEquals($expected1, $configuration1); # end 1 # start 2 : simple fetch with default parameters. $queryString = "test 1"; $objectID = 1; $language = "eng-GB"; eZFindElevateConfiguration::add($queryString, $objectID, $language); $expected2 = array($language => array(new eZFindElevateConfiguration(array('search_query' => $queryString, 'contentobject_id' => $objectID, 'language_code' => $language)))); $configuration2 = eZFindElevateConfiguration::fetchConfigurationForObject($objectID); self::assertEquals($expected2, $configuration2); # end 2 # start 3 : group by language disabled. $expected3 = array(new eZFindElevateConfiguration(array('search_query' => $queryString, 'contentobject_id' => $objectID, 'language_code' => $language))); $configuration3 = eZFindElevateConfiguration::fetchConfigurationForObject($objectID, false); self::assertEquals($expected3, $configuration3); # end 3 # start 4 : filtering by language code $additionalLanguage = "esl-ES"; eZFindElevateConfiguration::add($queryString, $objectID, $additionalLanguage); $expected4 = array($additionalLanguage => array(new eZFindElevateConfiguration(array('search_query' => $queryString, 'contentobject_id' => $objectID, 'language_code' => $additionalLanguage)))); $configuration4 = eZFindElevateConfiguration::fetchConfigurationForObject($objectID, true, $additionalLanguage); self::assertEquals($expected4, $configuration4); # end 4 # start 5 : testing the countOnly parameter $expected5 = 1; $configuration5 = eZFindElevateConfiguration::fetchConfigurationForObject($objectID, true, $additionalLanguage, null, true); self::assertEquals($expected5, $configuration5); # end 5 # start 6 : testing the limit parameter $expected6 = 2; $configuration6 = eZFindElevateConfiguration::fetchConfigurationForObject($objectID, true, null, 1, true); self::assertEquals($expected6, $configuration6); # end 6 # start 7 : filtering by search query $additionalQueryString = "test 2"; eZFindElevateConfiguration::add($additionalQueryString, $objectID, $language); $expected7 = 2; $configuration7 = eZFindElevateConfiguration::fetchConfigurationForObject($objectID, true, null, null, true, $queryString); self::assertEquals($expected7, $configuration7); # end 7 }