Development Wiki

Difference between revisions of "GSoC/2013/Ideas"

From phpBB Development Wiki

(Twig Template System)
(Twig Template System)
Line 21: Line 21:
'''Available Mentors:'''
'''Available Mentors:'''
=== Twig Template System ===
'''Brief explanation:''' Our current template system is custom-built and must be maintained by our development team. One option we have [ discussed] is to change from using our own template system to using the [ Twig] template system. The advantages include the fact that that template system is maintained by its own developers, so we can use it without having to worry about maintenance.
'''Expected results:''' The Twig template system should be included as a third party vendor using Composer. It must be set up to work with our [ Template Events]. All current template files must be adapted to use the new syntax, OR if possible, Twig must be taught our current template syntax. A tool should be written to convert from current phpBB syntax to the Twig syntax. [ Unit and/or functional tests] (depending on what is being tested) must be created.
'''Knowledge Prerequisites:''' Object-oriented PHP required
'''Available Mentors:'''

Revision as of 23:52, 22 February 2013

This page is based on the ideas page of 2012 and a similar page in the KDE community wiki.


User Facing

Rich Text Editor Integration

Brief explanation: BBCode is a lightweight markup language based on XHTML used to format posts. As such it is very technical and can be difficult to use, especially for novice internet users. It is also difficult to use for more experienced users when the formatting gets more complex. BBCode however also serves as a security mechanism for preventing the use of arbitrary HTML markup (and thus JavaScript), so the existing BBcode editor can not be replaced with an editor that produces HTML. A possible solution could be the use of a JavaScript editor that produces BBcode which is then translated to HTML as before.

Expected results: Integration of a Rich Text Editor into phpBB core, making the use of the bulletin board a lot easier by allowing users to pick the editor that fits their needs.

Knowledge Prerequisite: PHP and JavaScript

Available Mentors:


Session Backend Abstraction

Brief explanation: High traffic websites can already make use of fast in-memory stores (such as memcached or Redis) for improved caching. However volatile session data is still handled by the (relational) database, occasionally causing load problems. First very complete test coverage of current session code should be achieved to be able to guarantee the continued correct functionality of the session mechanism, which is of critical importance to running a board. The session code should then be refactored to provide an abstraction of the storage mechanism used, to allow for faster backends to be implemented.

Expected results: A properly designed storage interface for session data and working backend implementations for relational databases and memcached. A Redis implementation would be useful but is optional.

Knowledge Prerequisite: Object-oriented PHP required, familiarity with key-value stores useful but not mandatory.

Available Mentors: