Coder Social home page Coder Social logo

joomla-projects / joomla-extension-directory Goto Github PK

View Code? Open in Web Editor NEW
4.0 11.0 7.0 8.36 MB

Repository for com_jed4, the next incarnation of the Joomla Extensions Directory

License: GNU General Public License v2.0

PHP 81.06% CSS 15.52% SCSS 0.66% JavaScript 2.72% Shell 0.01% Batchfile 0.02%

joomla-extension-directory's Issues

Frontend - My Extensions View/Dashboard

From the technical spec:
User Area
To include all standard user and account functionality, such as forgot password, register, account details, etc.
Tabs
Tickets
Reviews
Account
Favourites
Extensions

Installation of dev environment

I tried to install this repo locally for helping development.
I followed the steps described in https://github.com/joomla-projects/Joomla-Extension-Directory#build-instructions

After running .\build-windows-c.bat in the command line I get the following error:

grafik
grafik

Nevertheless I tried to continue by doing the mapping into my local webserver with .\vendor\bin\robo map 'D:\wamp64\www\jed4-dev' and it seems to work anyway.
I guess it is just not able to create the installable zip package file...

My environment

  • Windows NT 10.0 build 19045 (Windows 10) AMD64
  • PHP v8.2.7
  • Composer version 2.6.6 2023-12-08 18:32:26

Scoring Plugin

Extensions have a scoring based on several factors. Since we don't want people to game the system, the specific algorithm how these scores are derived, should be hidden.

Solution

  1. The scores are stored in the extensions table in the row of each extension. They are calculated when a save operation occurs.
  2. The score is calculated by a plugin, which acts on save events for the extension, reviews, etc.
  3. This main repo should contain a simple demo plugin that fulfills this feature. In a private repo, an advanced plugin can include the improved, secret scoring method.
  4. An additional CLI command should be added to re-calculate all scores at once for all extensions, for example when the scoring plugin changes.
  5. Scores are only updated for changes which have been approved by moderators.

Tasks

  • Create score field in database
  • Create plg_jed_basescore plugin with basic scoring function. Reacts on onJEDCalculateScore with an extension object as parameter
  • Create plg_system_jedscoring plugin, which triggers onJEDCalculateScore for all relevant save operations (Basically all moderation events)
  • Create private repo with scoring plugin for advanced scoring functionality
  • Create CLI command plugin to run onJEDCalculateScore on each extension

Extension Tags should be changed from (Paid Download / Free)

The current tags are as follows

  • Free
  • Paid Download

These no longer reflect current products. Some companies make a single listing for a product that has free and a paid version with more features. so to cover these extensions the following should be used

  • Free
  • Paid
  • Free/Paid

You will note that Paid Download has been shortened so it matches the other tags

An example extension is: Convert Forms

You could also use the tag lite for a crippled version of a extension as it implies there is another extension that is paid and has more features. There would also need to be another listing for this full version of the extension.

You could also instead of Free/Paid show both tags (Free and Paid), but I am not 100% how this will affected peoples searches.

Frontend - Extension Submit / Edit / View

From the technical specification.
Extension Submission
Functionality
Registered users can add / edit their own extensions. The extension submission form should be easily customisable so that new fields can be added in the future. The submission process should be as automated as possible.
1. The component should check the user’s account for any pending issues. The component should prevent submissions if:
the user has 3 pending submissions.
the user has a suspended account.
the user has any unpublished listings for any reason other than UR5 (per developer request).
2. Submission form fields - (*) indicates a required field:
Name *
Free and Paid checkboxes
Extension Type (multi-select)
Component - Mini-application to render the main page body
Module - Renders small html blocks on any page
Plugin - Changes code behavior dynamically
Extension Specific Add-on - a Specific add-on that requires another extension to operate
3. The form needs to run the JED Checker automatically for all files uploaded.
Different automatic tests based on extension type selection.
Items to test:
All tests currently present + Match Listing Name + Reserved Words + Joomla
Check to see if the alias for the extension already exists
If it passes, continue.
If it doesn’t pass, display issues from checker to user.
If it doesn’t pass, the user has the option (via checkbox) to bypass the check and describe why the submission is valid. In this scenario, the submission will be placed in a manual review queue.
4. Remaining fields:
Descriptions
Descriptions should support simple BBCode or Markdown for only: bold, italic, underlined, and lists
Include a main Description field (text area) in English
The developer should also be able to add extra descriptions in other languages. They would need to fill in 2 fields: Language Name (select from list) and a Description (text area).
Parent Extension (Required for Extension Specific Add-ons)
Project Homepage
Download URL
Demo URL
Documentation URL
Support Forum URL
License URL (Required when “Paid” is selected - see below)
Service Type: standalone or hosted
Support: not included or included. (Note: Reviews: support question to only be shown if support is included.)
Require Registration to Download (checkbox) (Automatically checked if “Paid” is selected)
Supported Joomla Versions (checkbox) - ability to add future Joomla versions.
Joomla! 3.x
Joomla! 4.x - JED Checker can be adapted to check this.
PHP Compatibility - ability to add
PHP versions (5.6, 7.0, 7.1 etc)
Uses Joomla Updater? (checkbox) - mandatory. (There’s no choice anymore)
Version (text field)
Category (only second level categories can be selected)
Tags (10 max)
Logo (1 max)
Video (youtube/vimeo) (URL Only) (max 1)
Image (10 max) (upload with auto resize)
Note to JED (text area)
JED XML URL
Subscribe to mailing list concerning your submission
The actual Update XML + for a paid extension a code that allows free downloads (that should allow a opt-in to the security review - badge
The possibility of auto populating some fields using data from the extension’s XML install file should be reviewed. The user would need to provide the XML file for this.
When the extension submission is approved, the user who created the listing should be able to unpublish their own listing (with an automatic reason: UR5-Per Developer Request). The user should also be able to update listing information. The user should also have the ability to open a ticket for their own listing in this area.
If someone changes the distribution model (free to paid and vice-versa), reviews are automatically deleted. The listing owner should receive a warning that their reviews will be wiped out, before saving the listing.
An extension name (ex: plg_system_example) must be unique and bound to the developer account, no one other than this developer is allowed to publish (and sign) packages with that extension name. An extension name should be prevented from including any words that are not permitted as below. The form should not allow submission if any are present. The ability to remove the restriction for a user for one-time use.
Joomla (only permitted in the form “{Extension Name} for Joomla”)
Component
Module
Plugin
Extension
Free
Language strings
Version numbers
Offensive words
A title that is more like a description than a title (length or number of words)

Mails need to be converted to Mailtemplates

All mails from the JED need to be converted to the built in MailTemplate feature of Joomla.

  • List all mails we currently have
  • Create templates in the mail templates system and maybe add that via installer script
  • Convert all existing mails which are send to the built-in system
  • Add missing mail sending to the JED

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.