ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
ilDataCollectionDatatype Class Reference

Class ilDataCollectionDatatype. More...

+ Collaboration diagram for ilDataCollectionDatatype:

Public Member Functions

 __construct ($a_id=0)
 Constructor public. More...
 
 getId ()
 Get field id. More...
 
 setTitle ($a_title)
 Set title. More...
 
 getTitle ()
 Get title. More...
 
 setStorageLocation ($a_id)
 Set Storage Location. More...
 
 getStorageLocation ()
 Get Storage Location. More...
 
 getDbType ()
 
 doRead ()
 Read Datatype. More...
 
 getProperties ($a_id)
 Get all properties of a Datatype. More...
 
 parseValue ($value, ilDataCollectionRecordField $record_field)
 Function to parse incoming data from form input value $value. More...
 
 parseExportValue ($value)
 Function to parse incoming data from form input value $value. More...
 
 parseHTML ($value, ilDataCollectionRecordField $record_field)
 function parses stored value in database to a html output for eg. More...
 
 parseFormInput ($value, ilDataCollectionRecordField $record_field)
 function parses stored value to the variable needed to fill into the form for editing. More...
 

Static Public Member Functions

static getAllDatatypes ()
 Get all possible Datatypes. More...
 
static checkValidity ($type_id, $value)
 now only distinguishes between number and text values More...
 
static getInputField (ilDataCollectionField $field)
 
static addFilterInputFieldToTable (ilDataCollectionField $field, ilTable2GUI &$table)
 addFilterInputFieldToTable This function adds the according filter item to the table gui passed as argument. More...
 
static passThroughFilter (ilDataCollectionRecord $record, ilDataCollectionField $field, $filter)
 

Data Fields

const INPUTFORMAT_TEXT = 2
 
const INPUTFORMAT_NUMBER = 1
 
const INPUTFORMAT_REFERENCE = 3
 
const INPUTFORMAT_BOOLEAN = 4
 
const INPUTFORMAT_DATETIME = 5
 
const INPUTFORMAT_FILE = 6
 
const INPUTFORMAT_RATING = 7
 
const INPUTFORMAT_ILIAS_REF = 8
 
const INPUTFORMAT_MOB = 9
 
const INPUTFORMAT_REFERENCELIST = 10
 
const LINK_MAX_LENGTH = 40
 

Protected Attributes

 $id
 
 $title
 
 $storageLocation
 
 $dbType
 

Private Member Functions

 shortenLink ($value)
 This method shortens a link. More...
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilDataCollectionDatatype::__construct (   $a_id = 0)

Constructor public.

Parameters
integerdatatype_id

Definition at line 64 of file class.ilDataCollectionDatatype.php.

References doRead().

65  {
66  if ($a_id != 0)
67  {
68  $this->id = $a_id;
69  $this->doRead();
70  }
71  }
+ Here is the call graph for this function:

Member Function Documentation

◆ addFilterInputFieldToTable()

static ilDataCollectionDatatype::addFilterInputFieldToTable ( ilDataCollectionField  $field,
ilTable2GUI $table 
)
static

addFilterInputFieldToTable This function adds the according filter item to the table gui passed as argument.

Parameters
$fieldilDataCollectionField The field which should be filterable.
&$tableilTable2GUI The table you want the filter to be added to.

Definition at line 282 of file class.ilDataCollectionDatatype.php.

References $lng, $options, ilTable2GUI\addFilterItemByMetaType(), ilTable2GUI\FILTER_DATE_RANGE, ilTable2GUI\FILTER_NUMBER_RANGE, ilTable2GUI\FILTER_SELECT, ilTable2GUI\FILTER_TEXT, ilDataCollectionField\getDatatypeId(), ilDataCollectionCache\getFieldCache(), ilDataCollectionField\getFieldRef(), ilDataCollectionField\getId(), ilDataCollectionCache\getTableCache(), ilDataCollectionField\getTitle(), INPUTFORMAT_BOOLEAN, INPUTFORMAT_DATETIME, INPUTFORMAT_FILE, INPUTFORMAT_ILIAS_REF, INPUTFORMAT_MOB, INPUTFORMAT_NUMBER, INPUTFORMAT_RATING, INPUTFORMAT_REFERENCE, INPUTFORMAT_REFERENCELIST, and INPUTFORMAT_TEXT.

Referenced by ilDataCollectionRecordListTableGUI\initFilter().

283  {
284  global $lng;
285 
286  $type_id = $field->getDatatypeId();
287  $input = NULL;
288 
289  switch($type_id)
290  {
292  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId());
293  $input->setSubmitFormOnEnter(true);
294  break;
296  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_NUMBER_RANGE, false, $field->getId());
297  $input->setSubmitFormOnEnter(true);
298  break;
300  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId());
301  $input->setOptions(array("" => $lng->txt("dcl_any"), "not_checked" => $lng->txt("dcl_not_checked"), "checked" => $lng->txt("dcl_checked")));
302  break;
304  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_DATE_RANGE, false, $field->getId());
305  $input->setSubmitFormOnEnter(true);
306  $input->setStartYear(date("Y")-100);
307  break;
309  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId());
310  $input->setSubmitFormOnEnter(true);
311  break;
313  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId());
314  $ref_field_id = $field->getFieldRef();
315  $ref_field = ilDataCollectionCache::getFieldCache($ref_field_id);
316  $ref_table = ilDataCollectionCache::getTableCache($ref_field->getTableId());
317  $options = array();
318  foreach($ref_table->getRecords() as $record)
319  {
320  $options[$record->getId()] = $record->getRecordFieldValue($ref_field_id);
321  }
322  // Sort by values ASC
323  asort($options);
324  $options = array('' => $lng->txt('dcl_any')) + $options;
325  $input->setOptions($options);
326  break;
328  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId());
329  $options = array("" => $lng->txt("dcl_any"), 1 => ">1", 2 => ">2", 3 => ">3", 4 => ">4", 5 => "5");
330  $input->setOptions($options);
331  break;
333  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId());
334  $input->setSubmitFormOnEnter(true);
335  break;
337  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_TEXT, false, $field->getId());
338  $input->setSubmitFormOnEnter(true);
339  break;
341  //FIXME
342  $input = $table->addFilterItemByMetaType("filter_".$field->getId(), ilTable2GUI::FILTER_SELECT, false, $field->getId());
343  $ref_field_id = $field->getFieldRef();
344  $ref_field = ilDataCollectionCache::getFieldCache($ref_field_id);
345  $ref_table = ilDataCollectionCache::getTableCache($ref_field->getTableId());
346  $options = array();
347  foreach($ref_table->getRecords() as $record)
348  {
349  $options[$record->getId()] = $record->getRecordFieldValue($ref_field_id);
350  }
351  // Sort by values ASC
352  asort($options);
353  $options = array('' => $lng->txt('dcl_any')) + $options;
354  $input->setOptions($options);
355  break;
356  }
357 
358  if($input != NULL)
359  {
360  $input->setTitle($field->getTitle());
361  }
362 
363  return $input;
364  }
addFilterItemByMetaType($id, $type=self::FILTER_TEXT, $a_optional=false, $caption=NULL)
Add filter by standard type.
const FILTER_NUMBER_RANGE
if(!is_array($argv)) $options
global $lng
Definition: privfeed.php:40
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkValidity()

static ilDataCollectionDatatype::checkValidity (   $type_id,
  $value 
)
static

now only distinguishes between number and text values

Parameters
$type_idint
$valuemixed
Returns
bool

Definition at line 199 of file class.ilDataCollectionDatatype.php.

Referenced by ilDataCollectionField\checkValidity().

200  {
201  //required is checked by form. so null input is valid.
202  if($value == NULL)
203  {
204  return true;
205  }
206 
207  switch($type_id)
208  {
209  case self::INPUTFORMAT_NUMBER:
210  $return = is_numeric($value);
211  break;
212  default:
213  $return = true;
214  break;
215  }
216  return $return;
217  }
+ Here is the caller graph for this function:

◆ doRead()

ilDataCollectionDatatype::doRead ( )

Read Datatype.

Definition at line 134 of file class.ilDataCollectionDatatype.php.

References $query, getId(), setStorageLocation(), and setTitle().

Referenced by __construct().

135  {
136  global $ilDB;
137 
138  $query = "SELECT * FROM il_dcl_datatype WHERE id = ".$ilDB->quote($this->getId(),"integer")." ORDER BY sort";
139  $set = $ilDB->query($query);
140  $rec = $ilDB->fetchAssoc($set);
141 
142  $this->setTitle($rec["title"]);
143  $this->dbType = $rec["ildb_type"];
144  $this->setStorageLocation($rec["storage_location"]);
145  }
setStorageLocation($a_id)
Set Storage Location.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAllDatatypes()

static ilDataCollectionDatatype::getAllDatatypes ( )
static

Get all possible Datatypes.

Returns
array

Definition at line 153 of file class.ilDataCollectionDatatype.php.

References $query.

Referenced by ilDataCollectionFieldEditGUI\getValues(), and ilDataCollectionFieldEditGUI\initForm().

154  {
155  global $ilDB;
156 
157  $query = "SELECT * FROM il_dcl_datatype ORDER BY sort";
158  $set = $ilDB->query($query);
159 
160  $all = array();
161  while($rec = $ilDB->fetchAssoc($set))
162  {
163  $all[$rec[id]] = $rec;
164  }
165 
166  return $all;
167  }
+ Here is the caller graph for this function:

◆ getDbType()

ilDataCollectionDatatype::getDbType ( )

Definition at line 126 of file class.ilDataCollectionDatatype.php.

References $dbType.

◆ getId()

ilDataCollectionDatatype::getId ( )

Get field id.

Returns
int

Definition at line 78 of file class.ilDataCollectionDatatype.php.

References $id.

Referenced by doRead().

+ Here is the caller graph for this function:

◆ getInputField()

static ilDataCollectionDatatype::getInputField ( ilDataCollectionField  $field)
static
Parameters
$type_id
ilDataCollectionField$field
Returns
ilCheckboxInputGUI|ilDateTimeInputGUI|ilFileInputGUI|ilTextInputGUI|NULL

Definition at line 224 of file class.ilDataCollectionDatatype.php.

References $lng, $title, ilDataCollectionField\getDatatypeId(), ilDataCollectionField\getDescription(), ilDataCollectionField\getId(), ilDataCollectionField\getLength(), ilDataCollectionField\getTextArea(), ilDataCollectionField\getTitle(), INPUTFORMAT_BOOLEAN, INPUTFORMAT_DATETIME, INPUTFORMAT_FILE, INPUTFORMAT_ILIAS_REF, INPUTFORMAT_MOB, INPUTFORMAT_NUMBER, INPUTFORMAT_RATING, INPUTFORMAT_REFERENCE, INPUTFORMAT_TEXT, ilDataCollectionField\isNRef(), ilFormPropertyGUI\setInfo(), ilDateTimeInputGUI\setStartYear(), and ilTextInputGUI\setValue().

Referenced by ilDataCollectionRecordEditGUI\initForm().

225  {
226  global $lng;
227  $type_id = $field->getDatatypeId();
228  $title = $field->getTitle();
229  switch($type_id)
230  {
232  $input = new ilTextInputGUI($title, 'field_'.$field->getId());
233  if($field->getTextArea())
234  $input = new ilTextAreaInputGUI($title, 'field_'.$field->getId());
235  if($field->getLength()) {
236  $input->setInfo($lng->txt("dcl_max_text_length").": ".$field->getLength());
237  if (!$field->getTextArea()) $input->setMaxLength($field->getLength());
238  }
239  break;
241  $input = new ilNumberInputGUI($title, 'field_' . $field->getId());
242  break;
244  $input = new ilCheckboxInputGUI($title, 'field_'.$field->getId());
245  break;
247  $input = new ilDateTimeInputGUI($title, 'field_'.$field->getId());
248  $input->setStartYear(date("Y")-100);
249  break;
251  $input = new ilFileInputGUI($title, 'field_'.$field->getId());
252  break;
254  if(!$field->isNRef())
255  $input = new ilSelectInputGUI($title, 'field_'.$field->getId());
256  else
257  $input = new ilMultiSelectInputGUI($title,'field_'.$field->getId());
258  break;
260  $input = new ilTextInputGUI($title, 'field_'.$field->getId());
261  $input->setValue($lng->txt("dcl_editable_in_table_gui"));
262  $input->setDisabled(true);
263  break;
265  $input = new ilDataCollectionTreePickInputGUI($title, 'field_'.$field->getId());
266  break;
268  $input = new ilImageFileInputGUI($title, 'field_'.$field->getId());
269  $input->setAllowDeletion(true);
270  break;
271  }
272  if($field->getDescription())
273  $input->setInfo($field->getDescription().($input->getInfo()?"<br>".$input->getInfo():""));
274  return $input;
275  }
This class represents a selection list property in a property form.
This class represents a file property in a property form.
This class represents a checkbox property in a property form.
setStartYear($a_year)
Set start year.
This class represents a date/time property in a property form.
setInfo($a_info)
Set Information Text.
This class represents a multi selection list property in a property form.
This class represents a number property in a property form.
This class represents a text property in a property form.
This class represents an image file property in a property form.
global $lng
Definition: privfeed.php:40
This class represents a text area property in a property form.
setValue($a_value)
Set Value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getProperties()

ilDataCollectionDatatype::getProperties (   $a_id)

Get all properties of a Datatype.

Parameters
int$a_iddatatype_id
Returns
array

Definition at line 176 of file class.ilDataCollectionDatatype.php.

References $query.

Referenced by ilDataCollectionFieldEditGUI\getValues(), ilDataCollectionFieldEditGUI\initForm(), and ilDataCollectionFieldEditGUI\save().

177  {
178  global $ilDB;
179 
180  $query = "SELECT * FROM il_dcl_datatype_prop
181  WHERE datatype_id = ".$ilDB->quote($a_id,"integer");
182  $set = $ilDB->query($query);
183 
184  $all = array();
185  while($rec = $ilDB->fetchAssoc($set))
186  {
187  $all[] = $rec;
188  }
189 
190  return $all;
191  }
+ Here is the caller graph for this function:

◆ getStorageLocation()

ilDataCollectionDatatype::getStorageLocation ( )

Get Storage Location.

Returns
int

Definition at line 118 of file class.ilDataCollectionDatatype.php.

References $storageLocation.

◆ getTitle()

ilDataCollectionDatatype::getTitle ( )

Get title.

Returns
string

Definition at line 98 of file class.ilDataCollectionDatatype.php.

References $title.

◆ parseExportValue()

ilDataCollectionDatatype::parseExportValue (   $value)

Function to parse incoming data from form input value $value.

returns the strin/number/etc. to store in the database.

Parameters
$value
Returns
int|string

Definition at line 577 of file class.ilDataCollectionDatatype.php.

References $file, ilObject2\_exists(), ilObject2\_lookupType(), INPUTFORMAT_BOOLEAN, INPUTFORMAT_DATETIME, INPUTFORMAT_FILE, and INPUTFORMAT_MOB.

578  {
579  $return = false;
580 
582  {
583  if(!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "file") {
584  return;
585  }
586 
587 
588 
589  $file = $value;
590  if($file!="-")
591  {
592  $file_obj = new ilObjFile($file, false);
593  $file_name = $file_obj->getFileName();
594 
595  $return = $file_name;
596  }
597  else
598  {
599  $return = $file;
600  }
601  }
602  elseif($this->id == ilDataCollectionDatatype::INPUTFORMAT_MOB)
603  {
604  $file = $value;
605  if($file!="-")
606  {
607  $mob = new ilObjMediaObject($file, false);
608  $mob_name = $mob->getTitle();
609 
610  $return = $mob_name;
611  }
612  else
613  {
614  $return = $file;
615  }
616  }
618  {
619  $return = substr($value, 0, 10);
620  }
622  {
623  $return = $value ? 1 : 0;
624  }
625  else
626  {
627  $return = $value;
628  }
629  return $return;
630  }
print $file
Class ilObjFile.
Class ilObjMediaObject.
static _lookupType($a_id, $a_reference=false)
static _exists($a_id, $a_reference=false)
+ Here is the call graph for this function:

◆ parseFormInput()

ilDataCollectionDatatype::parseFormInput (   $value,
ilDataCollectionRecordField  $record_field 
)

function parses stored value to the variable needed to fill into the form for editing.

Parameters
$value
Returns
mixed

Definition at line 759 of file class.ilDataCollectionDatatype.php.

References ilObject2\_exists(), ilObject2\_lookupType(), ilDataCollectionRecordField\getField(), and ilDataCollectionField\PROPERTYID_TEXTAREA.

759  {
760  switch($this->id)
761  {
762  case self::INPUTFORMAT_DATETIME:
763  if(!$value || $value == "-")
764  return NULL;
765  //$datetime = new DateTime();
766  $input = array( "date" => substr($value, 0, -9),
767  "time" => "00:00:00");
768  break;
769  case self::INPUTFORMAT_FILE:
770 
771  if(!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "file") {
772  $input = "";
773  break;
774  }
775 
776  $file_obj = new ilObjFile($value, false);
777  //$input = ilObjFile::_lookupAbsolutePath($value);
778  $input = $file_obj->getFileName();
779  break;
780  case self::INPUTFORMAT_MOB:
781  if(!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "mob") {
782  $input = "";
783  break;
784  }
785 
786  $media_obj = new ilObjMediaObject($value, false);
787  //$input = ilObjFile::_lookupAbsolutePath($value);
788  $input = $value;
789  break;
790  case self::INPUTFORMAT_TEXT:
791  $arr_properties = $record_field->getField()->getProperties();
792  if($arr_properties[ilDataCollectionField::PROPERTYID_TEXTAREA]){
793  $breaks = array("<br />");
794  $input = str_ireplace($breaks, "", $value);
795  }
796  else
797  $input= $value;
798  break;
799  default:
800  $input = $value;
801  break;
802  }
803  return $input;
804  }
Class ilObjFile.
Class ilObjMediaObject.
static _lookupType($a_id, $a_reference=false)
static _exists($a_id, $a_reference=false)
+ Here is the call graph for this function:

◆ parseHTML()

ilDataCollectionDatatype::parseHTML (   $value,
ilDataCollectionRecordField  $record_field 
)

function parses stored value in database to a html output for eg.

the record list gui.

Parameters
$value
Returns
mixed

Definition at line 637 of file class.ilDataCollectionDatatype.php.

References $ilCtrl, ilObject2\_exists(), ilObjMediaObject\_getDirectory(), ilObject2\_lookupType(), ilDatePresentation\formatDate(), ilDataCollectionRecordField\getField(), ilUtil\getImagePath(), ilDataCollectionRecordField\getRecord(), IL_CAL_DATETIME, INPUTFORMAT_TEXT, ilDataCollectionField\PROPERTYID_URL, and shortenLink().

638  {
639  switch($this->id)
640  {
641  case self::INPUTFORMAT_DATETIME:
643  break;
644 
645  case self::INPUTFORMAT_FILE:
646  global $ilCtrl;
647 
648  if(!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "file") {
649  $html = "";
650  break;
651  }
652 
653  $file_obj = new ilObjFile($value,false);
654 
655  $ilCtrl->setParameterByClass("ildatacollectionrecordlistgui", "record_id", $record_field->getRecord()->getId());
656  $ilCtrl->setParameterByClass("ildatacollectionrecordlistgui", "field_id", $record_field->getField()->getId());
657 
658  $html = "<a href=".$ilCtrl->getLinkTargetByClass("ildatacollectionrecordlistgui", "sendFile")." >".$file_obj->getFileName()."</a>";
659  break;
660 
661  case self::INPUTFORMAT_MOB:
662 
663  $mob = new ilObjMediaObject($value,false);
664  $dir = ilObjMediaObject::_getDirectory($mob->getId());
665  $media_item = $mob->getMediaItem('Standard');
666  if(!$media_item->location) {
667  $html = "";
668  break;
669  }
670  $html = '<img src="'.$dir."/".$media_item->location.'" />';
671  break;
672 
673  case self::INPUTFORMAT_BOOLEAN:
674  switch($value)
675  {
676  case 0:
677  $im = ilUtil::getImagePath('icon_not_ok.png');
678  break;
679  case 1:
680  $im = ilUtil::getImagePath('icon_ok.png');
681  break;
682  }
683  $html = "<img src='".$im."'>";
684  break;
685 
686 
688  //Property URL
689 
690  $arr_properties = $record_field->getField()->getProperties();
691  if ($arr_properties[ilDataCollectionField::PROPERTYID_URL]) {
692  $link = $value;
693 
694  $preg_match = preg_match("/^[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i", $value);
695 
696  if ($preg_match) {
697  $value = "mailto:" . $value;
698  } elseif (!(preg_match('~(^(news|(ht|f)tp(s?)\://){1}\S+)~i', $value))) {
699  return $link;
700  }
701 
702  $link = $this->shortenLink($link);
703  $html = "<a target='_blank' href='" . $value . "'>" . $link . "</a>";
704  } else {
705  $html = $value;
706  }
707  // BEGIN EASTEREGG
708  /*if(strtolower($value) == "nyan it plx!"){
709  $link = ilLink::_getLink($_GET['ref_id']);
710  $html = "<a href='http://nyanit.com/".$link."'>Data Collections rock!</a>";
711  }*/
712  // END EASTEREGG
713  break;
714 
715  default:
716  $html = $value;
717  break;
718  }
719  return $html;
720  }
const IL_CAL_DATETIME
global $ilCtrl
Definition: ilias.php:18
Class for single dates.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
Class ilObjFile.
static formatDate(ilDateTime $date)
Format a date public.
Class ilObjMediaObject.
shortenLink($value)
This method shortens a link.
static _lookupType($a_id, $a_reference=false)
static _exists($a_id, $a_reference=false)
_getDirectory($a_mob_id)
get directory for files of media object (static)
+ Here is the call graph for this function:

◆ parseValue()

ilDataCollectionDatatype::parseValue (   $value,
ilDataCollectionRecordField  $record_field 
)

Function to parse incoming data from form input value $value.

returns the strin/number/etc. to store in the database.

Parameters
$value
ilDataCollectionRecordField$record_field
Returns
int|string

Definition at line 450 of file class.ilDataCollectionDatatype.php.

References $file, $location, $title, ilObjMediaObject\_determineWidthHeight(), ilObjMediaObject\_getDirectory(), ilObjMediaObject\_resizeImage(), ilObjMediaObject\_saveUsage(), ilUtil\getASCIIFilename(), ilDataCollectionRecordField\getField(), ilMimeTypeUtil\getMimeType(), ilObjMediaObject\getMimeType(), ilDataCollectionRecordField\getRecord(), ilDataCollectionRecordField\getValue(), INPUTFORMAT_BOOLEAN, INPUTFORMAT_DATETIME, INPUTFORMAT_FILE, INPUTFORMAT_MOB, INPUTFORMAT_NUMBER, INPUTFORMAT_TEXT, ilUtil\moveUploadedFile(), ilDataCollectionField\PROPERTYID_HEIGHT, ilDataCollectionField\PROPERTYID_TEXTAREA, ilDataCollectionField\PROPERTYID_WIDTH, and ilUtil\renameExecutables().

451  {
452  $return = false;
453 
455  {
456  $file = $value;
457 
458  if($file['tmp_name'])
459  {
460  $file_obj = new ilObjFile();
461 
462  $file_obj->setType("file");
463  $file_obj->setTitle($file["name"]);
464  $file_obj->setFileName($file["name"]);
465  $file_obj->setFileType(ilMimeTypeUtil::getMimeType("", $file["name"], $file["type"]));
466  $file_obj->setFileSize($file["size"]);
467  $file_obj->setMode("object");
468  $file_obj->create();
469  $file_obj->getUploadFile($file["tmp_name"], $file["name"]);
470 
471  $file_id = $file_obj->getId();
472  $return = $file_id;
473  }else
474  $return = $record_field->getValue();
475  }
476  elseif($this->id == ilDataCollectionDatatype::INPUTFORMAT_MOB)
477  {
478  if($value == -1) //marked for deletion.
479  return 0;
480 
481  $media = $value;
482  if($media['tmp_name'])
483  {
484  $mob = new ilObjMediaObject();
485  $mob->setTitle($media['name']);
486  $mob->create();
487 
488  $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
489  if (!is_dir($mob_dir))
490  $mob->createDirectory();
491 
492  $media_item = new ilMediaItem();
493  $mob->addMediaItem($media_item);
494  $media_item->setPurpose("Standard");
495 
496 
497  $file_name = ilUtil::getASCIIFilename($media['name']);
498  $file_name = str_replace(" ", "_", $file_name);
499 
500  $file = $mob_dir."/".$file_name;
501  $title = $file_name;
502 
503  ilUtil::moveUploadedFile($media['tmp_name'], $file_name, $file);
504  ilUtil::renameExecutables($mob_dir);
505 
506  list($width, $height, $type, $attr) = getimagesize($file);
507 
508  $arr_properties = $record_field->getField()->getProperties();
509  $new_width = $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH];
510  $new_height = $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT];
511  if($new_width || $new_height)
512  {
513  //only resize if it is bigger, not if it is smaller
514  if($new_height < $height && $new_width < $width)
515 
516  //resize proportional
517  if(!$new_height || !$new_width)
518  {
520 
521  $wh = ilObjMediaObject::_determineWidthHeight("", "", $format,
522  "File", $file, "",
523  true, false, $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH], (int) $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT]);
524  }
525  else
526  {
527  $wh['width'] = (int) $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH];
528  $wh['height'] = (int) $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT];
529  }
530 
531  $location = ilObjMediaObject::_resizeImage($file,$wh['width'],$wh['height'],false);
532  } else {
533  $location = $title;
534  }
535  ilObjMediaObject::_saveUsage($mob->getId(), "dcl:html", $record_field->getRecord()->getTable()->getCollectionObject()->getId());
537  $media_item->setFormat($format);
538  $media_item->setLocation($location);
539  $media_item->setLocationType("LocalFile");
540 
541 
542  $mob->update();
543  $return = $mob->getId();
544  }
545  else
546  $return = $record_field->getValue();
547  }
549  {
550  return $value["date"]." ".$value["time"];
551  }
553  {
554  $return = $value ? 1 : 0;
555  }elseif($this->id == ilDataCollectionDatatype::INPUTFORMAT_TEXT){
556  $arr_properties = $record_field->getField()->getProperties();
557  if($arr_properties[ilDataCollectionField::PROPERTYID_TEXTAREA])
558  $return = nl2br($value);
559  else
560  $return = $value;
561  } else if ($this->id == ilDataCollectionDatatype::INPUTFORMAT_NUMBER) {
562  $return = ($value == '') ? null : $value; //SW, Ilias Mantis #0011799: Return null otherwise '' is casted to 0 in DB
563  }
564  else
565  {
566  $return = $value;
567  }
568  return $return;
569  }
print $file
$location
Definition: buildRTE.php:44
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static getMimeType($a_file)
get mime type for file
_saveUsage($a_mob_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_lang="-")
Save usage of mob within another container (e.g.
static getMimeType($a_file="", $a_filename="", $a_mime="")
Get Mime type.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
Class ilObjFile.
Class ilMediaItem.
Class ilObjMediaObject.
static renameExecutables($a_dir)
Rename uploaded executables for security reasons.
static _determineWidthHeight($a_def_width, $a_def_height, $a_format, $a_type, $a_file, $a_reference, $a_constrain_proportions, $a_use_original, $a_user_width, $a_user_height)
Determine width and height.
_resizeImage($a_file, $a_width, $a_height, $a_constrain_prop=false)
resize image and return new image file ("_width_height" string appended)
_getDirectory($a_mob_id)
get directory for files of media object (static)
+ Here is the call graph for this function:

◆ passThroughFilter()

static ilDataCollectionDatatype::passThroughFilter ( ilDataCollectionRecord  $record,
ilDataCollectionField  $field,
  $filter 
)
static

Definition at line 369 of file class.ilDataCollectionDatatype.php.

References $pass, ilObject2\_exists(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject2\_lookupType(), ilDataCollectionField\getDatatypeId(), ilDataCollectionField\getId(), ilDataCollectionField\getProperties(), ilDataCollectionRecord\getRecordFieldValue(), INPUTFORMAT_BOOLEAN, INPUTFORMAT_DATETIME, INPUTFORMAT_FILE, INPUTFORMAT_ILIAS_REF, INPUTFORMAT_MOB, INPUTFORMAT_NUMBER, INPUTFORMAT_RATING, INPUTFORMAT_REFERENCE, INPUTFORMAT_TEXT, and ilDataCollectionField\PROPERTYID_N_REFERENCE.

Referenced by ilDataCollectionRecord\passThroughFilter().

370  {
371  $pass = false;
372  $type_id = $field->getDatatypeId();
373  $value = $record->getRecordFieldValue($field->getId());
374 
375  switch($type_id)
376  {
378  if(!$filter || strpos(strtolower($value), strtolower($filter)) !== false)
379  $pass = true;
380  break;
382  if((!$filter['from'] || $value >= $filter['from']) && (!$filter['to'] || $value <= $filter['to']))
383  $pass = true;
384  break;
386  if((($filter == "checked" && $value == 1) || ($filter == "not_checked" && $value == 0))|| $filter == '' || !$filter)
387  $pass = true;
388  break;
390  if((!$filter['from'] || $value >= $filter['from']) && (!$filter['to'] || $value <= $filter['to']))
391  $pass = true;
392  break;
394  if(!ilObject2::_exists($value) || ilObject2::_lookupType($value, false) != "file") {
395 
396  $pass = true;
397  break;
398  }
399 
400  $file_obj = new ilObjFile($value, false);
401  $file_name = $file_obj->getTitle();
402  if(!$filter || strpos(strtolower($file_name), strtolower($filter)) !== false)
403  $pass = true;
404  break;
406  $props = $field->getProperties();
407  if($filter && $props[ilDataCollectionField::PROPERTYID_N_REFERENCE] && is_array($value) && in_array($filter, $value))
408  $pass = true;
409  if(!$filter || $filter == $value)
410  $pass = true;
411  break;
413  if(!$filter || $filter <= $value['avg'])
414  $pass = true;
415  break;
417  $obj_id = ilObject::_lookupObjId($value);
418  if(!$filter || strpos(strtolower(ilObject::_lookupTitle($obj_id)), strtolower($filter)) !== false)
419  $pass = true;
420  break;
422  $m_obj = new ilObjMediaObject($value, false);
423  $file_name = $m_obj->getTitle();
424  if(!$filter || strpos(strtolower($file_name), strtolower($filter)) !== false)
425  $pass = true;
426  break;
427  }
428 
429  //for the fields owner and last edit by, we check the name, not the ID
430  if(($field->getId() == "owner" || $field->getId() == "last_edit_by") && $filter)
431  {
432  $pass = false;
433  $user = new ilObjUser($value);
434  if(strpos($user->getFullname(), $filter) !== false)
435  {
436  $pass = true;
437  }
438  }
439 
440  return $pass;
441  }
static _lookupTitle($a_id)
lookup object title
getProperties()
Get all properties of a field.
static _lookupObjId($a_id)
Class ilObjFile.
Class ilObjMediaObject.
static _lookupType($a_id, $a_reference=false)
static _exists($a_id, $a_reference=false)
getRecordFieldValue($field_id)
Get Field Value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setStorageLocation()

ilDataCollectionDatatype::setStorageLocation (   $a_id)

Set Storage Location.

Parameters
int$a_id

Definition at line 108 of file class.ilDataCollectionDatatype.php.

Referenced by doRead().

109  {
110  $this->storageLocation = $a_id;
111  }
+ Here is the caller graph for this function:

◆ setTitle()

ilDataCollectionDatatype::setTitle (   $a_title)

Set title.

Parameters
string$a_title

Definition at line 88 of file class.ilDataCollectionDatatype.php.

Referenced by doRead().

89  {
90  $this->title = $a_title;
91  }
+ Here is the caller graph for this function:

◆ shortenLink()

ilDataCollectionDatatype::shortenLink (   $value)
private

This method shortens a link.

The http(s):// and the www part are taken away. The rest will be shortened to sth similar to: "somelink.de/lange...gugus.html".

Parameters
$valueThe link in it's original form.
Returns
string The shortened link

Definition at line 731 of file class.ilDataCollectionDatatype.php.

Referenced by parseHTML().

731  {
732  if (strlen($value) > self::LINK_MAX_LENGTH) {
733  if (substr($value, 0, 7) == "http://") {
734  $value = substr($value, 7);
735  }
736  if (substr($value, 0, 8) == "https://") {
737  $value = substr($value, 8);
738  }
739  if (substr($value, 0, 4) == "www.") {
740  $value = substr($value, 4);
741  }
742  }
743  $link = $value;
744  if (strlen($value) > self::LINK_MAX_LENGTH) {
745  $link = substr($value, 0, (self::LINK_MAX_LENGTH - 3) / 2);
746  $link .= "...";
747  $link .= substr($value, - (self::LINK_MAX_LENGTH - 3) / 2);
748  }
749 
750  return $link;
751  }
+ Here is the caller graph for this function:

Field Documentation

◆ $dbType

ilDataCollectionDatatype::$dbType
protected

Definition at line 32 of file class.ilDataCollectionDatatype.php.

Referenced by getDbType().

◆ $id

ilDataCollectionDatatype::$id
protected

Definition at line 29 of file class.ilDataCollectionDatatype.php.

Referenced by getId().

◆ $storageLocation

ilDataCollectionDatatype::$storageLocation
protected

Definition at line 31 of file class.ilDataCollectionDatatype.php.

Referenced by getStorageLocation().

◆ $title

ilDataCollectionDatatype::$title
protected

Definition at line 30 of file class.ilDataCollectionDatatype.php.

Referenced by getInputField(), getTitle(), and parseValue().

◆ INPUTFORMAT_BOOLEAN

◆ INPUTFORMAT_DATETIME

◆ INPUTFORMAT_FILE

◆ INPUTFORMAT_ILIAS_REF

◆ INPUTFORMAT_MOB

◆ INPUTFORMAT_NUMBER

◆ INPUTFORMAT_RATING

◆ INPUTFORMAT_REFERENCE

◆ INPUTFORMAT_REFERENCELIST

const ilDataCollectionDatatype::INPUTFORMAT_REFERENCELIST = 10

◆ INPUTFORMAT_TEXT

◆ LINK_MAX_LENGTH

const ilDataCollectionDatatype::LINK_MAX_LENGTH = 40

Definition at line 55 of file class.ilDataCollectionDatatype.php.


The documentation for this class was generated from the following file: