Elgg

Elgg to oprogramowanie, które jest przeznaczone do tworzenia portali społecznościowych za pomocą języka programowania PHP z zainstalowanymi następującymi rozszerzeniami:

  • GD - służy do renderowania grafiki
  • Multibyte String support
  • narzędzie pozwalające wysyłać emaile.

Oprócz tego korzysta z bazy danych MySQL a serwer na którym jest zainstalowany powinien mieć możliwość nadpisywania adresów URL.

Oficjalne wsparcie prowadzone jest dla następujących konfiguracji:

  • serwer Apache (włączona opcja nadpisywania adresów URL - rewrite module oraz PHP zainstalowany jako moduł do Apache)
  • serwer Nginx (z zainstalowanym PHP-FPM, który używa FastCGI).

Wyróżnione funkcje oprogramowania to między innymi:

  • wydajny model danych - Elgg dostarcza wydajny model narzędzi, który sprawia, że tworzenie różnych rekordów jest proste i elastyczne
  • kanały aktywności- API rozproszonego kanału aktywności zapewnia twoim wtyczkom możliwość wysyłania wymaganej zawartości użytkownikom
  • wtyczka API- możliwość korzystania z wydajnej wtyczki API w celu budowania i dodawania wymaganych funkcji przez programistę
  • zarządzanie użytkownikami- Elgg zapewnia zarządzanie twoimi użytkownikami i relacjami między nimi
  • kontrola dostępu- wszystkie obiekty w Elgg mogą mieć pewien poziom dostępu czego wynikiem będą rozproszone uprawnienia dostępu
  • Web Services API- możliwość udostępnienia funkcji poprzez REST API za pośrednictwem wtyczki
  • możliwość korzystania z wielu gotowych wtyczek
  • możliwość tworzenia portali wielojęzycznych
  • wbudowany silnik do generowania widoków
  • front-endowy framework bazuje na jQuery
  • możliwość zarządzania sesjami
  • spersonalizowane adresy URL
  • responzywność
  • korzysta z composer'a
  • system cache'owania - Elgg używa dwóch systemów cache'owania dla poprawienia wydajności, jest to System cache (cache'uje m.in. wygenerowane pliki html, wyniki działań) oraz Database query cache (cache'uje m.in. zapytania do bazy danych)
  • posiada wbudowaną obsługę programu Cron
  • Elgg posiada funkcję automatycznego tworzenia formularzy, ich walidacji, zabezpiecza je przed próbami wstrzyknięcia niepożądanego kodu SQL (SQL Injection)
  • posiada wbudowane zabezpieczenie formularzy przed spamem (Captcha)
  • umożliwia tworzenie paneli CRUD dla wybranych modeli.

Przykładowy kod w Elgg

Elgg Przykład #1

  <?php
  elgg_register_page_handler('my_blog', 'my_blog_page_handler');
  
  function my_blog_page_handler($segments) {
      if ($segments[0] == 'add') {
          echo elgg_view_resource('my_blog/add');
          return true;
      }
      return false;
  }
  ?>
  
Elgg Przykład #2

  <?php
  $user = elgg_get_logged_in_user_entity();
  $container_guid = (int)get_input('container_guid');
  if ($container_guid) {
      if (!can_write_to_container($user->guid, $container_guid)) {
          // register error and forward
      }
  } else {
      $container_guid = elgg_get_logged_in_user_guid();
  }
  
  $object = new ElggObject;
  $object->container_guid = $container_guid;
  
  ...
  
  $container = get_entity($container_guid);
  forward($container->getURL());
  ?>