Jake Vanderwerf
5 days ago 266aa37c48222993bf7bdad6834e31bd08736f5e
inc/managers/SEO/render/Traits/ThingSchema.php
@@ -5,9 +5,12 @@
   exit;
}
use JVBase\managers\Cache;
use JVBase\managers\SEO\render\DataType\Date;
use JVBase\managers\SEO\render\DataType\DateTime;
use JVBase\managers\SEO\render\DataType\Time;
use JVBase\managers\SEO\render\Thing\CreativeWork\MediaObject\ImageObject;
use JVBase\managers\SEO\render\Thing\Intangible\StructuredValue\PropertyValue;
use JVBase\managers\SEO\render\Thing\Thing;
use JVBase\managers\SEO\render\Traits\_Properties\additionalTypeTrait;
use JVBase\managers\SEO\render\Traits\_Properties\alternateNameTrait;
@@ -38,7 +41,7 @@
   {
      global $wp;
      $current = home_url( add_query_arg( $_GET, $wp->request ) );
      $id = (isset($this->id)) ? $this->id : $current.'#'.strtolower($this->getTypeName());
      $id = (isset($this->id)) ? $this->id : $current.'/#'.strtolower($this->getTypeName());
      $elements = array_map(
         function ($value) {
@@ -61,8 +64,9 @@
            } else if (is_a($value, Time::class)) {
               $value = $value->getTime();
            }else if (!is_string($value)) {
               error_log('Normal value? '.print_r($value, true));
               if (JVB_TESTING && !is_numeric($value)) {
//                error_log('Normal value? '.print_r($value, true));
               }
            }
            return $value;
@@ -109,13 +113,13 @@
   }
   public function getId():string {
      return $this->id;
      return $this->id??false;
   }
   public function setId(string $id):void
   {
      if (!filter_var($id, FILTER_VALIDATE_URL)) {
         error_log('[SEO]Could not set id: '.$id.'. Should be a valid URL');
         return;
         global $wp;
         $id = home_url( add_query_arg( $_GET, $wp->request ) ).'/#'.sanitize_title($id);
      }
      $this->id = $id;
   }
@@ -126,4 +130,35 @@
         unset($this->$property);
      }
   }
   public static function createImageFromID(int $ID):ImageObject|false
   {
      $cache = Cache::for('schemaImage')->connect('post');
      return $cache->remember(
         $ID,
         function() use($ID) {
            $imagePost = get_post($ID);
            if (!$imagePost) {
               return false;
            }
            $image = wp_get_attachment_image_src($ID,'full');
            if (empty($image)) {
               return false;
            }
            $imageObject = new ImageObject();
            $imageObject->setUploadDate($imagePost->post_date);
            $imageObject->setWidth($image[1]);
            $imageObject->setHeight($image[2]);
            $imageObject->setContentUrl($image[0]);
            $caption = wp_get_attachment_caption($ID);
            if (!empty($caption)) {
               $imageObject->setCaption($caption);
            }
            return $imageObject;
         }
      );
   }
}