Git Product home page Git Product logo

community_plugins's Introduction

Elgg

PHPUnit test suites Scrutinizer Quality Score Scrutinizer Code Coverage Read the docs build status

Elgg is an open source rapid development framework for socially aware web applications.

Features

  • Well-documented core API that allows developers to kick-start their new project with a simple learning curve
  • Composer is the package manager of choice that greatly simplifies installation and maintenance of Elgg core and plugins
  • Flexible system of events that allows plugins to extend and modify most aspects of application's functionality and behavior
  • Extendable system of views that allows plugins to collaborate on application's presentation layer and built out complex custom themes
  • Cacheable system of static assets that allows themes and plugins to serve images, stylesheets, fonts and scripts bypassing the engine
  • User authentication is powered by pluggable auth modules, which allow applications to implement custom authentication protocols
  • Security is ensured by built-in anti CSRF validation, strict XSS filters, HMAC signatures, latest cryptographic approaches to password hashing
  • Client-side API powered by asynchronous ES modules and a built-in Ajax service for easy communication with the server
  • Flexible entity system that allows applications to prototype new types of content and user interactions
  • Opinionated data model with a consolidated API layer that allows the developers to easily interface with the database
  • Access control system that allows applications to build granular content access policies, as well as create private networks and intranets
  • Groups - out of the box support for user groups
  • File storage powered by flexible API that allows plugins to store user-generated files and serve/stream them without booting the engine
  • Notifications service that allows applications to subscribe users to on-site and email notifications and implement integrations with other their-party services
  • RPC web services that can be used for complex integrations with external applications and mobile clients
  • Internationalization and localization of Elgg applications is simple and can be integrated with third-party services such as Transifex
  • Elgg community that can help with any arising issues and hosts a repository of 1000+ open source plugins

Under the hood:

  • Elgg is a modular OOP framework that is driven by DI services
  • NGINX or Apache compatible
  • Symfony2 HTTP Foundation handles requests and responses
  • modular javascript with ECMAScript modules
  • Laminas Mail handles outgoing email
  • htmLawed XSS filters
  • DBAL
  • Phinx database migrations
  • CSS-Crush for CSS preprocessing
  • Imagine for image manipulation
  • Persistent caching with Memcached and/or Redis
  • Error handling with Monolog

Elgg Foundation

Elgg is managed by the Elgg Foundation, a nonprofit organization that was founded to govern, protect, and promote the Elgg open source social network engine. The Foundation aims to provide a stable, commercially and individually independent organization that operates in the best interest of Elgg as an open source project.

The Elgg project was started in 2004 by

License

Copyright (c) 2008-2023, see COPYRIGHT.txt

Elgg is released under the GNU General Public License (GPL) Version 2 and the Massachusetts Institute of Technology (MIT-X11) License.

See LICENSE.txt in the root of the package you downloaded.

Installation

For installation instructions, see http://learn.elgg.org/en/stable/intro/install.html.

For upgrade instructions, see http://learn.elgg.org/en/stable/admin/upgrading.html.

Support

The project site can be found at https://elgg.org/.

Visit http://learn.elgg.org for more information about Elgg.

Contributors

For development credits, see CONTRIBUTORS.txt.

community_plugins's People

Contributors

beck24 avatar brettp avatar cash avatar ewinslow avatar hypejunction avatar iionly avatar jdalsem avatar jeabakker avatar juho-jaakkola avatar mrclay avatar perjensen avatar srokap avatar szepeshazi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

community_plugins's Issues

Allow multiple compatible Elgg version to be selected

Some plugins can be entirely compatible with different elgg versions - they should able to be marked as such for people searching for plugins. Otherwise it may be misleading, and people may assume that if a plugin is tagged as 1.8 that it won't work in 1.9.

Allow editing of plugin release version after upload

Currently you can edit the general plugin info but not the release-specific info. It would be helpful to be able to edit also the info of a specific release. For example, you might only notice later you made a spelling error in the release notes, you might have selected the wrong Elgg version as compatible version or you forgot to set the release as recommended.

With the new option to select multiple Elgg versions it would be especially useful to be able to edit release info afterwards. Let's say you tested a plugin that you originally have written for Elgg 1.8 now on Elgg 1.9 and it turns out that the plugin works without changes. Then it would be nice to update the compatibility info without the need to upload a new release.

Sum up number of downloads and recommendations on merge of plugin projects

Right now only the number of downloads and recommendations of the plugin project that is kept will remain while the number of downloads and recommendations of the project that is merged get lost. It would be nice, if the total number of downloads and recommendations would be preserved after the merge.

Standardize plugin search result header

When using plugins search, the title on results page is displayed different from the title when using site search.

The title is not wrapped in elgg-head and is therefore shown without padding just below the navbar.

Plugin search:

<div class="elgg-main elgg-body">
    <h2>Found 113 plugins, displaying 1 to 10</h2>

Site search:

<div class="elgg-main elgg-body">   
    <div class="elgg-head clearfix">
        <h2 class="elgg-heading-main">
            Results for "
            <strong class="search-highlight search-highlight-color1">plugins</strong>

Internationalize all text

offenders:

  • project_sidebar
  • plugins/forms/*
  • object/plugin_project
  • navigation/sort
  • add_contributors

River comments for plugin projects

When commenting inline on river item about new plugin, comments get attached to the plugin project, not the particular version. W don't have display specific to plugin project to display comments on, so they may be considered "lost" by the users.

We should:

  • remove commenting of plugin project in favor of versions only
  • add place to display plugin project comments (confusing IMO)

white pages on elgg1.7.10

hi, I'm trying to install it on 1.7.10...after installation, there are only white pages clicking on plugins' links. Some advice to set up this plugin?
thanks in advance

Recommending own plugins

It seems that Recommend has started showing up on owned plugins. I don't remember seeing it before.

'My plugins' are hard to find

Every time I need a list of my plugins I get lost and end up using search or going to my profile, clicking on one of my plugins and then going to the list from there. Perhaps an icon in the topbar next to messages would do us good.

Better handling / display of compatiblity information

I just realized that the compatibility info displayed for a plugin - more precisely its releases - might not be sufficient for all situations. Right now it seems only the plugin title shows the version a plugin is compatible to. I I've not yet tried what would show up if you select multiple version of Elgg as compatible. Maybe it shows even all compatible versions. But still this seems not sufficient.

If you want to keep all releases of your plugin for all Elgg versions together in one single entry you (and the people who want to download it) come across some problems at some point:

  • you don't see directly which release of a plugin is compatible to which Elgg version.
  • if you need to release separate versions of a plugin for separate Elgg versions you have a problem if you don't want to support only the latest version of Elgg only. The problem is that there is only ONE recommended release. What am I supposed to select as recommended. Example: Tidypics. I want to continue to release versions for Elgg 1.8 while I started today to release a version working on Elgg 1.9. If I would have added both versions within a single entry in the plugin repository I'm pretty sure it would have resulted in a lot of confusion.

Suggestion: include links to all releases of a plugin in the sidebar sorted by Elgg releases they are compatible with. For each Elgg major release all compatible versions should be listed (as indicated by the plugin uploader). Therefore, the same version might show up more than once, i.e. under each Elgg version the release is working with. There might also be no longer the necessity to define a "recommended" release then. Maybe it's best to assume that the latest release displayed under each Elgg release is the recommended version.

It could look like this:

for Elgg 1.9

- 1.9.1 (release 10 days ago)

- 1.9.0 (released 100 days ago)

for Elgg 1.8

- 1.8.13 (released today)

...

or in another case:

for Elgg 1.9

- 1.3 (released yesterday)

- 1.2 (released 8 days ago)

- 1.1 (released 10 days ago)

for Elgg 1.8

- 1.1 (released 10 days ago)

- 1.0 (released 11 days ago)

Warning about outdated plugins

This relates to #56, it is also valuable information to know which plugins are outdated and may not be maintained.

Let a warning appear automatically when a plugin reach a certain age without being updated.

We could add an option for the plugin author to add a box that says, "This plugin is no longer maintained." I know you can edit the text and add it, but better if you just need to tick the a check box.

old-plugin-box

Remove duplicate plugin entries from Google

Currently when you search on Google you end up getting all of a plugin's releases listed as separate results. This is not a great experience. Instead, you probably just want the canonical page for that plugin, which would then tell you the recommended release or allow you to browse further releases.

Recommend changing URL structure to:

  • /plugins/:plugin_guid -- Plugin profile page (allows direct download of recommended release)
  • /plugins/:plugin_guid/releases -- List of all releases with direct download links

Each release should not even have it's own profile URL, methinks, though we may still need it so people can get to the comments.

Efficient way to delete spam users.

Problem: Recursive delete process is slow, and when errors occur, the user is left to continue posting.

I'm thinking: ban with reason "being deleted", place GUID in cron job to delete content in time-limited chunks. When no content left, delete user. Possibly perform deletion outside of API with fast queries.

Automatic travis integration?

I wonder if there's a way we could automatically add Travis support to plugins submitted to the Elgg repo. We could at least give plugins a place to specify the build-status badge location (thought that's not necessarily Travis-specific).

Allow users to vote to ban spam users

Problem: Need a way for community to police itself.

Let's say that established community members (e.g. accounts over 6 months old) can vote newbies (accounts under 1 month old) as likely spammers (stored as a relationship). When N votes are received, the newbie is banned and placed in a moderation queue for admins to handle.

Admins see vote count beside name.

Later: Allow voting to disable content, too.

Automatically notify plugin authors about outdated plugins

Lets add a cron handler to notify plugin author if the plugin is outdated.

We could check e.g. whether:

  • The plugin hasn't received a release n months
  • The recommended version is n minor versions behind the latest stable Elgg release
  • Has the Elgg compatibility setting been updated (this might actually be enough for this feature!)

Add discussion to plugin projects

Background:
There is no way to ask for support for a particular plugin other than in release comments, but that doesn't lend itself to identifying and resolving separate issues very much. Early on a few plugins made groups for themselves to be able to have discussions handle this need.

We should just build this right into the plugin project page itself so that pages don't just get long strings of comments, but discussions can be separated into different issues and people can easily look through the list of known issues.

Features:

  • Discussions should be contained by the project, not the release, otherwise they'll disappear every time a new release is shipped, which is probably not actually what you want.
  • URL for this: /plugins/:guid/discussion
  • Option to turn it off?
  • Way to move all those groups' content to the appropriate plugins.
  • Way to move individual discussions from a group to the specific plugin, (similar to moving to another group)

Make the plugins index page more focused on search

I've always thought search should be a more primary action. Can we:

  • Get rid of that wall of text (people ignore blah-blah text anyways)
  • Visually promote searching. It's shoved off to the side too much. We also need to support text based search, not just category and Elgg version, which is far too limiting.
  • Visually demote uploading (important, but secondary)

Allow syncing from git repo

See my previous PR: #8

Git tags in a valid php version format or vX.Y.Z format would automatically become releases.

Inspect plugin packages

That would cover:

See #34

All of it would serve only informative purposes. I wouldn't want to automatically block plugins, trigger an alert at most.

Some existing tools ideas:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.