Your IP : 216.73.216.240


Current Path : /home/juvelize/www/components/com_proforms/includes/
Upload File :
Current File : /home/juvelize/www/components/com_proforms/includes/selections.php

<?php
/**
 * @name MOOJ Proforms
 * @version 1.3
 * @package proforms
 * @copyright Copyright (C) 2008-2012 Mad4Media. All rights reserved.
 * @author Dipl. Inf.(FH) Fahrettin Kutyol
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * Please note that some Javascript files are not under GNU/GPL License.
 * These files are under the mad4media license
 * They may edited and used infinitely but may not repuplished or redistributed.
 * For more information read the header notice of the js files.
 **/

defined( '_JEXEC' ) or die( 'Direct Access to this location is not allowed.' );

class MSelections{
	protected  $eid, $fid, $required , $active, $form, $parameters, $options, $alias;
	
	protected $values = array(), $sendValues = array();
	protected $element_rows = 3, $width = "100%", $alignment = 1, $use_values = 0;
	protected $pleaseSelectOption = M4J_LANG_PLEASE_SELECT;
	protected $options_data_type = 0;
	protected $sql = null;
	
	protected $buffer = "";
	
	public function __construct($data = null, $sendValues = null){
		$this->eid = $data->eid;
		$this->fid = $data->fid;
		$this->required = $data->required;
		$this->active = $data->active;
		$this->form = $data->form;
		$this->parameters = $data->parameters;
		$params = parameters($this->parameters);
		foreach ($params as $key => & $value){
			if($key == "pleaseSelectOption"){
				$text = base64_decode($value);
				if(trim($text)) $this->pleaseSelectOption = $text;
			}else $this->$key = $value;
		}
		if($this->sql){
			$this->sql = base64_decode($this->sql);
			$this->sql = preg_replace("(\r\n|\n|\r)", "", $this->sql);
		}
		
		if($this->options_data_type && $this->sql){
			MDebug::pre("INIT SQL". $data->question);
			$db = & JFactory::getDbo();
			$db->setQuery(dbEscape($this->sql));
			$rows = $db->loadObjectList();
			$this->options = array();
			foreach($rows as & $row){
				$text = isset($row->text) ? str_replace('"','“',strip_tags(trim($row->text)) ): null;
				$value = isset($row->value) ? str_replace('"','“',strip_tags(trim($row->value)) ): null;
				$value = (!$value && $text) ? $text : $value;
				if($text && $value){
					array_push($this->options, $text);
					array_push($this->values, $value);
				}
			}
			
			
		}else{
			$options = explode("\n", $data->options);
			if(sizeof($options) == 1){
				$this->use_values = 0;
				$this->options = explode(";", $options[0]);
			}elseif(sizeof($options) == 2){
				$this->options = explode(";", $options[0]);
				$vals = explode(";", $options[1]);
				$isEmpty = 1;
				foreach($vals as &$val){
					if($val){
						$isEmpty = 0;
						break;
					}
				}//EOF foreach
					
				if($isEmpty){
					$this->use_values = 0;
				}else{
					$this->values = $vals;
				}
			}//EOF values existing
		}
		
		
		
		
		$this->alias = $data->alias;
		$this->sendValues = $sendValues ? $sendValues : null;
		
		$this->options($this->form, $this->eid, $this->options, $this->element_rows, $this->width, $this->alignment, $this->required, $this->values, $this->use_values);
	
	}
	
	
	
	function options($form,$eid,$options=null,$element_rows=3,$width='100%',$alignment=1, $required = 0,$values = null, $use_values = 0 )
	{
		$out=null;
		if($width==null || intval($width)==0) $width='100%';
		$add='';
		if( substr($width, -1, 1)=='%') $add='%';
		else $add='px';
		$width = intval($width);
		if ($width == 0 || $width == NULL) $width = "100%";
		else $width .= $add;
	
		$eval = ($required != 0)? 'lang="1000" ' : 'lang="0" ';
			
		if($options!=null)
		{
			$option = $this->options;
			$value = $use_values ? $this->values : $option;
	
			$count = sizeof($option);
	
			switch($form)
			{
				case 30:
					$out .= '<div class="m4jFormElementWrap">'."\n";
					$out .= '<select '.$eval.'class="m4jSelection" id="m4j-'.$eid.'" name="m4j-'.$eid.'" style="width: '.$width.';" >'."\n".
							'<option value="">'.$this->pleaseSelectOption.'</option>'."\n";
					for($t=0;$t<$count;$t++){
						if(! trim($option[$t]) && ! trim($value[$t]) ) continue;
						$isSelected = $this->is_selected($this->sendValues, $value[$t], 30);
						$out .="\t".'<option value="'.$value[$t].'" '.$isSelected.'>'.$option[$t].'</option>'."\n";
					}
					$out .='</select>'."\n".'</div>'."\n";
					break;
							
				case 31:
							if($alignment==1)
							{
								$out .= '<div '.$eval.'class="m4jRadioWrap">'."\n".'<table style="width: '.$width.';" >'."\n".'<tbody>'."\n";
								for($t=0;$t<$count;$t++){
									if(! trim($option[$t]) && ! trim($value[$t]) ) continue;
									$isSelected = $this->is_selected($this->sendValues, $value[$t], 31);
									$out .= '<tr>'."\n".'<td align="left" valign="top">'."\n".
									'<div class="m4jSelectItem m4jSelectItemVertical">'."\n".
									'<input class="m4jRadio" type="radio" id="m4j-'.$eid.'-'.$t.'" name="m4j-'.$eid.'" value="'.$value[$t].'" '.$isSelected.'></input>'.$option[$t]."\n".
									'</div>'."\n".
									'</td>'."\n".'</tr>'."\n";
								}
								$out .='</tbody>'."\n".'</table>'."\n".'</div>'."\n";
							}
							else
							{
								$out .= '<div '.$eval.'class="m4jRadioWrap">'."\n".'<div style="width:'.$width.';">'."\n";
								for($t=0;$t<$count;$t++){
									if(! trim($option[$t]) && ! trim($value[$t]) ) continue;
									$isSelected = $this->is_selected($this->sendValues, $value[$t], 31);
									$out .= '<div class="m4jSelectItem">'."\n".
									'<input class="m4jRadio" type="radio" id="m4j-'.$eid.'-'.$t.'" name="m4j-'.$eid.'" value="'.$value[$t].'" '.$isSelected.'></input>'.$option[$t]."\n".
									'</div>'."\n";
								}
								$out .= '</div>'."\n".'</div>'."\n";
							}
							break;
								
				case 32:
					$out .= '<select '.$eval.'class="m4jSelection" id="m4j-'.$eid.'" name="m4j-'.$eid.'" size="'.$element_rows.'" style="width: '.$width.';">'."\n";
					for($t=0;$t<$count;$t++){
						if(! trim($option[$t]) && ! trim($value[$t]) ) continue;
						$isSelected = $this->is_selected($this->sendValues, $value[$t], 32);
						$out .='<option value="'.$value[$t].'" '.$isSelected.'>'.$option[$t].'</option>'."\n";
					}
					$out .='</select>'."\n";
					break;
							
				case 33:
						if(! is_array($this->sendValues)) $this->sendValues = array();
							if($alignment==1)
							{
								$out .= '<div '.$eval.'class="m4jCheckboxWrap">'."\n".'<table style="width: '.$width.';" >'."\n".'<tbody>'."\n";
	
								for($t=0;$t<$count;$t++){
									if(! trim($option[$t]) && ! trim($value[$t]) ) continue;
									$isSelected = $this->is_selected($this->sendValues, $value[$t], 33);
									$out .= '<tr>'."\n".'<td align="left" valign = "top">'."\n".
									'<div class="m4jSelectItem m4jSelectItemVertical">'."\n".
									'<input class="m4jCheckBox" type="checkbox" id="m4j-'.$eid.'-'.$t.'" name="m4j-'.$eid.'[]" value="'.$value[$t].'" '.$isSelected.'></input>'.$option[$t]."\n".
									'</div>'."\n".
									'</td>'."\n".'</tr>'."\n";
								}
							 $out .='</tbody>'."\n".'</table>'."\n".'</div>'."\n";
							}
							else
							{
								$out .= '<div '.$eval.'class="m4jCheckboxWrap">'."\n".'<div style="width:'.$width.';">'."\n";
								for($t=0;$t<$count;$t++){
									if(! trim($option[$t]) && ! trim($value[$t]) ) continue;
									$isSelected = $this->is_selected($this->sendValues, $value[$t], 33);
									$out .= '<div class="m4jSelectItem">'."\n".
									'<input class="m4jCheckBox" type="checkbox" id="m4j-'.$eid.'-'.$t.'" name="m4j-'.$eid.'[]" value="'.$value[$t].'" '.$isSelected.'></input>'.$option[$t]."\n".
									'</div>'."\n";
								}
								$out .= '</div>'."\n".'</div>'."\n";
							}
							break;
								
				case 34:
					if(! is_array($this->sendValues)) $this->sendValues = array();
					$out .= '<select class="m4jMultipleSelection" id="m4j-'.$eid.'" name="m4j-'.$eid.'[]" size="'.$element_rows.'" multiple="multiple" style="width: '.$width.';" >'."\n";
					for($t=0;$t<$count;$t++){
						if(! trim($option[$t]) && ! trim($value[$t]) ) continue;
						$isSelected = $this->is_selected($this->sendValues, $value[$t], 34);
						$out .='<option value="'.$value[$t].'" '.$isSelected.'>'.$option[$t].'</option>'."\n";
					}
					$out .='</select>'."\n";
					break;
			}
			}
			$this->buffer = $out;
	}//EOF options
	 
	function is_selected(& $value,$option,$form)	{
		if($form == 33 || $form == 34){
			foreach ($value as $key=> & $val){
				if($val == $option){
					unset($value[$key]);
					return ($form == 34) ? 'selected="selected"' : 'checked="checked"';
				}
			}
			return '';
		}else{
			$mark = 'selected="selected"';
			if($form==31 || $form==33) $mark ='checked="checked"';
			if($value==$option) return $mark;
			else return '';
		}
	}
	
	function getBuffer(){
		return $this->buffer;
	}
	
}