-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Hi.
No slug is generated for components
.
I have analyzed the 'setting-service.js' file. I developed a possible fix that is working for me (see below).
With that fix, to produce the slug for the fields in a component
, you have to set the plugin settings file field contentTypes
using the value of the collectionName
field used in the component configuration file.
Strapi: 4.11.4
Strapi Plugin Slugify: 2.3.3
MySQL: 8.0.30 (MySQL Community Server - GPL)
Here is a possible fix to generate a slug for components
by changing the build
method:
build(settings) {
const buildModel = (contentType, uid, nameAttr,displayName) => {
const model = settings.contentTypes[contentType[nameAttr]];
if (!model) {
return;
}
// ensure provided fields are present on the model
const hasField = isValidModelField(contentType, model.field);
if (!hasField) {
strapi.log.warn(
`[slugify] skipping ${contentType.info[displayName]} registration, invalid field provided.`
);
return;
}
let references = _.isArray(model.references) ? model.references : [model.references];
const hasReferences = references.every((referenceField) =>
isValidModelField(contentType, referenceField)
);
if (!hasReferences) {
strapi.log.warn(
`[slugify] skipping ${contentType.info[displayName]} registration, invalid reference field provided.`
);
return;
}
const data = {
uid,
...model,
contentType,
references,
};
settings.modelsByUID[uid] = data;
settings.modelsByName[contentType[nameAttr]] = data;
};
// build models
settings.modelsByUID = {};
settings.modelsByName = {};
_.each(strapi.contentTypes, (contentType, uid) => buildModel(contentType, uid, 'modelName', 'singularName'));
_.each(strapi.components, (contentType, uid) => buildModel(contentType, uid, 'collectionName', 'displayName'));
_.omit(settings, ['contentTypes']);
return settings;
}
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request