Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
<?php

namespace PhpOffice\PhpSpreadsheet\Style;

use PhpOffice\PhpSpreadsheet\IComparable;
> use PhpOffice\PhpSpreadsheet\Style\ConditionalFormatting\ConditionalDataBar;
class Conditional implements IComparable { // Condition types const CONDITION_NONE = 'none';
> const CONDITION_BEGINSWITH = 'beginsWith';
const CONDITION_CELLIS = 'cellIs';
> const CONDITION_CONTAINSBLANKS = 'containsBlanks'; const CONDITION_CONTAINSTEXT = 'containsText'; > const CONDITION_CONTAINSERRORS = 'containsErrors';
const CONDITION_EXPRESSION = 'expression';
> const CONDITION_DATABAR = 'dataBar'; const CONDITION_CONTAINSBLANKS = 'containsBlanks'; > const CONDITION_ENDSWITH = 'endsWith';
< const CONDITION_CONTAINSBLANKS = 'containsBlanks';
> const CONDITION_NOTCONTAINSBLANKS = 'notContainsBlanks'; > const CONDITION_NOTCONTAINSERRORS = 'notContainsErrors'; > const CONDITION_NOTCONTAINSTEXT = 'notContainsText'; > const CONDITION_TIMEPERIOD = 'timePeriod'; > const CONDITION_DUPLICATES = 'duplicateValues'; > const CONDITION_UNIQUE = 'uniqueValues'; > > private const CONDITION_TYPES = [ > self::CONDITION_BEGINSWITH, > self::CONDITION_CELLIS, > self::CONDITION_CONTAINSBLANKS, > self::CONDITION_CONTAINSERRORS, > self::CONDITION_CONTAINSTEXT, > self::CONDITION_DATABAR, > self::CONDITION_DUPLICATES, > self::CONDITION_ENDSWITH, > self::CONDITION_EXPRESSION, > self::CONDITION_NONE, > self::CONDITION_NOTCONTAINSBLANKS, > self::CONDITION_NOTCONTAINSERRORS, > self::CONDITION_NOTCONTAINSTEXT, > self::CONDITION_TIMEPERIOD, > self::CONDITION_UNIQUE, > ];
// Operator types const OPERATOR_NONE = ''; const OPERATOR_BEGINSWITH = 'beginsWith'; const OPERATOR_ENDSWITH = 'endsWith'; const OPERATOR_EQUAL = 'equal'; const OPERATOR_GREATERTHAN = 'greaterThan'; const OPERATOR_GREATERTHANOREQUAL = 'greaterThanOrEqual'; const OPERATOR_LESSTHAN = 'lessThan'; const OPERATOR_LESSTHANOREQUAL = 'lessThanOrEqual'; const OPERATOR_NOTEQUAL = 'notEqual'; const OPERATOR_CONTAINSTEXT = 'containsText'; const OPERATOR_NOTCONTAINS = 'notContains'; const OPERATOR_BETWEEN = 'between';
> const OPERATOR_NOTBETWEEN = 'notBetween'; > /** > const TIMEPERIOD_TODAY = 'today'; * Condition type. > const TIMEPERIOD_YESTERDAY = 'yesterday'; * > const TIMEPERIOD_TOMORROW = 'tomorrow'; * @var string > const TIMEPERIOD_LAST_7_DAYS = 'last7Days'; */ > const TIMEPERIOD_LAST_WEEK = 'lastWeek'; private $conditionType = self::CONDITION_NONE; > const TIMEPERIOD_THIS_WEEK = 'thisWeek'; > const TIMEPERIOD_NEXT_WEEK = 'nextWeek'; /** > const TIMEPERIOD_LAST_MONTH = 'lastMonth'; * Operator type. > const TIMEPERIOD_THIS_MONTH = 'thisMonth'; * > const TIMEPERIOD_NEXT_MONTH = 'nextMonth';
* @var string */ private $operatorType = self::OPERATOR_NONE; /** * Text. * * @var string */ private $text; /** * Stop on this condition, if it matches. * * @var bool */ private $stopIfTrue = false; /** * Condition. *
< * @var string[]
> * @var (bool|float|int|string)[]
*/ private $condition = []; /**
> * @var ConditionalDataBar * Style. > */ * > private $dataBar; * @var Style > */ > /**
private $style;
> /** @var bool */ /** > private $noFormatSet = false; * Create a new Conditional. >
*/ public function __construct() { // Initialise values $this->style = new Style(false, true); }
> public function getNoFormatSet(): bool /** > { * Get Condition type. > return $this->noFormatSet; * > } * @return string > */ > public function setNoFormatSet(bool $noFormatSet): self public function getConditionType() > { { > $this->noFormatSet = $noFormatSet; return $this->conditionType; > } > return $this; > } /** >
* Set Condition type. *
< * @param string $pValue Condition type, see self::CONDITION_*
> * @param string $type Condition type, see self::CONDITION_*
*
< * @return Conditional
> * @return $this
*/
< public function setConditionType($pValue)
> public function setConditionType($type)
{
< $this->conditionType = $pValue;
> $this->conditionType = $type;
return $this; } /** * Get Operator type. * * @return string */ public function getOperatorType() { return $this->operatorType; } /** * Set Operator type. *
< * @param string $pValue Conditional operator type, see self::OPERATOR_*
> * @param string $type Conditional operator type, see self::OPERATOR_*
*
< * @return Conditional
> * @return $this
*/
< public function setOperatorType($pValue)
> public function setOperatorType($type)
{
< $this->operatorType = $pValue;
> $this->operatorType = $type;
return $this; } /** * Get text. * * @return string */ public function getText() { return $this->text; } /** * Set text. *
< * @param string $value
> * @param string $text
*
< * @return Conditional
> * @return $this
*/
< public function setText($value)
> public function setText($text)
{
< $this->text = $value;
> $this->text = $text;
return $this; } /** * Get StopIfTrue. * * @return bool */ public function getStopIfTrue() { return $this->stopIfTrue; } /** * Set StopIfTrue. *
< * @param bool $value
> * @param bool $stopIfTrue
*
< * @return Conditional
> * @return $this
*/
< public function setStopIfTrue($value)
> public function setStopIfTrue($stopIfTrue)
{
< $this->stopIfTrue = $value;
> $this->stopIfTrue = $stopIfTrue;
return $this; } /** * Get Conditions. *
< * @return string[]
> * @return (bool|float|int|string)[]
*/ public function getConditions() { return $this->condition; } /** * Set Conditions. *
< * @param string[] $pValue Condition
> * @param (bool|float|int|string)[]|bool|float|int|string $conditions Condition
*
< * @return Conditional
> * @return $this
*/
< public function setConditions($pValue)
> public function setConditions($conditions)
{
< if (!is_array($pValue)) { < $pValue = [$pValue];
> if (!is_array($conditions)) { > $conditions = [$conditions];
}
< $this->condition = $pValue;
> $this->condition = $conditions;
return $this; } /** * Add Condition. *
< * @param string $pValue Condition
> * @param bool|float|int|string $condition Condition
*
< * @return Conditional
> * @return $this
*/
< public function addCondition($pValue)
> public function addCondition($condition)
{
< $this->condition[] = $pValue;
> $this->condition[] = $condition;
return $this; } /** * Get Style. * * @return Style */ public function getStyle() { return $this->style; } /** * Set Style. *
< * @param Style $pValue
> * @return $this > */ > public function setStyle(Style $style) > { > $this->style = $style; > > return $this; > } > > /** > * get DataBar. > * > * @return null|ConditionalDataBar > */ > public function getDataBar() > { > return $this->dataBar; > } > > /** > * set DataBar.
*
< * @return Conditional
> * @return $this
*/
< public function setStyle(Style $pValue = null)
> public function setDataBar(ConditionalDataBar $dataBar)
{
< $this->style = $pValue;
> $this->dataBar = $dataBar;
return $this; } /** * Get hash code. * * @return string Hash code */ public function getHashCode() { return md5( $this->conditionType . $this->operatorType . implode(';', $this->condition) . $this->style->getHashCode() . __CLASS__ ); } /** * Implement PHP __clone to create a deep clone, not just a shallow copy. */ public function __clone() { $vars = get_object_vars($this); foreach ($vars as $key => $value) { if (is_object($value)) { $this->$key = clone $value; } else { $this->$key = $value; } }
> } } > } > /** > * Verify if param is valid condition type. > */ > public static function isValidConditionType(string $type): bool > { > return in_array($type, self::CONDITION_TYPES);