Exemplo n.º 1
0
/**
 *
 * This function is needed so that we can use the Prev/Next module functionality
 *
 *
 *
 */
function pn_node($node, $mode = 'n')
{
    if (!function_exists('prev_next_nid')) {
        return NULL;
    }
    switch ($mode) {
        case 'p':
            $n_nid = prev_next_nid($node->nid, 'prev');
            break;
        case 'n':
            $n_nid = prev_next_nid($node->nid, 'next');
            break;
        default:
            return NULL;
    }
    if ($n_nid) {
        $n_node = node_load($n_nid);
        $options = array('attributes' => array('class' => 'thumbnail'), 'html' => TRUE);
        switch ($n_node->type) {
            // For image nodes only
            case 'image':
                // This is an image node, get the thumbnail
                $html = l(image_display($n_node, 'thumbnail'), "node/{$n_nid}", $options);
                $html .= l($link_text, "node/{$n_nid}", array('html' => TRUE));
                return $html;
                // For video nodes only
            // For video nodes only
            case 'video':
                foreach ($n_node->files as $fid => $file) {
                    $html = '<img src="' . base_path() . $file->filepath;
                    $html .= '" alt="' . $n_node->title;
                    $html .= '" title="' . $n_node->title;
                    $html .= '" class="image image-thumbnail" />';
                    $img_html = l($html, "node/{$n_nid}", $options);
                    $text_html = l($link_text, "node/{$n_nid}", array('html' => TRUE));
                    return $img_html . $text_html;
                }
            default:
                // ... theme? What theme?! :-)
                $link_text = $n_node->title;
                $html = l($link_text, "page/{$n_nid}", array('html' => TRUE));
                return $html;
        }
    }
}
Exemplo n.º 2
0
function jollyany_pagination($node, $mode = 'n')
{
    if (!function_exists('prev_next_nid')) {
        return NULL;
    }
    switch ($mode) {
        case 'p':
            $n_nid = prev_next_nid($node->nid, 'prev');
            $link_text = "Previous post";
            break;
        case 'n':
            $n_nid = prev_next_nid($node->nid, 'next');
            $link_text = "Next post";
            break;
        default:
            return NULL;
    }
    if ($n_nid) {
        $n_node = '';
        $n_node = node_load($n_nid);
        switch ($n_node->type) {
            case 'projects':
                $id = $n_node->nid;
                return $id;
            case 'blog':
                $id = $n_node->nid;
                return $id;
            case 'our_team':
                $id = $n_node->nid;
                return $id;
            case 'our_services':
                $id = $n_node->nid;
                return $id;
            case 'testimonial':
                $id = $n_node->nid;
                return $id;
            case 'article':
                $html = l($link_text, 'node/' . $n_node->nid);
                return $html;
        }
    }
}
Exemplo n.º 3
0
/**
 * Implements hook_preprocess_node().
 */
function bvng_preprocess_node(&$variables)
{
    /* Add theme hook suggestion for nodes of taxonomy/term/%
     */
    if (isset($variables['requested_path'])) {
        if (strpos($variables['requested_path'], 'taxonomy/term') !== FALSE) {
            array_push($variables['theme_hook_suggestions'], 'node__taxonomy' . '__generic');
        }
    } elseif (isset($variables['current_path'])) {
    }
    /* Prepare the prev/next $node of the same content type.
     */
    if ($variables['node']) {
        switch ($variables['node']->type) {
            default:
                $next_node = node_load(prev_next_nid($variables['node']->nid, 'prev'));
        }
        $next_node = $next_node->status == 1 ? $next_node : NULL;
        // Only refer to published node.
        $variables['next_node'] = $next_node;
    }
    /* Prepare $cchunks, $anchors and $elinks for type "generictemplate"
     * @see http://drupal.stackexchange.com/questions/35355/accessing-a-field-collection
     */
    // Prepare $cchunks.
    if ($variables['node']->type == 'generictemplate' && !empty($variables['field_cchunk'])) {
        $fields_collection = field_get_items('node', $variables['node'], 'field_cchunk');
        $cchunks = array();
        foreach ($fields_collection as $idx => $data) {
            $cchunks[$idx] = field_collection_item_load($fields_collection[$idx]['value']);
        }
        $variables['cchunks'] = $cchunks;
        // Prepare title, content and sidebar for each chunk.
        $cchunks_title = array();
        $cchunks_content = array();
        $cchunks_sidebar = array();
        $anchors = array();
        $elinks = array();
        foreach ($variables['cchunks'] as $k => $cchunk) {
            $cchunks_title[$k] = _bvng_get_field_value('field_collection_item', $cchunk, 'field_title');
            $cchunks_content[$k] = _bvng_get_field_value('field_collection_item', $cchunk, 'field_sectioncontent');
            $sidebar_fields = array('anchors' => 'field_anchorlinkslist', 'elinks' => 'field_externallinkslist');
            foreach ($sidebar_fields as $var => $sidebar_field) {
                $field_links = array();
                $field_links[] = field_get_items('field_collection_item', $cchunk, $sidebar_field);
                foreach ($field_links as $i => $field_link) {
                    foreach ($field_link as $f_link) {
                        $cat_var =& ${$var};
                        $cat_var[$k][] = field_collection_item_load($f_link['value']);
                    }
                }
            }
            $cchunks_sidebar[$k] = '';
            if (!empty($anchors[$k])) {
                foreach ($anchors[$k] as $anchor) {
                    if ($anchor !== FALSE) {
                        $anchors_title = _bvng_get_field_value('field_collection_item', $anchor, 'field_anchorlinkslisttitle');
                        $anchors_links = _bvng_get_field_value('field_collection_item', $anchor, 'field_anchorlink');
                        $cchunks_sidebar[$k] .= '<h3>' . $anchors_title . '</h3>';
                        $cchunks_sidebar[$k] .= '<ul class="tags">';
                        foreach ($anchors_links as $anchors_link) {
                            $cchunks_sidebar[$k] .= '<li><a href="#' . $anchors_link['link'] . '">' . $anchors_link['title'] . '</a></li>';
                        }
                        $cchunks_sidebar[$k] .= '</ul>';
                    }
                }
            }
            if (!empty($elinks[$k])) {
                foreach ($elinks[$k] as $elink) {
                    if ($elink !== FALSE) {
                        $elinks_title = _bvng_get_field_value('field_collection_item', $elink, 'field_externallinkslisttitle');
                        $elinks_links = _bvng_get_field_value('field_collection_item', $elink, 'field_externallink');
                        $cchunks_sidebar[$k] .= '<h3>' . $elinks_title . '</h3>';
                        $cchunks_sidebar[$k] .= '<ul class="tags">';
                        foreach ($elinks_links as $elinks_link) {
                            $link = array('#theme' => 'link', '#text' => $elinks_link['title'], '#path' => $elinks_link['url'], '#options' => array('attributes' => $elinks_link['attributes']), '#prefix' => '<li>', '#suffix' => '</li>');
                            $cchunks_sidebar[$k] .= render($link);
                        }
                        $cchunks_sidebar[$k] .= '</ul>';
                    }
                }
            }
        }
        $variables['cchunks_title'] = $cchunks_title;
        $variables['cchunks_content'] = $cchunks_content;
        $variables['cchunks_sidebar'] = $cchunks_sidebar;
    }
    /* Get footer fields for data use articles.
     */
    $node_footer = _bvng_get_node_footer_content($variables['node']);
    $variables['node_footer'] = $node_footer;
    /* Get sidebar content
     */
    $sidebar = _bvng_get_sidebar_content($variables['nid'], $variables['vid']);
    $variables['sidebar'] = $sidebar;
    /* Build a combo value consisting of publisher and publishing date
     */
    if ($variables['node']->type == 'resource_ims' && !empty($variables['field_publishing_date']) && !empty($variables['field_publisher'])) {
        /*
         * fix me: It should have been done with "render()" so that we can make use of the format decided in "manage display"
         */
        $publishing_date = _bvng_get_field_value('node', $variables['node'], 'field_publishing_date');
        $publisher = _bvng_get_field_value('node', $variables['node'], 'field_publisher');
        // Friday, April 11, 2014
        $publishing_date = date('l, M d, Y', $publishing_date);
        $publisher_w_date = $publisher . ', ' . $publishing_date;
        $variables['publisher_w_date'] = '<div class="field field-name-field-publisher-w-date field-type-text-long field-label-above">
		<div class="field-label">Publisher&nbsp;</div>
		<div class="field-items">
		<div class="field-item even">' . $publisher_w_date . '</div></div></div>';
    }
    /* Process the date of event.
     */
    if ($variables['node']->type == 'event_ims') {
        $variables['event_date'] = _bvng_get_field_value('node', $variables['node'], 'field_dates');
    }
    /* Process menu_local_tasks()
     */
    global $user;
    // Bring the local tasks tab into node template.
    // @todo To investigate that this doesn't work for data use.
    $variables['tabs'] = menu_local_tabs();
    /* Determine what local task to show according to the role.
     * @todo To implement this using user_permission.
     */
    if (is_array($variables['tabs']['#primary'])) {
        foreach ($variables['tabs']['#primary'] as $key => $item) {
            // We don't need the view tab because we're already viewing it.
            switch ($item['#link']['title']) {
                case 'View':
                    unset($variables['tabs']['#primary'][$key]);
                    break;
                case 'Edit':
                    // Alter the 'edit' link to point to the node/%/edit
                    $variables['tabs']['#primary'][$key]['#link']['href'] = 'node/' . $variables['node']->nid . '/edit';
                    if (!in_array('Editors', $user->roles)) {
                        unset($variables['tabs']['#primary'][$key]);
                    }
                    break;
                case 'Devel':
                    // Alter the 'edit' link to point to the node/%/devel
                    $variables['tabs']['#primary'][$key]['#link']['href'] = 'node/' . $variables['node']->nid . '/devel';
                    if (!in_array('administrator', $user->roles)) {
                        unset($variables['tabs']['#primary'][$key]);
                    }
                    break;
            }
        }
    }
    /* Get also tagged
     */
    $variables['also_tagged'] = _bvng_get_also_tag_links($variables['node']);
    /* Prepare event location
     */
    if (isset($variables['node']->type) && $variables['node']->type == 'event_ims') {
        $markup_location = '';
        $city = _bvng_get_field_value('node', $variables['node'], 'field_city');
        $venuecountry = _bvng_get_field_value('node', $variables['node'], 'field_venuecountry');
        $markup_location .= $city == FALSE ? '' : $city;
        $markup_location .= $city == FALSE && $venuecountry == FALSE ? '' : ', ';
        $markup_location .= $venuecountry == FALSE ? '' : $venuecountry;
    }
    if (strlen($markup_location) !== 0) {
        $variables['event_location'] = $markup_location;
    }
}
function pn_node($node, $mode = 'n')
{
    if (!function_exists('prev_next_nid')) {
        return NULL;
    }
    switch ($mode) {
        case 'p':
            $n_nid = prev_next_nid($node->nid, 'prev');
            $link_text = 'previous';
            break;
        case 'n':
            $n_nid = prev_next_nid($node->nid, 'next');
            $link_text = 'next';
            break;
        default:
            return NULL;
    }
    if ($n_nid) {
        $n_node = node_load($n_nid);
        switch ($n_node->type) {
            case 'article':
                if ($mode == 'n') {
                    $title = 'Next Post &raquo';
                } else {
                    $title = '&laquo Previous Post';
                }
                $html = l($title, 'node/' . $n_node->nid, array('html' => TRUE, 'attributes' => array('class' => array('prev-next'), 'title' => $n_node->title)));
                return $html;
        }
    }
}