ऐसा करने के लिए जो आप दृश्यों का उपयोग करना चाहते हैं, और कुछ अन्य योगदान मॉड्यूल नहीं, जैसे शब्दावली, आपको अपना स्वयं का दृश्य परिभाषित करना और थीम बनाना होगा।
सबसे पहले, आपको एक नया नोड व्यू बनाना होगा। मैं इसे myglossary कॉल करने जा रहा हूँ, लेकिन इससे कोई फर्क नहीं पड़ता। सुनिश्चित करें कि आपके फ़ील्ड में से एक नोड शीर्षक है, और यह नोड शीर्षक, आरोही द्वारा क्रमबद्ध है। दूसरे शब्दों में, वर्णमाला क्रम। मुझे लगता है कि आप अनफॉर्मेटेड पंक्ति शैली (यह डिफ़ॉल्ट है) का उपयोग करेंगे, लेकिन आप शायद अन्य पंक्ति शैलियों के साथ कुछ ऐसा कर सकते हैं।
फिर, आपको अपनी थीम में जाना होगा। विचार/थीम फ़ोल्डर से, दृश्य-दृश्य-unformatted.tpl.php टेम्पलेट को उस थीम के फ़ोल्डर में कॉपी करें जिसका आप उपयोग कर रहे हैं। इसे देखने के लिए नाम बदलें- देखें- unformatted - myglossary.tpl.php ताकि इसका उपयोग केवल इस दृश्य के लिए किया जाएगा। पंक्तियों फिर
//Change mytheme to your theme name
function mytheme_preprocess_views_view_unformatted__myglossary(&$vars) {
//If you have the devel module installed,
//this is a great way to see all the available variables
//dpm($vars);
$results = $vars['view']->result;
$rows = $vars['rows'];
//Sort rows into letter sets
$letters = array();
$i = 0;
foreach ($results as $result) {
$first_letter = strtolower(substr($result->node_title, 0, 1));
if (is_array($letters[$first_letter])) {
array_push($letters[$first_letter], $rows[$i]);
}
else {
$letters[$first_letter] = array($rows[$i]);
}
$i++;
}
//Generate glossary navigation
$nav = '';
foreach($letters as $letter => $rows) {
$num = count($rows);
$cap_letter = strtoupper($letter);
$nav .= <<<NAV
<a href="#$letter" class="letter_link">
$cap_letter
</a>
($num)
NAV;
}
//Add to variables
$vars['nav'] = $nav;
$vars['letters'] = $letters;
}
, आप टेम्पलेट फ़ाइल आप नेविगेशन में जोड़ने के लिए पहले की प्रतिलिपि बनाई बदलना होगा, और उत्पादन के लिए: फिर, अपने विषय के template.php फ़ाइल को खोलने के लिए, और एक preprocess समारोह जोड़ने एक शब्दकोष शैली में:
<?php if (!empty($title)): ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php if (!empty($nav)): ?>
<div id="glossary_nav">
<?php print $nav; ?>
</div>
<?php endif; ?>
<?php foreach ($letters as $letter=>$rows): ?>
<a name="<?php print $letter ?>"></a>
<h4 class="letter">
<?php print strtoupper($letter); ?>
</h4>
<?php foreach ($rows as $id=>$row): ?>
<div class="<?php print $classes[$id]; ?>">
<?php print $row; ?>
</div>
<?php endforeach;?>
<?php endforeach; ?>
आप विषय रजिस्ट्री पुनर्जीवित करने के लिए अपने परिवर्तनों को अपनी साइट पर दिखाई की आवश्यकता हो सकती है।
यह दृष्टिकोण काम कर सकता है, लेकिन आपको ऐसा करने की आवश्यकता नहीं है। आप बिना किसी कस्टम कोड के समान प्रभाव प्राप्त कर सकते हैं। – messedup