コード例 #1
0
ファイル: hooks.php プロジェクト: hypejunction/elgg_stars
/**
 * Add starrating menu items to rateable entities
 *
 * @param string $hook Equals 'register'
 * @param string $type Equals 'menu:entity' or 'menu:title'
 * @param array $return Current menu items
 * @param array $params Additional params
 * @return array Update menu items
 */
function elgg_stars_menu_setup($hook, $type, $return, $params)
{
    if (!(bool) elgg_get_plugin_setting('extend_menu', 'elgg_stars')) {
        return $return;
    }
    $entity = elgg_extract('entity', $params, false);
    if (!elgg_instanceof($entity)) {
        return $return;
    }
    $type_subtype_pairs = elgg_stars_get_rateable_type_subtype_pairs();
    $type = $entity->getType();
    $subtype = $entity->getSubtype();
    if (!array_key_exists($type, $type_subtype_pairs)) {
        return $return;
    }
    if ($subtype && array_search($subtype, $type_subtype_pairs[$type]) === false) {
        return $return;
    }
    $starrating = array('name' => 'stars', 'priority' => 10, 'text' => elgg_view_form('stars/rate', array(), $params), 'href' => false, 'encode_text' => false, 'section' => 'rating');
    $return[] = ElggMenuItem::factory($starrating);
    return $return;
}
コード例 #2
0
ファイル: ratings.php プロジェクト: hypejunction/elgg_stars
<?php

/**
 * Display a list of ratings and a ratings form
 */
if (!(bool) elgg_get_plugin_setting('extend_comments', 'elgg_stars')) {
    return;
}
$entity = elgg_extract('entity', $vars);
$show_add_form = elgg_extract('show_add_form', $vars, true);
if (!elgg_instanceof($entity)) {
    return;
}
$type_subtype_pairs = elgg_stars_get_rateable_type_subtype_pairs();
$type = $entity->getType();
$subtype = $entity->getSubtype();
if (!array_key_exists($type, $type_subtype_pairs)) {
    return;
}
if ($subtype && array_search($subtype, $type_subtype_pairs[$type]) === false) {
    return;
}
if ($show_add_form) {
    $body .= elgg_view_form('stars/rate', array(), array('entity' => $entity));
}
$title = elgg_echo('stars:ratings');
$annotation_names = elgg_stars_get_rating_annotation_names($entity);
$body .= elgg_list_annotations(array('guid' => $entity->guid, 'annotation_names' => $annotation_names));
$entity_ratings = elgg_stars_get_entity_rating_values($entity, $annotation_names);
$label = '<label>' . elgg_echo('stars:stats:totals') . '</label>';
$total = elgg_view('output/stars', array('value' => $entity_ratings['value']));