This project is not covered by Drupal’s security advisory policy.
ABOUT
The module provides dynamic entity score boosts based on field values or conditions.
Example scenarios:
- boost nodes based on number attached images to it,
- boost pages based on the title/body length or date,
- boost entities based on some custom complex business logic, etc.
INSTALLATION
Simply download and enable the module, you may do it via:
drush dl entity_score
drush en entity_score
CONFIGURATION
Please go to /admin/config/entity_score/boosts and choose field used to store entity score. The field must be of type Float and may be used across several entity/node types. Scores will be automatically updated when entities are created/saved.
YOUR OWN BOOSTS
In order to create custom boosts you need to do two things:
-
Provide hook_entity_score_entity_score_boosts_list function which returns list of boosts you'd like to support (our boost will use _calculate_my_builtin_fields_title_per_character as the callback function which should return quantity which will then be multiplied by boost value provided by user. Look at the example for clarification.
Example:
function mymodule_entity_score_entity_score_boosts_list() { // Machine name of the boosts group. 'my_builtin_fields' => array( // Title of the boosts group. 'title' => t('My built-in fields'), // An array of boost declarations. 'boosts' => array( // Machine name of boost declaration. 'title_per_character' => array( // Type may be also ENTITY_SCORE_BOOST_TYPE_CALLBACK, so third // parameter to boost callback function will be a reference to // final score value. 'type' => ENTITY_SCORE_BOOST_TYPE_NORMAL, // Title of the field that is used to compute boost. 'field_title' => t('Title'), // Description of boost functionality. 'boost_title' => t('Per character'), // Default value for boost, may be skipped for 0. 'default_value' => 0.05, // Bundles may be defined also as e.g., // array('node' => array('advert', ...), ...) 'bundles' => array('node'), // Callback function, e.g., // callback($entity, $entity_type, &$score) // Third parameter is required only for boost with type // ENTITY_SCORE_BOOST_TYPE_CALLBACK 'function' => '_calculate_my_builtin_fields_title_per_character', ), // ... ), // ... } -
Provide callback function declared in boost declaration ('function'). In our example it is calculatemybuiltinfieldstitleper_character.
Example:
function _calculate_my_builtin_fields_title_per_character($entity, $entity_type, &$score) { if (!isset($entity->title)) { // Entity doesn't contain title. return 0; } return strlen($entity->title); }
That's all. Your boost declaration is ready to be enabled.
EXPORT TO FEATURES
Currently it's supported via strongarm, just export all entity_score values into your module.
GitHub
Module is available at GitHub, so pull requests are welcomed.
Project information
- Project categories: Site structure, Site search
- Created by kenorb on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
