Coder Social home page Coder Social logo

woltlab / wcf Goto Github PK

View Code? Open in Web Editor NEW
239.0 36.0 143.0 159.17 MB

WoltLab Suite Core (previously WoltLab Community Framework)

Home Page: https://www.woltlab.com

License: GNU Lesser General Public License v2.1

PHP 71.37% Smarty 10.94% JavaScript 3.58% CSS 0.17% Shell 0.01% Yacc 0.05% Batchfile 0.01% TypeScript 11.69% SCSS 2.20%
woltlab-suite wcf php javascript cms framework redactor-ii wsc woltlab

wcf's People

Contributors

2martens avatar burntimex avatar cyperghost avatar derpierre65 avatar dtdesign avatar earlyhost avatar fabii547 avatar firepanther avatar gravatronics avatar hanashi avatar iceq1337 avatar jens1o avatar joshuaruesweg avatar kiv4h avatar krymonota avatar max-m avatar mdman avatar meinaccount avatar morik avatar mutec avatar netzwergx avatar phrozenbyte avatar siora avatar smooey avatar softcreatr avatar stricted avatar timwolla avatar torbenbrodt avatar woouki avatar xopez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wcf's Issues

Make use of BreadCrumb microdata

I would very much like to see that WCF 2.0 supports googles BreadCrumb microdata. See http://www.google.com/support/webmasters/bin/answer.py?&answer=185417 for detailed information.

In short, this will allow the breacrumbs to be shown on googles search result page. You can see it in action when you get search result from a xenforo, it will look like this: http://xenforo.com/community/attachments/google-microdata-png.11169/

Since google is, atleast in germany, the far most used search engine, i would really like to see such functionality in WCF 2.0, and the new WBB version, too.

UsersMassProcessingForm is broken

The UserMassProcessingForm in the ACP is broken:
Fatal error: Call to undefined method wcf\acp\form\UsersMassProcessingForm::readCache() in [...]\feda5d4\wcf\lib\acp\form\UsersMassProcessingForm.class.php on line 392

Usage of SPL-interfaces

I'd suggest using SPL-interfaces (Countable, Iterator) at certain classes like wcf\data\DatabaseObjectList

Unify error language variables

When reworking the language variables you should also take a look at error language variables since there are two types:

  • wcf.acp.updateServer.serverURL.error.notValid (error after the error field - in this case serverURL)
  • wcf.user.error.confirmEmail.notEqual (error in front of the error field - in this case confirmEmail)

Installation url input field

Please remove that second input field during the installation that simply shows the installation url and replace it with "simple" text (in some way, of course, highlighted). I don't think having an input field that suggests that something can be entered - which is never the case here - isn't very user friendly.

Start every namespace with a backslash

Currently the global namespace is notated like this:

\Class
The wcf classes are imported (and used like this):
wcf\Class

I'd suggest for consistency to use this variant:
\wcf\Class

The classes are imported by use anyway, but if they were not the Back-Slash at the beginning would be even required to catch the right class!

Of course this has to be changed in the documentation as well, but I think this is easily managable by search'n'replace.

WCF.MultipleLanguageInput click target

I'd prefer if the click target of WCF.MultipleLanguageInput would be the p element rather than the span element since you get a visual feedback (color change) if you hover over the p element but you have to be over the span element to be able to click, clicking on the p element alone has no effect.

Coding conventions

I figured out two different coding styles concerning switch statements and shorthand if statements.

Type 1

switch statement

switch ($var) {
   case 1:
      print '1';
   break;
}

shorthand if statement

$newVar = ($var) ? true : false;

Type 2 (original wcf style)

switch statement

switch ($var) {
   case 1:
      print '1';
      break;
}

shorthand if statement

$newVar = ($var ? true : false);

I hope you decide for one of these types. But I think the original wcf style makes more sense, because:

  • switch statement: the statement is more structured (the break keyword is optional and shouldn't be at the same level as 'case')
  • shorthand if statement: the complete statement is enclosed and can be integrated into other statements easily:
$newVar = 'blub '.($var ? true : false).' blub 2';

userList broken

Fatal error: PHP warning in file /data/webroot/wcf/wcf2/acp/templates/compiled/1_0_1_userList.php (44): rawurlencode() expects parameter 1 to be string, object given

Information:

error message: PHP warning in file /data/webroot/wcf/wcf2/acp/templates/compiled/1_0_1_userList.php (44): rawurlencode() expects parameter 1 to be string, object given
error code: 0
file: /data/webroot/wcf/wcf2/lib/system/WCF.class.php (262)
php version: 5.3.6-13ubuntu3.1
wcf version: 2.0.0 Alpha 1 (Maelstrom)
date: Sat, 15 Oct 2011 16:22:21 +0000
request: /wcf/wcf2/acp/index.php/UserList/?s=69f5c9bd16a595a34327e09ad3f6a04f5bb40de8
referer: http://127.0.0.1/wcf/wcf2/acp/index.php/PackageList/?s=69f5c9bd16a595a34327e09ad3f6a04f5bb40de8
Stacktrace:

#0 [internal function]: wcf\system\WCF::handleError(2, 'rawurlencode() ...', '/data/webroot/w...', 44, Array)
#1 /data/webroot/wcf/wcf2/acp/templates/compiled/1_0_1_userList.php(44): rawurlencode(Object(wcf\system\request\LinkHandler))
#2 /data/webroot/wcf/wcf2/lib/system/template/TemplateEngine.class.php(312): include('/data/webroot/w...')
#3 /data/webroot/wcf/wcf2/lib/page/AbstractPage.class.php(149): wcf\system\template\TemplateEngine->display('userList')
#4 /data/webroot/wcf/wcf2/lib/acp/page/UserListPage.class.php(144): wcf\page\AbstractPage->show()
#5 /data/webroot/wcf/wcf2/lib/page/AbstractPage.class.php(55): wcf\acp\page\UserListPage->show()
#6 /data/webroot/wcf/wcf2/lib/system/request/Request.class.php(58): wcf\page\AbstractPage->__construct()
#7 /data/webroot/wcf/wcf2/lib/system/request/RequestHandler.class.php(38): wcf\system\request\Request->execute()
#8 /data/webroot/wcf/wcf2/acp/index.php(10): wcf\system\request\RequestHandler->handle('wcf', true)
#9 {main}

Unified names of abstract database object classes

At the moment most abstract database object classes (DatabaseObject, DatabaseObjectDecorator, DatabaseObjectEditor, DatabaseObjectList) don't have the 'Abstract' prefix, but AbstractDatabaseObjectAction has. I assume that this is still a relict from when the names of interfaces didn't had an prepended I since there is the (I)DatabaseObjectAction interface.

Also, is there a specific reason why ProcessibleDatabaseObject isn't abstract?

May-be there should be a global convention if abstract classes have the Abstract prefix or not.

wcf\data\DatabaseObject::getSelectQuery()

If you have more complex queries when selecting the data of a database object - for example a simple join with the users table to get the username - you have to copy and past the original wcf\data\DatabaseObject::__construct() method and just change the query.

Since such simple joins and additional selects aren't that rare, wouldn't it be nicer to have a protected wcf\data\DatabaseObject::getSelectQuery() method that simply delivers the needed query? If you have extra joins you can easily overwrite that method without having to copy the rest of the constructor which remains unchanged.

Create wcf\system\package\installation namespace

I think it's best if the system namespaces(/folder structure) reflect(s) the data namespaces which isn't the case currently with the package installation files. I would suggest creating an installation folder within the lib/system/package folder and moving all installation related files there so that you (e.g.) can find the package installation plugins in lib/system/package/installation/plugin/ (compare to the path of its database objects: lib/data/package/installation/plugin/).

AbstractEventListener

If an event listener listens to several events, it will or can look like this: https://github.com/WoltLab/com.woltlab.wcf.comment/blob/master/files/lib/system/event/listener/UserProfileCommentListener.class.php. Whouldn't an abstract implementation be nice where the execute method tests if a method with the name of the event exists, and calls it then (may-be with the event object as an argument). The only (solvable) problem would be that the event wouldn't be allowed to be named 'execute', which is the case for the wcf\action\AbstractAction::execute() method.

PIPs: name attribute vs. name element

At the moment, the name property of an object that is registered with a package installation plugin is an attribute sometimes and sometimes it's a child element.

Examples:

        <acpmenuitem name="wcf.acp.menu.link.system">
            <showorder>1</showorder>
        </acpmenuitem>
        <definition>
            <name>com.woltlab.wcf.clipboardItem</name>
        </definition>

In both cases the name is a unique value within the package.

A unification would be nice - I personally prefer the attribute.

Class naming conventions

Currently there are different ways how to name classes:
#1. 'VerbNoun':

  • InstallPackageAction
  • UninstallPackageAction
  • ValidateActionException
    #2. 'NounVerb':
  • OptionExportAction
  • ...

I think all class names should be changed to 'NounVerb':

  • PackageInstallAction
  • PackageUninstallAction
  • ActionValidationException / ActionValidateException

MultiselectOptionType needs to be updated

wcf\system\option\MultiselectOptionType still uses the old method signatures from WCF 1.1. Additionally its template also still works with an $optionData array rather than the object.

Installation of required (and optional?) packages doesn't work

First error is that wcf1_package_installation_node just allows package and pip as values but requiredPackage (wcf\system\package\PackageInstallationNodeBuilder line 377) and optionalPackage (wcf\system\package\PackageInstallationNodeBuilder line 474) are also used.

If you've fixed that, you also need to change wcf\system\package\PackageInstallationDispatcher::install() since you get:

PHP Fatal error:  Call to a member function splitNode() on a non-object in ***/lib/system/package/PackageInstallationDispatcher.class.php on line 109

Can't overwrite old tables during installation

A SystemException is thrown if you try to overwrite old database tables during installation:

Fatal error: Could not execute prepared statement: SQLSTATE[23000]: Integrity constraint violation: 1217 Cannot delete or update a parent row: a foreign key constraint fails
Information:
error message: Could not execute prepared statement: SQLSTATE[23000]: Integrity constraint violation: 1217 Cannot delete or update a parent row: a foreign key constraint fails
error code: 23000
sql type: wcf\system\database\MySQLDatabase
sql error: Cannot delete or update a parent row: a foreign key constraint fails
sql error number: 23000
sql version: 5.5.9
file: ***/tmp/22abcc9e/install/files/lib/system/database/statement/PreparedStatement.class.php (77)
php version: 5.3.6
wcf version: 2.0.0 Alpha 1 (Maelstrom)
date: Thu, 22 Sep 2011 14:56:48 +0000
request: /woltlab/wcf2/installations/2011.09.22/install.php?step=createDB
referer: http://localhost:8888/woltlab/wcf2/installations/2011.09.22/install.php
Stacktrace:
#0 ***/tmp/22abcc9e/install/files/lib/system/database/editor/MySQLDatabaseEditor.class.php(95): wcf\system\database\statement\PreparedStatement->execute()
#1 ***tmp/22abcc9e/install/files/lib/system/database/util/SQLParser.class.php(289): wcf\system\database\editor\MySQLDatabaseEditor->dropTable('wcf1_acp_sessio...')
#2 ***/tmp/22abcc9e/install/files/lib/system/database/util/SQLParser.class.php(191): wcf\system\database\util\SQLParser->executeDropTableStatement('wcf1_acp_sessio...')
#3 ***/tmp/22abcc9e/install/files/lib/system/database/util/SQLParser.class.php(50): wcf\system\database\util\SQLParser->executeStatement('DROP TABLE', 'DROP TABLE IF E...')
#4 ***/tmp/22abcc9e/install/files/lib/system/WCFSetup.class.php(674): wcf\system\database\util\SQLParser->execute()
#5 ***/tmp/22abcc9e/install/files/lib/system/WCFSetup.class.php(264): wcf\system\WCFSetup->createDB()
#6 ***/tmp/22abcc9e/install/files/lib/system/WCFSetup.class.php(73): wcf\system\WCFSetup->setup()
#7 ***/wcf2/installations/2011.09.22/install.php(793): wcf\system\WCFSetup->__construct()
#8 {main}

Textarea styling

Some thoughts about textarea styling:

  • Add margin-top: 0px; since at least in Safari they've got a default top margin of 2px which doesn't look good with dropdowns in front (though not sure, if you will "officially" support dropdowns in front of textareas but you should for multi-language textarea inputs).
  • The transition value shouldn't be all since resizing textareas with a delay is very strange.
  • Add resize: vertical;, since horizontal resizing destroys the design most of the times.
  • in combination with resizing: May-be a min-height for all and a min-width for each width class would be nice.

Embedding XSD directly from GitHub

I'd suggest embedding the XSD directly via the raw-URL from GitHub, if it is possible. This way the are always on the current development state und you don't have to mirror it all the time.

Quick-Login Box - Registration Link broken

Fatal error: Cannot handle request, no valid route provided.

Information:

error message: Cannot handle request, no valid route provided.
error code: 0
file: /data/webroot/wcf/wcf2/lib/system/request/RequestHandler.class.php (32)
php version: 5.3.6-13ubuntu3.2
wcf version: 2.0.0 Alpha 1 (Maelstrom)
date: Thu, 20 Oct 2011 14:46:07 +0000
request: /wcf/ea/index.php/index.php?form=Register&username=hurr/&s=d1a4a954e9d9c9443a660855a4543fd300ea5d71
referer: http://127.0.0.1/wcf/ea/index.php/User/2
Stacktrace:

#0 /data/webroot/wcf/ea/index.php(10): wcf\system\request\RequestHandler->handle('ea')
#1 {main}

New users can't be created via ACP

User options error (I know, Alexander really likes them ;)):

error message: PHP error in file ***/wcf2/installations/2011.11.21/wcf/lib/data/user/option/UserOption.class.php (52): Argument 1 passed to wcf\data\user\option\UserOption::setUser() must be an instance of wcf\data\user\User, null given, called in ***/wcf2/installations/2011.11.21/wcf/lib/system/option/user/UserOptionHandler.class.php on line 110 and defined
error code: 0
file: ***/wcf2/installations/2011.11.21/wcf/lib/system/WCF.class.php (262)
php version: 5.3.6
wcf version: 2.0.0 Alpha 1 (Maelstrom)
date: Thu, 01 Dec 2011 21:48:59 +0000
request: /woltlab/wcf2/installations/2011.11.21/shdb/acp/index.php/UserAdd/?s=c14bc026baf2e76f3fae27ea48b70bb90ec34aa9
referer: http://localhost:8888/woltlab/wcf2/installations/2011.11.21/shdb/acp/index.php/UserList/?s=c14bc026baf2e76f3fae27ea48b70bb90ec34aa9
Stacktrace:
#0 ***/wcf2/installations/2011.11.21/wcf/lib/data/user/option/UserOption.class.php(52): wcf\system\WCF::handleError(4096, 'Argument 1 pass...', '***...', 52, Array)
#1 ***/wcf2/installations/2011.11.21/wcf/lib/system/option/user/UserOptionHandler.class.php(110): wcf\data\user\option\UserOption->setUser(NULL)
#2 ***/wcf2/installations/2011.11.21/wcf/lib/system/option/OptionHandler.class.php(463): wcf\system\option\user\UserOptionHandler->checkVisibility(Object(wcf\data\user\option\UserOption))
#3 ***/wcf2/installations/2011.11.21/wcf/lib/system/option/OptionHandler.class.php(378): wcf\system\option\OptionHandler->checkOption(Object(wcf\data\user\option\UserOption))
#4 ***/wcf2/installations/2011.11.21/wcf/lib/system/option/OptionHandler.class.php(386): wcf\system\option\OptionHandler->loadActiveOptions('profile.aboutMe')
#5 ***/wcf2/installations/2011.11.21/wcf/lib/system/option/OptionHandler.class.php(386): wcf\system\option\OptionHandler->loadActiveOptions('profile')
#6 ***/wcf2/installations/2011.11.21/wcf/lib/system/option/OptionHandler.class.php(362): wcf\system\option\OptionHandler->loadActiveOptions('')
#7 ***/wcf2/installations/2011.11.21/wcf/lib/system/option/OptionHandler.class.php(118): wcf\system\option\OptionHandler->readCache(true)
#8 ***/wcf2/installations/2011.11.21/wcf/lib/acp/form/AbstractOptionListForm.class.php(82): wcf\system\option\OptionHandler->__construct('user-option', 'wcf\system\cach...', false, '', '', true)
#9 ***/wcf2/installations/2011.11.21/wcf/lib/page/AbstractPage.class.php(54): wcf\acp\form\AbstractOptionListForm->readParameters()
#10 ***/wcf2/installations/2011.11.21/wcf/lib/system/request/Request.class.php(58): wcf\page\AbstractPage->__construct()
#11 ***/wcf2/installations/2011.11.21/wcf/lib/system/request/RequestHandler.class.php(38): wcf\system\request\Request->execute()
#12 ***/wcf2/installations/2011.11.21/shdb/acp/index.php(3): wcf\system\request\RequestHandler->handle('shdb', true)
#13 {main}

Use gh-pages for documentation

This proposal ist nothing for immediate implementation, but more for long term planning. I just wondered if you might have considered using the github pages ( http://pages.github.com/ ) for WCf documentation. Currenty there were some articles in the wiki, but using gh-pages might prove better. For example, the installation instruction manuel (readme) will probably be updated for wcf 2.0 / WBB dragon. it could very well be put in the gh-pages branch. Furthermore, developer tutorials etc. could be shipped with gh-pages more conveniently than in the wiki.

p.error background image during installation

If an p.error element occurs during installation (for example if the chosen database already contains a WCF installation with the given installation number) the background image can't be loaded since the images aren't extracted yet.

Installation broken - Optiontype missing

<?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE html>
        <html>
            <head>
                <title>Fatal error: unable to find class 'wcf\system\option\Texti18nOptionType'</title>
                <style>
                    .systemException {
                        border: 1px outset lightgrey;
                        padding: 3px;
                        background-color: lightgrey;
                        text-align: left;
                        overflow: auto;
                        font-family: Verdana, Helvetica, sans-serif;
                        font-size: .8em;
                    }
                    .systemException div {
                        border: 1px inset lightgrey;
                        padding: 4px;
                    }
                    .systemException h1 {
                        background-color: #154268;
                        padding: 4px;
                        color: #fff;
                        margin: 0 0 3px 0;
                        font-size: 1.15em;
                        word-wrap: break-word;
                    }
                    .systemException h2 {
                        font-size: 1.1em;
                        margin-bottom: 0;
                    }
                    .systemException pre, .systemException p {
                        margin: 0;
                    }
                    .systemException pre {
                        font-size: .85em;
                        font-family: "Courier New";
                        text-overflow: ellipsis;
                        overflow: hidden;
                    }
                    .systemException pre:hover{
                        overflow: auto;
                        text-overflow: clip;
                    }
                </style>
            </head>
            <body>
                <div class="systemException">
                    <h1>Fatal error: unable to find class 'wcf\system\option\Texti18nOptionType'</h1>

                    <div>
                        <p></p>

                        <h2>Information:</h2>
                        <p>
                            <b>error message:</b> unable to find class 'wcf\system\option\Texti18nOptionType'<br>
                            <b>error code:</b> 0<br>
                                                        <b>file:</b> /var/www/wbb3.1/wcf1.2/lib/system/package/plugin/OptionPackageInstallationPlugin.class.php (53)<br>
                            <b>php version:</b> 5.3.5-1ubuntu7.2<br>
                            <b>wcf version:</b> 2.0.0 Alpha 1 (Maelstrom)<br>
                            <b>date:</b> Mon, 03 Oct 2011 10:29:35 +0000<br>
                            <b>request:</b> /wbb3.1/wcf1.2/acp/index.php?action=InstallPackage&amp;t=5e93435db348cdd7b7be2125fa2a5338684a3569&amp;s=56100097784fcb8ca622d4f1fd4b0776735fd2ee<br>
                            <b>referer:</b> <br>
                        </p>

                        <h2>Stacktrace:</h2>
                        <pre>#0 /var/www/wbb3.1/wcf1.2/lib/system/package/plugin/AbstractOptionPackageInstallationPlugin.class.php(166): wcf\system\package\plugin\OptionPackageInstallationPlugin-&gt;saveOption(Array, 'general.page')
#1 /var/www/wbb3.1/wcf1.2/lib/system/package/plugin/AbstractOptionPackageInstallationPlugin.class.php(36): wcf\system\package\plugin\AbstractOptionPackageInstallationPlugin-&gt;importOptions(Object(DOMXPath))
#2 /var/www/wbb3.1/wcf1.2/lib/system/package/PackageInstallationDispatcher.class.php(332): wcf\system\package\plugin\AbstractOptionPackageInstallationPlugin-&gt;install()
#3 /var/www/wbb3.1/wcf1.2/lib/system/package/PackageInstallationDispatcher.class.php(106): wcf\system\package\PackageInstallationDispatcher-&gt;executePIP(Array)
#4 /var/www/wbb3.1/wcf1.2/lib/acp/action/InstallPackageAction.class.php(71): wcf\system\package\PackageInstallationDispatcher-&gt;install('cbfbf580')
#5 /var/www/wbb3.1/wcf1.2/lib/action/AbstractDialogAction.class.php(69): wcf\acp\action\InstallPackageAction-&gt;stepInstall()
#6 /var/www/wbb3.1/wcf1.2/lib/action/AbstractAction.class.php(38): wcf\action\AbstractDialogAction-&gt;execute()
#7 /var/www/wbb3.1/wcf1.2/lib/system/request/Request.class.php(58): wcf\action\AbstractAction-&gt;__construct()
#8 /var/www/wbb3.1/wcf1.2/lib/system/request/RequestHandler.class.php(51): wcf\system\request\Request-&gt;execute()
#9 /var/www/wbb3.1/wcf1.2/acp/index.php(10): wcf\system\request\RequestHandler-&gt;handle('wcf', true)
#10 {main}</pre>
                    </div>

                                </div>
            </body>
        </html>

Deletion of event listeners via pip doesn't work

An error occurs:

error message: PHP notice in file ***/lib/system/package/plugin/EventListenerPackageInstallationPlugin.class.php (46): Undefined index: elements
Stacktrace:
#0 ***/lib/system/package/plugin/EventListenerPackageInstallationPlugin.class.php(46): wcf\system\WCF::handleError(8, 'Undefined index...', '/Users/matthias...', 46, Array)
#1 ***/lib/system/package/plugin/AbstractXMLPackageInstallationPlugin.class.php(79): wcf\system\package\plugin\EventListenerPackageInstallationPlugin-&gt;handleDelete(Array)
#2 ***/lib/system/package/plugin/AbstractXMLPackageInstallationPlugin.class.php(44): wcf\system\package\plugin\AbstractXMLPackageInstallationPlugin-&gt;deleteItems(Object(DOMXPath))
#3 ***/lib/system/package/plugin/AbstractPackageInstallationPlugin.class.php(65): wcf\system\package\plugin\AbstractXMLPackageInstallationPlugin-&gt;install()
#4 ***/lib/system/package/PackageInstallationDispatcher.class.php(325): wcf\system\package\plugin\AbstractPackageInstallationPlugin-&gt;update()
#5 ***/lib/system/package/PackageInstallationDispatcher.class.php(105): wcf\system\package\PackageInstallationDispatcher-&gt;executePIP(Array)
#6 ***/lib/acp/action/InstallPackageAction.class.php(71): wcf\system\package\PackageInstallationDispatcher-&gt;install('1585cc9d')
#7 ***/lib/action/AbstractDialogAction.class.php(69): wcf\acp\action\InstallPackageAction-&gt;stepInstall()
#8 ***/lib/action/AbstractAction.class.php(38): wcf\action\AbstractDialogAction-&gt;execute()
#9 ***/lib/system/request/Request.class.php(58): wcf\action\AbstractAction-&gt;__construct()
#10 ***/lib/system/request/RequestHandler.class.php(51): wcf\system\request\Request-&gt;execute()
#11 ***/acp/index.php(10): wcf\system\request\RequestHandler-&gt;handle('wcf', true)
#12 {main}

The problem isn't just in this package installation plugins but in every one which relies on the child nodes of the element node since they are not added in wcf\system\package\plugin\AbstractXMLPackageInstallationPlugin::deleteItems().

Developer-Mode broken in WCFSetup

Fatal error: PHP notice in file /var/www/tmp/fc2738bd/install/files/lib/system/WCFSetup.class.php (457): Undefined variable: allLanguages

Information:

error message: PHP notice in file /var/www/tmp/fc2738bd/install/files/lib/system/WCFSetup.class.php (457): Undefined variable: allLanguages
error code: 0
file: /var/www/wbb3.1/install.php (212)
php version: 5.3.5-1ubuntu7.2
wcf version: 2.0.0 Alpha 1 (Maelstrom)
date: Mon, 03 Oct 2011 10:15:37 +0000
request: /wbb3.1/install.php?step=selectLanguages
referer:
Stacktrace:

#0 /var/www/tmp/fc2738bd/install/files/lib/system/WCFSetup.class.php(457): handleError(8, 'Undefined varia...', '/var/www/tmp/fc...', 457, Array)
#1 /var/www/tmp/fc2738bd/install/files/lib/system/WCFSetup.class.php(258): wcf\system\WCFSetup->selectLanguages()
#2 /var/www/tmp/fc2738bd/install/files/lib/system/WCFSetup.class.php(72): wcf\system\WCFSetup->setup()
#3 /var/www/wbb3.1/install.php(793): wcf\system\WCFSetup->__construct()
#4 {main}

MultipleLanguageInput/I18nHandler: error handling

Hello,

I'd like to suggest to add a more complex and capable error handling mechanism to the MultipleLanguageInput/I18nHandler to allow different error messages for the different inputs. While the input in one language might be correct, the input for another language might be wrong because of reason A and the input for a third language might be wrong for a reason B. So the javascript code should be able to change (respectively add or remove) the error message depending on which language is currently active (which shouldn't be to complicated).

Having the possibility to directly validate the input in the I18nHandler with more complex conditions would be nice but would require an abstraction for validators. To do it within the form class itself, I think having access to the $i18nValues via a getter would be nice.

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.