1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- /**
- * Group Picker. Sends an array of group guids.
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['values'] Array of gruop guids for already selected groups or null
- * @uses $vars['limit'] Limit number of groups (default 0 = no limit)
- * @uses $vars['name'] Name of the returned data array (default "groups")
- * @uses $vars['handler'] Name of page handler used to power search (default "livesearch")
- *
- * Defaults to lazy load group lists in alphabetical order. User needs
- * to type two characters before seeing the group popup list.
- *
- * As groups are selected they move down to a "groups" box.
- * When this happens, a hidden input is created to return the GUID in the array with the form
- */
- elgg_load_js('jquery.ui.autocomplete.html');
- if (empty($vars['name'])) {
- $vars['name'] = 'groups';
- }
- $name = $vars['name'];
- $name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
- $guids = (array)elgg_extract('values', $vars, array());
- $handler = elgg_extract('handler', $vars, 'livesearch');
- $handler = htmlspecialchars($handler, ENT_QUOTES, 'UTF-8');
- $limit = (int)elgg_extract('limit', $vars, 0);
- ?>
- <div class="elgg-group-picker ui-front" data-limit="<?php echo $limit ?>" data-name="<?php echo $name ?>" data-handler="<?php echo $handler ?>">
- <input type="text" class="elgg-input-group-picker" size="30"/>
- <ul class="elgg-group-picker-list">
- <?php
- foreach ($guids as $guid) {
- $entity = get_entity($guid);
- if ($entity) {
- echo elgg_view('input/grouppicker/item', array(
- 'entity' => $entity,
- 'input_name' => $vars['name'],
- ));
- }
- }
- ?>
- </ul>
- </div>
- <script type="text/javascript">
- // make sure the jQueryUI Autocomplete lib is available in ajax loaded views
- if (typeof(filter) !== "function") {
- $.getScript(elgg.get_site_url() + "vendors/jquery/jquery.ui.autocomplete.html.js");
- }
-
- require(['elgg/GroupPicker'], function (GroupPicker) {
- GroupPicker.setup('.elgg-group-picker[data-name="<?php echo $name ?>"]');
- });
- </script>
|