See humhub/documentation::docs/develop/modules-migrate.md for full version.
At least PHP 8.0 is required with this version.
\humhub\modules\search\*
The existing search module was removed and the related features merged into the 'content', 'user' and 'space' modules.\humhub\modules\user\models\User::getSearchAttributes()
and\humhub\modules\space\models\Space::getSearchAttributes()
- New Meta Search API
- Controller route change:
/search/mentioning
->/user/mentioning
Yii::$app->search()
component is not longer available.- Use
(new ContentSearchService($exampleContent->content))->update();
instead ofYii::$app->search->update($exampleContent);
- Use
- The method
setCellValueByColumnAndRow()
has been replaced withsetCellValue()
andsetValueExplicit()
. - When rendering xlsx generated data cells, use the
setCellValue()
method with the appropriate coordinate obtained usinggetColumnLetter()
.
\humhub\components\Module::getIsActivated()
usegetIsEnabled()
instead (note: this also affects the virtual instance property\humhub\modules\friendship\Module::$isActivated
which should now read$isEnabled
!)\humhub\components\Module::migrate()
usegetMigrationService()->migrateUp(MigrationService::ACTION_MIGRATE)
instead\humhub\libs\BaseSettingsManager::isDatabaseInstalled()
useYii::$app->isDatabaseInstalled()
instead\humhub\models\Setting::isInstalled()
useYii::$app->isInstalled()
instead\humhub\modules\content\components\ContentAddonActiveRecord::canRead()
usecanView()
instead\humhub\modules\content\components\ContentAddonActiveRecord::canWrite()
\humhub\modules\file\models\File::canRead()
usecanView()
instead\humhub\modules\friendship\Module::getIsEnabled()
useisFriendshipEnabled()
instead (note:\humhub\modules\friendship\Module::getIsEnabled()
and the virtual property\humhub\modules\friendship\Module::isEnabled
now return the status of the module - which yields always true for core modules.)\humhub\modules\marketplace\Module::isEnabled()
useisMarketplaceEnabled()
instead\humhub\modules\marketplace\services\ModuleService::activate()
useenable()
instead
humhub\modules\stream\actions\GlobalContentStream
humhub\modules\stream\models\GlobalContentStreamQuery
humhub\modules\stream\models\filters\GlobalContentStreamFilter
- A new protected function
SpreadsheetExport::getColumnLetter()
has been introduced to get the column letter based on the column index.
\humhub\commands\MigrateController
enforces types on fields, method parameters, & return types\humhub\components\behaviors\PolymorphicRelation
enforces types on fields, method parameters, & return types\humhub\components\bootstrap\ModuleAutoLoader::findModules()
is enforcing types on method parameters and return value\humhub\components\bootstrap\ModuleAutoLoader::findModulesByPath()
is enforcing types on method parameters and return value\humhub\components\bootstrap\ModuleAutoLoader::locateModules()
is enforcing return type\humhub\components\ModuleManager::register()
is enforcing types on method parameters\humhub\modules\comment\models\Comment
oncanDelete()
\humhub\modules\content\components\ContentAddonActiveRecord
oncanDelete()
,canWrite()
,canEdit()
\humhub\modules\content\models\Content
oncanEdit()
,canView()
\humhub\modules\file\models\File
oncanRead()
,canDelete()
\humhub\modules\ui\form\widgets\BasePicker
and\humhub\modules\ui\form\widgets\MultiSelect
do now treat and empty array for the fieldBasePicker::$selection
as a valid selection list and will not attempt to get the list from the model in that case.
\humhub\libs\BaseSettingsManager::deleteAll()
no longer uses the$prefix
parameter as a full wildcard, but actually as a prefix. Use$prefix = '%pattern%'
to get the old behaviour. Or use$parameter = '%suffix'
if you want to match against the end of the names.\humhub\libs\BaseSettingsManager::get()
now returns a pure int in case the (trimmed) value can be converted- New
PolymorphicRelation::getObjectModel()
: should replaceget_class()
- Removed deprecated javascript method
setModalLoader()
- Javascript CSP Nonces are now required and enabled by default! See: https://docs.humhub.org/docs/develop/javascript/
- Use the verifying
Content->canArchive()
before run the methodsContent->archive()
andContent->archive()
, because it was removed from within there. - Permission to configure modules is now restricted to users allowed to manage settings (was previously restricted to users allowed to manage modules). More info here.
$guid
properties incontentcontainer
,file
,space
, anduser
models are now enforced to be valid UUIDs (SeeUUID::validate()
) and unique within the table.
\humhub\libs\BaseSettingsManager
and its child classes on fields, method parameters, & return types\humhub\libs\Helpers::checkClassType()
(see #6548)- rather than throwing a
\yii\base\Exception
, it now throws some variations ofyii\base\InvalidArgumentException
with different Exception Codes as documented in the function's documentation:\humhub\exceptions\InvalidArgumentClassException
\humhub\exceptions\InvalidArgumentTypeException
\humhub\exceptions\InvalidArgumentValueException
- the return type has changed from
false
tostring|null
- the second parameter
$type
is now mandatory
- rather than throwing a
Content::addTags()
andContent::addTag()
. UseContentTagService
humhub\libs\UUID::is_valid()
. UseUUID::validate()
humhub\libs\Markdown
humhub\libs\MarkdownPreview
humhub\modules\content\widgets\richtext\AbstractRichText::$markdown
humhub\modules\content\widgets\richtext\AbstractRichText::$maxLength
humhub\modules\content\widgets\richtext\AbstractRichText::$minimal
humhub\modules\content\widgets\richtext\PreviewMarkdown
humhub\modules\content\widgets\richtext\ProsemirrorRichText::parseOutput
humhub\modules\content\widgets\richtext\ProsemirrorRichText::replaceLinkExtension
humhub\modules\content\widgets\richtext\ProsemirrorRichText::scanLinkExtension
humhub\modules\ui\form\widgets\Markdown
humhub\widgets\AjaxButton
humhub\widgets\MarkdownEditor
humhub\widgets\MarkdownField
humhub\widgets\MarkdownFieldModals
humhub\widgets\ModalConfirm