Drupal 8.0 Beta2 के साथ, के पक्ष drupal_add_html_head()
में पदावनत किया गया है #attached
। तो पुराना तरीका था:
function MYTHEME_page_build(&$page) {
$viewport = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=0.55, user-scalable=yes',
),
);
drupal_add_html_head($viewport, 'viewport');
}
अब आपके द्वारा उपयोग किए जाने वाले परिवर्तन नोटिस के आधार पर #attached
। तो उपरोक्त कोड अनिवार्य रूप से अंतिम भाग के साथ बदलने के लिए समान है:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
हालांकि यह काम नहीं करता है और वॉचडॉग में कोई त्रुटि संदेश नहीं है। मैं भी एक पेज में इस डाल दिया है की कोशिश की परिवर्तन के साथ-साथ अदला-बदली $build
के साथ $variables
और $output
लेकिन यह अभी भी नहीं है काम करते हैं। लत में, मैंने एक सरणी के रूप में पूरी बात की कोशिश की:
$build['#attached']['html_head'][] = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
),
);
... लेकिन वह भी काम नहीं आया। मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं, ऐसा लगता है कि यह काम करना चाहिए।
अपडेट करें
यहाँ काम कोड है जो hook_page_attachments_alter
डी 8 बीटा 2 में उपयोग नहीं है क्योंकि यह सिर्फ देव के लिए प्रतिबद्ध था।
function MYTHEME_page_attachments_alter(array &$page) {
$viewport = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
),
);
$page['#attached']['html_head'][] = [$viewport, 'viewport'];
}
अब केवल मुद्दा यह है कि कोर के व्यूपोर्ट टैग को अधिलेखित नहीं किया जाता है इसलिए मैं अपने कस्टम टैग और कोर के साथ फंस गया हूं। सुनिश्चित नहीं है कि कैसे संभालना है कि एक या मेरा टैग कोर की ओवरराइटिंग होनी चाहिए?