Craft\SeomaticService::getIdentity PHP Method

getIdentity() public method

--------------------------------------------------------------------------------
public getIdentity ( $locale )
    public function getIdentity($locale)
    {
        /* -- Cache it in our class; no need to fetch it more than once */
        if (isset($this->cachedIdentity[$locale])) {
            return $this->cachedIdentity[$locale];
        }
        $settings = $this->getSettings($locale);
        $identity = array();
        $identity['locale'] = $settings['locale'];
        $identity['googleSiteVerification'] = $settings['googleSiteVerification'];
        $identity['bingSiteVerification'] = $settings['bingSiteVerification'];
        $identity['googleAnalyticsUID'] = $settings['googleAnalyticsUID'];
        $identity['googleTagManagerID'] = $settings['googleTagManagerID'];
        $identity['googleAnalyticsSendPageview'] = $settings['googleAnalyticsSendPageview'];
        $identity['googleAnalyticsAdvertising'] = $settings['googleAnalyticsAdvertising'];
        $identity['googleAnalyticsEcommerce'] = $settings['googleAnalyticsEcommerce'];
        $identity['googleAnalyticsEEcommerce'] = $settings['googleAnalyticsEEcommerce'];
        $identity['googleAnalyticsLinkAttribution'] = $settings['googleAnalyticsLinkAttribution'];
        $identity['googleAnalyticsLinker'] = $settings['googleAnalyticsLinker'];
        $identity['siteOwnerType'] = ucfirst($settings['siteOwnerType']);
        $identity['siteOwnerSubType'] = $settings['siteOwnerSubType'];
        $identity['siteOwnerSpecificType'] = $settings['siteOwnerSpecificType'];
        /* -- Handle migrating the old way of storing siteOwnerType */
        if ($identity['siteOwnerType'] != "Organization" && $identity['siteOwnerType'] != "Person") {
            $identity['siteOwnerSubType'] = $identity['siteOwnerType'];
            $identity['siteOwnerType'] = "Organization";
        }
        if ($identity['siteOwnerSubType'] == "Restaurant") {
            $identity['siteOwnerSpecificType'] = $identity['siteOwnerSubType'];
            $identity['siteOwnerSubType'] = "LocalBusiness";
        }
        $identity['genericOwnerName'] = $settings['genericOwnerName'];
        $identity['genericOwnerAlternateName'] = $settings['genericOwnerAlternateName'];
        $identity['genericOwnerDescription'] = $settings['genericOwnerDescription'];
        $identity['genericOwnerUrl'] = $settings['genericOwnerUrl'];
        $identity['genericOwnerImageId'] = $settings['genericOwnerImageId'];
        $image = craft()->assets->getFileById($settings['genericOwnerImageId']);
        if ($image) {
            $identity['genericOwnerImage'] = $this->getFullyQualifiedUrl($image->url);
            $identity['genericOwnerImageHeight'] = $image->getHeight();
            $identity['genericOwnerImageWidth'] = $image->getWidth();
        } else {
            $identity['genericOwnerImage'] = '';
        }
        $identity['genericOwnerTelephone'] = $settings['genericOwnerTelephone'];
        $identity['genericOwnerEmail'] = $settings['genericOwnerEmail'];
        $identity['genericOwnerStreetAddress'] = $settings['genericOwnerStreetAddress'];
        $identity['genericOwnerAddressLocality'] = $settings['genericOwnerAddressLocality'];
        $identity['genericOwnerAddressRegion'] = $settings['genericOwnerAddressRegion'];
        $identity['genericOwnerPostalCode'] = $settings['genericOwnerPostalCode'];
        $identity['genericOwnerAddressCountry'] = $settings['genericOwnerAddressCountry'];
        $identity['genericOwnerGeoLatitude'] = $settings['genericOwnerGeoLatitude'];
        $identity['genericOwnerGeoLongitude'] = $settings['genericOwnerGeoLongitude'];
        $identity['organizationOwnerDuns'] = $settings['organizationOwnerDuns'];
        $identity['organizationOwnerFounder'] = $settings['organizationOwnerFounder'];
        $identity['organizationOwnerFoundingDate'] = $settings['organizationOwnerFoundingDate'];
        $identity['organizationOwnerFoundingLocation'] = $settings['organizationOwnerFoundingLocation'];
        $identity['organizationOwnerContactPoints'] = $settings['organizationOwnerContactPoints'];
        /* -- Handle the organization contact points */
        $contactPoints = array();
        if (isset($identity['organizationOwnerContactPoints']) && is_array($identity['organizationOwnerContactPoints'])) {
            foreach ($identity['organizationOwnerContactPoints'] as $contacts) {
                $spec = array("type" => "ContactPoint", "telephone" => $contacts['telephone'], "contactType" => $contacts['contactType']);
                $contactPoints[] = $spec;
            }
        }
        $contactPoints = array_filter($contactPoints);
        $identity['contactPoint'] = $contactPoints;
        if (count($identity['contactPoint']) < 1) {
            unset($identity['contactPoint']);
        }
        $identity['personOwnerGender'] = $settings['personOwnerGender'];
        $identity['personOwnerBirthPlace'] = $settings['personOwnerBirthPlace'];
        $identity['localBusinessOwnerOpeningHours'] = $settings['localBusinessOwnerOpeningHours'];
        /* -- Handle the opening hours specification */
        $days = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
        $openingHours = array();
        if (isset($identity['localBusinessOwnerOpeningHours']) && is_array($identity['localBusinessOwnerOpeningHours'])) {
            craft()->seomatic->convertTimes($identity['localBusinessOwnerOpeningHours']);
            $index = 0;
            foreach ($identity['localBusinessOwnerOpeningHours'] as $hours) {
                $openTime = "";
                $closeTime = "";
                if (isset($hours['open']) && $hours['open']) {
                    $openTime = $hours['open']->format('H:i:s', $hours['open']->getTimeZone());
                }
                if (isset($hours['close']) && $hours['close']) {
                    $closeTime = $hours['close']->format('H:i:s', $hours['close']->getTimeZone());
                }
                if ($openTime && $closeTime) {
                    $spec = array("type" => "OpeningHoursSpecification", "closes" => $closeTime, "dayOfWeek" => array($days[$index]), "opens" => $openTime);
                    $openingHours[] = $spec;
                }
                $index++;
            }
        }
        $openingHours = array_filter($openingHours);
        $identity['openingHoursSpecification'] = $openingHours;
        if (count($identity['openingHoursSpecification']) <= 1) {
            unset($identity['openingHoursSpecification']);
        }
        $identity['corporationOwnerTickerSymbol'] = $settings['corporationOwnerTickerSymbol'];
        $identity['restaurantOwnerServesCuisine'] = $settings['restaurantOwnerServesCuisine'];
        $identity['restaurantOwnerMenuUrl'] = $this->getFullyQualifiedUrl($settings['restaurantOwnerMenuUrl']);
        $identity['restaurantOwnerReservationsUrl'] = $this->getFullyQualifiedUrl($settings['restaurantOwnerReservationsUrl']);
        $result = $identity;
        $this->cachedIdentity[$locale] = $result;
        return $result;
    }