Draft - Developper Sur Elgg

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    Draft - Developper Sur Elgg - Presentation Transcript

    1. Développer sur Brice Gaillard - http://www.bricegaillard.com
    2. Le dataModel Elgg s’interface à la base données grâce aux classes ElggEntity Il n’est pas recommandé de toucher directement à la base de données Il est possible d’étendre les objets ElggEntity grâce aux métadatas et aux annotations
    3. Le dataModel ElggEntity { Global Unique ID (GUID) Owner GUID Site GUID Access ID Subtype ElggObject ElggUser ElggSite ElggGroup Ex: blog post, Décrit les Décrit chaque Décrit des bookmark, ... utilisateurs instance de elgg groupes
    4. Architecture d’un plugin myplugin start.php actions save.php languages fr.php views default myplugin css.php myview.php
    5. Squelette d’un fichier start.php function myplugin_init() { // Load system configuration global $CONFIG; // Load the language file register_translations($CONFIG->pluginspath . "myplugin/languages/"); // Extend system CSS with our own styles, which are defined in the myplugin/css view extend_view('css','myplugin/css'); // Register a page handler, so we can have nice URLs register_page_handler('myplugin','myplugin_page_handler'); } function myplugin_page_handler($page) { include(dirname(__FILE__) . "/index.php"); } register_elgg_event_handler('init','system','myplugin_init'); // Register actions global $CONFIG; register_action("myplugin/add",false,$CONFIG->pluginspath . "myplugin/actions/add.php");
    6. Les vues Elgg dispose de sets d’interfaces appelés view type Exemples de view type : •HTML standard •RSS •HTML optimisé pour l’iPhone •... Le view type par défaut est default Il y a deux façons de changer le view type : •En le spécifiant dans l’url (ex: http://your-elgg-site.domain/pg/your/ site/page/?view=rss) •En appelant la fonction set_input (ex: set_input(‘view’, ‘iphone’) dans votre plugin de détection de navigateur)
    7. Comment utiliser une vue ? Les vues sont stocker dans le répertoire views/default/ à la racine de elgg et dans chaque plugin Pour afficher une vue il faut utiliser la fonction elgg_view ex: echo elgg_view(‘input/text’, array(‘internalname’ => ‘username’)); Il est possible d’étendre une vue grâce à la fonction extend_view ex: extend_view(‘css’, ‘my/custom/css’);
    8. Comment passer des variables à une vue ? Les variables sont passées en paramètre de la fonction elgg_view ex: echo elgg_view(‘input/text’, array(‘internalname’ => ‘username’)); Elles sont ensuite accessibles dans la vue via le tableau $vars Ex: $vars[‘internalname’] retournera ‘username’ Certaines variables sont accessibles depuis n’importe quelle vue : •$vars[‘url’] : contient l’url du site •$vars[‘user’] : contient l’objet de l’utilisateur authentifié •$vars[‘config’] : contient la configuration normalement accessible depuis la variable globale $CONFIG
    9. Les actions Les actions sont un moyen d’interagir avec l’utilisateur : •L’authentification •L’insertion, la modification ou la suppression de données Les actions sont accessible via l’url : http://monsite.domain/action/monplugin/monaction Les actions sont déclarées dans start.php du plugin ex: register_action(‘monplugin/monaction’, false, $CONFIG->pluginspath . ‘monplugin/actions/monfichieraction.php’); Fonctions utiles : •get_input() - Récupère les arguments passés via la méthode GET ou POST •forward() - Redirige vers l’url de la page passé en argument •system_message() - Affiche un message de confirmation •register_error() - Affiche un message d’erreur
    10. Contrôle d’accès Un contrôle d’accès est définis pour chaque entité (Access ID) 3 types de contrôles d’accès sont définis par défaut : •0 - Seul le créateur peut accéder à l’entité •1 - Seul les utilisateurs authentifiés peuvent accéder à l’entité •2 - Tout le monde peut accéder à l’entité Autres fonctions permettant le contrôle d’accès : •isloggedin() •isadminloggedin() •gatekeeper() •admin_gatekeeper()
    11. Liens utiles •http://docs.elgg.org/wiki/Main_Page •http://reference.elgg.org/ Brice Gaillard - http://www.bricegaillard.com
    SlideShare Zeitgeist 2009

    + Brice GaillardBrice Gaillard Nominate

    custom

    462 views, 3 favs, 0 embeds more stats

    Cette présentation a pour but de faire office de b more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 462
      • 462 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 4
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories