0003: SHOW FULL TABLES WHERE Table_Type != 'VIEW'
0.0013s
0004: SHOW FULL FIELDS IN "Fluent_Domain"
0.0008s
0005: SHOW COLLATION LIKE 'utf8mb4_unicode_ci'
0.0002s
0006: SELECT DISTINCT "Fluent_Domain"."ClassName", "Fluent_Domain"."LastEdited", "Fluent_Domain"."Created", "Fluent_Domain"."Domain", "Fluent_Domain"."DefaultLocaleID", "Fluent_Domain"."ID",
CASE WHEN "Fluent_Domain"."ClassName" IS NOT NULL THEN "Fluent_Domain"."ClassName"
ELSE 'TractorCow\\Fluent\\Model\\Domain' END AS "RecordClassName"
FROM "Fluent_Domain"
0.0002s
0007: SHOW FULL FIELDS IN "Fluent_Locale"
0.0008s
0008: SELECT DISTINCT "Fluent_Locale"."ClassName", "Fluent_Locale"."LastEdited", "Fluent_Locale"."Created", "Fluent_Locale"."Title", "Fluent_Locale"."Locale", "Fluent_Locale"."URLSegment", "Fluent_Locale"."IsGlobalDefault", "Fluent_Locale"."UseDefaultCode", "Fluent_Locale"."Sort", "Fluent_Locale"."DomainID", "Fluent_Locale"."ID",
CASE WHEN "Fluent_Locale"."ClassName" IS NOT NULL THEN "Fluent_Locale"."ClassName"
ELSE 'TractorCow\\Fluent\\Model\\Locale' END AS "RecordClassName"
FROM "Fluent_Locale"
ORDER BY "Fluent_Locale"."Sort" ASC, "Fluent_Locale"."Locale" ASC
0.0002s
0009: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."URLSegment" = ?)
AND ("SiteTree_Live"."ParentID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0004s
0010: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ParentID" = ?)
AND ("SiteTree_Live"."URLSegment" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0003s
0011: SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."GoogleAnalyticsAccountID", "SiteConfig"."GTMAccountID", "SiteConfig"."CookieIsActive", "SiteConfig"."ConsentNoticeDescription", "SiteConfig"."ConsentNoticeLearnMore", "SiteConfig"."ConsentModalTitle", "SiteConfig"."ConsentModalDescription", "SiteConfig"."ConsentModalPrivacyPolicyName", "SiteConfig"."ConsentModalPrivacyPolicyText", "SiteConfig"."AcceptAll", "SiteConfig"."AcceptSelected", "SiteConfig"."Decline", "SiteConfig"."OGSiteName", "SiteConfig"."TwitterHandle", "SiteConfig"."CreatorTwitterHandle", "SiteConfig"."FacebookAppID", "SiteConfig"."UseTitleAsMetaTitle", "SiteConfig"."SchemaOrganisationName", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."CookieLinkPrivacyID", "SiteConfig"."SchemaOrganisationImageID", "SiteConfig"."DefaultSocialImageID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\\SiteConfig\\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1
0.0003s
0012: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0002s
0013: SELECT DISTINCT "PublishDate" IS NULL AS "_SortColumn0", "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "BlogPost_Live"."PublishDate", "BlogPost_Live"."AuthorNames", "BlogPost_Live"."Summary", "BlogPost_Live"."ElementalAreaID", "BlogPost_Live"."FeaturedImageID", CASE WHEN "SiteTree_Live"."ClassName" IN ('SilverStripe\\CMS\\Model\\SiteTree', 'Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "SiteTree_Live"."Priority" WHEN "SiteTree_Live"."ClassName" IN ('Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "Page_Live"."Priority" ELSE NULL END AS "Priority", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live" LEFT JOIN "BlogPost_Live" ON "BlogPost_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID"
WHERE ("SiteTree_Live"."ID" = ?)
AND ("SiteTree_Live"."ClassName" IN (?, ?, ?))
AND ("PublishDate" < '2026-01-01 08:21:28')
ORDER BY "_SortColumn0" DESC, "BlogPost_Live"."PublishDate" DESC
LIMIT 1
0.0003s
0014: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "Page_Live"."MetaTitle", "Page_Live"."Canonical", "Page_Live"."Robots", "Page_Live"."ChangeFrequency", "Page_Live"."SitemapHide", "Page_Live"."HideSocial", "Page_Live"."OGtype", "Page_Live"."OGlocale", "Page_Live"."TwitterCard", "Page_Live"."SocialImageID", CASE WHEN "SiteTree_Live"."ClassName" IN ('SilverStripe\\CMS\\Model\\SiteTree', 'Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "SiteTree_Live"."Priority" WHEN "SiteTree_Live"."ClassName" IN ('Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "Page_Live"."Priority" ELSE NULL END AS "Priority", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort"
FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" INNER JOIN "BlogPost_Live" ON "SiteTree_Live"."ID" = "BlogPost_Live"."ID"
WHERE ("SiteTree_Live"."ID" = ?)
AND ("SiteTree_Live"."ClassName" IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?))
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0003s
0015: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "Blog_Live"."DefaultPostMetaTitle", "Blog_Live"."DefaultPostMetaDescription", "Blog_Live"."UseFeaturedAsSocialImage", "Blog_Live"."PostsPerPage", CASE WHEN "SiteTree_Live"."ClassName" IN ('SilverStripe\\Blog\\Model\\Blog', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder') THEN "Blog_Live"."ElementalAreaID" WHEN "SiteTree_Live"."ClassName" IN ('S2Hub\\Page\\CaseStudyHolder') THEN "CaseStudyHolder_Live"."ElementalAreaID" WHEN "SiteTree_Live"."ClassName" IN ('S2Hub\\Page\\SolutionHolder') THEN "SolutionHolder_Live"."ElementalAreaID" ELSE NULL END AS "ElementalAreaID", CASE WHEN "SiteTree_Live"."ClassName" IN ('SilverStripe\\CMS\\Model\\SiteTree', 'Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "SiteTree_Live"."Priority" WHEN "SiteTree_Live"."ClassName" IN ('Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "Page_Live"."Priority" ELSE NULL END AS "Priority", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort"
FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "Blog_Live" ON "Blog_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "CaseStudyHolder_Live" ON "CaseStudyHolder_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "SolutionHolder_Live" ON "SolutionHolder_Live"."ID" = "SiteTree_Live"."ID"
WHERE ("SiteTree_Live"."ID" = ?)
AND ("SiteTree_Live"."ClassName" IN (?, ?, ?))
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0003s
0016: SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."GoogleAnalyticsAccountID", "SiteConfig"."GTMAccountID", "SiteConfig"."CookieIsActive", "SiteConfig"."ConsentNoticeDescription", "SiteConfig"."ConsentNoticeLearnMore", "SiteConfig"."ConsentModalTitle", "SiteConfig"."ConsentModalDescription", "SiteConfig"."ConsentModalPrivacyPolicyName", "SiteConfig"."ConsentModalPrivacyPolicyText", "SiteConfig"."AcceptAll", "SiteConfig"."AcceptSelected", "SiteConfig"."Decline", "SiteConfig"."OGSiteName", "SiteConfig"."TwitterHandle", "SiteConfig"."CreatorTwitterHandle", "SiteConfig"."FacebookAppID", "SiteConfig"."UseTitleAsMetaTitle", "SiteConfig"."SchemaOrganisationName", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."CookieLinkPrivacyID", "SiteConfig"."SchemaOrganisationImageID", "SiteConfig"."DefaultSocialImageID", "SiteConfig"."ID",
CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName"
ELSE 'SilverStripe\\SiteConfig\\SiteConfig' END AS "RecordClassName"
FROM "SiteConfig"
LIMIT 1
0.0001s
0017: SELECT DISTINCT "File_Live"."ClassName", "File_Live"."LastEdited", "File_Live"."Created", "File_Live"."Version", "File_Live"."UserFormUpload", "File_Live"."CanViewType", "File_Live"."CanEditType", "File_Live"."Name", "File_Live"."Title", "File_Live"."ShowInSearch", "File_Live"."ParentID", "File_Live"."OwnerID", "File_Live"."FileHash", "File_Live"."FileFilename", "File_Live"."FileVariant", "File_Live"."ID",
CASE WHEN "File_Live"."ClassName" IS NOT NULL THEN "File_Live"."ClassName"
ELSE 'SilverStripe\\Assets\\File' END AS "RecordClassName"
FROM "File_Live"
WHERE ("File_Live"."ID" IS NULL)
AND ("File_Live"."ClassName" IN (?))
ORDER BY "File_Live"."Name" ASC
LIMIT 1
0.0002s
0018: SELECT DISTINCT "SeoHeadTag"."ClassName", "SeoHeadTag"."LastEdited", "SeoHeadTag"."Created", "SeoHeadTag"."Title", "SeoHeadTag"."Value", "SeoHeadTag"."Type", "SeoHeadTag"."PageID", "SeoHeadTag"."PageClass", "SeoHeadTag"."ID",
CASE WHEN "SeoHeadTag"."ClassName" IS NOT NULL THEN "SeoHeadTag"."ClassName"
ELSE 'CyberDuck\\SEO\\Model\\SeoHeadTag' END AS "RecordClassName"
FROM "SeoHeadTag" INNER JOIN "Page_HeadTags" ON "Page_HeadTags"."SeoHeadTagID" = "SeoHeadTag"."ID"
WHERE ("Page_HeadTags"."PageID" = ?)
AND ("SeoHeadTag"."Type" = ?)
ORDER BY "SeoHeadTag"."Title" ASC
0.0002s
0019: SELECT DISTINCT "SeoHeadTag"."ClassName", "SeoHeadTag"."LastEdited", "SeoHeadTag"."Created", "SeoHeadTag"."Title", "SeoHeadTag"."Value", "SeoHeadTag"."Type", "SeoHeadTag"."PageID", "SeoHeadTag"."PageClass", "SeoHeadTag"."ID",
CASE WHEN "SeoHeadTag"."ClassName" IS NOT NULL THEN "SeoHeadTag"."ClassName"
ELSE 'CyberDuck\\SEO\\Model\\SeoHeadTag' END AS "RecordClassName"
FROM "SeoHeadTag" INNER JOIN "Page_HeadTags" ON "Page_HeadTags"."SeoHeadTagID" = "SeoHeadTag"."ID"
WHERE ("Page_HeadTags"."PageID" = ?)
AND ("SeoHeadTag"."Type" = ?)
ORDER BY "SeoHeadTag"."Title" ASC
0.0002s
0020: SELECT DISTINCT "SeoHeadTag"."ClassName", "SeoHeadTag"."LastEdited", "SeoHeadTag"."Created", "SeoHeadTag"."Title", "SeoHeadTag"."Value", "SeoHeadTag"."Type", "SeoHeadTag"."PageID", "SeoHeadTag"."PageClass", "SeoHeadTag"."ID",
CASE WHEN "SeoHeadTag"."ClassName" IS NOT NULL THEN "SeoHeadTag"."ClassName"
ELSE 'CyberDuck\\SEO\\Model\\SeoHeadTag' END AS "RecordClassName"
FROM "SeoHeadTag" INNER JOIN "Page_HeadTags" ON "Page_HeadTags"."SeoHeadTagID" = "SeoHeadTag"."ID"
WHERE ("Page_HeadTags"."PageID" = ?)
AND ("SeoHeadTag"."Type" = ?)
ORDER BY "SeoHeadTag"."Title" ASC
0.0001s
0021: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ShowInMenus" = ?)
AND ("SiteTree_Live"."ParentID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
0.0003s
0022: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0023: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0024: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."AvailableGlobally", "Element_Live"."BubbleStyle", "Element_Live"."PreHeader", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."ParentID", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName"
FROM "Element_Live"
WHERE ("Element_Live"."ParentID" = ?)
ORDER BY "Element_Live"."Sort" ASC
0.0002s
0025: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0026: SELECT DISTINCT "PublishDate" IS NULL AS "_SortColumn0", "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", CASE WHEN "SiteTree_Live"."ClassName" IN ('SilverStripe\\CMS\\Model\\SiteTree', 'Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "SiteTree_Live"."Priority" WHEN "SiteTree_Live"."ClassName" IN ('Page', 'S2Hub\\Page\\Agencies', 'S2Hub\\Page\\BlockPage', 'SilverStripe\\ErrorPage\\ErrorPage', 'SilverStripe\\Blog\\Model\\Blog', 'SilverStripe\\Blog\\Model\\BlogPost', 'SilverStripe\\CMS\\Model\\RedirectorPage', 'SilverStripe\\CMS\\Model\\VirtualPage', 'SilverStripe\\UserForms\\Model\\UserDefinedForm', 'S2Hub\\Page\\CaseStudyHolder', 'S2Hub\\Page\\SolutionHolder', 'S2Hub\\Page\\CaseStudy', 'S2Hub\\Page\\Solution') THEN "Page_Live"."Priority" ELSE NULL END AS "Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "Page_Live"."MetaTitle", "Page_Live"."Canonical", "Page_Live"."Robots", "Page_Live"."ChangeFrequency", "Page_Live"."SitemapHide", "Page_Live"."HideSocial", "Page_Live"."OGtype", "Page_Live"."OGlocale", "Page_Live"."TwitterCard", "Page_Live"."SocialImageID", "BlogPost_Live"."PublishDate", "BlogPost_Live"."AuthorNames", "BlogPost_Live"."Summary", "BlogPost_Live"."ElementalAreaID", "BlogPost_Live"."FeaturedImageID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "BlogPost_Live" ON "BlogPost_Live"."ID" = "SiteTree_Live"."ID"
WHERE ("BlogPost_Live"."ElementalAreaID" = ?)
AND ("SiteTree_Live"."ClassName" = ?)
AND ("SiteTree_Live"."ClassName" IN (?, ?, ?))
AND ("PublishDate" < '2026-01-01 08:21:28')
ORDER BY "_SortColumn0" DESC, "BlogPost_Live"."PublishDate" DESC
LIMIT 1
0.0009s
0027: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0028: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0029: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."AvailableGlobally", "Element_Live"."BubbleStyle", "Element_Live"."PreHeader", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."ParentID", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName"
FROM "Element_Live"
WHERE ("Element_Live"."ParentID" = ?)
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0002s
0030: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "ElementContent_Live"."Background", "ElementContent_Live"."Width", "ElementContent_Live"."HorAlign", "ElementContent_Live"."Height", "ElementContent_Live"."HTML", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName", "Element_Live"."Sort"
FROM "Element_Live" LEFT JOIN "ElementContent_Live" ON "ElementContent_Live"."ID" = "Element_Live"."ID"
WHERE ("Element_Live"."ID" = ?)
AND ("Element_Live"."ClassName" IN (?, ?, ?, ?, ?, ?))
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0002s
0031: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0032: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0033: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."AvailableGlobally", "Element_Live"."BubbleStyle", "Element_Live"."PreHeader", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."ParentID", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName"
FROM "Element_Live"
WHERE ("Element_Live"."ParentID" = ?)
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0034: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "ElementContent_Live"."Background", "ElementContent_Live"."Width", "ElementContent_Live"."HorAlign", "ElementContent_Live"."Height", "ElementContent_Live"."HTML", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName", "Element_Live"."Sort"
FROM "Element_Live" LEFT JOIN "ElementContent_Live" ON "ElementContent_Live"."ID" = "Element_Live"."ID"
WHERE ("Element_Live"."ID" = ?)
AND ("Element_Live"."ClassName" IN (?, ?, ?, ?, ?, ?))
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0035: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0036: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."AvailableGlobally", "Element_Live"."BubbleStyle", "Element_Live"."PreHeader", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."ParentID", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName"
FROM "Element_Live"
WHERE ("Element_Live"."ParentID" = ?)
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0037: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "ElementMarkdown_Live"."Content", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName", "Element_Live"."Sort"
FROM "Element_Live" LEFT JOIN "ElementMarkdown_Live" ON "ElementMarkdown_Live"."ID" = "Element_Live"."ID"
WHERE ("Element_Live"."ID" = ?)
AND ("Element_Live"."ClassName" IN (?))
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0002s
0038: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0039: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."AvailableGlobally", "Element_Live"."BubbleStyle", "Element_Live"."PreHeader", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."ParentID", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName"
FROM "Element_Live"
WHERE ("Element_Live"."ParentID" = ?)
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0040: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "ElementContent_Live"."Background", "ElementContent_Live"."Width", "ElementContent_Live"."HorAlign", "ElementContent_Live"."Height", "ElementContent_Live"."HTML", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName", "Element_Live"."Sort"
FROM "Element_Live" LEFT JOIN "ElementContent_Live" ON "ElementContent_Live"."ID" = "Element_Live"."ID"
WHERE ("Element_Live"."ID" = ?)
AND ("Element_Live"."ClassName" IN (?, ?, ?, ?, ?, ?))
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0041: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0042: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."AvailableGlobally", "Element_Live"."BubbleStyle", "Element_Live"."PreHeader", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."ParentID", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName"
FROM "Element_Live"
WHERE ("Element_Live"."ParentID" = ?)
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0043: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "ElementMarkdown_Live"."Content", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName", "Element_Live"."Sort"
FROM "Element_Live" LEFT JOIN "ElementMarkdown_Live" ON "ElementMarkdown_Live"."ID" = "Element_Live"."ID"
WHERE ("Element_Live"."ID" = ?)
AND ("Element_Live"."ClassName" IN (?))
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0044: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."ID",
CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName"
FROM "ElementalArea_Live"
WHERE ("ElementalArea_Live"."ID" = ?)
LIMIT 1
0.0001s
0045: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."AvailableGlobally", "Element_Live"."BubbleStyle", "Element_Live"."PreHeader", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."ParentID", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName"
FROM "Element_Live"
WHERE ("Element_Live"."ParentID" = ?)
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0001s
0046: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "ElementContent_Live"."Background", "ElementContent_Live"."Width", "ElementContent_Live"."HorAlign", "ElementContent_Live"."Height", "ElementContent_Live"."HTML", "Element_Live"."ID",
CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName"
ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName", "Element_Live"."Sort"
FROM "Element_Live" LEFT JOIN "ElementContent_Live" ON "ElementContent_Live"."ID" = "Element_Live"."ID"
WHERE ("Element_Live"."ID" = ?)
AND ("Element_Live"."ClassName" IN (?, ?, ?, ?, ?, ?))
ORDER BY "Element_Live"."Sort" ASC
LIMIT 1
0.0002s
0047: SELECT DISTINCT "MenuSet"."ClassName", "MenuSet"."LastEdited", "MenuSet"."Created", "MenuSet"."Title", "MenuSet"."Slug", "MenuSet"."AllowChildren", "MenuSet"."ID",
CASE WHEN "MenuSet"."ClassName" IS NOT NULL THEN "MenuSet"."ClassName"
ELSE 'gorriecoe\\Menu\\Models\\MenuSet' END AS "RecordClassName"
FROM "MenuSet"
WHERE ("MenuSet"."Slug" = ?)
LIMIT 1
0.0002s
0048: SELECT DISTINCT "Link"."ClassName", "Link"."LastEdited", "Link"."Created", "Link"."Anchor", "Link"."Title", "Link"."Type", "Link"."URL", "Link"."Email", "Link"."Phone", "Link"."OpenInNewWindow", "Link"."SelectedStyle", "Link"."SiteTreeID", "Link"."FileID", "MenuLink"."Sort", "MenuLink"."MenuSetID", "MenuLink"."ParentID", "Link"."ID",
CASE WHEN "Link"."ClassName" IS NOT NULL THEN "Link"."ClassName"
ELSE 'gorriecoe\\Link\\Models\\Link' END AS "RecordClassName"
FROM "Link" LEFT JOIN "MenuLink" ON "MenuLink"."ID" = "Link"."ID"
WHERE ("MenuLink"."MenuSetID" = ?)
AND ("Link"."ClassName" IN (?))
ORDER BY "MenuLink"."Sort" ASC
0.0004s
0049: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0050: SELECT EXISTS(SELECT *
FROM "Link" LEFT JOIN "MenuLink" ON "MenuLink"."ID" = "Link"."ID"
WHERE ("MenuLink"."ParentID" = ?)
AND ("Link"."ClassName" IN (?)))
0.0002s
0051: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0052: SELECT EXISTS(SELECT *
FROM "Link" LEFT JOIN "MenuLink" ON "MenuLink"."ID" = "Link"."ID"
WHERE ("MenuLink"."ParentID" = ?)
AND ("Link"."ClassName" IN (?)))
0.0001s
0053: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0054: SELECT EXISTS(SELECT *
FROM "Link" LEFT JOIN "MenuLink" ON "MenuLink"."ID" = "Link"."ID"
WHERE ("MenuLink"."ParentID" = ?)
AND ("Link"."ClassName" IN (?)))
0.0001s
0055: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0056: SELECT EXISTS(SELECT *
FROM "Link" LEFT JOIN "MenuLink" ON "MenuLink"."ID" = "Link"."ID"
WHERE ("MenuLink"."ParentID" = ?)
AND ("Link"."ClassName" IN (?)))
0.0001s
0057: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0058: SELECT EXISTS(SELECT *
FROM "Link" LEFT JOIN "MenuLink" ON "MenuLink"."ID" = "Link"."ID"
WHERE ("MenuLink"."ParentID" = ?)
AND ("Link"."ClassName" IN (?)))
0.0002s
0059: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0060: SELECT EXISTS(SELECT *
FROM "Link" LEFT JOIN "MenuLink" ON "MenuLink"."ID" = "Link"."ID"
WHERE ("MenuLink"."ParentID" = ?)
AND ("Link"."ClassName" IN (?)))
0.0001s
0061: SELECT "Version" FROM "SiteTree" WHERE "ID" = ?
0.0002s
0062: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0063: SELECT DISTINCT "SiteTree"."ClassName", "SiteTree"."LastEdited", "SiteTree"."Created", "SiteTree"."Priority", "SiteTree"."CanViewType", "SiteTree"."CanEditType", "SiteTree"."Version", "SiteTree"."URLSegment", "SiteTree"."Title", "SiteTree"."MenuTitle", "SiteTree"."Content", "SiteTree"."MetaDescription", "SiteTree"."ExtraMeta", "SiteTree"."ShowInMenus", "SiteTree"."ShowInSearch", "SiteTree"."Sort", "SiteTree"."HasBrokenFile", "SiteTree"."HasBrokenLink", "SiteTree"."ReportClass", "SiteTree"."ParentID", "SiteTree"."ID",
CASE WHEN "SiteTree"."ClassName" IS NOT NULL THEN "SiteTree"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree"
WHERE ("SiteTree"."ID" = ?)
ORDER BY "SiteTree"."Sort" ASC
LIMIT 1
0.0002s
0064: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
0065: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID",
CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName"
ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName"
FROM "SiteTree_Live"
WHERE ("SiteTree_Live"."ID" = ?)
ORDER BY "SiteTree_Live"."Sort" ASC
LIMIT 1
0.0001s
How to create a simple Silverstripe Module
Tutorial
How to create a simple Silverstripe Module
This tutorial presents a way of creating a module so that you can share it with others and therefore want to use Composer locally for testing it out. If you just want some code separation you could always add a local module next to yourappcatalog in your project.
Since all installed modules in Silverstripe CMS 4+ are placed in the vendor catalog, then, that is where we would like to place our new module as well. To accomplish this you can work with a local catalog when you are developing your module. Then refer to that catalog in your SS4 projects Composer file. You can do that it like this:
Start a new clean SilverStripe project by installing it with composer in your local development environment. This will be your test project into which you will import the module that you work on. See this link for instructions on how to set up a new SilverStipe site locally: https://www.silverstripe.org/download/
Create a folder in your local environment where you can keep the modules that you are working on. I have such a folder in my local "htdocs" folder (one "step up" from the site folders) and have named it "_modules" so that it gets located at the top of the list in Finder.
In the "modules" folder create a folder for the module that you want to work on and place all code there. The structure of the code in your module should follow the guidelines listed under "Custom Code Structure" in this page: https://docs.silverstripe.org/en/4/getting_started/directory_structure/
Open PHPStorm and create a project out of the clean SilverStripe installation that you made.
By configuring your module as a secondary content root you get access to all the classes etc from your main project, which means that you can rely on PHPStorms functions for helping you out with importing classes from SilverStripe and other resources that reside in your main project that your module will need.
Things to note here is that the name should be the same as what you refer to when referring to your module in the test projects composer file.
The type must be silverstripe-vendormoduleif you want to publish the module later on.
The autoload->psr4 parameter must have the namespace of your module pointing to the catalog where the code for the module is located (should be src).
Now its just to open up the test projects folder in the Terminal and run composer update and and your module should be fetched by composer and created as a symlinked catalog under the vendor catalog.
And later, when you are done with development and testing of your module you can go ahead and publish it on GitHub and Packagist. And thanks to the fact that you are using Composer for your local development it will be a super easy thing to do.
PS. One last thing, dont forget to set your test site in developer mode before starting by adding SS_ENVIRONMENT_TYPE="dev"to the .env file that replaces the _ss_environment.php file from SS3.