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());
?>