PHP Classes

File: php/drupal_learning.php

Recommend this page to a friend!
  Classes of Kabir Hossain   PHP CodeIgniter Tips Tricks   php/drupal_learning.php   Download  
File: php/drupal_learning.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP CodeIgniter Tips Tricks
Collection of tips and examples to use CodeIgniter
Author: By
Last change:
Date: 1 month ago
Size: 3,899 bytes
 

Contents

Class file image Download
<?php
function check_plain($text) {
  static
$php525;

  if (!isset(
$php525)) {
   
$php525 = version_compare(PHP_VERSION, '5.2.5', '>=');
  }
 
// We duplicate the preg_match() to validate strings as UTF-8 from
  // drupal_validate_utf8() here. This avoids the overhead of an additional
  // function call, since check_plain() may be called hundreds of times during
  // a request. For PHP 5.2.5+, this check for valid UTF-8 should be handled
  // internally by PHP in htmlspecialchars().
  // @see http://www.php.net/releases/5_2_5.php
  // @todo remove this when support for either IE6 or PHP < 5.2.5 is dropped.

 
if ($php525) {
    return
htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
  }
  return (
preg_match('/^./us', $text) == 1) ? htmlspecialchars($text, ENT_QUOTES, 'UTF-8') : '';
}


function
t($string, $args = array(), $langcode = NULL) {
  global
$language;
  static
$custom_strings;

 
$langcode = isset($langcode) ? $langcode : $language->language;

 
// First, check for an array of customized strings. If present, use the array
  // *instead of* database lookups. This is a high performance way to provide a
  // handful of string replacements. See settings.php for examples.
  // Cache the $custom_strings variable to improve performance.
 
if (!isset($custom_strings[$langcode])) {
   
$custom_strings[$langcode] = variable_get('locale_custom_strings_'. $langcode, array());
  }
 
// Custom strings work for English too, even if locale module is disabled.
 
if (isset($custom_strings[$langcode][$string])) {
   
$string = $custom_strings[$langcode][$string];
  }
 
// Translate with locale module if enabled.
 
elseif (function_exists('locale') && $langcode != 'en') {
   
$string = locale($string, $langcode);
  }
  if (empty(
$args)) {
    return
$string;
  }
  else {
   
// Transform arguments before inserting them.
   
foreach ($args as $key => $value) {
      switch (
$key[0]) {
        case
'@':
         
// Escaped only.
         
$args[$key] = check_plain($value);
          break;

        case
'%':
        default:
         
// Escaped and placeholder.
         
$args[$key] = theme('placeholder', $value);
          break;

        case
'!':
         
// Pass-through.
     
}
    }
    return
strtr($string, $args);
  }
}

function
format_plural($count, $singular, $plural, $args = array(), $langcode = NULL) {
 
$args['@count'] = $count;
  if (
$count == 1) {
    return
t($singular, $args, $langcode);
  }

 
// Get the plural index through the gettext formula.
 
$index = (function_exists('locale_get_plural')) ? locale_get_plural($count, $langcode) : -1;
 
// Backwards compatibility.
 
if ($index < 0) {
    return
t($plural, $args, $langcode);
  }
  else {
    switch (
$index) {
      case
"0":
        return
t($singular, $args, $langcode);
      case
"1":
        return
t($plural, $args, $langcode);
      default:
        unset(
$args['@count']);
       
$args['@count['. $index .']'] = $count;
        return
t(strtr($plural, array('@count' => '@count['. $index .']')), $args, $langcode);
    }
  }
}

function
drupal_add_css($path = NULL, $type = 'module', $media = 'all', $preprocess = TRUE) {
  static
$css = array();
  global
$language;

 
// Create an array of CSS files for each media type first, since each type needs to be served
  // to the browser differently.
 
if (isset($path)) {
   
// This check is necessary to ensure proper cascading of styles and is faster than an asort().
   
if (!isset($css[$media])) {
     
$css[$media] = array('module' => array(), 'theme' => array());
    }
   
$css[$media][$type][$path] = $preprocess;

   
// If the current language is RTL, add the CSS file with RTL overrides.
   
if ($language->direction == LANGUAGE_RTL) {
     
$rtl_path = str_replace('.css', '-rtl.css', $path);
      if (
file_exists($rtl_path)) {
       
$css[$media][$type][$rtl_path] = $preprocess;
      }
    }
  }

  return
$css;
}