You are here

intlinks_common_functions.inc in Internal Links 7.2

This file includes functions which are used in more than one of the filters included in the Internal Links (intlinks) module.

@author Lowell Montgomery | Cocomore AG

File

intlinks_common_functions.inc
View source
<?php

/**
 * @file
 * This file includes functions which are used in more than one of the filters
 * included in the Internal Links (intlinks) module.
 *
 * @author Lowell Montgomery | Cocomore AG
 *   @see http://drupal.org/user/628196
 */

/**
 * Tests a path to see if it is a proper "normal Drupal path": node/[nid].
 *
 * It also does some basic clean-up of the path internally, to save this being
 * done in every block that looks at possible "normal Drupal paths".
 *
 * @param $path
 *   A path passed to the function.
 *
 * @return
 *   The node ID (does not test to see if the node is real or published) or
 *   FALSE, if the "node path" is actually a node/add, node/[nid]/edit, etc
 *   -type path (special system path related to nodes, but not actually to a
 *   node.
 */
function intlinks_is_node_path($path) {
  if (strpos($path, 'node/') === FALSE) {
    return FALSE;
  }

  // Trim any leading slash from original link.
  $path = ltrim($path, '/');

  // This function should also deal with the possibility that it was passed a
  // path that still has a "anchor" text appended to it. The part
  // after the slash should all be numeric for the next test.
  $path_parts = explode('#', $path);
  $path = $path_parts[0];

  // We also want to omit any queries.
  $path_parts = explode('?', $path);
  $path = $path_parts[0];

  // Now the path is trimmed of anything extraneous.
  $path_parts = explode('/', $path);
  if (count($path_parts) == 2 && ctype_digit($path_parts[1])) {

    // $path_parts[1] is the node id.
    return $path_parts[1];
  }
  else {
    return FALSE;
  }
}

Functions

Namesort descending Description
intlinks_is_node_path Tests a path to see if it is a proper "normal Drupal path": node/[nid].