well, the super fast, ultra efficient, massively huge BBCode handling system was implemented differently on each DBMS. Although this provided the best performance, the solution was a bit hacky.
So what does this new thing do? We use base64 encoding to make everything nice and shiny, it turns into nice, safe characters that we can just jam into varchars on essentially any database. This has two implications: we must decode every bitfield we get AND we have slightly fewer IDs to work with. It goes down from 2040 BBCodes to 1512. We lose like a quarter of them :P
P.S. I hope nothing broke :P
git-svn-id: file:///svn/phpbb/trunk@6263 89ea8834-ac86-4346-8a33-228a782c2dd0
- replacing all occurances of L_NONE with a more specific string [Bug #3494]
- a few corrections to html id attributes in the installer
- using correct permission in mcp_report [Bug #2471]
- allow deleting the avatar, when no upload method is enabled and hide the delete button if no avatar is set
git-svn-id: file:///svn/phpbb/trunk@6241 89ea8834-ac86-4346-8a33-228a782c2dd0
- shortening some db columns to meet the requirements
- correctly increase/decrease user post counts
- fix the topic title length bug(s)
git-svn-id: file:///svn/phpbb/trunk@6224 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit should increase the total number of BBCodes from 31 to 2040. Some things to watch out for:
Each database likes to deal with binary data in its own, special way. They are, quite frankly, too cool for school.
MySQL, MSSQL and Oracle all allow me to send in a default value for their binary column using a hex number. However, MSSQL forces me to send the specific data as a hex number and thus we must CAST it.
PostgreSQL allows me to set a binary column, but with a twist. It demands that the default be in _octal_ and its datatype allows somewhere around a gigabyte's worth of BBCodes ( PGSQL users, we shut you down to 2040 for your own good! )
Firebird has no decent mechanism for allowing me to shuttle in binary data so I must force my way in. By virtue of triggers and a UDF, we ram in our default values.
SQLite is the most bizarre of them all. They have no mechanism for turning an ASCII code into a ASCII character. Because of this, we have a trigger and a UDF (just like Firebird!) but with a twist! The UDF is defined on the PHP side of things instead of SQL. SQLite also demands that it's data be encoded before being sent off.
Other notes:
- SQLite installs again :D
- Firebird nearly installs again :P
- Database backup is not screwed up :P
P.S.
I hope nothing broke :D
git-svn-id: file:///svn/phpbb/trunk@6209 89ea8834-ac86-4346-8a33-228a782c2dd0
comment -> attach_comment
new, forwarded, unread, marked, deleted -> pm_new, pm_forwarded, pm_unread, pm_marked, pm_deleted
module_name -> module_basename
value -> lang_value
- every column is now NOT NULL
- every column is now having a DEFAULT value
- hopefully mostly consistent across every db schema
- untested schemas: sqlite, oracle, firebird
git-svn-id: file:///svn/phpbb/trunk@6177 89ea8834-ac86-4346-8a33-228a782c2dd0
Thanks again to aninhill for giving me full access to his board to be able to spot this error.
git-svn-id: file:///svn/phpbb/trunk@6147 89ea8834-ac86-4346-8a33-228a782c2dd0
- added new function to return globally used expressions (get_preg_expression($mode)). This should be very helpful in getting wide spread similar checks (regular expressions) to one place reducing the risk of forgetting to change every location if you fix one. ;) We will add additional ones later, at the moment only the email check is retrieved...
- added "active module" var to the module class returning the current active module
- changed call to image magick
- add administrator to global moderators group by default
- extend auth_option column a little bit
- other bugfixes
git-svn-id: file:///svn/phpbb/trunk@6135 89ea8834-ac86-4346-8a33-228a782c2dd0
- all changes to styles/subsilver/template are purely cosmetic (no functional changes)
- cosmetics
- bugfixes
- add index to modules table
- use modules ordering code for forums too
git-svn-id: file:///svn/phpbb/trunk@6073 89ea8834-ac86-4346-8a33-228a782c2dd0
- add page title to ucp pages
- add ability to supress getting the who is online list in page_header() (saves us ideally 1-2 queries on ucp/mcp pages)
- fixing pm rules a bit as well as now having complete author memberships for author_in_group (sender -> is in usergroup -> xxx)
git-svn-id: file:///svn/phpbb/trunk@6054 89ea8834-ac86-4346-8a33-228a782c2dd0
added a space after quotes for correctly parsing urls/smilies
instead of splitting the url just compare with strpos
david: please review once you get home. :)
git-svn-id: file:///svn/phpbb/trunk@6051 89ea8834-ac86-4346-8a33-228a782c2dd0
- PostgreSQL now gives us database info (if you are running 8.1 or have the dbsize contrib module installed)
git-svn-id: file:///svn/phpbb/trunk@6042 89ea8834-ac86-4346-8a33-228a782c2dd0
re-introduce append_sid: old style continues to work, not a performance hog as it was in 2.0.x -> structure is different
apart from this, code cleanage, bug fixing, etc.
git-svn-id: file:///svn/phpbb/trunk@6015 89ea8834-ac86-4346-8a33-228a782c2dd0
- do not display full path to installation in error message text (only occurence would be "header already sent" warnings)
git-svn-id: file:///svn/phpbb/trunk@5975 89ea8834-ac86-4346-8a33-228a782c2dd0
- added disclaimer about DEBUG_EXTRA to the ACP (i think this is needed - some idiots might think it is wise to have this enabled on a production board. :) We *may* let it there for the Betas though, but it will be removed during the RC's)
- some bugfixes
git-svn-id: file:///svn/phpbb/trunk@5973 89ea8834-ac86-4346-8a33-228a782c2dd0
- init user session in cron.php (else it can produce errors if functions expect the user object being set)
- fix sql escaping for mssql/mssql_odbc
git-svn-id: file:///svn/phpbb/trunk@5957 89ea8834-ac86-4346-8a33-228a782c2dd0
- fixed post author change
- fixed moving topics (they should not count into read tracking now) - think about having only one column for shadow topics/similar to forum links
- moved a function from functions.php to functions_display.php (this function is only used by viewtopic and viewforum which already include this file)
- some rather tiny fixes for mssql
git-svn-id: file:///svn/phpbb/trunk@5933 89ea8834-ac86-4346-8a33-228a782c2dd0
- added new function to (re)apply sids where needed (login and mcp quickmod) - #1829
git-svn-id: file:///svn/phpbb/trunk@5931 89ea8834-ac86-4346-8a33-228a782c2dd0
- include acp/common.php language file if displaying logs (LOG_ variables should be stored there only now)
- added check to cron.php
- added database_gc config variable
- recalculate binary trees every once a week ;)
git-svn-id: file:///svn/phpbb/trunk@5929 89ea8834-ac86-4346-8a33-228a782c2dd0
- changed attachment config to utilize the config build methods
- cleaned up posting.php
- the submit/delete_post functions are now usable (functions_posting.php)
- adjusted header icons (transparency)
- a bunch of fixes for mssql
- bug fixes
git-svn-id: file:///svn/phpbb/trunk@5902 89ea8834-ac86-4346-8a33-228a782c2dd0
- corrected page title for search indexing progress bar [Bug #1695]
- correct poster name for the anonymous user in mcp_queue and mcp_reports
git-svn-id: file:///svn/phpbb/trunk@5888 89ea8834-ac86-4346-8a33-228a782c2dd0
- default error reporting in common.php
- E_ALL being set if DEBUG_EXTRA defined
git-svn-id: file:///svn/phpbb/trunk@5882 89ea8834-ac86-4346-8a33-228a782c2dd0
- changed error_reporting to E_ALL
- our error handler now takes the error_reporting value into account allowing us to correctly supress notices
git-svn-id: file:///svn/phpbb/trunk@5877 89ea8834-ac86-4346-8a33-228a782c2dd0
- fixed [code=php] tag (tags got mangled on edit)
- fixed a tiny issue within the ban function
git-svn-id: file:///svn/phpbb/trunk@5875 89ea8834-ac86-4346-8a33-228a782c2dd0