Documentation

Markers

Table of Contents

api/api.php 1
api/v3/Attachment.php 1
api/v3/Case.php 4
api/v3/Contribution.php 3
api/v3/CustomField.php 1
api/v3/Generic/Setvalue.php 1
api/v3/Generic.php 1
api/v3/GroupContact.php 1
api/v3/GroupNesting.php 1
api/v3/Job.php 1
api/v3/MailingAB.php 1
api/v3/MessageTemplate.php 2
api/v3/Participant.php 1
api/v3/PledgePayment.php 2
api/v3/Profile.php 3
api/v3/Relationship.php 1
api/v3/UFJoin.php 1
api/v3/utils.php 7
Civi/Angular/AngularLoader.php 3
Civi/Angular/Manager.php 1
Civi/Angular/Page/Modules.php 1
Civi/API/ExternalBatch.php 1
Civi/API/Kernel.php 1
Civi/API/Provider/MagicFunctionProvider.php 1
Civi/API/Provider/ReflectionProvider.php 3
Civi/API/SelectQuery.php 1
Civi/API/Subscriber/ChainSubscriber.php 1
Civi/API/Subscriber/DynamicFKAuthorization.php 1
Civi/API/Subscriber/PermissionCheck.php 1
Civi/API/Subscriber/TransactionSubscriber.php 1
Civi/Api4/Action/GroupSubscription/GroupSubscriptionProcessor.php 1
Civi/Api4/ExampleData.php 1
Civi/Api4/Generic/AbstractCreateAction.php 1
Civi/Api4/Generic/AbstractSaveAction.php 1
Civi/Api4/Generic/AbstractUpdateAction.php 1
Civi/Api4/Generic/EntityInterface.php 1
Civi/Api4/Generic/Traits/DAOActionTrait.php 1
Civi/Api4/Query/Api4Query.php 1
Civi/Api4/Query/Api4SelectQuery.php 3
Civi/Api4/Service/Links/ActivityLinksProvider.php 1
Civi/Api4/Service/Spec/Provider/FieldDomainIdSpecProvider.php 1
Civi/Api4/Service/Spec/Provider/IsCurrentFieldSpecProvider.php 1
Civi/Api4/Utils/CoreUtil.php 1
Civi/Api4/Utils/FormattingUtil.php 2
Civi/CCase/Analyzer.php 1
Civi/Core/Container.php 4
Civi/Core/SettingsBag.php 1
Civi/Core/SettingsManager.php 2
Civi/Core/SettingsMetadata.php 1
Civi/Core/SqlTriggers.php 1
Civi/Core/Url.php 1
Civi/Crypto/CryptoJwt.php 1
Civi/Report/OutputHandlerBase.php 1
Civi/Report/OutputHandlerInterface.php 1
Civi/Schema/SqlEntityStorage.php 2
Civi/Standalone/WebEntrypoint.php 1
Civi/Test/Api4TestTrait.php 1
Civi/Test/LocalHttpClient.php 2
Civi/Token/TokenCompatSubscriber.php 1
Civi/Token/TokenProcessor.php 2
CRM/ACL/Form/WordPress/Permissions.php 1
CRM/Activity/BAO/Activity.php 3
CRM/Activity/BAO/ICalendar.php 2
CRM/Activity/BAO/Query.php 1
CRM/Activity/Form/Activity.php 3
CRM/Activity/Page/Tab.php 1
CRM/Admin/Form/ContactType.php 1
CRM/Admin/Form/Options.php 1
CRM/Admin/Form/ScheduleReminders.php 1
CRM/Admin/Form/Setting.php 1
CRM/Admin/Page/Extensions.php 2
CRM/Campaign/BAO/Query.php 1
CRM/Campaign/Form/Petition/Signature.php 2
CRM/Campaign/Form/Survey/Questions.php 1
CRM/Case/BAO/Case.php 3
CRM/Case/BAO/Query.php 1
CRM/Case/Form/Activity/OpenCase.php 1
CRM/Case/Form/Task/Email.php 1
CRM/Case/PseudoConstant.php 1
CRM/Case/XMLProcessor/Process.php 1
CRM/Case/XMLProcessor/Report.php 1
CRM/Case/XMLRepository.php 2
CRM/Contact/BAO/Contact/Permission.php 3
CRM/Contact/BAO/Contact/Utils.php 1
CRM/Contact/BAO/Contact.php 3
CRM/Contact/BAO/ContactType.php 4
CRM/Contact/BAO/Group.php 3
CRM/Contact/BAO/GroupContact.php 1
CRM/Contact/BAO/Query.php 5
CRM/Contact/BAO/Relationship.php 2
CRM/Contact/Form/DedupeFind.php 1
CRM/Contact/Form/DedupeRules.php 1
CRM/Contact/Form/Edit/Email.php 1
CRM/Contact/Form/Edit/EmailBlockTrait.php 1
CRM/Contact/Form/Edit/Phone.php 1
CRM/Contact/Form/Search/Advanced.php 3
CRM/Contact/Form/Search/Builder.php 3
CRM/Contact/Form/Search/Criteria.php 2
CRM/Contact/Form/Search.php 1
CRM/Contact/Form/Task/Email.php 1
CRM/Contact/Form/Task/PDF.php 1
CRM/Contact/Import/Parser/Contact.php 3
CRM/Contact/Page/DashBoard.php 1
CRM/Contact/Page/ImageFile.php 1
CRM/Contact/Page/View/Relationship.php 1
CRM/Contact/Page/View/Summary.php 3
CRM/Contact/Page/View/UserDashBoard.php 1
CRM/Contact/Page/View/Vcard.php 2
CRM/Contact/Selector.php 1
CRM/Contribute/BAO/Contribution.php 4
CRM/Contribute/BAO/Query.php 1
CRM/Contribute/Form/AbstractEditPayment.php 1
CRM/Contribute/Form/Contribution/Confirm.php 5
CRM/Contribute/Form/Contribution/Main.php 2
CRM/Contribute/Form/Contribution/ThankYou.php 3
CRM/Contribute/Form/Contribution.php 8
CRM/Contribute/Form/ContributionBase.php 1
CRM/Contribute/Form/ContributionView.php 1
CRM/Contribute/Import/Parser/Contribution.php 1
CRM/Contribute/Page/UserDashboard.php 1
CRM/Core/BAO/ActionSchedule.php 3
CRM/Core/BAO/ConfigSetting.php 1
CRM/Core/BAO/CustomField.php 3
CRM/Core/BAO/CustomGroup.php 6
CRM/Core/BAO/Email.php 1
CRM/Core/BAO/EntityTag.php 2
CRM/Core/BAO/File.php 1
CRM/Core/BAO/MessageTemplate.php 2
CRM/Core/BAO/OptionGroup.php 1
CRM/Core/BAO/OptionValue.php 2
CRM/Core/BAO/PrevNextCache.php 1
CRM/Core/BAO/RecurringEntity.php 1
CRM/Core/BAO/SchemaHandler.php 1
CRM/Core/BAO/Setting.php 2
CRM/Core/BAO/Tag.php 1
CRM/Core/BAO/UFGroup.php 2
CRM/Core/BAO/WordReplacement.php 1
CRM/Core/ClassLoader.php 1
CRM/Core/CodeGen/Config.php 1
CRM/Core/CodeGen/Specification.php 1
CRM/Core/CodeGen/Util/Template.php 1
CRM/Core/CommunityMessages.php 1
CRM/Core/Config.php 2
CRM/Core/DAO/permissions.php 1
CRM/Core/DAO.php 4
CRM/Core/EntityTokens.php 2
CRM/Core/Error/Log.php 1
CRM/Core/Error.php 3
CRM/Core/Form/RecurringEntity.php 1
CRM/Core/Form/Search.php 1
CRM/Core/Form/Task.php 3
CRM/Core/Form.php 9
CRM/Core/I18n/Schema.php 1
CRM/Core/I18n.php 2
CRM/Core/Lock.php 2
CRM/Core/ManagedEntities.php 3
CRM/Core/Menu.php 2
CRM/Core/Page/AJAX.php 1
CRM/Core/Page.php 2
CRM/Core/Payment/AuthorizeNet.php 1
CRM/Core/Payment/BaseIPN.php 3
CRM/Core/Payment/Form.php 2
CRM/Core/Payment/PayPalProIPN.php 1
CRM/Core/Payment/Realex.php 1
CRM/Core/Payment.php 10
CRM/Core/Permission/Backdrop.php 2
CRM/Core/Permission/Joomla.php 1
CRM/Core/Permission.php 2
CRM/Core/QuickForm/Action/Jump.php 1
CRM/Core/QuickForm/Action/Upload.php 1
CRM/Core/Resources/CollectionAdderInterface.php 1
CRM/Core/Resources/CollectionAdderTrait.php 2
CRM/Core/Resources/Common.php 1
CRM/Core/Resources.php 2
CRM/Core/ScheduledJob.php 1
CRM/Custom/Form/Field.php 1
CRM/Custom/Page/Group.php 1
CRM/Cxn/ApiRouter.php 1
CRM/Dedupe/BAO/DedupeRuleGroup.php 1
CRM/Dedupe/Finder.php 3
CRM/Dedupe/Merger.php 4
CRM/Event/ActionMapping.php 1
CRM/Event/BAO/Event.php 3
CRM/Event/Form/EventFees.php 1
CRM/Event/Form/Participant.php 1
CRM/Event/Form/Registration/Confirm.php 2
CRM/Event/Form/Registration/ThankYou.php 1
CRM/Event/Form/Registration.php 2
CRM/Event/Import/Form/MapField.php 1
CRM/Export/Form/Select.php 2
CRM/Export/StateMachine/Standalone.php 2
CRM/Extension/Browser.php 1
CRM/Extension/Manager.php 3
CRM/Extension/Mapper.php 4
CRM/Extension/System.php 4
CRM/Extension/Upgrader/TasksTrait.php 1
CRM/Financial/BAO/EntityFinancialAccount.php 1
CRM/Financial/BAO/FinancialAccount.php 2
CRM/Financial/BAO/FinancialType.php 1
CRM/Financial/BAO/PaymentProcessor.php 1
CRM/Financial/BAO/PaymentProcessorType.php 1
CRM/Financial/Form/Search.php 1
CRM/Import/DataSource.php 1
CRM/Import/Form/Preview.php 1
CRM/Logging/Differ.php 2
CRM/Logging/Schema.php 1
CRM/Mailing/ActionTokens.php 1
CRM/Mailing/BAO/Mailing.php 1
CRM/Mailing/BAO/Query.php 1
CRM/Mailing/Event/BAO/MailingEventBounce.php 1
CRM/Mailing/Event/BAO/MailingEventQueue.php 1
CRM/Mailing/Event/BAO/MailingEventReply.php 1
CRM/Mailing/MailStore/Mbox.php 1
CRM/Mailing/Service/ListUnsubscribe.php 1
CRM/Member/ActionMapping.php 5
CRM/Member/BAO/Membership.php 5
CRM/Member/Form/Membership.php 2
CRM/Member/Form/Task/PDFLetter.php 1
CRM/Member/Import/Form/MapField.php 1
CRM/PCP/BAO/PCP.php 1
CRM/Pledge/BAO/Pledge.php 1
CRM/Pledge/BAO/PledgeBlock.php 1
CRM/Pledge/BAO/Query.php 1
CRM/Pledge/Tokens.php 1
CRM/Price/BAO/LineItem.php 1
CRM/Price/BAO/PriceSet.php 1
CRM/Profile/Page/MultipleRecordFieldsListing.php 2
CRM/Profile/Selector/Listings.php 1
CRM/Queue/Queue/SqlParallel.php 1
CRM/Queue/Service.php 1
CRM/Report/BAO/ReportInstance.php 1
CRM/Report/Form/Activity.php 5
CRM/Report/Form/Contribute/History.php 1
CRM/Report/Form/Contribute/Lybunt.php 2
CRM/Report/Form/Contribute/Repeat.php 2
CRM/Report/Form/Contribute/Summary.php 1
CRM/Report/Form/Instance.php 1
CRM/Report/Form/Membership/Summary.php 2
CRM/Report/Form.php 6
CRM/UF/Form/Field.php 1
CRM/UF/Page/ProfileEditor.php 4
CRM/Upgrade/Headless.php 1
CRM/Upgrade/Incremental/MessageTemplates.php 1
CRM/Upgrade/Page/Upgrade.php 1
CRM/Utils/Cache/APCcache.php 2
CRM/Utils/Cache/APCucache.php 2
CRM/Utils/Cache/ArrayCache.php 1
CRM/Utils/Cache/ArrayDecorator.php 1
CRM/Utils/Cache/CacheWrapper.php 1
CRM/Utils/Cache/FastArrayDecorator.php 1
CRM/Utils/Cache/Memcache.php 1
CRM/Utils/Cache/Memcached.php 1
CRM/Utils/Cache/NoCache.php 2
CRM/Utils/Cache/Redis.php 3
CRM/Utils/Cache/SqlGroup.php 1
CRM/Utils/Cache/Tiered.php 1
CRM/Utils/Cache.php 1
CRM/Utils/Check/Component/Env.php 1
CRM/Utils/Check/Component/Security.php 3
CRM/Utils/File.php 4
CRM/Utils/Mail/EmailProcessor.php 1
CRM/Utils/Mail.php 2
CRM/Utils/Migrate/ExportJSON.php 2
CRM/Utils/Recent.php 4
CRM/Utils/SQL/BaseParamQuery.php 1
CRM/Utils/SQL/Select.php 1
CRM/Utils/String.php 3
CRM/Utils/System/Backdrop.php 3
CRM/Utils/System/Base.php 4
CRM/Utils/System/Drupal.php 2
CRM/Utils/System/Drupal8.php 1
CRM/Utils/System/DrupalBase.php 2
CRM/Utils/System/Joomla.php 2
CRM/Utils/System/Standalone.php 3
CRM/Utils/System/UnitTests.php 1
CRM/Utils/System/WordPress.php 5
CRM/Utils/System.php 4
CRM/Utils/Token.php 2
CRM/Utils/VersionCheck.php 2
ext/afform/core/afform.php 1
ext/afform/core/Civi/Api4/Action/Afform/Submit.php 2
ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php 3
ext/afform/core/CRM/Afform/AfformScanner.php 1
ext/afform/core/CRM/Afform/ArrayHtml.php 1
ext/afform/core/tests/phpunit/Civi/Afform/AfformContactSummaryTest.php 1
ext/authx/Civi/Authx/Authenticator.php 1
ext/authx/Civi/Authx/CheckCredential.php 1
ext/authx/tests/phpunit/Civi/Authx/StatefulFlowsTest.php 1
ext/civi_contribute/Civi/Api4/Service/ContributionTasksProvider.php 1
ext/civi_contribute/Civi/Api4/Service/Spec/Provider/FinancialItemCreationSpecProvider.php 1
ext/eventcart/CRM/Event/Cart/Form/Checkout/ParticipantsAndPrices.php 3
ext/financialacls/financialacls.php 1
ext/flexmailer/src/Listener/DefaultBatcher.php 1
ext/flexmailer/src/Listener/DefaultComposer.php 2
ext/flexmailer/src/Services.php 1
ext/iframe/Civi/Iframe/Cosession.php 3
ext/iframe/Civi/Iframe/Router.php 1
ext/legacycustomsearches/CRM/Core/InnoDBIndexer.php 1
ext/scheduled_communications/Civi/Search/ActionMapping.php 2
ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php 2
ext/search_kit/Civi/Api4/Service/Spec/Provider/SKEntitySpecProvider.php 1
ext/search_kit/Civi/Search/Admin.php 2
ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php 2
extern/widget.php 1
mixin/case-xml@1/example/tests/mixin/CaseTypeTest.php 1
mixin/lib/civimix-schema/src/SchemaHelper.php 1
mixin/lib/civimix-schema/src/SqlGenerator.php 1
mixin/setting-php@1/example/tests/mixin/SettingsTest.php 2
settings/Multisite.setting.php 1
setup/plugins/blocks/opt-in.disabled.php 1
setup/plugins/init/Standalone.civi-setup.php 2
setup/plugins/installFiles/StandaloneCivicrmFilesPath.civi-setup.php 1
setup/plugins/uninstallDatabase/UninstallSchema.civi-setup.php 1
setup/src/Setup/PackageUtil.php 1
setup/src/Setup/SettingsUtil.php 1
setup/src/Setup/Template.php 1
sql/civicrm_data/civicrm_mailing_bounce_type/Host.sqldata.php 1
sql/civicrm_data/civicrm_mailing_bounce_type/Inactive.sqldata.php 1
sql/civicrm_data/civicrm_mailing_bounce_type/Invalid.sqldata.php 1
sql/civicrm_data/civicrm_mailing_bounce_type/Spam.sqldata.php 1
sql/civicrm_data/civicrm_option_group/activity_type.sqldata.php 6
sql/civicrm_data/civicrm_option_group/batch_mode.sqldata.php 1
sql/civicrm_data/civicrm_option_group/encounter_medium.sqldata.php 1
sql/civicrm_data/civicrm_uf_field.sqldata.php 2
sql/GenerateReportData.php 2
tests/phpunit/api/v3/ContributionSoftTest.php 1
tests/phpunit/api/v3/ContributionTest.php 2
tests/phpunit/api/v3/EmailTest.php 2
tests/phpunit/api/v3/GroupContactTest.php 1
tests/phpunit/api/v3/JobProcessMailingTest.php 2
tests/phpunit/api/v3/LineItemTest.php 1
tests/phpunit/api/v3/ParticipantTest.php 2
tests/phpunit/api/v3/SyntaxConformanceTest.php 3
tests/phpunit/api/v3/UFGroupTest.php 1
tests/phpunit/api/v3/UFJoinTest.php 1
tests/phpunit/api/v4/Action/EntityFileTest.php 2
tests/phpunit/api/v4/Action/FkJoinTest.php 1
tests/phpunit/Civi/API/KernelTest.php 1
tests/phpunit/CiviTest/CiviReportTestCase.php 2
tests/phpunit/CiviTest/CiviUnitTestCase.php 3
tests/phpunit/CRM/Activity/ActionMappingTest.php 1
tests/phpunit/CRM/Activity/BAO/ActivityTest.php 1
tests/phpunit/CRM/Contact/BAO/GroupTest.php 1
tests/phpunit/CRM/Contact/Form/Search/BasicTest.php 1
tests/phpunit/CRM/Contact/Page/AjaxTest.php 1
tests/phpunit/CRM/Core/Permission/JoomlaTest.php 2
tests/phpunit/CRM/Dedupe/DedupeFinderTest.php 1
tests/phpunit/CRM/Event/Form/ManageEvent/RegistrationTest.php 1
tests/phpunit/CRM/Export/BAO/ExportTest.php 1
tests/phpunit/CRM/Extension/Manager/ModuleTest.php 1
tests/phpunit/CRM/Extension/Manager/ModuleUpgTest.php 1
tests/phpunit/CRM/Mailing/MailingSystemTestBase.php 2
tests/phpunit/CRM/Mailing/TokensTest.php 2
tests/phpunit/CRM/Queue/RunnerTest.php 1
tests/phpunit/CRM/Report/Form/Contribute/DetailTest.php 3
tests/phpunit/CRM/Report/Form/TestCaseTest.php 3
tests/phpunit/CRM/Utils/versionCheckTest.php 1
tests/phpunit/E2E/Api4/LocaleTest.php 6
tests/phpunit/E2E/Extern/CliRunnerTest.php 1
tools/standalone/router.php 1

api.php

Type Line Description
TODO 172 other output modifiers include contact_type

Attachment.php

Type Line Description
FIXME 314 ACLs: Add any JOIN or WHERE clauses needed to enforce access-controls for the target entity.

Case.php

Type Line Description
FIXME 60 Some of this logic should move to the BAO object?
FIXME 61 Should we check if case with ID actually exists?
FIXME 74 Refactor as separate method to get contactId
FIXME 619 Historically we return a 1-based array. Changing that risks breaking API clients that

Contribution.php

Type Line Description
TODO 480 - most of this should live in the BAO layer but as we want it to be an addition to 4.3 which is already stable we should add it to the api layer & re-factor into the BAO layer later
TODO 610 - most of this should live in the BAO layer but as we want it to be an addition to 4.3 which is already stable we should add it to the api layer & re-factor into the BAO layer later
TODO 610 this needs a big refactor to use the CRM_Contribute_BAO_Contribution::repeatTransaction and Payment.create where currently it uses CRM_Contribute_BAO_Contribution::completeOrder and repeats a lot of work. See comments in https://github.com/civicrm/civicrm-core/pull/23928

CustomField.php

Type Line Description
TODO 220 remove this function - not in use but need to review functionality before removing as it might be useful in wrapper layer

Setvalue.php

Type Line Description
TODO 61 create a utility for this since it's needed in many places

Generic.php

Type Line Description
TODO 515 - if may be we should define a 'resolve' key on the pseudoconstant for when these rules are not fine enough This function is only split out for the purpose of code clarity / comment block documentation

GroupContact.php

Type Line Description
TODO 190 behaviour is highly non-standard - need to figure out how to make this 'behave' & at the very least return IDs & details of the groups created / changed

GroupNesting.php

Type Line Description
TODO 71 Work out the return value.

Job.php

Type Line Description
TODO 264 - is this here by mistake or should it be added to _spec function :id - Integer - greetings option group.

MailingAB.php

Type Line Description
FIXME 310 doesn't make sense to get url_id mailing_id_(a|b) while getting start date in mailing_id_a

MessageTemplate.php

Type Line Description
FIXME 155 Type??
FIXME 186 Type??

Participant.php

Type Line Description
TODO 62 this should be done in the BAO not the api

PledgePayment.php

Type Line Description
TODO 34 possibly add ability to add payment if there are less payments than pledge installments
TODO 34 possibly add ability to recalculate dates if the schedule is changed

Profile.php

Type Line Description
TODO 348 add example
TODO 348 add test cases
TODO 717 this should be handled by the api wrapper using getfields info - need to check how we add a a pseudoconstant to this pseudo api to make that work

Relationship.php

Type Line Description
TODO 79 Result is inconsistent depending on whether contact_id is passed in : - if you pass in contact_id - it just returns all relationships for 'contact_id' - if you don't pass in contact_id then it does a filter on the relationship table (DAO based search)

UFJoin.php

Type Line Description
TODO 42 - suspect module, weight don't need to be required - need to test

utils.php

Type Line Description
TODO 1002 filter so only required fields are queried
TODO 1136 - we are probably skipping handling disabled options as presumably getoptions is not giving us them. This should be non-regressive but might be fixed in future
TODO 1676 - probably the unique field handling & the if exists handling is now done before this function is reached in the wrapper - can reduce this code down to assume we are only checking the passed in field It also checks against the RULE:date function. This is a centralisation of code that was scattered and may not be the best thing to do. There is no code level documentation on the existing functions to work off
TODO 91 create a utility for this since it's needed in many places.
TODO 150 This shouldn't be necessary but this fn sometimes gets called with lowercase entity
FIXME 329 DAO names should follow CamelCase convention
FIXME 363 DAO should be renamed CRM_Badge_DAO_BadgeLayout

AngularLoader.php

Type Line Description
TODO 162 optimization; client-side caching
FIXME 182 The `resetLocationProviderHashPrefix.js` has to stay in sync with `\Civi\Angular\Page\Modules::buildAngularModules()`.
FIXME 203 The following CSS aggregator doesn't currently handle path-adjustments - which can break icons.

Manager.php

Type Line Description
TODO 275 should we pass translation domain based on $module[ext] or $module[tsDomain]?

Modules.php

Type Line Description
FIXME 91 The `resetLocationProviderHashPrefix.js` has to stay in sync with `\Civi\Angular\AngularLoader::load()`.

ExternalBatch.php

Type Line Description
FIXME 56 If we upgrade to newer Symfony\Process and use the newer

Kernel.php

Type Line Description
FIXME 436 dispatch

MagicFunctionProvider.php

Type Line Description
FIXME 197 This has the affect of masking bugs in load order; this is

ReflectionProvider.php

Type Line Description
TODO 28 decide if we really want to override others
TODO 32 decide if we really want to override others
TODO 77 decide if we really want to override others

SelectQuery.php

Type Line Description
FIXME 378 Currently this only works 1 level deep, but tracking through multiple joins would increase complexity

ChainSubscriber.php

Type Line Description
TODO 170 - this might need the camel treatment

DynamicFKAuthorization.php

Type Line Description
TODO 265 no change in field_name?

PermissionCheck.php

Type Line Description
FIXME 70 Generating the exception ourselves allows for detailed error

TransactionSubscriber.php

Type Line Description
FIXME 97 When APIv3 uses better parsing, only one check will be needed.

GroupSubscriptionProcessor.php

Type Line Description
FIXME 123 Implement this in APIv4

ExampleData.php

Type Line Description
FIXME 92 Perhaps use 'edit message templates' or similar?

AbstractCreateAction.php

Type Line Description
FIXME 43 There should be a protocol to report a full list of errors... Perhaps a subclass of CRM_Core_Exception?

AbstractSaveAction.php

Type Line Description
FIXME 81 There should be a protocol to report a full list of errors... Perhaps a subclass of CRM_Core_Exception?

AbstractUpdateAction.php

Type Line Description
FIXME 116 There should be a protocol to report a full list of errors... Perhaps a subclass of CRM_Core_Exception?

EntityInterface.php

Type Line Description
TODO 20 flesh out the interface

DAOActionTrait.php

Type Line Description
FIXME 269 handle arrays for multi-value contact reference fields, etc.

Api4Query.php

Type Line Description
FIXME 373 Use this instead of the above hack once MIN_INSTALL_MYSQL_VER is bumped to 5.7.

Api4SelectQuery.php

Type Line Description
FIXME 341 Currently this only works 1 level deep, but tracking through multiple joins would increase complexity
FIXME 542 This is just guessing. We ought to check the schema for all unique fields and foreign keys.
FIXME 558 This guesswork ought to emit a deprecation notice. SearchKit doesn't use it.

ActivityLinksProvider.php

Type Line Description
TODO 87 Code block was moved from CRM_Activity_Form_ActivityLinks and could use further cleanup

FieldDomainIdSpecProvider.php

Type Line Description
TODO 28 The WordReplacement entity should have domain_id required so this OR condition can be removed

IsCurrentFieldSpecProvider.php

Type Line Description
TODO 70 If we wanted this to not be a hard-coded list, we could always return TRUE here

CoreUtil.php

Type Line Description
TODO 36 It would be nice to just call self::getInfoItem($entityName, 'dao')

FormattingUtil.php

Type Line Description
TODO 301 Teach Civi::entity to return contact-type pseudo-entities
FIXME 530 decouple from v3 API

Analyzer.php

Type Line Description
TODO 109 find batch-oriented API for getting all activities in a case

Container.php

Type Line Description
TODO 18 use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
TODO 117 Move configuration to an external file; define caching structure
FIXME 424 Automatically scan BasicServices for ProviderInterface.
TODO 491 We need a better code-convention for metadata about non-hook events.

SettingsBag.php

Type Line Description
TODO 307 provide equivalent component settings for CIVICRM_UF_DSN

SettingsManager.php

Type Line Description
TODO 317 should we warn if env var is overriding $civicrm_setting setting?
TODO 487 should we complain here if there are inconsistent defines

SettingsMetadata.php

Type Line Description
FIXME 167 This is a workaround for settingsBag::setDb() called by unit tests with settings names that don't exist

SqlTriggers.php

Type Line Description
TODO 84 malformed entries should raise errors or get logged.

Url.php

Type Line Description
TODO 691 decide if the current default is good enough for future

CryptoJwt.php

Type Line Description
TODO 65 Circa mid-2024, make a hard-requirement on firebase/php-jwt v5.5+.

OutputHandlerBase.php

Type Line Description
TODO 142 Couldn't it just always be absolute?

OutputHandlerInterface.php

Type Line Description
TODO 119 Couldn't it just always be absolute?

SqlEntityStorage.php

Type Line Description
TODO 26 Implement writeRecords() method.
TODO 30 Implement deleteRecords() method.

WebEntrypoint.php

Type Line Description
TODO 86 use AppSettings to get the configured core path

Api4TestTrait.php

Type Line Description
TODO 251 Fix these entities and delete this list

LocalHttpClient.php

Type Line Description
FIXME 116 There's probably a way to instrument CRM_Utils_System_UnitTests to do this better.
FIXME 123 There are some things which emit PrematureExitException but don't provide the $response object.

TokenCompatSubscriber.php

Type Line Description
TODO 135 We should reuse the filters from TokenProcessor::filterTokenValue()

TokenProcessor.php

Type Line Description
TODO 491 Move this to StandardFilters
TODO 535 Change the autogenerated stub

Permissions.php

Type Line Description
FIXME 173 // Changed the 'access_civicrm_nav_link' capability in civicrm.php file

Activity.php

Type Line Description
TODO 2675 Document what this is for.
TODO 80 at some stage we'll have to deal
TODO 1904 ideally we should retrieve all fields from xml, in this case since activity processing is done

ICalendar.php

Type Line Description
TODO 108 Is there a better way to do this?
TODO 69 Is there a better way to do this?

Query.php

Type Line Description
TODO 415 ideally this would be a trait included on the activity search & advanced search rather than a static function.

Activity.php

Type Line Description
FIXME 254 Overcomplicated 'context' causes push-pull between various use-cases for the form
FIXME 255 the solution is typically to ditch 'context' and just respond to the data
FIXME 1231 - it's not clear why the if line just above is needed here and why we can't just set this once above and re-use. What is interesting, but can't possibly be the reason, is that the first if block will fail if the label is the string '0', whereas this one won't. But who would have an activity type called '0'?

Tab.php

Type Line Description
FIXME 124 need to fix this conflict

ContactType.php

Type Line Description
TODO 66 Remove when dropping image_URL column

Options.php

Type Line Description
FIXME 322 Each component should define whether adding new activity types is allowed.

ScheduleReminders.php

Type Line Description
TODO 238 This snippet could be an api action e.g. `civicrm_api4('ActionSchedule', 'validate'...)`

Setting.php

Type Line Description
TODO 95 Document what I do.

Extensions.php

Type Line Description
TODO 132 Debate whether to immediately detect changes in underlying source tree
TODO 209 if extbrowser is enabled and extbrowser has newer version than extcontainer,

Query.php

Type Line Description
FIXME 476 Keyed by label because civicrm_activity.result unfortunately stores the option_value.label!

Signature.php

Type Line Description
TODO 572 contactID is never set (commented above)
TODO 614 error case when more than one signature found for this petition and this contact

Questions.php

Type Line Description
FIXME 55 Displays weird "/\ Array" message; doesn't work with tabs

Case.php

Type Line Description
FIXME 67 The EventScanner ought to skip over disabled components when registering HookInterface
FIXME 802 This query could be a lot more efficient if it used COUNT() instead of returning all rows and then counting them with php
FIXME 1896 : do check for permissions.

Query.php

Type Line Description
TODO 649 ideally this would be a trait included on the case search & advanced search rather than a static function.

OpenCase.php

Type Line Description
TODO 101 Not possible yet to set a default case type in the system

Email.php

Type Line Description
TODO 44 - this is not standard behaviour. We should either stop filtering case tokens by type and just remove this function (which would allow domain tokens to show up too) or resolve https://lab.civicrm.org/dev/core/-/issues/2788

PseudoConstant.php

Type Line Description
FIXME 85 deprecated?

Process.php

Type Line Description
FIXME 235 The above api code would be better, but doesn't work

Report.php

Type Line Description
TODO 369 Why is this being escaped at this point in the flow? Should

XMLRepository.php

Type Line Description
TODO 90 In 4.6 or 5.0, remove support for weird machine-names
TODO 124 In 4.6 or 5.0, remove support for loading double-munged file names

Permission.php

Type Line Description
FIXME 163 push this somewhere below, to not give this permission so many rights
FIXME 209 maybe find a better way of keeping track of this. @eileen pointed out
FIXME 435 secondDegRelPermissions should be a setting

Utils.php

Type Line Description
FIXME 958 : apiQuery should handle these clause.

Contact.php

Type Line Description
FIXME 1112 additional support for fatal, bounce etc could be added.
TODO 2577 Fix LineItemEditor extension to not use this function, then enable warning
FIXME 3311 Search builder does not

ContactType.php

Type Line Description
TODO 182 deprecate calling this with $all = TRUE in favour of getAllContactTypes & ideally add getActiveContactTypes & call that from this fully deprecated function.
TODO 606 what does this function do?
TODO 638 what does this function do?
TODO 672 what does this function do?

Group.php

Type Line Description
TODO 207 other BAO functions that use returnProperties (e.g. Query Objects) receive the array flipped & filled with 1s and add in essential fields (e.g. id). This should follow a regular pattern like the others
TODO 565 there seems little reason for the small number of functions that call this to pass in params that then need to be translated in this function since they are coding them when calling
FIXME 702 CRM-4418, now we are handling delete separately

GroupContact.php

Type Line Description
TODO 751 Do any forms still use this? If not, remove this function.

Query.php

Type Line Description
TODO 4703 use metadata rather than convention to do this.
TODO 6937 - so far this applies to a narrow range of pseudocontants. We are adding them carefully with test coverage but aim to extend.
FIXME 1217 hack to fix CRM-1900
FIXME 4518 should we use defaultHierReturnProperties() for the below?
TODO 5099 Why only activities and contributions?. Not likely to change now as we move away from this.

Relationship.php

Type Line Description
TODO 2077 - this could use cached pseudoconstant lookups.
TODO 1362 handle edge-case of updating start_date of an existing relationship

DedupeFind.php

Type Line Description
TODO 116 - could this ever really be NULL - the retrieveValue does not use $abort so maybe.

DedupeRules.php

Type Line Description
FIXME 201 Handle logic to replace is_default column by usage

Email.php

Type Line Description
TODO 56 Refactor on_hold field to select.

EmailBlockTrait.php

Type Line Description
TODO 82 Refactor on_hold field to select.

Phone.php

Type Line Description
TODO 77 set this up as a group, we need a valid phone_type_id if we have a phone number

Advanced.php

Type Line Description
FIXME 111 we should change the use of $name here to keyword
FIXME 249 couldn't figure out a good place to do this,
FIXME 250 so leaving this as a dependency for now

Builder.php

Type Line Description
FIXME 192 no idea at this point what to do with this,
FIXME 193 but definitely needs fixing.
FIXME 600 dirty hack to make the default option show up first. This

Criteria.php

Type Line Description
FIXME 119 This is probably a part of profiles - need to be
FIXME 120 eradicated from here when profiles are reworked.

Search.php

Type Line Description
FIXME 637 we should generalise in a way that components could inject url-filters

Email.php

Type Line Description
TODO 82 move some code from preProcess into here.

PDF.php

Type Line Description
TODO 154 the case handling should be in the case pdf task. It needs fixing to support standalone & some url fixes similar to https://github.com/civicrm/civicrm-core/pull/21688

Contact.php

Type Line Description
TODO 232 - deprecate more aggressively - will involve copying to the import class, adding a deprecation notice here & removing from tests. Takes an associative array and creates a relationship object.
TODO 459 just say no!
TODO 1028 this function needs re-writing & re-merging into the main function. Here be dragons.

DashBoard.php

Type Line Description
FIXME 73 Wrapping each directive in <div id='bootstrap-theme'> produces invalid html (duplicate ids in the dom)

ImageFile.php

Type Line Description
FIXME 37 Optimize performance of image_url query

Relationship.php

Type Line Description
FIXME 273 Not sure what to put as the key.

Summary.php

Type Line Description
FIXME 276 when we sort out TZ isssues with DATETIME/TIMESTAMP, we can skip next query
FIXME 379 not very elegant, probably needs better approach
FIXME 385 hack ajax url.

UserDashBoard.php

Type Line Description
FIXME 130 - this used to share code with the contact summary "Relationships" tab

Vcard.php

Type Line Description
TODO 42 non-US-ASCII support (requires changes to the Contact_Vcard_Build class)
TODO 83 $vcard->setGeo($lat, $lon);

Selector.php

Type Line Description
TODO 1049 - use test cover in CRM_Contact_Form_Search_BasicTest to to remove the extraneous logging that happens in the tested scenario (It does the catch & then write to the log - I was going to fix but got stalled on getting https://github.com/civicrm/civicrm-core/pull/25392 merged - this comment won't conflict with that PR :-)

Contribution.php

Type Line Description
TODO 898 this is intended to be moved to payment BAO class as a protected function on that class. Currently being cleaned up. The addActivityForPayment doesn't really merit it's own function as it makes the code less rather than more readable.
TODO 1482 - this is a confusing function called from one place. It has a test. It would be nice to deprecate it.
TODO 3290 Legacy APIv3 support. Could be moved to Api3 & out of the BAO.
TODO 3305 Legacy APIv3 support. Could be moved to Api3 & out of the BAO.

Query.php

Type Line Description
TODO 1046 better function comment needed - what IS the point of this?

AbstractEditPayment.php

Type Line Description
TODO 595 this function still replicates code in several other places in the code. Also - the call to getProfileDefaults possibly covers the state_province & country already.

Confirm.php

Type Line Description
TODO 661 this was shared on CRM_Contribute_Form_ContributionBase but we are refactoring and simplifying for each step (main/confirm/thankyou)
TODO 986 - this code was previously shared with the backoffice form - some parts of this function may relate to that form, not this one.
TODO 1762 - this is confusing - does isSeparateMembershipPayment need to check both conditions, making this redundant, or are there 2 legit variations here?
FIXME 469 Some of this code is identical to Thankyou.php and should be broken out into a shared function
FIXME 693 If any of the payment processors do NOT support recurring you cannot setup an

Main.php

Type Line Description
TODO 642 this was shared on CRM_Contribute_Form_ContributionBase but we are refactoring and simplifying for each step (main/confirm/thankyou)
FIXME 749 Ideally we should freeze select box if there is only

ThankYou.php

Type Line Description
TODO 312 this was shared on CRM_Contribute_Form_ContributionBase but we are refactoring and simplifying for each step (main/confirm/thankyou)
FIXME 96 Some of this code is identical to Confirm.php and should be broken out into a shared function
FIXME 345 If any of the payment processors do NOT support recurring you cannot setup an

Contribution.php

Type Line Description
TODO 1400 - this form is a copy of the previously shared code on the front end form - not all aspects of the code will be relevant to this form.
TODO 2474 - this needs work - some returned options are invalid or do not create good financial entities. Probably the only reason we don't just return CRM_Contribute_BAO_Contribution_Utils::getPendingCompleteFailedAndCancelledStatuses(); is that it might exclude the current status of the contribution.
TODO 2562 - this function is a long way, non standard of saying $dao = new CRM_Contribute_DAO_ContributionProduct(); $dao->id = $id; $dao->find();
TODO 107 what is it?
TODO 135 explain why we use lineItem & lineItems
FIXME 1072 FOR NEW DATA FLOW http://wiki.civicrm.org/confluence/display/CRM/CiviAccounts+4.3+Data+Flow
FIXME 2203 'payment.create' could send a receipt.
FIXME 2634 Ideally we should freeze select box if there is only

ContributionBase.php

Type Line Description
TODO 658 - removed unneeded code from previously-shared function

ContributionView.php

Type Line Description
TODO 371 - this is a bit too much copy & paste from AbstractEditPayment (justifying on the basis it's 'pretty short' and in a different inheritance tree. I feel like traits are probably the longer term answer).

Contribution.php

Type Line Description
TODO 219 - make this the parent method...

UserDashboard.php

Type Line Description
TODO 125 This should be moved to a hook-like structure on the invoicing class (currently CRM_Utils_Invoicing) with a view to possible removal from core.

ActionSchedule.php

Type Line Description
TODO 39 we could move the mapping classes into their respective
FIXME 391 This can't be right: "If mode is User Preference, send sms unconditionally without checking user preference"!
FIXME 395 This can't be right: "If mode is User Preference, send email unconditionally without checking user preference"!

ConfigSetting.php

Type Line Description
FIXME 233 an ugly hack to fix CRM-4041.

CustomField.php

Type Line Description
TODO 498 Trigger deprecation notice for passing TRUE
TODO 807 I'm not sure if this is supposed to exclude whatever might be
FIXME 1105 Are there any legitimate reasons why $value would be an array?

CustomGroup.php

Type Line Description
FIXME 182 This is needed by the form parsing code below
TODO 2163 Move to civi_contribute extension (example: OptionValue_cg_extends_objects_grant.mgd.php)
TODO 2185 Move to civi_member extension (example: OptionValue_cg_extends_objects_grant.mgd.php)
TODO 2193 Move to civi_event extension (example: OptionValue_cg_extends_objects_grant.mgd.php)
TODO 2208 Move to civi_pledge extension (example: OptionValue_cg_extends_objects_grant.mgd.php)
TODO 2223 Move to civi_campaign extension (example: OptionValue_cg_extends_objects_grant.mgd.php)

Email.php

Type Line Description
FIXME 34 switch CRM_Core_BAO_Block::create to call writeRecord (once Address, IM, Phone create functions go through it)

EntityTag.php

Type Line Description
TODO 445 Do any forms still use this? If not, remove this function.
TODO 450 This will only work when api.entity is "entity_tag". What about others?

File.php

Type Line Description
TODO 805 This seemded like a good idea... piggybacking off the ACL clause of EntityFile

MessageTemplate.php

Type Line Description
TODO 490 move this definition to the metadata.
FIXME 435 $params['contributionId'] is not modeled in the parameter list. When is it supplied? Should probably move to tokenContext.contributionId.

OptionGroup.php

Type Line Description
TODO 51 Check if the differences matter, then deprecate this function and switch to writeRecord.

OptionValue.php

Type Line Description
FIXME 176 The extra CRM_Utils_System::isNull is because the API will pass the string 'null'
FIXME 177 It would help to make this column NOT NULL DEFAULT 0

PrevNextCache.php

Type Line Description
FIXME 360 we need to start using temp tables / queries here instead of arrays.

RecurringEntity.php

Type Line Description
FIXME 418 change to order by dates

SchemaHandler.php

Type Line Description
TODO 366 add support for length & multilingual on combined keys.

Setting.php

Type Line Description
FIXME 181 redundant validation
FIXME 182 this whole thing should just be a loop to call $settings->add() on each domain.

Tag.php

Type Line Description
FIXME 380 Throw exception

UFGroup.php

Type Line Description
TODO 3408 what do I do?
TODO 2748 prefix, suffix and gender translation may no longer be necessary - check inputs

WordReplacement.php

Type Line Description
TODO 278 Would it be worthwhile using memcache here?

ClassLoader.php

Type Line Description
TODO 120 Remove this autoloader. For civicrm-core and civicrm-packages, the composer autoloader works fine.

Config.php

Type Line Description
FIXME 50 !!!!

Specification.php

Type Line Description
TODO 40 peel DAO-specific stuff out of getTables, and spec reading into its own class

Template.php

Type Line Description
FIXME 58 does not beautify. Document.

CommunityMessages.php

Type Line Description
TODO 227 validate $message['markup']

Config.php

Type Line Description
FIXME 315 Setting a session status message here is probably wrong.
TODO 400 Circa v5.60+, consider a more precise cleanup. Discussion: https://github.com/civicrm/civicrm-core/pull/24538

permissions.php

Type Line Description
FIXME 23 Lowercase entity_names are nonstandard but difficult to fix here

DAO.php

Type Line Description
TODO 2156 the goal here is to clean this up so that it works for any entity. Copy Generic already DOES some custom field stuff but it seems to be bypassed & perhaps less good than this (or this just duplicates it...)
FIXME 319 the fields() metadata is not specific enough
TODO 417 see if this works with all pseudoconstants
FIXME 1388 Check extension tables

EntityTokens.php

Type Line Description
TODO 206 this function should look up tokenMetadata that is already loaded.
TODO 404 remove this function & use the metadata that is loaded.

Log.php

Type Line Description
FIXME 56 This flattens a $context a bit prematurely. When integrating

Error.php

Type Line Description
FIXME 166 Polymorphism for the win.
FIXME 341 Why doesn't this call abend()?
FIXME 421 Why doesn't this call abend()?

RecurringEntity.php

Type Line Description
FIXME 167 this is using the following as keys rather than the standard numeric keys returned by CRM_Utils_Date

Search.php

Type Line Description
TODO 539 consolidate with loadFormValues()

Task.php

Type Line Description
TODO 261 At the moment this duplicates a similar function in CRM_Core_DAO because right now only the case component is using this. Since the default $orderBy is '' which is what the original does, others should be easily convertable as NFC.
TODO 261 The passed in variables should be class member variables. Shouldn't need to have passed in vars.
FIXME 193 This is really to handle legacy code that should probably be updated to use $form->_entityIds

Form.php

Type Line Description
TODO 2696 add data attributes so we can deal with multiple instances on a form
TODO 2739 there is considerable code duplication between the contribution forms & event forms. It is apparent that small pieces of duplication are not being refactored into separate functions because their only shared parent is this form. Inserting a class FrontEndForm.php between the contribution & event & this class would allow functions like this and a dozen other small ones to be refactored into a shared parent with the reduction of much code duplication
TODO 1957 refactor switch statement, to separate methods.
TODO 1963 Autodetect ranges
TODO 1983 add range support
TODO 1984 Add date formats
TODO 1985 Add javascript template for dates.
TODO 2013 Add and/or option for fields that store multiple values
FIXME 2088 Instead of adhoc serialization, use a single json_encode()

Schema.php

Type Line Description
FIXME 363 Doing require_once is a must here because a call like CRM_Core_I18n_SchemaStructure_4_1_0 makes

I18n.php

Type Line Description
FIXME 182 How is this not duplicative of the lines above?
FIXME 780 Is there a constant we can reference instead of hardcoding en_US?

Lock.php

Type Line Description
TODO 172 bypass hackyHandleBrokenCode for mysql version 5.7.5+ If a second function in a separate process attempts to grab the lock already in use it should be rejected, but it appears it IS allowed to grab a different lock & unlike in the same process the first lock won't be released. All this means CiviMail locks are first class citizens & any other process gets a 'best effort lock'.
TODO 172 document naming convention for CiviMail locks as this is key to ensuring they work properly.

ManagedEntities.php

Type Line Description
FIXME 306 cascading for payproc types?
FIXME 355 This extra counting should be unnecessary, because getRefCount only returns values if count > 0
FIXME 517 Some well-meaning developer added this a long time ago to support associative arrays

Menu.php

Type Line Description
FIXME 136 Remove the rewrite at this level. Instead, change downstream call_user_func*($value)
FIXME 141 Move the permission parser to its own class (or *maybe* CRM_Core_Permission).

AJAX.php

Type Line Description
FIXME 55 This is done to maintain current wire protocol, but it might be

Page.php

Type Line Description
FIXME 182 - why are we messing with 'snippet'? Why not just pass it directly into $this->_print?
FIXME 187 - why does this number not match the constant?

AuthorizeNet.php

Type Line Description
TODO 186 // AVS, CVV2, CAVV, and other verification results

BaseIPN.php

Type Line Description
TODO 226 This is part of a bigger refactor for dev/core/issues/927 - "duplicate" functionality exists in CRM_Contribute_BAO_Contribution::cancel()
TODO 243 This is part of a bigger refactor for dev/core/issues/927 - "duplicate" functionality exists in CRM_Contribute_BAO_Contribution::cancel()
TODO 363 confirm this function is not being used by any payment processor outside core & remove. Note that the compose message part has been moved to contribution In general LoadObjects is called first to get the objects but the composeMessageArray function now calls it

Form.php

Type Line Description
TODO 133 sometimes things like the country alter the required fields (e.g direct debit fields). We should possibly set these before calling getPaymentFormFields (as we identify them).
TODO 156 sometimes things like the country alter the required fields (e.g postal code). We should possibly set these before calling getPaymentFormFields (as we identify them).

PayPalProIPN.php

Type Line Description
TODO 378 the references to POST throughout this class need to be removed

Realex.php

Type Line Description
FIXME 178 We are using the trxn_result_code column to store all these extra details since there

Payment.php

Type Line Description
TODO 166 Ideally this exception-to-the-rule should be handled outside of this class i.e. this class's getPaymentInstrumentID method should return it from the payment processor and CRM_Core_Payment_Manual could override it to provide 0.
TODO 275 move to factory class \Civi\Payment\System (or similar)
TODO 701 believe this is unused
TODO 710 - use option group + name field (like Omnipay does)
TODO 719 - use option group + labels (like Omnipay does)
TODO 1572 move to paypal class or remove
TODO 1592 move to0 \Civi\Payment\System factory method Page callback for civicrm/payment/ipn
TODO 1631 move to \Civi\Payment\System factory method
TODO 57 create option group - nb omnipay uses a 3rd type - transparent redirect cc
TODO 57 create option group - nb omnipay uses a 3rd type - transparent redirect cc

Backdrop.php

Type Line Description
FIXME 140 !!!!
FIXME 165 !!!!

Joomla.php

Type Line Description
FIXME 95 This needn't be DENY, but we don't currently have any translations.

Permission.php

Type Line Description
TODO 199 Consider moving similar checks for 'ALWAYS_ALLOW' and 'ALWAYS_DENY' from CRM_Core_Permission_{UF}::check() to here..
FIXME 565 this should be integrated into ACLs proper

Jump.php

Type Line Description
FIXME 61 this should be passed through CRM_Utils_System::url()

Upload.php

Type Line Description
TODO 133 document what I do.

CollectionAdderInterface.php

Type Line Description
TODO 29 public function addBundle($bundle);

CollectionAdderTrait.php

Type Line Description
TODO 146 Maybe this should be its own resource type to allow smarter management?
TODO 260 Maybe this should be its own resource type to allow smarter management?

Common.php

Type Line Description
FIXME 183 This is too long; list needs finer-grained segmentation

Resources.php

Type Line Description
TODO 258 consider caching results
TODO 290 consider caching results

ScheduledJob.php

Type Line Description
TODO 115 This seems to only ever be set to an empty string and passed through to job.tpl, where it is used a HTML `class`. Can this be removed?

Field.php

Type Line Description
FIXME 215 Switch addField to use APIv4 so we don't get those legacy options from v3

Group.php

Type Line Description
FIXME 142 This hardcoded array is mostly redundant with CRM_Core_BAO_CustomGroup::getSubTypes

ApiRouter.php

Type Line Description
FIXME 32 Shouldn't the X-Forwarded-Proto check be part of CRM_Utils_System::isSSL()?

DedupeRuleGroup.php

Type Line Description
FIXME 241 we need to be more accurate with affected rows, especially for insert vs duplicate insert.

Finder.php

Type Line Description
FIXME 200 This may no longer be necessary - check inputs
FIXME 257 CRM-5026 should be fixed here; the below clobbers all address info; we should split off address fields and match
FIXME 275 we also need to do some hacking for id and name fields, see CRM-3902’s comments

Merger.php

Type Line Description
TODO 1424 review permissions issue!
TODO 1424 review permissions issue!
TODO 2048 - on the slim chance this is still relevant it should be moved to the form layer. Details about this bug are somewhat obscured by the move from svn but perhaps JIRA can still help.
FIXME 245 this should be generated dynamically from the schema

ActionMapping.php

Type Line Description
FIXME 166 This handles scheduled reminder of type "Event Name" and "Event Type", gives incorrect result on "Event Template".

Event.php

Type Line Description
FIXME 355 in a future release
FIXME 517 : selector fail to search w/ OR operator.
FIXME 1512 in 2.3 using crmIsEmptyArray()

EventFees.php

Type Line Description
TODO 293 resolve relationship between this form & abstractEdit -which should be it's parent.

Participant.php

Type Line Description
TODO 187 add explanatory note about this

Confirm.php

Type Line Description
TODO 148 this is just a step in refactor as payment processor specific code does not belong in generic forms
TODO 998 Reconcile with the contribution method formatParamsForPaymentProcessor rather than adding different logic to check when to keep the billing fields. There might be a difference in handling guest/multiple participants though.

ThankYou.php

Type Line Description
TODO 253 - this should probably be on a trait & made public like similar getValue functions.

Registration.php

Type Line Description
TODO 1595 support AdditionalParticipant forms too.
TODO 1654 - combine this with CRM_Event_BAO_Event::validRegistrationRequest (probably extract relevant values here & call that with them & handle bounces & redirects here -as those belong in the form layer)

MapField.php

Type Line Description
FIXME 87 should use the schema titles, not redeclare them

Select.php

Type Line Description
FIXME 94 This should use a modified version of CRM_Contact_Form_Search::getModeValue but it doesn't have all the contexts
FIXME 95 Or better still, use CRM_Core_DAO_AllCoreTables::getEntityNameForClass($daoName) to get the $entityShortName

Standalone.php

Type Line Description
TODO 44 So far does nothing.
TODO 51 not sure if this is needed

Browser.php

Type Line Description
TODO 149 optimize performance -- we don't need to fetch/cache the entire repo

Manager.php

Type Line Description
TODO 246 to mitigate the risk of crashing during installation, scan
TODO 376 to mitigate the risk of crashing during installation, scan
TODO 455 to mitigate the risk of crashing during installation, scan

Mapper.php

Type Line Description
TODO 529 consider multiple templates, support for one template for now
TODO 555 We should improve this to return more appropriate text. eg. when an extension is not installed it should not say "version xx is installed".
TODO 355 optimization/caching
FIXME 540 How can code so code wrong be so right?

System.php

Type Line Description
TODO 129 CRM_Extension_Container_Basic( /sites/all/modules )
TODO 130 CRM_Extension_Container_Basic( /sites/$domain/modules
TODO 131 CRM_Extension_Container_Basic( /modules )
TODO 132 CRM_Extension_Container_Basic( /vendors )

TasksTrait.php

Type Line Description
FIXME 95 verify that we raise an exception on error

EntityFinancialAccount.php

Type Line Description
FIXME 103 hardcoded list = bad

FinancialAccount.php

Type Line Description
TODO 203 Not sure what the above comment means, and the function uses the PseudoConstant twice. Three times if you count the for loop.
FIXME 74 Setting status messages within a BAO CRUD function is bad bad bad. But this fn is deprecated so who cares.

FinancialType.php

Type Line Description
TODO 399 it is currently not possible to edit disabled types if you have ACLs on. Do ACLs still apply once disabled? That question should be resolved if tackling that gap.

PaymentProcessor.php

Type Line Description
TODO 473 function needs revisiting. The whole 'info / obj' thing is an overload. Recommend creating new functions that are entity specific as there is little shared code specific to obj or info Also, it does not accurately derive the processor - for a completed contribution the best place to look is in the relevant financial_trxn record. For a recurring contribution it is in the contribution_recur table. For a membership the relevant contribution_recur should be derived & then resolved as above. The contribution page is never a reliable place to look as there can be more than one configured. For a pending contribution there is no way to derive the processor - but hey - what processor? it didn't go through! Query for membership might look something like: SELECT fte.payment_processor_id FROM civicrm_membership mem INNER JOIN civicrm_line_item li ON ( mem.id = li.entity_id AND li.entity_table = 'civicrm_membership') INNER JOIN civicrm_contribution con ON ( li.contribution_id = con.id ) LEFT JOIN civicrm_entity_financial_trxn ft ON ft.entity_id = con.id AND ft.entity_table = 'civicrm_contribution' LEFT JOIN civicrm_financial_trxn fte ON fte.id = ft.financial_trxn_id

PaymentProcessorType.php

Type Line Description
FIXME 116 handle is_default

Search.php

Type Line Description
TODO 21 Add comments if possible.

DataSource.php

Type Line Description
TODO 348 change to _status_message

Preview.php

Type Line Description
FIXME 130 This is a hack...

Differ.php

Type Line Description
FIXME 271 these should be populated with pseudo constants as they
FIXME 273 Use *_BAO:buildOptions() method rather than pseudoconstants & fetch programmatically

Schema.php

Type Line Description
FIXME 934 probably should be a bit more thorough…

ActionTokens.php

Type Line Description
TODO 33 Think about supporting dynamic tokens like "{action.subscribe.\d+}"

Mailing.php

Type Line Description
TODO 1171 - this just does an sms has-body-text check now - it would be clearer just to do this in the sms function that calls this & remove it.

Query.php

Type Line Description
TODO 124 ideally this would be a trait included on the mailing search & advanced search rather than a static function.

MailingEventBounce.php

Type Line Description
FIXME 230 translate this

MailingEventQueue.php

Type Line Description
FIXME 314 This (non)escaping is valid as currently used but is not robust to change. This should use CRM_Utils_SQL_Insert...

MailingEventReply.php

Type Line Description
FIXME 145 ugly hack - find the first MIME boundary in

Mbox.php

Type Line Description
FIXME 77 the ftruncate() call does not work for some reason

ListUnsubscribe.php

Type Line Description
FIXME 31 Flexmailer (BasicHeaders) and BAO (getVerpAndUrlsAndHeaders) separately define

ActionMapping.php

Type Line Description
FIXME 104 Numbers should be constants.
FIXME 126 The membership type is never null, so nobody will ever get a
FIXME 133 This makes a lot of sense for renewal reminders, but a user
FIXME 139 Similarly to overrides, excluding contacts who can't edit the
FIXME 144 A lot of undocumented stuff happens with regard to

Membership.php

Type Line Description
TODO 1959 we should get this off the line item
TODO 1959 we should get this off the line item
TODO 2275 document me - I seem a bit out of date....
FIXME 1339 : While updating/ renewing the
FIXME 1926 : need to move this too

Membership.php

Type Line Description
TODO 1615 move this to the WorkFlowMessageTrait.
TODO 1017 set memberships, fixme

PDFLetter.php

Type Line Description
TODO 86 this is horrible copy & paste code because there is so much risk of breakage in fixing the existing pdfLetter classes to be suitably generic

MapField.php

Type Line Description
FIXME 61 should use the schema titles, not redeclare them

PCP.php

Type Line Description
FIXME 45 Why?

Pledge.php

Type Line Description
FIXME 607 Translate

PledgeBlock.php

Type Line Description
FIXME 61 This is assuming checkbox input like ['foo' => 1, 'bar' => 0, 'baz' => 1]. Not API friendly.

Query.php

Type Line Description
TODO 241 most of this could be replaced by using metadata.

Tokens.php

Type Line Description
TODO 42 - add more pseudo-fields like 'paid_amount', 'balance_amount' to v4 api - see the ContributionGetSpecProvider for how.

LineItem.php

Type Line Description
TODO 286 - this parameter is only used for partial payments. It's unclear why a partial payment would change the line item price.

PriceSet.php

Type Line Description
TODO 572 $priceSetID is a pseudoparam for permit override - we should stop passing it where we don't specifically need it & find a better way where we do.

MultipleRecordFieldsListing.php

Type Line Description
TODO 357 Not all widget types and validation rules are supported by crmEditable so some fields will not be in-place editable
FIXME 365 crmEditable currently does not support any validation rules :(

Listings.php

Type Line Description
FIXME 476 : make sure to handle delete separately. CRM-4418

SqlParallel.php

Type Line Description
FIXME 67 - Adding code to allow tests to pass

Service.php

Type Line Description
FIXME 208 when used with class-autoloader, this may be unnecessary

ReportInstance.php

Type Line Description
FIXME 42 This probably belongs in the form layer

Activity.php

Type Line Description
TODO 459 get rid of $recordType param. It's only because 3 separate contact tables are mis-declared as one that we need it.
TODO 577 remove this function & declare the 3 contact tables separately
TODO 589 get rid of $recordType param. It's only because 3 separate contact tables are mis-declared as one that we need it.
TODO 1244 remove this function & declare the 3 contact tables separately (Currently the construct method incorrectly melds them - this is an interim refactor in order to get this under ReportTemplateTests)
TODO 1254 remove this function & declare the 3 contact tables separately (Currently the construct method incorrectly melds them - this is an interim refactor in order to get this under ReportTemplateTests)

History.php

Type Line Description
TODO 849 It later tries to format this as money which then gives a warning. One option is to instead set something like $row[$key]['classes'] and then use that in the template, but I don't think the stock template supports something like that.

Lybunt.php

Type Line Description
TODO 401 must be possible to re-use relative dates stuff.
TODO 415 must be possible to re-use relative dates stuff.

Repeat.php

Type Line Description
FIXME 272 dirty hack for setting columnHeaders
FIXME 845 calculate % using query

Summary.php

Type Line Description
TODO 502 fix function signature to match parent. Remove hacky passing of $entity to acheive unclear results.

Instance.php

Type Line Description
FIXME 113 Historically, CiviReport hard-coded an extra '0' option. This should change to the more general ALWAYS_ALLOW_PERMISSION (but may require testing/migration).

Summary.php

Type Line Description
TODO 180 this looks like it duplicates the parent & could go.
TODO 243 looks like a broken duplicate of the parent.

Form.php

Type Line Description
TODO 1711 call this tab into the report template in the same way as OrderBy etc, ie by adding a description of the tab to $this->tabs, causing the tab to be added in Criteria.tpl.
FIXME 651 Note setting it in $_GET doesn't work, since pager generates link based on QUERY_STRING
FIXME 976 generalizing form field naming conventions would reduce
FIXME 1568 For now lets build all elements as checkboxes.
FIXME 1871 At some point we should move these key-val pairs
FIXME 2208 we not doing escape here. Better solution is to use two

Field.php

Type Line Description
FIXME 682 This may need to also apply to website fields if they are refactored to allow more than one per profile

ProfileEditor.php

Type Line Description
TODO 91 in cases where registerSchemas is called multiple times for same entity, be more efficient
FIXME 119 Depending on context (eg civicrm/profile/create vs search-columns), it may be appropriate to
FIXME 279 type set to "Text"
FIXME 292 what about phone_ext?

Headless.php

Type Line Description
FIXME 66 test

MessageTemplates.php

Type Line Description
TODO 595 - do we still need those earlier per-version runs? e.g. the token replacement functions should still work as-is?

Upgrade.php

Type Line Description
TODO 166 Use structured message store

APCcache.php

Type Line Description
TODO 19 Consider native implementation.
TODO 21 Native implementation

APCucache.php

Type Line Description
TODO 19 Consider native implementation.
TODO 21 Native implementation

ArrayCache.php

Type Line Description
TODO 24 Native implementation

ArrayDecorator.php

Type Line Description
TODO 28 Consider native implementation.

CacheWrapper.php

Type Line Description
FIXME 95 When would name ever be empty?

FastArrayDecorator.php

Type Line Description
TODO 41 Consider native implementation.

Memcache.php

Type Line Description
TODO 19 Consider native implementation.

Memcached.php

Type Line Description
TODO 19 Consider native implementation.

NoCache.php

Type Line Description
TODO 19 Consider native implementation.
TODO 21 Native implementation

Redis.php

Type Line Description
TODO 19 Consider native implementation.
TODO 21 Native implementation
FIXME 159 Ideally, we'd map each prefix to a different 'hash' object in Redis,

SqlGroup.php

Type Line Description
TODO 29 Consider native implementation.

Tiered.php

Type Line Description
TODO 49 Consider native implementation.

Cache.php

Type Line Description
FIXME 171 When would name ever be empty?

Env.php

Type Line Description
TODO 285 Remove this check when MINIMUM_UPGRADABLE_VERSION goes to 4.7.

Security.php

Type Line Description
TODO 25 Use Civi::paths instead?
TODO 111 Test with WordPress, Joomla.
TODO 185 Test with WordPress, Joomla.

File.php

Type Line Description
TODO 734 Automatic file cleanup using, eg, TTL policy
TODO 752 Automatic file cleanup using, eg, TTL policy
FIXME 271 Defaulting to backslash on windows systems can produce
FIXME 553 we should do more checks here -

EmailProcessor.php

Type Line Description
FIXME 241 make sure it works with Reply-Tos containing non-email stuff

Mail.php

Type Line Description
TODO 191 Refactor this quirk-handler as another filter in FilteredPearMailer. But that would merit review of impact on universe.
FIXME 591 : CRM-7894

ExportJSON.php

Type Line Description
TODO 296 support group inheritance Parent child group ids are encoded in a text string
TODO 326 support search builder and custom saved searches

Recent.php

Type Line Description
TODO 146 deprecate & remove "url" in favor of "view_url"
TODO 149 deprecate & remove "id" in favor of "entity_id"
TODO 152 deprecate & remove "type" in favor of "entity_type"
TODO 160 deprecate & remove "isDeleted" in favor of "is_deleted"

BaseParamQuery.php

Type Line Description
TODO 118 ensure all uses of this un-escaped literal are safe

Select.php

Type Line Description
TODO 387 Support more ops like 'INTERSECT' & 'EXCEPT'

String.php

Type Line Description
FIXME 46 nothing below this line makes sense. The above call to self::munge will always
FIXME 53 When would this ever be reachable?
FIXME 218 This is a pretty brutal hack to make utf8 and 8859-1 work.

Backdrop.php

Type Line Description
FIXME 645 This call looks redundant with the earlier call in the same function. Consider removing it.
TODO 873 Find a more solid way to make this test
FIXME 982 !!!!

Base.php

Type Line Description
TODO 355 The return value is inconsistent.
TODO 355 Better to always return, and never print.
TODO 514 Drupal uses the is_public setting - clarify & rationalise. See https://github.com/civicrm/civicrm-drupal/pull/546/files
TODO 45 - we should think about offering up logging mechanisms in a way that is also extensible by extensions

Drupal.php

Type Line Description
FIXME 559 This call looks redundant with the earlier call in the same function. Consider removing it.
TODO 767 Find a more solid way to make this test

Drupal8.php

Type Line Description
FIXME 272 Should not unconditionally return true

DrupalBase.php

Type Line Description
TODO 145 - this only provides a limited amount of flexiblity - it still expects a 'civicrm' folder with a 'drupal' folder and is only flexible as to the name of the civicrm folder.
TODO 28 - we should think about offering up logging mechanisms in a way that is also extensible by extensions

Joomla.php

Type Line Description
TODO 536 return TRUE;
FIXME 1049 (CRM-3587) hack to make standalone profile work

Standalone.php

Type Line Description
TODO 566 implement language negotiation for Standalone?
TODO 49 the following would be be a better check, as sometimes during
TODO 231 Add type hints

UnitTests.php

Type Line Description
FIXME 186 look here a bit closer when testing UFMatch

WordPress.php

Type Line Description
FIXME 163 Why is this global?
FIXME 308 Why bootstrap in url()?
TODO 536 need to change this to make sure we matched only one row
TODO 676 (probably not possible with WPML?)
FIXME 1692 we need to figure out to replace civicrm content on the frontend pages

System.php

Type Line Description
FIXME 789 remove $value = 'null' string test when we upgrade our DAO code to handle passing null in a better way.
FIXME 1268 Shouldn't the X-Forwarded-Proto check be part of CRM_Utils_System::isSSL()?
FIXME 1343 move this to configuration at some stage
FIXME 1354 move this to configuration at some stage

Token.php

Type Line Description
FIXME 801 an ugly hack for CRM-2035, to be dropped once CRM-1799 is implemented
FIXME 1537 Is this ever a multi-dimensional array? Why use retrieveValueRecursive()?

VersionCheck.php

Type Line Description
FIXME 171 This should probably be getName, but it has always returned translated label so we stick with that for now as it would affect stats
FIXME 184 hardcoded list = bad

afform.php

Type Line Description
TODO 321 Allow afforms to declare their own theming requirements

Submit.php

Type Line Description
TODO 482 REPLACE works for creating or updating contacts, but different logic would be needed if
TODO 523 Somehow check if a file has actually been selected for upload

AfformSaveTrait.php

Type Line Description
FIXME 44 validate all field data.
FIXME 52 check for writability then success. Report errors.
FIXME 65 check for writability then success. Report errors.

AfformScanner.php

Type Line Description
TODO 278 Allow a setting override.

ArrayHtml.php

Type Line Description
FIXME 209 Validate expected number of child nodes

AfformContactSummaryTest.php

Type Line Description
TODO 149 Be more flexible

Authenticator.php

Type Line Description
TODO 220 Consider splitting these checks into late-priority listeners.

CheckCredential.php

Type Line Description
TODO 111 Is responding that its expired a security risk?

StatefulFlowsTest.php

Type Line Description
FIXME 105 Assert that re-using cookies yields correct result.

ContributionTasksProvider.php

Type Line Description
FIXME 33 CRM_Contribute_Task::tasks() should respect `$this->checkPermissions`

FinancialItemCreationSpecProvider.php

Type Line Description
TODO 27 These fields ought to be required in the schema.

ParticipantsAndPrices.php

Type Line Description
TODO 197 $priceSetID is a pseudoparam for permit override - we should stop passing it where we don't specifically need it & find a better way where we do.
TODO 154 what to do when profile responses differ for the same contact?
TODO 317 security check that participant ids are already in this cart

financialacls.php

Type Line Description
FIXME 413 Translated labels as names === very bad. See https://lab.civicrm.org/dev/core/-/issues/5419

DefaultBatcher.php

Type Line Description
FIXME 63 To support SMS, the address should be $eq->phone instead of $eq->email

DefaultComposer.php

Type Line Description
FIXME 34 This probably doesn't belong here...
FIXME 106 Use template_type, template_options

Services.php

Type Line Description
FIXME 82 stay in sync with upstream perms

Cosession.php

Type Line Description
TODO 60 Accept _cosession if one of these criteria are met:
TODO 71 In non-debug mode, perhaps we catch JWT exceptions, log them, and redirect/restart - like when you have invalid qfKey.
TODO 190 we should probably clean-up the CMS session to avoid leaks.

Router.php

Type Line Description
FIXME 105 ^^^ should be handled by civicrm_html_head(), but the arg(0) guard misfires.

InnoDBIndexer.php

Type Line Description
TODO 143 determine if $idxFields must be exact match or merely a subset

ActionMapping.php

Type Line Description
FIXME 69 Matching `api_params LIKE %contact%` is a cheap trick with no real understanding of the appropriateness of the SavedSearch for use as a Scheduled Reminder.
TODO 85 It would be nice to return only fields with an FK to contact.id

AbstractRunAction.php

Type Line Description
TODO 1136 Load options if pseudoconstant is dynamic (`ControlField` present)
TODO 1691 This just uses the first fieldset, but there could be multiple. Potentially could use filters to match it.

SKEntitySpecProvider.php

Type Line Description
TODO 38 This could probably be handled in SkEntityMetaProvider

Admin.php

Type Line Description
FIXME 286 At this point DAO entities have enough metadata that using getReferenceColumns()
FIXME 403 See comment above: this loop should be able to handle every entity.

SearchRunTest.php

Type Line Description
TODO 388 This test may need to be updated as core tasks evolve
FIXME 2742 Use api4 when available

widget.php

Type Line Description
FIXME 42 Not using CRM_Core_Page_AJAX::setJsHeaders because CMS is not bootstrapped

CaseTypeTest.php

Type Line Description
FIXME 27 This flush should be unnecessary. The fact that we need it indicates a bug during activation.

SchemaHelper.php

Type Line Description
FIXME 50 You can add more utility methods here

SqlGenerator.php

Type Line Description
FIXME 163 For legacy support this doesn't force boolean fields to be NOT NULL... but it really should.

SettingsTest.php

Type Line Description
FIXME 50 // $value = cv('ev \'return Civi::settings()->get("shimmy_example");\'', 'raw');
FIXME 51 // $this->assertEquals('null', trim($value));

Multisite.setting.php

Type Line Description
FIXME 23 This is arguably the worst name for a setting ever

opt-in.disabled.php

Type Line Description
FIXME 21 'is_active' => TRUE,

Standalone.civi-setup.php

Type Line Description
TODO 79 // a) this won't work if we are installing in a subdirectory of the webroot
TODO 86 at the moment the installer will only work when app root = web root

StandaloneCivicrmFilesPath.civi-setup.php

Type Line Description
TODO 19 Maybe they should? It would probably be good for all UF's to follow same codepaths for setting up the folder.

UninstallSchema.civi-setup.php

Type Line Description
TODO 32 Perhaps we should also remove stored-procedures/functions?

PackageUtil.php

Type Line Description
TODO 18 Trace the code-path and allow reading $model for packages dir?

SettingsUtil.php

Type Line Description
FIXME 57 $m->defaultSettings, $m->components, $m->extensions, $m->callbacks

Template.php

Type Line Description
FIXME 71 does not beautify. Document.

Host.sqldata.php

Type Line Description
FIXME 4 Typo

Inactive.sqldata.php

Type Line Description
FIXME 12 In the old SQL, the "\" in "\w" didn't get through. We're probably loading the wrong data.

Invalid.sqldata.php

Type Line Description
FIXME 46 In the old SQL, the "\" in "\w" didn't get through. We're probably loading the wrong data.

Spam.sqldata.php

Type Line Description
FIXME 12 In the old SQL, the "\" in "\w" didn't get through. We're probably loading the wrong data.

activity_type.sqldata.php

Type Line Description
FIXME 259 Weird weight
FIXME 270 Weird weight
FIXME 280 Weird weight
FIXME 290 Weird weight
FIXME 300 Weird weight
FIXME 310 Weird weight

batch_mode.sqldata.php

Type Line Description
TODO 8 Shouldn't we have ts() for these descriptions?

encounter_medium.sqldata.php

Type Line Description
FIXME 6 Shouldn't these be translated?

civicrm_uf_field.sqldata.php

Type Line Description
FIXME 307 Space
FIXME 318 Space

GenerateReportData.php

Type Line Description
FIXME 636 FOR NEW LOCATION BLOCK STRUCTURE
FIXME 648 FOR NEW LOCATION BLOCK STRUCTURE

ContributionSoftTest.php

Type Line Description
TODO 76 - this might be better broken down into more smaller tests

ContributionTest.php

Type Line Description
TODO 4000 break this down into sensible functions - most calls to it only use a few lines out of the big if.
TODO 3224 the latest payment transaction date (and maybe other details,

EmailTest.php

Type Line Description
TODO 43 email_type_id
TODO 174 email_type_id

GroupContactTest.php

Type Line Description
TODO 50 set up calls function that doesn't work @ the moment

JobProcessMailingTest.php

Type Line Description
FIXME 333 lockHold is unrealistic/unrepresentative. In reality, this situation fails because
FIXME 356 lockHold is unrealistic/unrepresentative. In reality, this situation fails because

LineItemTest.php

Type Line Description
TODO 89 move to a trait, share.

ParticipantTest.php

Type Line Description
TODO 507 These assertions depend on the order of the line items, which is
TODO 537 These assertions depend on the order of the line items, which is

SyntaxConformanceTest.php

Type Line Description
TODO 441 add metadata for ALL these entities
FIXME 936 // the below function returns different values and hence an early return
FIXME 1471 Why doesn't creating a campaign clear caches?

UFGroupTest.php

Type Line Description
TODO 19 Split UFGroup and UFJoin tests

UFJoinTest.php

Type Line Description
TODO 19 Split UFGroup and UFJoin tests

EntityFileTest.php

Type Line Description
FIXME 51 Use api4 when available
FIXME 106 Use api4 when available

FkJoinTest.php

Type Line Description
FIXME 487 Currently returning 2

KernelTest.php

Type Line Description
TODO 98 testAuthorizeException, testPrepareException, testRespondException

CiviReportTestCase.php

Type Line Description
TODO 18 Figure out how to automatically drop all temporary tables.
TODO 117 provide better debug output

CiviUnitTestCase.php

Type Line Description
TODO 2200 this isn't a great place to put it - but really it belongs on a class that extends this parent class & we don't have a structure for that yet There is another function to this effect on the PaypalPro test but it appears to be silently failing & the best protection against that is the functions this class affords
FIXME 245 loosen coupling
FIXME 352 look at it closer in second stage

ActionMappingTest.php

Type Line Description
FIXME 58 CRM-19415: This test should pass...

ActivityTest.php

Type Line Description
TODO 1213 Case 4 about checking the $formAddress on basis of logged contact ID respectively needs,

GroupTest.php

Type Line Description
TODO 250 - for some reason the data was getting truncated from the group table using dataprovider - would be preferable to get that working //@notdataProvider dataProviderSavedSearch //@notparam integer $groupID To add to this dataset do SET @groupID = x; SELECT mapping_id FROM civicrm_group g LEFT JOIN civicrm_saved_search s ON saved_search_id = s.id WHERE g.id = @groupID INTO @mappingID; SELECT * FROM civicrm_mapping WHERE id = @mappingID; SELECT * FROM civicrm_mapping_field WHERE mapping_id = @mappingID; SELECT * FROM civicrm_saved_search WHERE mapping_id = @mappingID; SELECT g.* FROM civicrm_saved_search s LEFT JOIN civicrm_group g ON g.saved_search_id = s.id WHERE mapping_id = @mappingID; Copy the output to a single sql file and place in the SavedSearchDataSets folder - use the group number as the prefix. Try to keep as much of the real world irregular glory as you can! Don't change the table ids to be number 1 as this can hide errors

BasicTest.php

Type Line Description
TODO 28 - this test passes but it tests a scenario we would ideally deprecate - ie coming up with a search that won't work, trying it, logging an error, and then trying something that does work.

AjaxTest.php

Type Line Description
TODO 264 EntityTag.create API is not working

JoomlaTest.php

Type Line Description
TODO 17 $cases[] = array("cms:universal name", "local name");
TODO 18 $cases[] = array("cms:universal name2", "local name2");

DedupeFinderTest.php

Type Line Description
FIXME 292 move create params to separate function

RegistrationTest.php

Type Line Description
TODO 11 More fields are required for formRule to return no errors

ExportTest.php

Type Line Description
TODO 1925 - still being built up.

ModuleTest.php

Type Line Description
FIXME 250 $activeModules = CRM_Core_PseudoConstant::getModuleExtensions(TRUE);

ModuleUpgTest.php

Type Line Description
FIXME 250 $activeModules = CRM_Core_PseudoConstant::getModuleExtensions(TRUE);

MailingSystemTestBase.php

Type Line Description
FIXME 222 CiviMail puts double " after hyperlink!
FIXME 316 Legacy tracker adds extra quote after URL

TokensTest.php

Type Line Description
TODO 25 Think about supporting dynamic tokens like "{action.subscribe.\d+}"
FIXME 146 For compatibility with

RunnerTest.php

Type Line Description
FIXME 158 useless return

DetailTest.php

Type Line Description
FIXME 51 add filters
TODO 169 We're getting a "DB Error: already exists" when inserting a line
TODO 289 We're getting a "DB Error: already exists" when inserting a line

TestCaseTest.php

Type Line Description
FIXME 59 add filters
FIXME 96 add filters
FIXME 117 add filters

versionCheckTest.php

Type Line Description
TODO 241 Also test for enabled extensions.

LocaleTest.php

Type Line Description
FIXME 19 In buildkit.git:app/config/backdrop-*, it downloads the *.po files, but it lacks drush support for activating them.
FIXME 31 In buildkit.git:app/config/drupal8-*, it downloads the *.po files, but it lacks drush support for activating them.
FIXME 36 In CRM_Utils_System_Joomla, the setUFLocale and getUFLocale are not fully implemented.
FIXME 37 In buildkit.git:app/config/joomla-*, it does not enable any languages.
FIXME 42 In CRM_Utils_System_WordPress, the setUFLocale and getUFLocale are not fully implemented.
FIXME 43 In buildkit.git:app/config/wp-*, it does not enable any languages.

CliRunnerTest.php

Type Line Description
TODO 106 Drupal8 w/drush (doesn't use civicrm_initialize?)

router.php

Type Line Description
TODO 76 Consider allowing CRM_Core_Invoke to handle any route. May affect UF interop.

Search results