Создать/отредактировать групповой веб-сервис в ELGG

Я ищу веб-сервис, который создал бы группу. Я посмотрел доступный веб-сервис в elgg. Я могу найти только следующие веб-сервисы, связанные с группой:

Группа

  • group.join Присоединение к группе
  • group.leave Выход из группы
  • group.forum.save_post Публикация новой темы в группе
  • group.forum.delete_post Удаление темы из группы
  • group.forum.get_latest_post Получить последний пост в группе
  • group.forum.get_reply Получить ответы на сообщение
  • group.forum.save_reply Опубликовать ответ
  • group.forum.delete_reply Удалить ответ

У нас есть что-нибудь для создания группового веб-сервиса в elgg.


person Parixit    schedule 20.11.2013    source источник


Ответы (2)


Пожалуйста, добавьте следующую функцию и ее определение в ваш файл веб-сервиса в ELGG/engine/lib/web_services.php

/**
 * The group.save API.
 * This API call lets a user to create group.
 *
 * @param string $name group name
 * @param string $briefdescription short description
 * @param string $description long description
 * @param string $interests tags comma separated
 * @param int $group_guid GUID of group if its edit request
 *
 * @return bool success/fail
 * @access public
 */
function group_save($name, $briefdescription, $description, $interests, $group_guid)
{ 
   //you can change/pass below parameters from POST
   $_GET['action']='groups/edit';
   $_POST['membership'] = '2';
   $_POST['activity_enable'] = 'yes';
   $_POST['blog_enable'] = 'yes';
   $_POST['forum_enable'] = 'yes';
   $_POST['pages_enable'] = 'yes';

   //include file at location "ELGG/mod/groups/actions/groups/edit.php"
   include_once '../../mod/groups/actions/groups/edit.php';

   //Or you can copy all code from that file and paste it here. And do modification according to your need.

}

Наконец, вы должны предоставить функцию, подобную следующей:

expose_function(
        "group.save",
        "group_save",
        array(
                        'name' => array ('type' => 'string'),
                        'briefdescription' => array ('type' => 'string'),
                        'description' => array ('type' => 'string'),
                        'interests' => array ('type' => 'string'),
                        'group_guid' => array ('type' => 'int', 'required' => false),
        ),
        'User add/edit group',
        'POST',
        true,
        true
    );
person Parixit    schedule 20.11.2013
comment
То же самое можно сделать через плагин. Узнайте, почему: docs.elgg.org/wiki/Dont_Modify_Core - person Paweł Sroka; 20.11.2013
comment
@PawełSroka Я говорю о веб-сервисе, так как я могу создать только один веб-сервис для создания группы, потому что остальные сервисы доступны. - person Parixit; 20.11.2013
comment
@PawełSroka Я не хочу менять ядро, но если я использую какой-либо плагин веб-службы, я также могу вместо этого добавить ту же функцию в этот файл плагина web_services.php Моя цель показать создание группового веб-сервиса. - person Parixit; 21.11.2013

Павел Срока прав. вы можете сделать базовый плагин с manifest.xml и start.php в нем и поместить свой код в start.php, и не имеет значения, пишете ли вы в нем одну функцию или сотни. например, вы можете взглянуть на следующий плагин: https://github.com/markharding/elgg-web-services

person irohit786    schedule 20.11.2013
comment
Я уже просмотрел все доступные плагины для веб-сервисов и, наконец, узнал, что для создания группы нет веб-сервиса. Пожалуйста, прочитайте мой вопрос. - person Parixit; 21.11.2013