\\s*
.*? \\s*
(.*?) #si', $html, $matches)) {\n\t\t\treturn trim(strip_tags(html_entity_decode($matches[1], ENT_QUOTES, 'UTF-8')));\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tfunction aisort_meta_iso8601($value) {\n\t\t$value = trim((string) $value);\n\t\tif ($value === '') {\n\t\t\treturn '';\n\t\t}\n\n\t\t$timestamp = strtotime($value);\n\t\tif ($timestamp === false) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn date('c', $timestamp);\n\t}\n\n\tfunction aisort_meta_insights_category_image($value) {\n\t\tswitch (aisort_meta_category_slug($value)) {\n\t\t\tcase 'system-design':\n\t\t\t\treturn URL_PUBLIC . 'images/recycling_facility_1774760557012-opt.jpg';\n\t\t\tcase 'technology':\n\t\t\t\treturn URL_PUBLIC . 'images/ai_sorting_robot_1774760543764-opt.jpg';\n\t\t\tcase 'circular-economy':\n\t\t\t\treturn URL_PUBLIC . 'images/plastic_flakes_sorting_1774761211810-opt.jpg';\n\t\t\tcase 'policy-signals':\n\t\t\t\treturn URL_PUBLIC . 'images/j1-opt.png';\n\t\t\tcase 'selection-guide':\n\t\t\t\treturn URL_PUBLIC . 'images/sorting_machine_product_1774761185997-opt.jpg';\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tfunction aisort_meta_clean_title($value) {\n\t\t$value = trim(strip_tags(html_entity_decode((string) $value, ENT_QUOTES, 'UTF-8')));\n\t\tif ($value === '') {\n\t\t\treturn '';\n\t\t}\n\n\t\t$value = preg_replace('/\\s*\\|\\s*AISORT Insights$/', '', $value);\n\t\t$value = preg_replace('/\\s*\\|\\s*Xingyao Robotics$/', '', $value);\n\t\t$value = preg_replace('/\\s*\\|\\s*AISORT$/', '', $value);\n\t\t$value = preg_replace('/^AISORT\\s+/', '', $value);\n\n\t\treturn trim((string) $value);\n\t}\n\n\tfunction aisort_meta_add_breadcrumb(&$items, $name, $url) {\n\t\t$name = trim((string) $name);\n\t\t$url = trim((string) $url);\n\t\tif ($name === '') {\n\t\t\treturn;\n\t\t}\n\n\t\t$last = end($items);\n\t\tif (is_array($last) && isset($last['name'], $last['item']) && $last['name'] === $name && $last['item'] === $url) {\n\t\t\treturn;\n\t\t}\n\n\t\t$items[] = array(\n\t\t\t'name' => $name,\n\t\t\t'item' => $url,\n\t\t);\n\t}\n\n\tfunction aisort_meta_breadcrumb_list($items, $metaUrlRaw) {\n\t\t$list = array();\n\t\tforeach (array_values($items) as $index => $item) {\n\t\t\t$list[] = array(\n\t\t\t\t'@type' => 'ListItem',\n\t\t\t\t'position' => $index + 1,\n\t\t\t\t'name' => $item['name'],\n\t\t\t\t'item' => $item['item'] !== '' ? $item['item'] : $metaUrlRaw,\n\t\t\t);\n\t\t}\n\n\t\treturn array(\n\t\t\t'@type' => 'BreadcrumbList',\n\t\t\t'@id' => $metaUrlRaw . '#breadcrumb',\n\t\t\t'itemListElement' => $list,\n\t\t);\n\t}\n\n\tfunction aisort_meta_extract_faq_items($html) {\n\t\t$html = (string) $html;\n\t\tif ($html === '' || strpos($html, 'faq-answer-card') === false) {\n\t\t\treturn array();\n\t\t}\n\n\t\t$items = array();\n\t\tif (preg_match_all('#
]*>\\s*]*>(.*?) (.*?) #si', $html, $matches, PREG_SET_ORDER)) {\n\t\t\tforeach ($matches as $match) {\n\t\t\t\t$question = trim(strip_tags(html_entity_decode($match[1], ENT_QUOTES, 'UTF-8')));\n\t\t\t\t$answer = trim(preg_replace('/\\s+/', ' ', strip_tags(html_entity_decode($match[2], ENT_QUOTES, 'UTF-8'))));\n\n\t\t\t\tif ($question === '' || $answer === '') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t$items[] = array(\n\t\t\t\t\t'@type' => 'Question',\n\t\t\t\t\t'name' => $question,\n\t\t\t\t\t'acceptedAnswer' => array(\n\t\t\t\t\t\t'@type' => 'Answer',\n\t\t\t\t\t\t'text' => $answer,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn $items;\n\t}\n\n\tfunction aisort_meta_extract_product_specs($html) {\n\t\t$html = (string) $html;\n\t\tif ($html === '') {\n\t\t\treturn array();\n\t\t}\n\n\t\t$items = array();\n\t\tif (preg_match_all('#
\\s*]*>(.*?) \\s*]*>(.*?) \\s* #si', $html, $matches, PREG_SET_ORDER)) {\n\t\t\tforeach ($matches as $match) {\n\t\t\t\t$name = trim(strip_tags(html_entity_decode($match[1], ENT_QUOTES, 'UTF-8')));\n\t\t\t\t$value = trim(preg_replace('/\\s+/', ' ', strip_tags(html_entity_decode($match[2], ENT_QUOTES, 'UTF-8'))));\n\n\t\t\t\tif ($name === '' || $value === '') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t$items[] = array(\n\t\t\t\t\t'@type' => 'PropertyValue',\n\t\t\t\t\t'name' => $name,\n\t\t\t\t\t'value' => $value,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn $items;\n\t}\n\n\t$metaTitleRaw = trim($this->title());\n\tif ($metaTitleRaw === '') {\n\t\t$metaTitleRaw = 'AISORT';\n\t}\n\t$metaDescriptionRaw = trim($this->description());\n\tif ($metaDescriptionRaw === '') {\n\t\t$metaDescriptionRaw = 'AISORT industrial optical sorting, spectral sorting and robotic recovery systems from Xingyao Robotics.';\n\t}\n\n\t$requestedCategorySlug = '';\n\t$requestedCategoryLabel = '';\n\t$requestedTagSlug = '';\n\t$requestedTagLabel = '';\n\tif ((int) $this->id() === 4 && isset($_GET['category'])) {\n\t\t$requestedCategorySlug = aisort_meta_category_slug($_GET['category']);\n\t\t$requestedCategoryLabel = aisort_meta_category_label($requestedCategorySlug);\n\t\tif ($requestedCategorySlug !== '' && $requestedCategoryLabel !== '') {\n\t\t\t$metaTitleRaw = $requestedCategoryLabel . ' Insights | AISORT';\n\t\t\t$metaDescriptionRaw = 'Browse AISORT insights filed under ' . $requestedCategoryLabel . ', including sorting system strategy, recovery engineering and circular materials topics.';\n\t\t}\n\t}\n\tif ((int) $this->id() === 4 && isset($_GET['tag'])) {\n\t\t$requestedTagSlug = aisort_meta_tag_slug($_GET['tag']);\n\t\t$requestedTagLabel = aisort_meta_tag_label($requestedTagSlug);\n\t\tif ($requestedTagSlug !== '' && $requestedTagLabel !== '' && !aisort_meta_tag_hidden($requestedTagSlug)) {\n\t\t\t$requestedCategorySlug = '';\n\t\t\t$requestedCategoryLabel = '';\n\t\t\t$metaTitleRaw = $requestedTagLabel . ' Insights | AISORT';\n\t\t\t$metaDescriptionRaw = 'Browse AISORT insights tagged with ' . $requestedTagLabel . ', including sorting line engineering, recovery operations and materials-specific guidance.';\n\t\t} else {\n\t\t\t$requestedTagSlug = '';\n\t\t\t$requestedTagLabel = '';\n\t\t}\n\t}\n\n\t$metaTitle = htmlspecialchars($metaTitleRaw, ENT_QUOTES, 'UTF-8');\n\t$metaDescription = htmlspecialchars($metaDescriptionRaw, ENT_QUOTES, 'UTF-8');\n\t$metaUrlRaw = $this->url();\n\tif ((int) $this->id() === 4) {\n\t\t$metaUrlRaw = URL_PUBLIC . 'articles/';\n\t}\n\t$metaHostRaw = '';\n\tif (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {\n\t\t$metaHostParts = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']);\n\t\t$metaHostRaw = trim($metaHostParts[0]);\n\t}\n\telseif (!empty($_SERVER['HTTP_HOST'])) {\n\t\t$metaHostRaw = $_SERVER['HTTP_HOST'];\n\t}\n\telseif (!empty($_SERVER['SERVER_NAME'])) {\n\t\t$metaHostRaw = $_SERVER['SERVER_NAME'];\n\t}\n\n\t$metaScheme = 'http';\n\tif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO'])) {\n\t\t$metaSchemeParts = explode(',', $_SERVER['HTTP_X_FORWARDED_PROTO']);\n\t\t$metaScheme = trim($metaSchemeParts[0]);\n\t}\n\telseif (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {\n\t\t$metaScheme = 'https';\n\t}\n\telseif (!empty($_SERVER['REQUEST_SCHEME'])) {\n\t\t$metaScheme = $_SERVER['REQUEST_SCHEME'];\n\t}\n\telseif (!empty($_SERVER['SERVER_PORT']) && (int) $_SERVER['SERVER_PORT'] === 443) {\n\t\t$metaScheme = 'https';\n\t}\n\n\t$metaScheme = strtolower($metaScheme) === 'https' ? 'https' : 'http';\n\t$metaHost = preg_replace('/[^A-Za-z0-9\\.\\-:\\[\\]]/', '', $metaHostRaw);\n\t$metaBaseUrl = $metaHost !== '' ? $metaScheme . '://' . $metaHost : '';\n\tif ($metaHost !== '' && !preg_match('#^https?://#i', $metaUrlRaw)) {\n\t\t$metaUrlRaw = '/' . ltrim($metaUrlRaw, '/');\n\t\t$metaUrlRaw = $metaScheme . '://' . $metaHost . $metaUrlRaw;\n\t}\n\tif ((int) $this->id() === 4 && $requestedTagSlug !== '') {\n\t\t$metaUrlRaw .= (strpos($metaUrlRaw, '?') === false ? '?' : '&') . 'tag=' . rawurlencode($requestedTagSlug);\n\t}\n\telseif ((int) $this->id() === 4 && $requestedCategorySlug !== '') {\n\t\t$metaUrlRaw .= (strpos($metaUrlRaw, '?') === false ? '?' : '&') . 'category=' . rawurlencode($requestedCategorySlug);\n\t}\n\t$metaUrl = htmlspecialchars($metaUrlRaw, ENT_QUOTES, 'UTF-8');\n\t$metaType = (int) $this->parentId() === 4 ? 'article' : 'website';\n\t$articleCategory = (int) $this->parentId() === 4 ? aisort_meta_extract_category((string) $this->content()) : '';\n\t$faqItems = aisort_meta_extract_faq_items((string) $this->content());\n\t$productProperties = aisort_meta_extract_product_specs((string) $this->content());\n\t$isStructuredProductPage = trim((string) $this->slug()) !== 'products'\n\t\t&& ($this->hasContent('product_summary') || strpos((string) $this->content(), 'geo-page-type--product') !== false);\n\t$isStructuredServicePage = strpos((string) $this->content(), 'geo-page-type--service') !== false;\n\t$metaImageRaw = '';\n\tforeach (array('og_image', 'cover_image', 'feature_image', 'hero_image', 'share_image') as $partName) {\n\t\tif ($this->hasContent($partName)) {\n\t\t\t$metaImageRaw = trim(strip_tags(html_entity_decode($this->content($partName), ENT_QUOTES, 'UTF-8')));\n\t\t\tif ($metaImageRaw !== '') {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif ($metaImageRaw === '' && $articleCategory !== '') {\n\t\t$metaImageRaw = aisort_meta_insights_category_image($articleCategory);\n\t}\n\tif ($metaImageRaw === '' && (int) $this->id() === 4 && $requestedCategoryLabel !== '') {\n\t\t$metaImageRaw = aisort_meta_insights_category_image($requestedCategoryLabel);\n\t}\n\tif ($metaImageRaw === '') {\n\t\t$metaImageRaw = aisort_meta_extract_first_image((string) $this->content());\n\t}\n\tif ($metaImageRaw === '') {\n\t\t$metaImageRaw = URL_PUBLIC . 'images/slider-image.jpg';\n\t}\n\t$metaImageUrl = aisort_meta_asset_url($metaImageRaw, $metaBaseUrl);\n\t$metaImage = htmlspecialchars($metaImageUrl, ENT_QUOTES, 'UTF-8');\n\t$metaImageAlt = htmlspecialchars(trim($this->title()) !== '' ? trim($this->title()) . ' | AISORT' : 'AISORT industrial sorting systems', ENT_QUOTES, 'UTF-8');\n\t$organizationId = rtrim(($metaBaseUrl !== '' ? $metaBaseUrl : $metaUrlRaw), '/') . '/#organization';\n\t$websiteId = rtrim(($metaBaseUrl !== '' ? $metaBaseUrl : $metaUrlRaw), '/') . '/#website';\n\t$homeUrl = $metaBaseUrl !== '' ? rtrim($metaBaseUrl, '/') . '/' : '/';\n\t$insightsUrl = aisort_meta_asset_url(URL_PUBLIC . 'articles/', $metaBaseUrl);\n\t$contactPageUrl = aisort_meta_asset_url(URL_PUBLIC . 'contact.html', $metaBaseUrl);\n\t$organizationLogoUrl = aisort_meta_asset_url(URL_PUBLIC . 'images/slider-image.jpg', $metaBaseUrl);\n\t$structuredGraph = array(\n\t\tarray(\n\t\t\t'@type' => 'Organization',\n\t\t\t'@id' => $organizationId,\n\t\t\t'name' => 'AISORT',\n\t\t\t'alternateName' => 'Xingyao Robotics',\n\t\t\t'description' => 'AISORT industrial optical sorting, spectral sorting and robotic recovery systems from Xingyao Robotics.',\n\t\t\t'url' => $metaBaseUrl !== '' ? rtrim($metaBaseUrl, '/') . '/' : $metaUrlRaw,\n\t\t\t'email' => 'sales@aisort.com',\n\t\t\t'telephone' => '+86 185 5109 9969',\n\t\t\t'areaServed' => 'Global',\n\t\t\t'logo' => array(\n\t\t\t\t'@type' => 'ImageObject',\n\t\t\t\t'url' => $organizationLogoUrl,\n\t\t\t),\n\t\t\t'address' => array(\n\t\t\t\t'@type' => 'PostalAddress',\n\t\t\t\t'streetAddress' => 'Building 7, Gongyanhui Tech Park, Wujin High-Tech Zone',\n\t\t\t\t'addressLocality' => 'Changzhou',\n\t\t\t\t'addressRegion' => 'Jiangsu',\n\t\t\t\t'addressCountry' => 'CN',\n\t\t\t),\n\t\t\t'contactPoint' => array(\n\t\t\t\tarray(\n\t\t\t\t\t'@type' => 'ContactPoint',\n\t\t\t\t\t'contactType' => 'sales',\n\t\t\t\t\t'telephone' => '+86 185 5109 9969',\n\t\t\t\t\t'email' => 'sales@aisort.com',\n\t\t\t\t\t'url' => $contactPageUrl,\n\t\t\t\t\t'availableLanguage' => array('en', 'zh'),\n\t\t\t\t),\n\t\t\t),\n\t\t),\n\t\tarray(\n\t\t\t'@type' => 'WebSite',\n\t\t\t'@id' => $websiteId,\n\t\t\t'name' => 'AISORT',\n\t\t\t'alternateName' => 'Xingyao Robotics',\n\t\t\t'url' => $homeUrl,\n\t\t\t'inLanguage' => $__lang,\n\t\t\t'publisher' => array('@id' => $organizationId),\n\t\t)\n\t);\n\t$breadcrumbItems = array();\n\taisort_meta_add_breadcrumb($breadcrumbItems, 'Home', $homeUrl);\n\n\tif ((int) $this->parentId() === 4) {\n\t\t$pdo = new PDO(DB_DSN, DB_USER, DB_PASS);\n\t\t$pageStmt = $pdo->prepare('SELECT created_on, published_on, updated_on FROM wolf_page WHERE id = :id LIMIT 1');\n\t\t$pageStmt->execute(array('id' => (int) $this->id()));\n\t\t$pageMeta = $pageStmt->fetch(PDO::FETCH_ASSOC) ?: array();\n\t\t$articleStructuredData = array(\n\t\t\t'@type' => 'Article',\n\t\t\t'@id' => $metaUrlRaw . '#article',\n\t\t\t'headline' => $metaTitleRaw,\n\t\t\t'description' => $metaDescriptionRaw,\n\t\t\t'url' => $metaUrlRaw,\n\t\t\t'mainEntityOfPage' => array(\n\t\t\t\t'@type' => 'WebPage',\n\t\t\t\t'@id' => $metaUrlRaw,\n\t\t\t),\n\t\t\t'inLanguage' => $__lang,\n\t\t\t'author' => array('@id' => $organizationId),\n\t\t\t'publisher' => array('@id' => $organizationId),\n\t\t);\n\n\t\t$datePublished = aisort_meta_iso8601($pageMeta['published_on'] ?? ($pageMeta['created_on'] ?? ''));\n\t\t$dateModified = aisort_meta_iso8601($pageMeta['updated_on'] ?? ($pageMeta['published_on'] ?? ($pageMeta['created_on'] ?? '')));\n\n\t\tif ($datePublished !== '') {\n\t\t\t$articleStructuredData['datePublished'] = $datePublished;\n\t\t}\n\t\tif ($dateModified !== '') {\n\t\t\t$articleStructuredData['dateModified'] = $dateModified;\n\t\t}\n\t\tif ($articleCategory !== '') {\n\t\t\t$articleStructuredData['articleSection'] = $articleCategory;\n\t\t}\n\t\tif ($metaImageUrl !== '') {\n\t\t\t$articleStructuredData['image'] = array($metaImageUrl);\n\t\t}\n\n\t\t$structuredGraph[] = $articleStructuredData;\n\t\taisort_meta_add_breadcrumb($breadcrumbItems, 'Insights', $insightsUrl);\n\t\tif ($articleCategory !== '') {\n\t\t\taisort_meta_add_breadcrumb($breadcrumbItems, $articleCategory, $insightsUrl . '?category=' . rawurlencode(aisort_meta_category_slug($articleCategory)));\n\t\t}\n\t\taisort_meta_add_breadcrumb($breadcrumbItems, aisort_meta_clean_title($metaTitleRaw), $metaUrlRaw);\n\t}\n\telseif ((int) $this->id() === 4) {\n\t\t$collectionStructuredData = array(\n\t\t\t'@type' => 'CollectionPage',\n\t\t\t'@id' => $metaUrlRaw . '#collection',\n\t\t\t'name' => $metaTitleRaw,\n\t\t\t'description' => $metaDescriptionRaw,\n\t\t\t'url' => $metaUrlRaw,\n\t\t\t'inLanguage' => $__lang,\n\t\t\t'publisher' => array('@id' => $organizationId),\n\t\t);\n\n\t\tif ($requestedTagLabel !== '') {\n\t\t\t$collectionStructuredData['about'] = array(\n\t\t\t\t'@type' => 'Thing',\n\t\t\t\t'name' => $requestedTagLabel,\n\t\t\t);\n\t\t}\n\t\telseif ($requestedCategoryLabel !== '') {\n\t\t\t$collectionStructuredData['about'] = array(\n\t\t\t\t'@type' => 'Thing',\n\t\t\t\t'name' => $requestedCategoryLabel,\n\t\t\t);\n\t\t}\n\t\tif ($metaImageUrl !== '') {\n\t\t\t$collectionStructuredData['image'] = array($metaImageUrl);\n\t\t}\n\n\t\t$structuredGraph[] = $collectionStructuredData;\n\t\taisort_meta_add_breadcrumb($breadcrumbItems, 'Insights', $insightsUrl);\n\t\tif ($requestedTagLabel !== '') {\n\t\t\taisort_meta_add_breadcrumb($breadcrumbItems, $requestedTagLabel, $metaUrlRaw);\n\t\t}\n\t\telseif ($requestedCategoryLabel !== '') {\n\t\t\taisort_meta_add_breadcrumb($breadcrumbItems, $requestedCategoryLabel, $metaUrlRaw);\n\t\t}\n\t}\n\telseif ($this->path() !== '') {\n\t\t$sectionOverride = aisort_meta_section_override($this, $metaBaseUrl);\n\t\tif ($isStructuredProductPage && $sectionOverride && $sectionOverride['name'] === 'Products') {\n\t\t\t$productName = $this->hasContent('product_title') ? trim(strip_tags($this->content('product_title'))) : aisort_meta_clean_title($metaTitleRaw);\n\t\t\t$productSummary = $this->hasContent('product_summary') ? trim(strip_tags($this->content('product_summary'))) : $metaDescriptionRaw;\n\t\t\t$productSchema = array(\n\t\t\t\t'@type' => 'Product',\n\t\t\t\t'@id' => $metaUrlRaw . '#product',\n\t\t\t\t'name' => $productName !== '' ? $productName : aisort_meta_clean_title($metaTitleRaw),\n\t\t\t\t'description' => $productSummary !== '' ? $productSummary : $metaDescriptionRaw,\n\t\t\t\t'url' => $metaUrlRaw,\n\t\t\t\t'brand' => array(\n\t\t\t\t\t'@type' => 'Brand',\n\t\t\t\t\t'name' => 'AISORT',\n\t\t\t\t),\n\t\t\t\t'manufacturer' => array('@id' => $organizationId),\n\t\t\t);\n\n\t\t\tif ($metaImageUrl !== '') {\n\t\t\t\t$productSchema['image'] = array($metaImageUrl);\n\t\t\t}\n\t\t\tif ($productProperties) {\n\t\t\t\t$productSchema['additionalProperty'] = $productProperties;\n\t\t\t}\n\n\t\t\t$structuredGraph[] = $productSchema;\n\t\t}\n\t\telseif (($sectionOverride && $sectionOverride['name'] === 'Solutions') || ($sectionOverride && $sectionOverride['name'] === 'Support' && $isStructuredServicePage)) {\n\t\t\t$serviceName = $this->hasContent('hero_title') ? trim(strip_tags($this->content('hero_title'))) : aisort_meta_clean_title($metaTitleRaw);\n\t\t\t$serviceSummary = $metaDescriptionRaw;\n\t\t\t$serviceSchema = array(\n\t\t\t\t'@type' => 'Service',\n\t\t\t\t'@id' => $metaUrlRaw . '#service',\n\t\t\t\t'name' => $serviceName !== '' ? $serviceName : aisort_meta_clean_title($metaTitleRaw),\n\t\t\t\t'description' => $serviceSummary,\n\t\t\t\t'url' => $metaUrlRaw,\n\t\t\t\t'provider' => array('@id' => $organizationId),\n\t\t\t\t'brand' => array(\n\t\t\t\t\t'@type' => 'Brand',\n\t\t\t\t\t'name' => 'AISORT',\n\t\t\t\t),\n\t\t\t\t'areaServed' => 'Global',\n\t\t\t);\n\n\t\t\tif ($metaImageUrl !== '') {\n\t\t\t\t$serviceSchema['image'] = array($metaImageUrl);\n\t\t\t}\n\n\t\t\t$structuredGraph[] = $serviceSchema;\n\t\t}\n\t\telseif ($sectionOverride && $sectionOverride['name'] === 'Products' && trim((string) $this->slug()) === 'products') {\n\t\t\t$structuredGraph[] = array(\n\t\t\t\t'@type' => 'CollectionPage',\n\t\t\t\t'@id' => $metaUrlRaw . '#collection',\n\t\t\t\t'name' => aisort_meta_clean_title($metaTitleRaw),\n\t\t\t\t'description' => $metaDescriptionRaw,\n\t\t\t\t'url' => $metaUrlRaw,\n\t\t\t\t'inLanguage' => $__lang,\n\t\t\t\t'publisher' => array('@id' => $organizationId),\n\t\t\t);\n\t\t}\n\t\telseif ($sectionOverride && $sectionOverride['name'] === 'Cases' && trim((string) $this->slug()) === 'cases') {\n\t\t\t$structuredGraph[] = array(\n\t\t\t\t'@type' => 'CollectionPage',\n\t\t\t\t'@id' => $metaUrlRaw . '#collection',\n\t\t\t\t'name' => aisort_meta_clean_title($metaTitleRaw),\n\t\t\t\t'description' => $metaDescriptionRaw,\n\t\t\t\t'url' => $metaUrlRaw,\n\t\t\t\t'inLanguage' => $__lang,\n\t\t\t\t'publisher' => array('@id' => $organizationId),\n\t\t\t);\n\t\t}\n\t\telseif (trim((string) $this->slug()) === 'about-us') {\n\t\t\t$structuredGraph[] = array(\n\t\t\t\t'@type' => 'AboutPage',\n\t\t\t\t'@id' => $metaUrlRaw . '#about',\n\t\t\t\t'name' => aisort_meta_clean_title($metaTitleRaw),\n\t\t\t\t'description' => $metaDescriptionRaw,\n\t\t\t\t'url' => $metaUrlRaw,\n\t\t\t\t'inLanguage' => $__lang,\n\t\t\t\t'about' => array('@id' => $organizationId),\n\t\t\t);\n\t\t}\n\t\telseif (trim((string) $this->slug()) === 'contact') {\n\t\t\t$structuredGraph[] = array(\n\t\t\t\t'@type' => 'ContactPage',\n\t\t\t\t'@id' => $metaUrlRaw . '#contact-page',\n\t\t\t\t'name' => aisort_meta_clean_title($metaTitleRaw),\n\t\t\t\t'description' => $metaDescriptionRaw,\n\t\t\t\t'url' => $metaUrlRaw,\n\t\t\t\t'inLanguage' => $__lang,\n\t\t\t\t'about' => array('@id' => $organizationId),\n\t\t\t);\n\t\t}\n\t\tif ($sectionOverride) {\n\t\t\taisort_meta_add_breadcrumb($breadcrumbItems, $sectionOverride['name'], $sectionOverride['url']);\n\t\t\tif (rtrim($sectionOverride['url'], '/') !== rtrim($metaUrlRaw, '/')) {\n\t\t\t\taisort_meta_add_breadcrumb($breadcrumbItems, aisort_meta_clean_title($metaTitleRaw), $metaUrlRaw);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t$parent = $this->parent();\n\t\tif ($parent && (int) $parent->id() > 1) {\n\t\t\taisort_meta_add_breadcrumb($breadcrumbItems, aisort_meta_clean_title($parent->title()), aisort_meta_asset_url($parent->url(), $metaBaseUrl));\n\t\t}\n\n\t\taisort_meta_add_breadcrumb($breadcrumbItems, aisort_meta_clean_title($metaTitleRaw), $metaUrlRaw);\n\t\t}\n\t}\n\n\tif ($faqItems) {\n\t\t$structuredGraph[] = array(\n\t\t\t'@type' => 'FAQPage',\n\t\t\t'@id' => $metaUrlRaw . '#faq',\n\t\t\t'url' => $metaUrlRaw,\n\t\t\t'name' => $metaTitleRaw,\n\t\t\t'inLanguage' => $__lang,\n\t\t\t'mainEntity' => $faqItems,\n\t\t);\n\t}\n\n\tif ($breadcrumbItems) {\n\t\t$structuredGraph[] = aisort_meta_breadcrumb_list($breadcrumbItems, $metaUrlRaw);\n\t}\n\n\t$structuredData = array(\n\t\t'@context' => 'https://schema.org',\n\t\t'@graph' => $structuredGraph,\n\t);\n\t?>\n\t
\n\t
\n\t
\n\t
\n\t
\n\t\n\t
\n\t\n\t
\n\t
\n\t
\n\t
\n\t
\n\t
\n\t\n\t
\n\t
\n\t\n\t
\n\t
\n\t
\n\t
\n\t\n\t
\n\t
\n\t\n\t\n\t
\n\t
\n\t
\n\t
\n\t
\n
\n\n\n
Ai Тяжелый Портальный Робот | AISORT
>>
Как использовать эту страницу >
Практические маркеры соответствия Фокус страницы AI Heavy Duty Gantry Robot Типичная роль Поддержка шорт-листа продукции и проверки соответствия Наилучшее использование Оценка на раннем этапе перед детальным инженерным анализом Критерий принятия решения Сырьё, роль в линии, пропускная способность и целевой показатель на последующих этапах Стиль интеграции Автономный модуль или более широкая линейка AISORT Следующий шаг Перейти на страницу продукта, решения, FAQ или примера внедрения на основе уверенности в шорт-листе
Когда не следует использовать эту страницу как единственный ответ Эта страница должна использоваться как инструмент для составления шорт-листа и определения рамок, а не как окончательное инженерное решение. Лучший результат всегда достигается при согласовании логики страницы с реальным сырьём, ограничениями линии и требованиями последующих этапов.
Не принимайте окончательное решение по оборудованию только на основе общей целевой страницы. Не игнорируйте специфические ограничения предприятия, такие как площадь, инженерные коммуникации и уровень квалификации оператора. Не предполагайте, что один и тот же маршрут одинаково хорошо подходит для любого потока материала или рынка. Когда следует использовать эту страницу типа продукта? Быстрый ответ: используйте её, когда главное решение — стоит ли включать этот класс платформы в шорт-лист для вашего потока и роли в линии.
Страница является инструментом проверки соответствия перед более глубоким инженерным обсуждением.
Что покупатель должен сравнить далее? Быстрый ответ: сравните роль в линии, сложность потока и цель на последующих этапах с соседними платформами AISORT или страницами решений.
Обычно это более ценно, чем сравнение отдельных характеристик без контекста проекта.
Когда необходима рекомендация с учётом специфики предприятия? Быстрый ответ: когда шорт-лист сокращён до одного или двух реалистичных маршрутов, а оставшиеся вопросы касаются интеграции, риска или коммерческой целесообразности.
Именно здесь общее содержание перестаёт быть достаточным.
\n\n