strap about page custom query

This commit is contained in:
Schneider Roland
2025-01-12 21:56:22 +01:00
parent 574d623746
commit 741dd19588
36 changed files with 878 additions and 89 deletions

View File

@@ -0,0 +1,42 @@
{
populate: {
header: {
fields: ['header1','description']
},
ourServices: {
fields: ['*']
},
aboutUs: {
fields: ['*']
},
ourSpecialities: {
fields: ['*'] ,
populate: {
specialityLeft1: {
fields: ['*'] ,
},
specialityLeft2: {
fields: ['*'] ,
},
specialityLeft3: {
fields: ['*'] ,
},
specialityLeft4: {
fields: ['*'] ,
},
specialityRight1: {
fields: ['*'] ,
},
specialityRight2: {
fields: ['*'] ,
},
specialityRight3: {
fields: ['*'] ,
},
specialityRight4: {
fields: ['*'] ,
},
}
}
},
}

View File

@@ -0,0 +1 @@
/api/about?populate[header][fields][0]=header1&populate[header][fields][1]=description&populate[ourServices][fields][0]=*&populate[aboutUs][fields][0]=*&populate[ourSpecialities][fields][0]=*&populate[ourSpecialities][populate][specialityLeft1][fields][0]=*&populate[ourSpecialities][populate][specialityLeft2][fields][0]=*&populate[ourSpecialities][populate][specialityLeft3][fields][0]=*&populate[ourSpecialities][populate][specialityLeft4][fields][0]=*&populate[ourSpecialities][populate][specialityRight1][fields][0]=*&populate[ourSpecialities][populate][specialityRight2][fields][0]=*&populate[ourSpecialities][populate][specialityRight3][fields][0]=*&populate[ourSpecialities][populate][specialityRight4][fields][0]=*

View File

@@ -6,4 +6,9 @@ export default () => ({
logLevel: 2
}
},
'strapi-plugin-populate-deep': {
config: {
defaultDepth: 3, // Default is 5
}
},
});

View File

@@ -1,34 +1,55 @@
// Interface automatically generated by schemas-to-ts
import { Media } from '../components/shared/Media';
import { Media_Plain } from '../components/shared/Media';
import { AdminPanelRelationPropertyModification } from '../common/AdminPanelRelationPropertyModification';
import { HeaderB } from '../components/yoga-site/HeaderB';
import { OurServicesComponent } from '../components/yoga-site/OurServicesComponent';
import { AboutUs } from '../components/yoga-site/AboutUs';
import { OurSpecialitiesComponent } from '../components/yoga-site/OurSpecialitiesComponent';
import { HeaderB_Plain } from '../components/yoga-site/HeaderB';
import { OurServicesComponent_Plain } from '../components/yoga-site/OurServicesComponent';
import { AboutUs_Plain } from '../components/yoga-site/AboutUs';
import { OurSpecialitiesComponent_Plain } from '../components/yoga-site/OurSpecialitiesComponent';
import { HeaderB_NoRelations } from '../components/yoga-site/HeaderB';
import { OurServicesComponent_NoRelations } from '../components/yoga-site/OurServicesComponent';
import { AboutUs_NoRelations } from '../components/yoga-site/AboutUs';
import { OurSpecialitiesComponent_NoRelations } from '../components/yoga-site/OurSpecialitiesComponent';
export interface About {
id: number;
attributes: {
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
description?: any;
image?: { data: Media };
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB;
ourServices: OurServicesComponent;
aboutUs: AboutUs;
ourSpecialities?: OurSpecialitiesComponent;
locale: string;
localizations?: { data: About[] };
};
}
export interface About_Plain {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
description?: any;
image?: Media_Plain;
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB_Plain;
ourServices: OurServicesComponent_Plain;
aboutUs: AboutUs_Plain;
ourSpecialities?: OurSpecialitiesComponent_Plain;
locale: string;
localizations?: About_Plain[];
}
export interface About_NoRelations {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
description?: any;
image?: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB_NoRelations;
ourServices: OurServicesComponent_NoRelations;
aboutUs: AboutUs_NoRelations;
ourSpecialities?: OurSpecialitiesComponent_NoRelations;
locale: string;
localizations?: About[];
}
export interface About_AdminPanelLifeCycle {
id: number;
createdAt: Date; updatedAt: Date; publishedAt?: Date; title?: string;
description?: any;
image?: AdminPanelRelationPropertyModification<Media_Plain>;
createdAt: Date; updatedAt: Date; publishedAt?: Date; header?: HeaderB_Plain;
ourServices: OurServicesComponent_Plain;
aboutUs: AboutUs_Plain;
ourSpecialities?: OurSpecialitiesComponent_Plain;
locale: string;
localizations?: About[];
}

View File

@@ -0,0 +1,16 @@
// Interface automatically generated by schemas-to-ts
export interface TitleDescription {
title?: string;
description?: string;
}
export interface TitleDescription_Plain {
title?: string;
description?: string;
}
export interface TitleDescription_NoRelations {
title?: string;
description?: string;
}

View File

@@ -0,0 +1,28 @@
// Interface automatically generated by schemas-to-ts
export interface AboutUs {
title?: string;
header?: string;
description?: string;
content?: string;
buttonLabel?: string;
buttonLink?: string;
}
export interface AboutUs_Plain {
title?: string;
header?: string;
description?: string;
content?: string;
buttonLabel?: string;
buttonLink?: string;
}
export interface AboutUs_NoRelations {
title?: string;
header?: string;
description?: string;
content?: string;
buttonLabel?: string;
buttonLink?: string;
}

View File

@@ -0,0 +1,19 @@
// Interface automatically generated by schemas-to-ts
export interface HeaderB {
header1?: string;
header2?: string;
description?: string;
}
export interface HeaderB_Plain {
header1?: string;
header2?: string;
description?: string;
}
export interface HeaderB_NoRelations {
header1?: string;
header2?: string;
description?: string;
}

View File

@@ -0,0 +1,19 @@
// Interface automatically generated by schemas-to-ts
export interface OurServicesComponent {
title?: string;
header?: string;
description?: string;
}
export interface OurServicesComponent_Plain {
title?: string;
header?: string;
description?: string;
}
export interface OurServicesComponent_NoRelations {
title?: string;
header?: string;
description?: string;
}

View File

@@ -0,0 +1,47 @@
// Interface automatically generated by schemas-to-ts
import { TitleDescription } from '../shared/TitleDescription';
import { TitleDescription_Plain } from '../shared/TitleDescription';
import { TitleDescription_NoRelations } from '../shared/TitleDescription';
export interface OurSpecialitiesComponent {
title?: string;
header?: string;
description?: string;
specialityLeft1?: TitleDescription;
specialityLeft2?: TitleDescription;
specialityLeft3?: TitleDescription;
specialityLeft4?: TitleDescription;
specialityRight1?: TitleDescription;
specialityRight2?: TitleDescription;
specialityRight3?: TitleDescription;
specialityRight4?: TitleDescription;
}
export interface OurSpecialitiesComponent_Plain {
title?: string;
header?: string;
description?: string;
specialityLeft1?: TitleDescription_Plain;
specialityLeft2?: TitleDescription_Plain;
specialityLeft3?: TitleDescription_Plain;
specialityLeft4?: TitleDescription_Plain;
specialityRight1?: TitleDescription_Plain;
specialityRight2?: TitleDescription_Plain;
specialityRight3?: TitleDescription_Plain;
specialityRight4?: TitleDescription_Plain;
}
export interface OurSpecialitiesComponent_NoRelations {
title?: string;
header?: string;
description?: string;
specialityLeft1?: TitleDescription_NoRelations;
specialityLeft2?: TitleDescription_NoRelations;
specialityLeft3?: TitleDescription_NoRelations;
specialityLeft4?: TitleDescription_NoRelations;
specialityRight1?: TitleDescription_NoRelations;
specialityRight2?: TitleDescription_NoRelations;
specialityRight3?: TitleDescription_NoRelations;
specialityRight4?: TitleDescription_NoRelations;
}

View File

@@ -10,24 +10,53 @@
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"pluginOptions": {
"i18n": {
"localized": true
}
},
"attributes": {
"title": {
"type": "string"
"header": {
"type": "component",
"repeatable": false,
"component": "yoga-site.header-b",
"pluginOptions": {
"i18n": {
"localized": true
}
}
},
"description": {
"type": "blocks"
"ourServices": {
"type": "component",
"repeatable": false,
"pluginOptions": {
"i18n": {
"localized": true
}
},
"component": "yoga-site.our-services-component",
"required": true
},
"image": {
"type": "media",
"multiple": false,
"required": false,
"allowedTypes": [
"images",
"files",
"videos",
"audios"
]
"aboutUs": {
"type": "component",
"repeatable": false,
"pluginOptions": {
"i18n": {
"localized": true
}
},
"component": "yoga-site.about-us",
"required": true
},
"ourSpecialities": {
"type": "component",
"repeatable": false,
"pluginOptions": {
"i18n": {
"localized": true
}
},
"component": "yoga-site.our-specialities-component"
}
}
}

View File

@@ -0,0 +1,15 @@
{
"collectionName": "components_shared_title_descriptions",
"info": {
"displayName": "TitleDescription"
},
"options": {},
"attributes": {
"title": {
"type": "string"
},
"description": {
"type": "text"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"collectionName": "components_yoga_site_aboutuses",
"info": {
"displayName": "aboutUs"
},
"options": {},
"attributes": {
"title": {
"type": "string"
},
"header": {
"type": "string"
},
"description": {
"type": "text"
},
"content": {
"type": "text"
},
"buttonLabel": {
"type": "string"
},
"buttonLink": {
"type": "string"
}
}
}

View File

@@ -0,0 +1,19 @@
{
"collectionName": "components_yoga_site_header_bs",
"info": {
"displayName": "HeaderB",
"description": ""
},
"options": {},
"attributes": {
"header1": {
"type": "string"
},
"header2": {
"type": "string"
},
"description": {
"type": "text"
}
}
}

View File

@@ -0,0 +1,19 @@
{
"collectionName": "components_yoga_site_our_services_components",
"info": {
"displayName": "OurServicesComponent",
"description": ""
},
"options": {},
"attributes": {
"title": {
"type": "string"
},
"header": {
"type": "string"
},
"description": {
"type": "text"
}
}
}

View File

@@ -0,0 +1,59 @@
{
"collectionName": "components_yoga_site_our_specialities_components",
"info": {
"displayName": "OurSpecialitiesComponent",
"description": ""
},
"options": {},
"attributes": {
"title": {
"type": "string"
},
"header": {
"type": "string"
},
"description": {
"type": "text"
},
"specialityLeft1": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
},
"specialityLeft2": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
},
"specialityLeft3": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
},
"specialityLeft4": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
},
"specialityRight1": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
},
"specialityRight2": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
},
"specialityRight3": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
},
"specialityRight4": {
"type": "component",
"repeatable": false,
"component": "shared.title-description"
}
}
}

View File

@@ -73,6 +73,104 @@ export interface SharedSlider extends Struct.ComponentSchema {
};
}
export interface SharedTitleDescription extends Struct.ComponentSchema {
collectionName: 'components_shared_title_descriptions';
info: {
displayName: 'TitleDescription';
};
attributes: {
description: Schema.Attribute.Text;
title: Schema.Attribute.String;
};
}
export interface YogaSiteAboutUs extends Struct.ComponentSchema {
collectionName: 'components_yoga_site_aboutuses';
info: {
displayName: 'aboutUs';
};
attributes: {
buttonLabel: Schema.Attribute.String;
buttonLink: Schema.Attribute.String;
content: Schema.Attribute.Text;
description: Schema.Attribute.Text;
header: Schema.Attribute.String;
title: Schema.Attribute.String;
};
}
export interface YogaSiteHeaderB extends Struct.ComponentSchema {
collectionName: 'components_yoga_site_header_bs';
info: {
description: '';
displayName: 'HeaderB';
};
attributes: {
description: Schema.Attribute.Text;
header1: Schema.Attribute.String;
header2: Schema.Attribute.String;
};
}
export interface YogaSiteOurServicesComponent extends Struct.ComponentSchema {
collectionName: 'components_yoga_site_our_services_components';
info: {
description: '';
displayName: 'OurServicesComponent';
};
attributes: {
description: Schema.Attribute.Text;
header: Schema.Attribute.String;
title: Schema.Attribute.String;
};
}
export interface YogaSiteOurSpecialitiesComponent
extends Struct.ComponentSchema {
collectionName: 'components_yoga_site_our_specialities_components';
info: {
description: '';
displayName: 'OurSpecialitiesComponent';
};
attributes: {
description: Schema.Attribute.Text;
header: Schema.Attribute.String;
specialityLeft1: Schema.Attribute.Component<
'shared.title-description',
false
>;
specialityLeft2: Schema.Attribute.Component<
'shared.title-description',
false
>;
specialityLeft3: Schema.Attribute.Component<
'shared.title-description',
false
>;
specialityLeft4: Schema.Attribute.Component<
'shared.title-description',
false
>;
specialityRight1: Schema.Attribute.Component<
'shared.title-description',
false
>;
specialityRight2: Schema.Attribute.Component<
'shared.title-description',
false
>;
specialityRight3: Schema.Attribute.Component<
'shared.title-description',
false
>;
specialityRight4: Schema.Attribute.Component<
'shared.title-description',
false
>;
title: Schema.Attribute.String;
};
}
declare module '@strapi/strapi' {
export module Public {
export interface ComponentSchemas {
@@ -82,6 +180,11 @@ declare module '@strapi/strapi' {
'shared.rich-text': SharedRichText;
'shared.seo': SharedSeo;
'shared.slider': SharedSlider;
'shared.title-description': SharedTitleDescription;
'yoga-site.about-us': YogaSiteAboutUs;
'yoga-site.header-b': YogaSiteHeaderB;
'yoga-site.our-services-component': YogaSiteOurServicesComponent;
'yoga-site.our-specialities-component': YogaSiteOurSpecialitiesComponent;
}
}
}

View File

@@ -380,17 +380,50 @@ export interface ApiAboutAbout extends Struct.SingleTypeSchema {
options: {
draftAndPublish: true;
};
pluginOptions: {
i18n: {
localized: true;
};
};
attributes: {
aboutUs: Schema.Attribute.Component<'yoga-site.about-us', false> &
Schema.Attribute.Required &
Schema.Attribute.SetPluginOptions<{
i18n: {
localized: true;
};
}>;
createdAt: Schema.Attribute.DateTime;
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
Schema.Attribute.Private;
description: Schema.Attribute.Blocks;
image: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>;
locale: Schema.Attribute.String & Schema.Attribute.Private;
localizations: Schema.Attribute.Relation<'oneToMany', 'api::about.about'> &
Schema.Attribute.Private;
header: Schema.Attribute.Component<'yoga-site.header-b', false> &
Schema.Attribute.SetPluginOptions<{
i18n: {
localized: true;
};
}>;
locale: Schema.Attribute.String;
localizations: Schema.Attribute.Relation<'oneToMany', 'api::about.about'>;
ourServices: Schema.Attribute.Component<
'yoga-site.our-services-component',
false
> &
Schema.Attribute.Required &
Schema.Attribute.SetPluginOptions<{
i18n: {
localized: true;
};
}>;
ourSpecialities: Schema.Attribute.Component<
'yoga-site.our-specialities-component',
false
> &
Schema.Attribute.SetPluginOptions<{
i18n: {
localized: true;
};
}>;
publishedAt: Schema.Attribute.DateTime;
title: Schema.Attribute.String;
updatedAt: Schema.Attribute.DateTime;
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
Schema.Attribute.Private;