ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5
Todo List
Class ASS_AnswerBinaryState

Get rid of duplicate methods (hiding behind different names.

Rework class to use a true binary state (boolean) instead of integer

Rename class to something that matches the filename properly.

Global assClozeTestGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assErrorTextGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assFileUploadGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assFlashQuestionGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assImagemapQuestionGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assJavaAppletGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assMatchingQuestionGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assMultipleChoiceGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assOrderingHorizontalGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assOrderingQuestionGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assQuestionGUI::getSpecificFeedbackOutput ($active_id, $pass)
Mark this method abstract!
Global assSingleChoiceGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assTextQuestionGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global assTextSubsetGUI::setQuestionTabs ()
: MOVE THIS STEPS TO COMMON QUESTION CLASS assQuestionGUI
Global Auth::setAdvancedSecurity ($flag=true)
Add challenge cookies - Create a cookie which changes every time and contains some challenge key which the server can verify with a session var cookie might need to be crypted (user pass)
Global Auth_Container_IMAP::Auth_Container_IMAP ($params)
Use PEAR Net_IMAP if IMAP extension not loaded
Global Auth_Controller::Auth_Controller (&$auth_obj, $login='login.php', $default='index.php', $accessList=array())
Add a list of urls which need redirection
Global Auth_Controller::start ()
Implement an access list which specifies which urls/pages need login and which do not
Global Auth_OpenID_Parse::parseLinkAttrs ($html)
This is quite ineffective and may fail with the default pcre.backtrack_limit of 100000 in PHP 5.2, if $html is big. It should rather use stripos (in PHP5) or strpos()+strtoupper() in PHP4 to manage this.
Global BibTexTest::test_parseEntry ()
Implement test_parseEntry().
Global CleanUpTest::doTestBytes ( $head, $tail)
document
Global CleanUpTest::doTestDoubleBytes ( $head, $tail)
document
Global CleanUpTest::doTestTripleBytes ( $head, $tail)
document
Global CleanUpTest::setUp ()
document
Global CleanUpTest::tearDown ()
document
Global CleanUpTest::testAllBytes ()
document
Global CleanUpTest::testAscii ()
document
Global CleanUpTest::testBomRegression ()
document
Global CleanUpTest::testChunkRegression ()
document
Global CleanUpTest::testDoubleBytes ()
document
Global CleanUpTest::testForbiddenRegression ()
document
Global CleanUpTest::testHangulRegression ()
document
Global CleanUpTest::testInterposeRegression ()
document
Global CleanUpTest::testLatin ()
document
Global CleanUpTest::testLatinNormal ()
document
Global CleanUpTest::testNull ()
document
Global CleanUpTest::testOverlongRegression ()
document
Global CleanUpTest::testSurrogateRegression ()
document
Global CleanUpTest::testTripleBytes ()
document
Global CleanUpTest::XtestAllChars ()
document
Module DifferenceEngine

indicate where diff.doc can be found.

document

document

document

document

document

document

document

document, bad name.

document

document

document

document

Class getid3_matroska

Rewrite EBML parser to reduce it's size and honor default element values

After rewrite implement stream size calculation, that will provide additional useful info and enable AAC/FLAC audio bitrate detection

Global getid3_ogg::ParseOpusPageHeader (&$filedata, &$filedataoffset, &$oggpageinfo)
find a usable way to detect abr (vbr that is padded to be abr)
Global getid3_ogg::ParseVorbisComments ()
use 'coverartmime' where available
Class HTMLPurifier
We need an easier way to inject strategies using the configuration object.
Global HTMLPurifier_AttrDef_CSS_Composite::$defs
Make protected
Global HTMLPurifier_AttrDef_CSS_Multiple::$max
Make protected
Global HTMLPurifier_AttrDef_CSS_Multiple::$single
Make protected
Global HTMLPurifier_AttrDef_Enum::$valid_values
Make protected
Class HTMLPurifier_Config
Reconsider some of the public member variables
Class HTMLPurifier_ContentSets
Unit test
Global HTMLPurifier_CSSDefinition::setupConfigStuff ($config)
Refactor duplicate elements into common class (probably using composition, not inheritance).
Class HTMLPurifier_DefinitionCache

Create a separate maintenance file advanced users can use to cache their custom HTMLDefinition, which can be loaded via a configuration directive

Implement memcached

Global HTMLPurifier_DefinitionCache_Serializer::generateBaseDirectoryPath ($config)
Make protected
Global HTMLPurifier_DefinitionCache_Serializer::generateDirectoryPath ($config)
Make protected
Global HTMLPurifier_DefinitionCache_Serializer::generateFilePath ($config)
Make protected
Global HTMLPurifier_Filter_ExtractStyleBlocks::preFilter ($html, $config, $context)
Extend to indicate non-text/css style blocks
Class HTMLPurifier_Generator

Refactor interface so that configuration/context is determined upon instantiation, no need for messy generateFromTokens() calls

Make some of the more internal functions protected, and have unit tests work around that

Global HTMLPurifier_Generator::escape ($string, $quote=null)
This really ought to be protected, but until we have a facility for properly generating HTML here w/o using tokens, it stays public.
Global HTMLPurifier_HTMLDefinition::parseTinyMCEAllowedList ($list)
Give this its own class, probably static interface
Class HTMLPurifier_HTMLModule
Consider making some member functions protected
Class HTMLPurifier_HTMLModule_Tidy
Figure out how to protect some of these methods/properties
Global HTMLPurifier_HTMLModule_Tidy::setup ($config)
Wildcard matching and error reporting when an added or subtracted fix has no effect.
Class HTMLPurifier_Injector
Allow injectors to request a re-run on their output. This would help if an operation is recursive.
Class HTMLPurifier_Injector_AutoParagraph

Ensure all states are unit tested, including variations as well.

Make a graph of the flow control for this Injector.

Global HTMLPurifier_Language::$_loaded
Make it private, fix usage in HTMLPurifier_LanguageTest
Global HTMLPurifier_Language::formatMessage ($key, $args=array())
Implement conditionals? Right now, some messages make reference to line numbers, but those aren't always available
Class HTMLPurifier_LanguageFactory
Serialized cache for languages
Global HTMLPurifier_Lexer::extractBody ($html)
Consider making protected
Global HTMLPurifier_Lexer::normalize ($html, $config, $context)
Consider making protected
Class HTMLPurifier_Lexer_DirectLex
Reread XML spec and document differences.
Global HTMLPurifier_Lexer_DOMLex::createStartNode ($node, &$tokens, $collect)
data and tagName properties don't seem to exist in DOMNode?
Class HTMLPurifier_Printer_ConfigForm
Rewrite to use Interchange objects
Global HTMLPurifier_Printer_HTMLDefinition::listifyObjectList ($array)
Also add information about internal state
Class HTMLPurifier_Strategy_FixNesting
Enable nodes to be bubbled out of the structure. This is easier with our new algorithm.
Class HTMLPurifier_TokenFactory
Port DirectLex to use this
Class HTMLPurifier_URIScheme_mailto

Validate the email address

Filter allowed query parameters

Class ilAdministrationExplorerGUI
: isClickable, top node id
Global ilassMarkTest::testSetMinimumLevel_High ()

Enhance documentation of class.assMark.php::setMinimumLevel();

Enhance documentation of class.assMark.php::getMinimumLevel();

Class ilAuthContainerSOAP
This class should inherit either from Auth_Container_SOAP or Auth_Container_SOAP5
Global ilAuthOpenId::supportsRedirects ()
check if redirects are possible
Class ilBookmarkBlockExplorerGUI
: target, onclick
Global ilCalendarAppointmentGUI::askEdit ()
works with milestones???
Global ilChatroom::addHistoryEntry ($message, $recipient=null, $publicMessage=true)
$recipient, $publicMessage speichern
Global ilChatroom::disconnectAllUsersFromAllRooms ()
nicht nur löschen, auch in Session Tabelle nachpflegen
Global ilChatroomTabGUIFactory::getLabel ($tabDefinition, $id)
: $tabDefinition sollte doch stets ein array und $id stets ein string sein, oder? Dann sollte man auch hier typehinten. (array $tabDefinition, string $id)
Global ilChatroomUploadFileTask::displayLinkToUploadedFile ($room, $chat_user)
erwartet message als json
Global ilChatroomUploadFileTask::uploadFile ()
: filename must be unique.
Global ilConsultationHoursGUI::appointmentList ()
add list/filter of consultation hours if user is responsible for more than one other consultation hour series.
Global ilCOPageHTMLExport::exportSupportScripts ()
: use ilPageContent js/css functions here (problem: currently they need a page object for init)
Global ilDBOracle::now ()
fix this
Global ilDBPostgreSQL::now ()
fix this
Global ilFileDataMail::initAttachmentMaxUploadSize ()
mjansen: Unfortunately we cannot reuse the implementation of ilFileInputGUI
Class ILIAS
review the concept how the object type definition is loaded. We need a concept to edit the definitions via webfrontend in the admin console.
Class ilLanguage

Das Datefeld wird bei Aenderungen einer Sprache (update, install, deinstall) nicht richtig gesetzt!!! Die Formatfunktionen gehoeren nicht in class.Language. Die sind auch woanders einsetzbar!!! Daher->besser in class.Format

The DATE field is not set correctly on changes of a language (update, install, your stable). The format functions do not belong in class.Language. Those are also applicable elsewhere. Therefore, they would be better placed in class.Format

Global ilLDAPServer::toggleDataSource ($a_ldap_server_id, $a_auth_mode, $a_status)
handle multiple ldap servers
Global ilLDAPUserSynchronisation::handleAccountMigration ()
to much session based handling
Global ilLDAPUserSynchronisation::sync ()
Redirects to account migration if required
Global ilLoggingDBSettings::getLevelByComponent ($a_component_id)
better performance
Global ilLOSettings::getInitialTest ()
refactor
Global ilLOSettings::getQualifiedTest ()
refactor
Global ilLOSettings::getTestByType ($a_type)
refactor
Global ilLOSettings::getTests ()
refactor
Global ilLOSettings::isRandomTestType ($a_type)
refactor
Global ilLOSettings::setInitialTest ($a_id)
refactor
Global ilLOSettings::setQualifiedTest ($a_id)
refactor
Global ilLuceneSearchGUI::getDetails ()
rename
Global ilLuceneSearchGUI::getMimeDetails ()
rename
Global ilLuceneSearchGUI::getType ()
rename Needed for base class search form
Global ilLuceneUserSearchGUI::getDetails ()
rename
Global ilLuceneUserSearchGUI::getType ()
rename Needed for base class search form
Global ilLuceneUserSearchGUI::prepareOutput ()
Global ilMail::saveInSentbox ($a_attachment, $a_rcp_to, $a_rcp_cc, $a_rcp_bcc, $a_type, $a_m_subject, $a_m_message)
: mjansen 23.12.2011 Why is $a_as_email undefined here?
Global ilMediaPoolPage::lookupUsages ($a_id, $a_incl_hist=true)
: This should be all in one context -> mob id table
Global ilMembershipRegistrationCodes::register ($a_user_id)
Throw exeption if registration is impossible due to other restrictions.
Global ilMembershipRegistrationCodeUtils::useCode ($a_code, $a_endnode)
: throw an error if registration fails (max members, availibility...)
Class ilMembershipRegistrationSettings
course, groups)
Global ilNestedSetTree::moveToTrash ($a_node_id)
lock table
Global ilNotificationAdminSettingsForm::getGeneralSettingsForm ()

dirty...

dirty...

dirty...

Global ilNotificationGUI::getOSDNotificationsObject ()
this method should move to a better place as it handels channel sprecific things.
Global ilNotificationSetupHelper::setupTables ()
hier wird ein fehler geworfen...
Global ilNotificationSystem::toUsers (ilNotificationConfig $notification, $users, $processAsync=false)
was ist hier?
Global ilObjChatroomAdminAccess::_checkGoto ($a_target)
: $a_target muss eig. immer ein string sein, da sonst das explode nicht funktioniert, also typehinten (string $a_target) oder?
Global ilObject::putInTree ($a_parent_ref)
role/rbac stuff
Global ilObjMediaObject::lookupUsages ($a_id, $a_include_history=true)
: This should be all in one context -> mob id table
Global ilObjNotificationAdminGUI::saveGeneralSettingsObject ()
dirty...
Global ilObjNotificationAdminGUI::showGeneralSettingsObject ($form=null)
dirty...
Global ilObjQuestionPool::_getSelfAssessmentQuestionTypes ($all_tags=FALSE)
Make it more flexible
Global ilObjTest::getGenericAnswerFeedback ()
Rename $this->answer_feedback to something more meaningful.
Global ilObjTest::setGenericAnswerFeedback ($generic_answer_feedback=0)
Rename "$this->answer_feedback to something more meaningful.
Global ilPrivacySettings::checkExportAccess ($a_ref_id, $a_user_id=0)
rename
Global ilRbacReview::__getParentRoles ($a_path, $a_templates)
refactor rolf => DONE
Global ilRbacReview::__setProtectedStatus ($a_parent_roles, $a_role_hierarchy, $a_ref_id)
refactor rolf => DONE
Global ilRbacReview::__setRoleType ($a_role_list)
refactor rolf => DONE
Global ilRbacReview::__setTemplateFilter ($a_templates)
refactor rolf => DONE
Global ilRbacReview::_getOperationIdByName ($a_operation)
refactor rolf => DONE
Global ilRbacReview::_getOperationIdsByName ($operations)
refactor rolf => DONE
Global ilRbacReview::_getOperationList ($a_type=null)
refactor rolf => DONE
Global ilRbacReview::_groupOperationsByClass ($a_ops_arr)
refactor rolf => DONE
Global ilRbacReview::assignedGlobalRoles ($a_usr_id)
refactor rolf => DONE
Global ilRbacReview::assignedRoles ($a_usr_id)
refactor rolf => DONE
Global ilRbacReview::assignedUsers ($a_rol_id, $a_fields=NULL)
refactor rolf => (check result buffering)
Global ilRbacReview::getActiveOperationsOfRole ($a_ref_id, $a_role_id)
refactor rolf => DONE
Global ilRbacReview::getAllOperationsOfRole ($a_rol_id, $a_parent=0)
refactor rolf => DONE
Global ilRbacReview::getAssignableChildRoles ($a_ref_id)
refactor rolf => Find a better name; reduce sql fields
Global ilRbacReview::getAssignableRoles ($a_templates=false, $a_internal_roles=false, $title_filter='')
refactor rolf => DONE
Global ilRbacReview::getAssignableRolesInSubtree ($ref_id)
refactor rolf => DONE
Global ilRbacReview::getFoldersAssignedToRole ($a_rol_id, $a_assignable=false)
refactor rolf => RENAME (rest done)
Global ilRbacReview::getGlobalAssignableRoles ()
refactor rolf => DONE
Global ilRbacReview::getGlobalRoles ()
refactor rolf => DONE
Global ilRbacReview::getGlobalRolesArray ()
refactor rolf => DONE
Global ilRbacReview::getLocalRoles ($a_ref_id)
refactor rolf => DONE
Global ilRbacReview::getNumberOfAssignedUsers (Array $a_roles)
refactor rolf => DONE
Global ilRbacReview::getObjectOfRole ($a_role_id)
refactor rolf (due to performance reasons the new version does not check for deleted roles only in object reference)
Global ilRbacReview::getObjectReferenceOfRole ($a_role_id)
refactor rolf (no deleted check)
Global ilRbacReview::getObjectsWithStopedInheritance ($a_rol_id, $a_filter=array())
refactor rolf => DONE
Global ilRbacReview::getOperation ($ops_id)
refactor rolf => DONE
Global ilRbacReview::getOperationAssignment ()
refactor rolf => DONE
Global ilRbacReview::getOperations ()
refactor rolf => DONE
Global ilRbacReview::getOperationsByTypeAndClass ($a_type, $a_class)
refactor rolf => DONE
Global ilRbacReview::getOperationsOfRole ($a_rol_id, $a_type, $a_parent=0)
refactor rolf => DONE
Global ilRbacReview::getOperationsOnType ($a_typ_id)
rafactor rolf => DONE
Global ilRbacReview::getOperationsOnTypeString ($a_type)
rafactor rolf => DONE
Global ilRbacReview::getParentRoleIds ($a_endnode_id, $a_templates=false)
refactor rolf => DONE
Global ilRbacReview::getRoleFolderOfRole ($a_role_id)
refactor rolf => RENAME
Global ilRbacReview::getRoleListByObject ($a_ref_id, $a_templates=false)
refactor rolf => DONE
Global ilRbacReview::getRoleMailboxAddress ($a_role_id, $is_localize=true)
refactor rolf
Global ilRbacReview::getRoleOperationsOnObject ($a_role_id, $a_ref_id)
rafactor rolf => DONE
Global ilRbacReview::getRolesByFilter ($a_filter=0, $a_user_id=0, $title_filter='')
refactor rolf => DONE
Global ilRbacReview::getRolesForIDs ($role_ids, $use_templates)
refactor rolf => DONE
Global ilRbacReview::getRolesOfObject ($a_ref_id, $a_assignable_only=FALSE)
refactor rolf => DONE
Global ilRbacReview::getRolesOfRoleFolder ($a_ref_id, $a_nonassignable=true)
refactor rolf => RENAME
Global ilRbacReview::getTypeId ($a_type)
refactor rolf => DONE
Global ilRbacReview::getUserPermissionsOnObject ($a_user_id, $a_ref_id)
refactor rolf => DONE
Global ilRbacReview::hasMultipleAssignments ($a_role_id)
refactor rolf => DONE
Global ilRbacReview::isAssignable ($a_rol_id, $a_ref_id)
refactor rolf (expects object reference id instead of rolf) => DONE
Global ilRbacReview::isAssigned ($a_usr_id, $a_role_id)
refactor rolf => DONE
Global ilRbacReview::isAssignedToAtLeastOneGivenRole ($a_usr_id, $a_role_ids)
refactor rolf => DONE
Global ilRbacReview::isDeleteable ($a_role_id, $a_rolf_id)
refactor rolf => DONE
Global ilRbacReview::isDeleted ($a_node_id)
refactor rolf => DELETE method
Global ilRbacReview::isGlobalRole ($a_role_id)
refactor rolf => DONE
Global ilRbacReview::isProtected ($a_ref_id, $a_role_id)

refactor rolf => search calls ilDB $ilDB

refactor rolf => DONE

Global ilRbacReview::isRoleAssignedToObject ($a_role_id, $a_parent_id)
refactor rolf => DONE (renamed)
Global ilRbacReview::isRoleDeleted ($a_role_id)
refactor rolf => DONE
Global ilRbacReview::isSystemGeneratedRole ($a_role_id)
refactor rolf => DONE
Global ilRbacReview::lookupCreateOperationIds ($a_type_arr)
refactor rolf => DONE
Global ilRbacReview::roleExists ($a_title, $a_id=0)
refactor rolf => DONE
Global ilRbacReview::searchRolesByMailboxAddressList ($a_address_list)
refactor rolf
Class ilRepositoryExplorerGUI
: isClickable, top node id
Global ilSCORM2004NodeGUI::putInTree ($a_parent_id, $a_target)
: move to application class
Global ilSCORM2004NodeGUI::showOrganization ()

: check if we need this

: check if we need this

: check if we need this

: check if we need this

Global ilSCORM2004Sco::getMainObjectiveText ()
: This should be saved in a better way in the future
Global ilSearchSettings::getEnabledLuceneItemFilterDefinitions ()
This has to be defined in module.xml
Global ilSearchSettings::getLuceneItemFilterDefinitions ()
This has to be defined in module.xml
Global ilShopShoppingCartGUI::finishEPay ()

: Check for ePay/PBS error

: Flyt fakturering til callback

Global ilSurveyPageGUI::movePage ()
this needs to be refactored outside of a GUI class, same with ilSurveyEditorGUI->insertQuestions
Global ilTestSessionFactory::getSessionByUserId ($userId)
: Björn, we also need to handle the anonymous user here
Global ilTreeImplementation::getSubTreeIds ($a_node_id)
should be merged with getSubTree()
Global ilUserSearchOptions::_getSearchableFieldsInfo ($a_admin=false)
: implement a more general solution
Global ilWikiUtil::processInternalLinks ($s, $a_wiki_id, $a_mode=IL_WIKI_MODE_REPLACE, $a_collect_non_ex=false, $a_offline=false)
We might want to use trim($tmp, "\n") here.
Global Mail_smtpmx::$debug
as I need unique error-codes to identify what exactly went wrond I did not use intergers as it should be. Instead I added a "namespace" for each code. This avoids conflicts with error codes from different classes. How can I use unique error codes and stay conform with PEAR?
Module Parser

document, briefly.

document, briefly.

Global Parser::replaceInternalLinks ( $s)
We might want to use trim($tmp, "\n") here.
Global Parser::replaceUnusualEscapes ( $url)
This can merge genuinely required bits in the path or query string, breaking legit URLs. A proper fix would treat the various parts of the URL differently; as a workaround, just use the output for statistical records, not for actual linking/output.
Global Sanitizer::escapeClass ( $class)
For extra validity, input should be validated UTF-8.
Global Sanitizer::setupAttributeWhitelist ()
Document it a bit
Global Sanitizer::validateTagAttributes ( $attribs, $element)

Check for legal values where the DTD limits things.

Check for unique id attribute :P

Global Securimage::generateWAV ($letters)
Add ability to merge 2 sound files together to have random background sounds
Global Services_JSON::isError ($data, $code=null)

Ultimately, this should just call PEAR::isError()

Ultimately, this should just call PEAR::isError()

Namespace SOAP
  • add wsdl caching
  • refactor namespace handling ($namespace/$ns)
  • implement IDL type syntax declaration so we can generate WSDL

use Net_Socket; implement some security scheme; implement support for attachments public

Global Title::newFromID ( $id)
This is inefficiently implemented, the page row is requested but not used for anything else
Global Title::setFragment ( $fragment)
clarify whether access is supposed to be public (was marked as "kind of public")
Global Title::userCanEditCssJsSubpage ()
XXX: this might be better using restrictions
Global Title::userCanRead ()
fold these checks into userCan()
Global Whoops::getArray ()
If this gets any more complex than this, have getIterator use this method.
Global Whoops::getPreviousExceptionInspector ()
Clean this up a bit, cache stuff a bit better.
Global XML_Util::attributesToString ($attributes, $sort=true, $multiline=false, $indent=' ', $linebreak="\, $entities=XML_UTIL_ENTITIES_XML)
allow sort also to be an options array
Global XML_Util::collapseEmptyTags ($xml, $mode=XML_UTIL_COLLAPSE_ALL)
PEAR CS - unable to avoid "space after open parens" error in the IF branch
Global XML_Util::isValidName ($string)

support for other charsets

PEAR CS - unable to avoid 85-char limit on second preg_match

Global XML_Util::raiseError ($msg, $code)
PEAR CS - should this use include_once instead?