Skip to content

Commit ffc1c06

Browse files
authored
Merge pull request #24 from newfold-labs/ensure-dalle-used
ensure that dalle image pattern is always used, always add hero to th…
2 parents b5c0716 + 821e262 commit ffc1c06

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

includes/SiteGen/SiteGen.php

+22-5
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,8 @@ class SiteGen {
5454
* Function to check capabilities
5555
*/
5656
private static function check_capabilities() {
57-
$capability = new SiteCapabilities();
58-
57+
$capability = new SiteCapabilities();
5958
$sitegen_enabled = $capability->get( 'hasAISiteGen' );
60-
6159
return $sitegen_enabled;
6260
}
6361

@@ -426,8 +424,15 @@ public static function get_home_pages( $site_description, $content_style, $targe
426424
}
427425
$parsed_response = json_decode( wp_remote_retrieve_body( $response ), true );
428426
$generated_content_structures = $parsed_response['contentStructures'];
429-
$generated_patterns = $parsed_response['generatedPatterns'];
430-
$generated_homepages = $parsed_response['pages'];
427+
// Ensure all content structures should have hero
428+
foreach ( $generated_content_structures as $home_slug => $structure ) {
429+
if ( ! in_array( 'hero', $structure, true ) ) {
430+
array_splice( $structure, 1, 0, 'hero' );
431+
$generated_content_structures[ $home_slug ] = $structure;
432+
}
433+
}
434+
$generated_patterns = $parsed_response['generatedPatterns'];
435+
$generated_homepages = $parsed_response['pages'];
431436
self::cache_sitegen_response( 'contentStructures', $generated_content_structures );
432437
self::cache_sitegen_response( 'generatedPatterns', $generated_patterns );
433438
self::cache_sitegen_response( 'homepages', $generated_homepages );
@@ -437,6 +442,7 @@ public static function get_home_pages( $site_description, $content_style, $targe
437442
$generated_homepages = array();
438443
$generated_patterns = self::get_sitegen_from_cache( 'generatedPatterns' );
439444

445+
$dalle_used = false;
440446
$categories_to_separate = array( 'header', 'footer' );
441447
// Choose random categories for the generated patterns and return
442448
foreach ( $random_homepages as $homepage_index => $slug ) {
@@ -452,6 +458,16 @@ public static function get_home_pages( $site_description, $content_style, $targe
452458
$pattern_index = ( $regenerate ) ? array_rand( $generated_patterns[ $pattern_category ] ) : $homepage_index;
453459
$random_pattern = $generated_patterns[ $pattern_category ][ $pattern_index ];
454460

461+
// Check if this is a hero pattern and we are at end of homepages without ever using dalle
462+
if ( ! $dalle_used && count( $random_homepages ) === $homepage_index && 'hero' === $pattern_category ) {
463+
// Chose the dalle hero only
464+
foreach ( $generated_patterns[ $pattern_category ] as $gen_hero ) {
465+
if ( ! empty( $gen_hero['dalleImages'] ) ) {
466+
$random_pattern = $gen_hero;
467+
}
468+
}
469+
}
470+
455471
if ( in_array( $pattern_category, $categories_to_separate, true ) ) {
456472
$homepage_patterns[ $pattern_category ] = $random_pattern['replacedPattern'];
457473
} else {
@@ -460,6 +476,7 @@ public static function get_home_pages( $site_description, $content_style, $targe
460476

461477
if ( ! empty( $random_pattern['dalleImages'] ) ) {
462478
$homepage_patterns['generatedImages'] = $random_pattern['dalleImages'];
479+
$dalle_used = true;
463480
}
464481
}
465482
$generated_homepages[ $slug ] = $homepage_patterns;

0 commit comments

Comments
 (0)