Instead point people to the php/doc-en repository.
It's still possible to change the bug type to "Documentation
Problem" after it has been submitted, e.g. if it turns out a bug
is really a documentation issue.
* usability: make label clickable for radio input
* set a right padding for the label
so it is obvious the label is for the left side radio select.
* clickable labels for asc/desc radio select
* right padding also for the asc/desc labels
* make the "NOT" checkbox labels clickable
Reuses the existing CSS classes to apply the same backgorund colors as in the bug search result table rows.
I know that Chrome and Safari ignore applying a background-color to option tags of a single select. But when bugs.php.net supports also multiselect for the status select both will show the background-color in multi selects (multiple="multiple" attribute for xhtml compatible modus)
This patch introduces a dependency injection container for the PHP bug
tracker application. Container deals with the creation of all service
classes and additionally provides retrieving of configuration parameters.
Service classes are used everywhere in the app - from accessing database
to uploading files. Configuration parameters include infrastructure
configuration (database credentials...) and application level
configuration (directories locations...).
Container is compatible with the PSR-11 container interface defined
so it is simple to quickly understand its usage. Advanced features
such as autowiring are not included in this phase.
This patch replaces obsolete Text_Diff PEAR package with newer and still
maintained Horde Text_Diff version 2.2.0 as suggested in the packages
descriptions.
Since bugs.php.net production is not ready for Composer installations yet,
the Text_Diff package is bundled in the Git repository directly. Its
classes are not compliant with PSR-4 yet so the classmap has been used
until future PSR-4 migration and refactorings.
- Procedural code moved to OOP
- Added unit tests
- Added a more flexible tmp folder location and introduce var folder
(in production this won't work yet, so we still use /tmp there).
For local development environments var directory in project root
is used for faster and easier project setup.
- Added initial extensible PSR-16-alike semi-compatible cache class
and refactored storing fetched versions.
- The versions list generator is now simpler and a bit more logical
what is happening. Versions sort order is the same as before.
- Added ComposerScripts utility/service class for creating required
directories (uploads and var/cache), and configuration file, when
installing application in development environment.
This patch adds an initial simplistic template engine to separate logic
from the presentation.
Basic initial features:
- escaping via Context::noHtml() and Context::e() methods
- blocks
- nesting options using includes and extending layouts
- PHP syntax
- variable scopes dedicated to template scope only
- Appending blocks (when JS files are in need to be appended)
- initial unit and functional tests
- Main index page refactored as an example of usage
- Very short intro docs how to use the template layer
- Thanks to @nhlm for the code review and numerous suggestions to
improve the usability and code stability,
- Thanks to @KalleZ and for the code review and numerous common sense
suggestions about templates themselves.
- Thanks to @Maikuolan for the code review and numerous suggestions
about the usability.
- Moved hash ids redirection to aseparate JavaScript file
- Use location instead of window.location in the JavaScript redirection
Discussions:
- http://news.php.net/php.webmaster/27603
- https://github.com/php/web-bugs/pull/66
Changes:
- This moves fetching bug comments to a dedicated repository class
- It uses vanilla PDO as current direction of the database usage
is applied in this app.
- When bug_id is set to preview types issues occur due to int type
hint. Should be refactored more in the future commits.
Some considerations were raised on the mailing list that this PHP
application doesn't need a PDO wrapper at all.
Changes:
- ::fetchRow() method removed in favor of the vanilla PDOStatement::fetch()
- ::fetchAll() override removed in favor of the vanilla
PDOStatement::fetchAll()
- ::fetchCol() removed since it is not used and is only a wrapper for
the PDOStatement::fetchColumn()
- PDO fetch_style synced accross the app. When no fetch style is passed
the default PDO::FETCH_ASSOC is used as set when connecting to db.
- Remove Database::escape() method
The custom ::escape() method is a wrapper around PDO::quote() which
additionally trims leading and trailing quotes from the string. All
this should ideally be done via prepared statements only, except where
we can and need to use PDO::quote() this step can be done on the given
string or variable at hand directly.
- Remove escapeSQL() function
The escapeSQL function is a wrapper around the PDO::quote() and is
using $dbh from the global scope which is not testable nor good practice
further on. Removed and refactored into only PDO::quote() usages on
required places.
- Remove ::fetchOne() method
The fetchOne() method is a simple wrapper around the PDOStatement::fetch()
method with very minor tweaks so the usage can be simplified even more.
The PDOStatement::fetch(\PDO::FETCH_NUM)[0] will always return either a
result from the database column or when row is empty a null.
- Probably this should be refactored to the database tables respected
repositories further on.
- Remove PDO wrapper
The app's current goal is to lean on a vanilla PDO wrapper only.
Current set of features also don't require additional functionality
and extending PDO to a wrapper or create a database abstraction layer
yet.