• Avail guidance to develop Drupal modules & Drupal themes
  • Share and get review of your code
  • Get Access to free CodeBooks and ThemeBooks
  • Drupal 5, 6 and 7 covered

About bhavinhjoshi

Grid of terms in a block

Printer-friendly versionSend to a DeveloperPDF version
0
0

This CodeLet show how to display terms in a vocabulary as block. The CodeLet will display the terms, along with term icon, if taxonomy image module is installed, in a grid of 4X4. The block is configurable. You can select which vocabulary to show the terms from. Its quite attractive and can be used on front page.

<span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">//$Id$<br /><br /><br />/**<br /> * @file<br /> * <br /> * Display taxonomy tree in a block<br /> * <br /> * @author Drupal Developer<br /> */ <br /><br /><br />/**<br /> * Implementation of hook_block<br /> * <br /> * @param $op<br /> * @param $delta<br /> * @param $edit<br /> * @return unknown_type<br /> * @author Drupal Developer<br /> */<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">browse_info_block</span><span style="color: #007700">(</span><span style="color: #0000BB">$op </span><span style="color: #007700">= </span><span style="color: #DD0000">'list'</span><span style="color: #007700">, </span><span style="color: #0000BB">$delta </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$edit </span><span style="color: #007700">= array()) {<br />    switch (</span><span style="color: #0000BB">$op</span><span style="color: #007700">) {<br />        case </span><span style="color: #DD0000">'list'</span><span style="color: #007700">:<br />            </span><span style="color: #0000BB">$blocks</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">] = array(<br />        </span><span style="color: #DD0000">'info' </span><span style="color: #007700">=> </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"Browse information by category"</span><span style="color: #007700">),<br />              </span><span style="color: #DD0000">'status' </span><span style="color: #007700">=> </span><span style="color: #0000BB">1</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'region' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'content'</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'weight' </span><span style="color: #007700">=> </span><span style="color: #0000BB">0</span><span style="color: #007700">, <br />            );<br />            <br />            return </span><span style="color: #0000BB">$blocks</span><span style="color: #007700">;<br />        case </span><span style="color: #DD0000">'configure'</span><span style="color: #007700">:<br />            </span><span style="color: #0000BB">$am__vocabulary </span><span style="color: #007700">= </span><span style="color: #0000BB">_get_vocabulary</span><span style="color: #007700">();<br />            </span><span style="color: #0000BB">$am__imagecache </span><span style="color: #007700">= </span><span style="color: #0000BB">_get_imagecache</span><span style="color: #007700">();<br />            <br />            </span><span style="color: #0000BB">$form</span><span style="color: #007700">[</span><span style="color: #DD0000">'browse_vocabulary'</span><span style="color: #007700">] = array(<br />              </span><span style="color: #DD0000">'#type' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'select'</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'#title' </span><span style="color: #007700">=> </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"Vocabulary"</span><span style="color: #007700">),<br />              </span><span style="color: #DD0000">'#options' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$am__vocabulary</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'#default_value' </span><span style="color: #007700">=> </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">'browse_vocabulary_id'</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">), <br />            );<br />            </span><span style="color: #0000BB">$form</span><span style="color: #007700">[</span><span style="color: #DD0000">'imagecahce'</span><span style="color: #007700">] = array(<br />              </span><span style="color: #DD0000">'#type' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'select'</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'#title' </span><span style="color: #007700">=> </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"Image size"</span><span style="color: #007700">),<br />              </span><span style="color: #DD0000">'#options' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$am__imagecache</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'#default_value' </span><span style="color: #007700">=> </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">'imagecache_size'</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">), <br />            );<br />            </span><span style="color: #0000BB">$form</span><span style="color: #007700">[</span><span style="color: #DD0000">'image_size'</span><span style="color: #007700">] = array(<br />              </span><span style="color: #DD0000">'#type' </span><span style="color: #007700">=> </span><span style="color: #DD0000">'textfield'</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'#title' </span><span style="color: #007700">=> </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"Image size"</span><span style="color: #007700">),<br />              </span><span style="color: #DD0000">'#size' </span><span style="color: #007700">=> </span><span style="color: #0000BB">30</span><span style="color: #007700">,<br />              </span><span style="color: #DD0000">'#description' </span><span style="color: #007700">=> </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"Provide image size in WXH format. <br />                This value will be ignored if a size already selected from above ImageCache presets."</span><span style="color: #007700">),<br />              </span><span style="color: #DD0000">'#default_value' </span><span style="color: #007700">=> </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">'image_size'</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">), <br />            );<br />            return </span><span style="color: #0000BB">$form</span><span style="color: #007700">;<br />        case </span><span style="color: #DD0000">'save'</span><span style="color: #007700">:<br />            switch (</span><span style="color: #0000BB">$delta</span><span style="color: #007700">) {<br />                case </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />                    </span><span style="color: #0000BB">variable_set</span><span style="color: #007700">(</span><span style="color: #DD0000">'browse_vocabulary_id'</span><span style="color: #007700">, </span><span style="color: #0000BB">$edit</span><span style="color: #007700">[</span><span style="color: #DD0000">'browse_vocabulary'</span><span style="color: #007700">]);<br />                    </span><span style="color: #0000BB">variable_set</span><span style="color: #007700">(</span><span style="color: #DD0000">'imagecache_size'</span><span style="color: #007700">, </span><span style="color: #0000BB">$edit</span><span style="color: #007700">[</span><span style="color: #DD0000">'imagecahce'</span><span style="color: #007700">]);<br />                    </span><span style="color: #0000BB">variable_set</span><span style="color: #007700">(</span><span style="color: #DD0000">'image_size'</span><span style="color: #007700">, </span><span style="color: #0000BB">$edit</span><span style="color: #007700">[</span><span style="color: #DD0000">'image_size'</span><span style="color: #007700">]);<br />                    break;<br />            }<br />            break;    <br />        case </span><span style="color: #DD0000">'view'</span><span style="color: #007700">:<br />            switch (</span><span style="color: #0000BB">$delta</span><span style="color: #007700">) {<br />                case </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />                    </span><span style="color: #0000BB">$block </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'subject' </span><span style="color: #007700">=> </span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"Browse information by category"</span><span style="color: #007700">), </span><span style="color: #DD0000">'content' </span><span style="color: #007700">=> </span><span style="color: #0000BB">get_category_tree</span><span style="color: #007700">());<br />                    break;<br />            }<br />            return </span><span style="color: #0000BB">$block</span><span style="color: #007700">;<br />    }<br />}<br /><br /><br /><br /></span><span style="color: #FF8000">/**<br /> * get_category_tree<br /> * <br /> * Return the tree stucture<br /> * <br /> * @return unknown_type<br /> * @author Drupal Developer<br /> */<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">get_category_tree</span><span style="color: #007700">() {<br />    global </span><span style="color: #0000BB">$conf</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$sn__vid </span><span style="color: #007700">= </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">"browse_vocabulary_id"</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$am__term_tree </span><span style="color: #007700">= array();<br />    if (!</span><span style="color: #0000BB">$sn__vid</span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">drupal_set_message</span><span style="color: #007700">(</span><span style="color: #DD0000">"You need to select a vocabulary for the block."</span><span style="color: #007700">);<br />    }<br />    else {<br />        </span><span style="color: #0000BB">$am__tree </span><span style="color: #007700">= </span><span style="color: #0000BB">taxonomy_get_tree</span><span style="color: #007700">(</span><span style="color: #0000BB">$sn__vid</span><span style="color: #007700">, </span><span style="color: #0000BB">$parent </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$depth </span><span style="color: #007700">= -</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$max_depth </span><span style="color: #007700">= </span><span style="color: #0000BB">2</span><span style="color: #007700">);<br />        foreach (</span><span style="color: #0000BB">$am__tree </span><span style="color: #007700">as </span><span style="color: #0000BB">$om__term</span><span style="color: #007700">) {<br />            if (</span><span style="color: #0000BB">$om__term</span><span style="color: #007700">-></span><span style="color: #0000BB">parents</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]) {<br />               </span><span style="color: #0000BB">$am__term_tree</span><span style="color: #007700">[</span><span style="color: #0000BB">$om__term</span><span style="color: #007700">-></span><span style="color: #0000BB">parents</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]][] = </span><span style="color: #0000BB">$om__term</span><span style="color: #007700">-></span><span style="color: #0000BB">tid</span><span style="color: #007700">;    <br />            }<br />        }<br />        </span><span style="color: #0000BB">$ss__imagecache </span><span style="color: #007700">= </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">'imagecache_size'</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$ss__image_size </span><span style="color: #007700">= </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">'image_size'</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">);<br />    if (empty(</span><span style="color: #0000BB">$ss__imagecache</span><span style="color: #007700">)) {<br />        list(</span><span style="color: #0000BB">$width</span><span style="color: #007700">, </span><span style="color: #0000BB">$height</span><span style="color: #007700">) = </span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"X"</span><span style="color: #007700">, </span><span style="color: #0000BB">$ss__image_size</span><span style="color: #007700">, -</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />        </span><span style="color: #0000BB">$am__attribute </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'width' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$width</span><span style="color: #007700">, </span><span style="color: #DD0000">'height' </span><span style="color: #007700">=> </span><span style="color: #0000BB">$height</span><span style="color: #007700">);<br />    }<br />        <br />        </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"<div style='clear:both;width:100%;'><br />          <div style='float:left;width:100px;padding:3px;border:1px solid #DDD;margin:0px 8px 5px 0px;'>"</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">$i </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">$k </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />        foreach (</span><span style="color: #0000BB">$am__term_tree </span><span style="color: #007700">as </span><span style="color: #0000BB">$key </span><span style="color: #007700">=> </span><span style="color: #0000BB">$an__child</span><span style="color: #007700">) {<br />      </span><span style="color: #0000BB">$j </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />            if(</span><span style="color: #0000BB">$key</span><span style="color: #007700">) {<br />                if (</span><span style="color: #0000BB">$i </span><span style="color: #007700">== </span><span style="color: #0000BB">4</span><span style="color: #007700">) {<br />                    </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= (</span><span style="color: #0000BB">$key </span><span style="color: #007700">? </span><span style="color: #DD0000">"</div></div><div style='clear:both;width:100%;'><br />                      <div style='float:left;width:100px;padding:3px;<br />                      border:1px solid #DDD;margin:0px 8px 5px 0px;'>" </span><span style="color: #007700">: </span><span style="color: #0000BB">NULL</span><span style="color: #007700">);<br />                    </span><span style="color: #0000BB">$i </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />                }<br />        unset(</span><span style="color: #0000BB">$om__term</span><span style="color: #007700">);<br />        </span><span style="color: #0000BB">$ss__image </span><span style="color: #007700">= </span><span style="color: #0000BB">db_result</span><span style="color: #007700">(</span><span style="color: #0000BB">db_query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT path FROM {term_image} WHERE tid = %d"</span><span style="color: #007700">, </span><span style="color: #0000BB">$key</span><span style="color: #007700">));<br />        </span><span style="color: #0000BB">$om__term </span><span style="color: #007700">= </span><span style="color: #0000BB">taxonomy_get_term</span><span style="color: #007700">(</span><span style="color: #0000BB">$key</span><span style="color: #007700">);<br />        if (</span><span style="color: #0000BB">$ss__imagecache</span><span style="color: #007700">) {<br />          </span><span style="color: #0000BB">$ss__imagcache_name </span><span style="color: #007700">= </span><span style="color: #0000BB">db_result</span><span style="color: #007700">(</span><span style="color: #0000BB">db_query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT presetname FROM <br />            {imagecache_preset} WHERE presetid = %d"</span><span style="color: #007700">, </span><span style="color: #0000BB">$ss__imagecache</span><span style="color: #007700">));<br /><br />          </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"<div>"</span><span style="color: #007700">. </span><span style="color: #0000BB">theme</span><span style="color: #007700">(</span><span style="color: #DD0000">'imagecache'</span><span style="color: #007700">, </span><span style="color: #0000BB">$ss__imagcache_name</span><span style="color: #007700">, <br />            </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">'taxonomy_image_path'</span><span style="color: #007700">, </span><span style="color: #DD0000">'category_pictures'</span><span style="color: #007700">) .</span><span style="color: #DD0000">"/"</span><span style="color: #007700">. </span><span style="color: #0000BB">$ss__image</span><span style="color: #007700">) .</span><span style="color: #DD0000">"</div>"</span><span style="color: #007700">;<br />        }<br />        else {<br />          </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"<div>"</span><span style="color: #007700">. </span><span style="color: #0000BB">theme</span><span style="color: #007700">(</span><span style="color: #DD0000">'image'</span><span style="color: #007700">, <br />            </span><span style="color: #0000BB">variable_get</span><span style="color: #007700">(</span><span style="color: #DD0000">'taxonomy_image_path'</span><span style="color: #007700">, </span><span style="color: #DD0000">'category_pictures'</span><span style="color: #007700">) <br />            .</span><span style="color: #DD0000">"/"</span><span style="color: #007700">. </span><span style="color: #0000BB">$ss__image</span><span style="color: #007700">, </span><span style="color: #DD0000">''</span><span style="color: #007700">, </span><span style="color: #0000BB">$am__attribute</span><span style="color: #007700">, </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">) .</span><span style="color: #DD0000">"</div>"</span><span style="color: #007700">; <br />        }<br />        </span><span style="color: #0000BB">$i</span><span style="color: #007700">++;<br />        </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"<div><h4>"</span><span style="color: #007700">. </span><span style="color: #0000BB">l</span><span style="color: #007700">(</span><span style="color: #0000BB">$om__term</span><span style="color: #007700">-></span><span style="color: #0000BB">name</span><span style="color: #007700">, <br />          </span><span style="color: #0000BB">drupal_get_path_alias</span><span style="color: #007700">(</span><span style="color: #DD0000">"taxonomy/term/"</span><span style="color: #007700">. </span><span style="color: #0000BB">$om__term</span><span style="color: #007700">-></span><span style="color: #0000BB">tid</span><span style="color: #007700">)) .</span><span style="color: #DD0000">"</h4></div>"</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"<ul style='list-style:none;'>"</span><span style="color: #007700">;<br />        foreach (</span><span style="color: #0000BB">$an__child </span><span style="color: #007700">as </span><span style="color: #0000BB">$value</span><span style="color: #007700">) {<br />          if (</span><span style="color: #0000BB">$j </span><span style="color: #007700">== </span><span style="color: #0000BB">3</span><span style="color: #007700">) {<br />           </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"</ul><div style='text-align:right;width:100px;<br />             margin-bottom:10px;font-size:11px;padding: 0px 10px 0px 0px;'>"</span><span style="color: #007700">. <br />             </span><span style="color: #0000BB">l</span><span style="color: #007700">(</span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">"More"</span><span style="color: #007700">) .</span><span style="color: #DD0000">"..."</span><span style="color: #007700">, </span><span style="color: #0000BB">drupal_get_path_alias</span><span style="color: #007700">(</span><span style="color: #DD0000">"taxonomy/term/"</span><span style="color: #007700">. <br />             </span><span style="color: #0000BB">$om__term</span><span style="color: #007700">-></span><span style="color: #0000BB">tid</span><span style="color: #007700">)) .</span><span style="color: #DD0000">"</div>"</span><span style="color: #007700">;<br />           break;<br />          }<br />          else {<br />            </span><span style="color: #0000BB">$om__child_term </span><span style="color: #007700">= </span><span style="color: #0000BB">taxonomy_get_term</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br />            </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"<li style='font-size:11px;border-bottom:1px solid #EEE;'>"</span><span style="color: #007700">. </span><span style="color: #0000BB">l</span><span style="color: #007700">(</span><span style="color: #0000BB">$om__child_term</span><span style="color: #007700">-></span><span style="color: #0000BB">name</span><span style="color: #007700">, <br />     &am

Syndicate content

Sitestats

Recent comments

rss-top-right.png
toolbar powered by www.iconcy.com