You are here: Noosfero>Dev>Features>Plugins (18 Jan 2014, AurelioAHeckert) EditAttach

Feature: Plugins

Oficial Plugins:

Why plugins

Plugins are a great way to foster innovation in software projects, because they allow independent developers to solve several problems without the need to understand/interact with the entire code base; by writing a plugin that implements a documented interface developers are able to add features without having to worry with the existing infrastructure.

We are introducing plugins to make it easier for developers to create innovative features for Noosfero.

It is important that such plugin architecture is accompanied by clear and comprehensive documentation.

Intended policy for plugins

Although plugins are supposed to be independent from the main product, we suggest to keep plugins code together with Noosfero main code instead of distributing them independently to help everyone involved in having a proper Quality Assurance environment.

Plugins must have automated tests, and when there's a need to make changes in Noosfero's core code, we should be able to run tests for all the plugins so that we know whether those changes affected any of the plugins. If that's the case, the developer doing the changes can change the plugins accordingly, or at least contact the plugin authors/maintainers asking for help. If plugins are spread over the internet and not tested together with Noosfero, then we run the risk of having Noosfero version/plugin version combinations that don't work and thus cause frustrations on users.

Features that may be added via plugins

A Noosfero plugins must be able to:

  1. add new types of blocks
    • example: "this plugin adds a StatusNet block that can display your microblog posts"
  2. perform actions whenever a content is created/updated/deleted/viewed
    • example: "this plugin can post an update to your microblog ( whenever you create a new blog post (or content in general)"
  3. perform actions whenever a profile is created/updated/deleted/viewed
  4. add elements to the visualization of a content
    • example: "this plugin adds a 'Share in Service X' button to all your posts."
  5. provide new items for the control panel of profiles, as well as the implementation of those items (configuration screens plus a configuration saving backend).
    • example: each community may be able to register related source code repositories to be monitored according to a defined set of software metrics.
  6. provide new visualizations for a profile.
    • example: if communities can register source code repositories to be monitored through its control panel, a possible visualization of the profile could be statistics about those repositories.
  7. provide new attributes for content items
  8. provide new attributes for profiles
  9. provide new ways of user authentication
    • example: a corporate social networking website may require that users must login with their corporate LDAP credentials
  10. provide new REST API handlers.
  11. provide new markup languages besides Textile (e.g. Markdown, Foswiki's wiki notation etc) -- this would require refactoring how the Textile article currently works.
  12. provide new ways of displaying the environment's home page (currently you have either static text or a "news site")
  13. provide new ways of displaying a profile's homepage (currently you can only put a user-created content there; even if it's a blog it's somehow limiting)

Developing Plugins

The Plugins Architecture topic describes the base architecture implemented and will help how to make your own plugin.

Related action items:
Action item Version Status
#1758: initial support for plugins 0.28.0 Done
#1790: Comments filter plugin N/A Pending
#1873: Filter comments plugin N/A Pending
#1970: Plugin: simple shopping cart 0.32.0 Done
#1987: ./script/noosfero-plugins does not test if symlink exists before trying to remove it 0.31.1 Done
#1996: Add hotspots to include shopping cart plugin 0.31.0 Done
#2002: reCAPTCHA   Pending
#2012: Must to limit the number of lines on the shopping cart's product name 0.31.6 Done
#2013: Must hidden the shopping cart's trash, until the mouse over. 0.32.1 Done
#2027: Spam Problems 0.31.5 Done
#2033: Partial for class doesn't consider the controller view path 0.32.0 Done
#2035: Plugin to make image gallery as a picture seller N/A Pending
#2056: New plugin that allows admins create forms mail 0.32.0 Done
#2062: Report to shopping cart plugin 0.33.0 Done
#2063: Plugin to filter URLs from comments to avoid spammers 0.33.0 Rejected
#2066: Symbolic links to plugins texfile files are created every time 0.32.1 Done
#2079: Contracts for Bsc (RF41) 0.34.0 Done
#2080: Status Report for Bsc (RF46) N/A Working
#2088: Assign Enterprise with BSC (RF31) 0.33.0 WaitingForFeedback?
#2095: Plugins initializing constants more then once N/A Pending
#2098: Noosfero plugins couldn't load model extensions 0.33.1 Rejected
#2101: Impossible to create database from scratch with plugin enabled 0.36.0 Done
#2107: Products disapearing from shopping cart N/A Rejected
#2110: SnifferPlugin: Opportunities Sniffer (aka Farejador de Oportunidades) N/A Rejected
#2133: Create/destroy db tables of plugins with noosfero-plugin script 0.36.0 Rejected
#2147: db:abort_if_pending_migrations checks migrations in all plugins and not only in the enables ones 0.36.0 Done
#2148: Diminuir lista de produtores pros produtos aparecerem antes   Done
#2199: Duplicate purchase orders 0.34.1 Done
#2200: Filter purchase orders by status doesn't works 0.34.1 Done
#2204: Add Google Custom Search as Noosfero search engine 0.35.0 Done
#2205: Allow to customize look and feel of search results   Pending
#2206: User interface to configure Google Custom Search ID   Pending
#2208: Allow profiles have statistics using Google Analytics 0.35.0 Done
#2214: Table of contents of plugins in Noosfero doc is empty N/A Pending
#2215: Fail to build plugins doc 0.35.0 Done
#2216: Plugins' CSS must be loaded after the themes's CSS   WaitingForFeedback?
#2232: Exibir erro de validação quando falha a adição de um novo produto por problema na formatação do valor do campo preço   Done
#2235: Plugins migrations don't work for db:migrate:* tasks   Pending
#2236: Plugins migrations are included in db/schema.rb 0.36.0 Pending
#2245: Em ciclos de pedidos, o histório não está em ordem descrescente   Done
#2246: Lista de produtos não está em ordem alfabética   Done
#2253: Permitir a adição de produtos sem necessidade de clicar em abrir   Done
#2254: Salvando pedido vázio   Done
#2255: Entrega em outro endereço não tem opção de editar   Pending
#2256: Entrega no endereço de cadastro não aparece as informações do usuário   Pending
#2257: Melhorar formatação do email de pedidos   Done
#2263: Descrição do ciclo de pedido muito simples   Done
#2264: Pedidos sobrepostos   Rejected
#2265: Facilitar o cancelamento de um pedido para o usuário   Pending
#2266: Melhorar formatação do arquivo ODS (Relatório de Pedidos)   Done
#2267: Email não mostra a quantidade correta após a alteração   Pending
#2268: Notificação de alteração de pedido feito pelo adm   Pending
#2271: Undefined method when clicking on shopping cart reports 0.35.1 Done
#2274: Página de ciclos de pedidos deveria ter o número de pedidos em cada ciclo   Done
#2275: Janela de edição de pedido não deveria ter nomes sobreescritos   Done
#2286: Link para grupo de consumo é muito extenso   Done
#2293: USP id validation on user registration 0.37.0 Done
#2294: Moodle authentication through Noosfero 0.37.0 Done
#2298: Plugin builder must create important directoryes and example files N/A Pending
#2302: Lista de fornecedores em ordem alfabética   Done
#2303: Remover um produto de um fornecedor   Done
#2304: Perda de ordem após adicionar/alterar um produto   Pending
#2308: Ao deixar em ordem de estado na listagem de produtos, os nomes dos produtos não ficam em ordem alfabética   Pending
#2314: Minimize number of requests for plugin assets 0.36.0 Done
#2315: Make Noosfero::Plugin::Manager interface inconsistent with Ruby stdlib 0.36.0 Done
#2316: New plugin hotspots for comments 0.36.0 Done
#2323: Abertura de pedidos é pouco explicativa e nao automatica   Done
#2324: Na caixa de seleção e filtro de produtores: adicionar 2 opções (caixa de seleção) acima da barra de seleção dos produtores   Pending
#2325: Problema em alteração do pedido originaria do link do email   Pending
#2326: Problema em alteração do pedido originado do link do email   Rejected
#2327: Notificação e mensagem por email na abertura do ciclo:   Done
#2330: Só aparecer o botao confirmar quando houver um produto   Pending
#2331: as datas da edição de pedidos pela administracao esta incorreta   Pending
#2332: Confirmar e corrigir nome do "Bloquear período de pedidos"   Done
#2333: Melhorar nome do arquivo de download das planilhas no ciclo   Done
#2334: Melhorar interface para adicionar novo método de entrega   Pending
#2339: Profile identifier no block linkList esta hardcoded   Rejected
#2340: CSS's images from plugins are not displayed 0.38.0 Done
#2343: Não adiciona novo método de entrega   Rejected
#2347: Geo Browse Plugin N/A Pending
#2359: hotspots for model extension N/A Pending
#2360: Noosfero caching conflicting with ShoppingCart Plugin 0.39.2 Done
#2362: Can't see the products list on shopping cart reports when the product was removed 0.38.0 Done
#2377: O produto deveria poder ser apagado   Done
#2394: Ao fazer pedido e a lista ficar maior que a tela, não dá pra ver o fim da lista.   Done
#2395: Ao dar zoom no firefox, a lista de pedidos feitas some e fica fixa no início da tela.   Done
#2396: Filtro "ativo/Inativo" não está funcionando ao entrar em "Administração>produtor> produtos" e ativar ou desativar. Todos os produtos aparecem como ativos na lista de compras do sistema aberto, mesmo não estando ativos.   Done
#2397: À partir do terceiro pedido para a mesma compra a janela que se abre ao clicar no produto muda de posição e fica "abaixo" do texto da lista dos produtos.   Done
#2398: Plugin Simple Gamification in Communitys   Pending
#2399: Email de confirmação de pedidos vem desformatados.   Done
#2422: Stoa fill usp id on profile edit information isn't working 0.38.1 Done
#2423: Add Openid support N/A Working
#2494: Can't add admin on environment with CustomFormsPLugin enabled 0.39.0 Done
#2517: Plugin de Macro para expandir informações sobre um pacote N/A Pending
#2526: Ldap Auth Plugin 0.42.0 Done
#2544: Adding hotspots for blocks 0.42.0 Done
#2561: Bug when a not logged user tries to "checkout" on shopping cart 0.41.2 Done
#2563: Cannot run spaminator due to lack of permission 0.41.1 Done
#2596: Comment button is not displayed for not logged users when plugin is enabled 0.41.1 Done
#2611: Members block: filter members by role N/A WaitingForReview?
#2623: shopping cart is losing items? 0.41.2 Done
#2670: Plugin to mark a comment as read 0.47.0 Done
#2671: Content block most commented   Pending
#2680: After cancelling edition of field, the options are displayed 0.43.0 Done
#2681: Custom forms are not validating mandatory fields 0.43.0 Done
#2686: Convert RIPE video conversor to the HTML5 Video plugin   WaitingForReview?
#2698: Index action don't work on plugins' profile controllers   WaitingForReview?
#2761: Error after trying to comment on Work Assigment content 0.44.3 Rejected
#2775: Crash when adding new fields on forms 0.44.4 Done
#2776: Plugins install file 0.44.4 Done
#2786: Vote on articles and comments 0.47.0 Done
#2804: Add a name to a part of an article   Pending
#2823: Video Block Plugin 0.46.0 Done
#2836: script/noosfero-plugins new function must create a more complete structure   WaitingForReview?
#2837: Plugin to create community track as a new content type 0.46.0 Done
#2839: List sub_organizations as sub-list of parent organization N/A Pending
#2841: A plugin for collective decision make   WaitingForReview?
#2845: Transform tag block into a plugin.   Pending
#2846: transform FeedReaderBlock in plugin N/A Pending
#2848: Recent published articles plugin 0.46.0 Done
#2851: Make a plugin with statistics block 0.47.0 Done
#2859: People block plugin   WaitingForReview?
#2861: “Issue solution proposal” must not be an option at the CMS   Pending
#2862: Add option for open voting in DecisionMakingPlugin::Issue   Pending
#2863: Todo processo de deliberação deve ser transparente   Pending
#2872: Breadcrumbs block 0.46.0 Done
#2876: Transform SlideShow in plugin N/A Pending
#2877: Transform My Network block into plugin   Pending
#2888: Block to display content based on context 0.46.0 Done
#2889: Link Tree Block Plugin   Pending
#2894: Plugin: Custom profile list block N/A Pending
#2913: Chain enable of plugins considering dependencies specification   WaitingForReview?
#2929: Bugs concerning email notification of SubOrganizationsPlugin   Pending
#2931: Comment group plugin performance improvement 0.46.0 Done
#2934: Fix profile search with pg_search plugin 0.46.0 Done
#2937: Dynamically load children of folders at display_content plugin 0.46.0 Done
#2942: Plugin to show survey researches managed by pairwise application as a content   Pending
#2943: Container Block Fixes 0.46.1 Done
#2945: Context Content block fixes 0.47.0 Done
#2952: Comment Group Plugin crash viewing article N/A Pending
#2967: Work assignment email alert   Pending
#2972: Software and Person Fields Register Plugin   Working
#2993: Display Content: Allow contents defined on plugins to be selectable 0.47.0 Done
#3019: Add new meta tags on themes or envs   Pending
#3034: Spaminator customized options N/A Pending
#3045: DEPRECATED: Remove EnvironmentStatisticsBlock from core 0.48.0 Pending
#3068: Purchase reports   Pending
#3070: Noosfero plugins doesn't load on development environment 0.48.0 Done
#3102: curriculum lattes import   Pending
#425: Noosfero Public API — a web-service API N/A Working

FeatureForm edit

Name Plugins
Topic revision: r15 - 18 Jan 2014 - 20:23:44 - AurelioAHeckert

irc Talk with Devs Now!

Translations: English
Search on Docs:
ActionItem Search:

Copyright © 2007-2014 by the Noosfero contributors
Colivre - Cooperativa de Tecnologias Livres