Bitrix-D7 22.2
Загрузка...
Поиск...
Не найдено
Класс Base
+ Граф наследования:Base:

Открытые статические члены

static isMultiple ($value)
 
static asSingle ($value)
 
static asMultiple ($value)
 
static getViewHtml (array $input, $value=null)
 
static getViewHtmlSingle (array $input, $value)
 
static getEditHtml ($name, array $input, $value=null)
 
static getEditHtmlSingle ($name, array $input, $value)
 
static getEditHtmlSingleDelete ($name, array $input)
 
static getEditHtmlInsert ($tag, $replace, $name, $sample, $after)
 
static getEditHtmlSingleAfterInsert ()
 
static getError (array $input, $value)
 
static getRequiredError (array $input, $value)
 
static getErrorSingle (array $input, $value)
 
static getValue (array $input, $value)
 
static getValueSingle (array $input, $value)
 
static getSettings (array $input, $reload)
 
static hasMultipleValuesSupport ()
 

Поля данных

const MULTITAG = 'div'
 

Защищенные статические члены

static getHiddenRecursive ($name, $value, $attributes)
 
static extractAttributes (array $input, array $boolean, array $other, $withGlobal=true)
 

Подробное описание

См. определение в файле input.php строка 331

Методы

◆ asMultiple()

static asMultiple (   $value)
static

См. определение в файле input.php строка 366

367 {
368 if (static::isMultiple($value))
369 {
370 return array_diff($value, array("", NULL, false));
371 }
372 else
373 {
374 return $value === null ? array() : array($value);
375 }
376 }

◆ asSingle()

static asSingle (   $value)
static

Get single value.

Аргументы
$value
Возвращает
mixed - if value is multiple, get first meaningful value (which is not null)

См. определение в файле input.php строка 348

349 {
350 if (static::isMultiple($value))
351 {
352 $v = null;
353
354 foreach ($value as $v)
355 if ($v) // !== null) TODO maybe??
356 break;
357
358 return $v;
359 }
360 else
361 {
362 return $value;
363 }
364 }

◆ extractAttributes()

static extractAttributes ( array  $input,
array  $boolean,
array  $other,
  $withGlobal = true 
)
staticprotected
Уст.:

См. определение в файле input.php строка 643

644 {
645 $string = '';
646
647 // add boolean attributes with predefined values or no value
648
649 unset($boolean['REQUIRED']); // TODO remove with HTML5
650
651 static $globalBoolean = array('CONTENTEDITABLE'=>'', 'DRAGGABLE'=>'true', 'SPELLCHECK'=>'', 'TRANSLATE'=>'yes');
652
653 if ($withGlobal)
654 $boolean = $globalBoolean + $boolean;
655
656 foreach (array_intersect_key($input, $boolean) as $k => $v)
657 if ($v === 'Y' || $v === true)
658 $string .= ' '.mb_strtolower($k).($boolean[$k] ? '="'.$boolean[$k].'"' : '');
659
660 // add event attributes with values
661 if ($withGlobal)
662 {
663 static $globalEvents = array(
664 'ONABORT'=>1, 'ONBLUR'=>1, 'ONCANPLAY'=>1, 'ONCANPLAYTHROUGH'=>1, 'ONCHANGE'=>1, 'ONCLICK'=>1,
665 'ONCONTEXTMENU'=>1, 'ONDBLCLICK'=>1, 'ONDRAG'=>1, 'ONDRAGEND'=>1, 'ONDRAGENTER'=>1, 'ONDRAGLEAVE'=>1,
666 'ONDRAGOVER'=>1, 'ONDRAGSTART'=>1, 'ONDROP'=>1, 'ONDURATIONCHANGE'=>1, 'ONEMPTIED'=>1, 'ONENDED'=>1,
667 'ONERROR'=>1, 'ONFOCUS'=>1, 'ONINPUT'=>1, 'ONINVALID'=>1, 'ONKEYDOWN'=>1, 'ONKEYPRESS'=>1, 'ONKEYUP'=>1,
668 'ONLOAD'=>1, 'ONLOADEDDATA'=>1, 'ONLOADEDMETADATA'=>1, 'ONLOADSTART'=>1, 'ONMOUSEDOWN'=>1, 'ONMOUSEMOVE'=>1,
669 'ONMOUSEOUT'=>1, 'ONMOUSEOVER'=>1, 'ONMOUSEUP'=>1, 'ONMOUSEWHEEL'=>1, 'ONPAUSE'=>1, 'ONPLAY'=>1,
670 'ONPLAYING'=>1, 'ONPROGRESS'=>1, 'ONRATECHANGE'=>1, 'ONREADYSTATECHANGE'=>1, 'ONRESET'=>1, 'ONSCROLL'=>1,
671 'ONSEEKED'=>1, 'ONSEEKING'=>1, 'ONSELECT'=>1, 'ONSHOW'=>1, 'ONSTALLED'=>1, 'ONSUBMIT'=>1, 'ONSUSPEND'=>1,
672 'ONTIMEUPDATE'=>1, 'ONVOLUMECHANGE'=>1, 'ONWAITING'=>1,
673 );
674
675 $events = array_intersect_key($input, $globalEvents);
676 $other = array_diff_key($other, $events);
677
678 foreach ($events as $k => $v)
679 if ($v)
680 $string .= ' '.mb_strtolower($k).'="'.$v.'"';
681 }
682
683 // add other attributes with values
684
685 static $globalOther = array(
686 'ACCESSKEY'=>1, 'CLASS'=>1, 'CONTEXTMENU'=>1, 'DIR'=>1, 'DROPZONE'=>1, 'LANG'=>1, 'STYLE'=>1, 'TABINDEX'=>1,
687 'TITLE'=>1, 'ID' => 1,
688 'XML:LANG'=>1, 'XML:SPACE'=>1, 'XML:BASE'=>1
689 );
690
691 if ($withGlobal)
692 $other += $globalOther;
693
694 foreach (array_intersect_key($input, $other) as $k => $v)
695 if ($v)
696 $string .= ' '.mb_strtolower($k).'="'.htmlspecialcharsbx($v).'"';
697
698 // add data attributes
699 if ($withGlobal && is_array($input['DATA']))
700 {
701 foreach ($input['DATA'] as $k => $v)
702 $string .= ' data-'.htmlspecialcharsbx($k).'="'.htmlspecialcharsbx($v).'"';
703 }
704
705 return $string;
706 }

◆ getEditHtml()

static getEditHtml (   $name,
array  $input,
  $value = null 
)
static

Переопределяется в Enum, Location, ProductCategories и ConcreteProduct.

См. определение в файле input.php строка 412

413 {
414 $name = htmlspecialcharsbx($name);
415
416 if ($value === null)
417 $value = $input['VALUE'];
418
419 $html = '';
420
421 if ($input['HIDDEN'] == 'Y')
422 {
423 $html .= static::getHiddenRecursive($name
424 , $input['MULTIPLE'] == 'Y' ? static::asMultiple($value) : static::asSingle($value)
425 , static::extractAttributes($input, array('DISABLED'=>''), array('FORM'=>''), false));
426 }
427 else
428 {
429 if ($input['MULTIPLE'] == 'Y')
430 {
431 $tag = isset($input['MULTITAG']) ? htmlspecialcharsbx($input['MULTITAG']) : static::MULTITAG;
432 [$startTag, $endTag] = $tag ? array("<$tag>", "</$tag>") : array('', '');
433
434 $index = -1;
435
436 foreach (static::asMultiple($value) as $value)
437 {
438 $namix = $name.'['.(++$index).']';
439 $html .= $startTag
440 .static::getEditHtmlSingle($namix, $input, $value)
441 .static::getEditHtmlSingleDelete($namix, $input)
442 .$endTag;
443 }
444
445 $replace = '##INPUT##NAME##';
446
447 if ($input['DISABLED'] !== 'Y') // TODO
448 $html .= static::getEditHtmlInsert($tag, $replace, $name
449 , static::getEditHtmlSingle($replace, $input, null).static::getEditHtmlSingleDelete($replace, $input)
450 , static::getEditHtmlSingleAfterInsert());
451 }
452 else
453 {
454 $html .= static::getEditHtmlSingle($name, $input, static::asSingle($value));
455 }
456 }
457
458 if ($input['ADDITIONAL_HIDDEN'] === 'Y')
459 {
460 $html .= static::getHiddenRecursive($name
461 , $input['MULTIPLE'] == 'Y' ? static::asMultiple($value) : static::asSingle($value)
462 , static::extractAttributes($input, array(), array('FORM'=>''), false));
463 }
464
465 return $html;
466 }

◆ getEditHtmlInsert()

static getEditHtmlInsert (   $tag,
  $replace,
  $name,
  $sample,
  $after 
)
static

См. определение в файле input.php строка 483

484 {
485 $name = \CUtil::JSEscape($name);
486 $sample = \CUtil::JSEscape(htmlspecialcharsbx($sample));
487
488 return '<input type="button" value="'.Loc::getMessage('INPUT_ADD').'" onclick="'
489
490 ."var parent = this.parentNode;"
491 ."var container = document.createElement('$tag');"
492 ."container.innerHTML = '$sample'.replace(/$replace/g, '{$name}['+parent.childNodes.length+']');"
493 ."parent.insertBefore(container, this);"
494
495 .$after.'">';
496 }

◆ getEditHtmlSingle()

static getEditHtmlSingle (   $name,
array  $input,
  $value 
)
static
Возвращает
string

Переопределяется в StringInput, Number, EitherYN, File, Date, Location и Address.

См. определение в файле input.php строка 469

470 {
471 throw new SystemException("you must implement [getEditHtmlSingle] or override [getEditHtml] in yor class", 0, __FILE__, __LINE__);
472 }

◆ getEditHtmlSingleAfterInsert()

static getEditHtmlSingleAfterInsert ( )
static

См. определение в файле input.php строка 498

499 {
500 return "container.firstChild.focus();";
501 }

◆ getEditHtmlSingleDelete()

static getEditHtmlSingleDelete (   $name,
array  $input 
)
static

Переопределяется в File и Date.

См. определение в файле input.php строка 474

475 {
476 return '<label> '.Loc::getMessage('INPUT_DELETE').' <input type="checkbox" onclick="'
477
478 ."this.parentNode.previousSibling.disabled = this.checked;"
479
480 .'"> </label>';
481 }

◆ getError()

static getError ( array  $input,
  $value 
)
static

Переопределяется в ConcreteProduct и ProductCategories.

См. определение в файле input.php строка 503

504 {
505 $errors = array();
506 if ($value === null)
507 $value = $input['VALUE'];
508
509 if ($input['MULTIPLE'] == 'Y')
510 {
511
512 $index = -1;
513
514 foreach (static::asMultiple($value) as $value)
515 {
516 if (($value !== '' && $value !== null) && ($error = static::getErrorSingle($input, $value)))
517 {
518 $errors[++$index] = $error;
519 }
520 }
521 }
522 else
523 {
524 $value = static::asSingle($value);
525
526 if ($value !== '' && $value !== null)
527 {
528 return static::getErrorSingle($input, $value);
529 }
530 }
531
532 return $errors;
533 }

◆ getErrorSingle()

static getErrorSingle ( array  $input,
  $value 
)
static
Аргументы
array$input
$value
Исключения
SystemException

Переопределяется в StringInput, Number, EitherYN, Enum, File, Date, Location, Address, ConcreteProduct и ProductCategories.

См. определение в файле input.php строка 581

582 {
583 throw new SystemException("you must implement [getErrorSingle] or override [getError] in yor class", 0, __FILE__, __LINE__);
584 }

◆ getHiddenRecursive()

static getHiddenRecursive (   $name,
  $value,
  $attributes 
)
staticprotected

См. определение в файле input.php строка 625

626 {
627 if (is_array($value))
628 {
629 $html = '';
630
631 foreach ($value as $k => $v)
632 $html .= self::getHiddenRecursive($name.'['.htmlspecialcharsbx($k).']', $v, $attributes);
633
634 return $html;
635 }
636 else
637 {
638 return '<input type="hidden" name="'.$name.'" value="'.htmlspecialcharsbx($value).'"'.$attributes.'>';
639 }
640 }
static getHiddenRecursive($name, $value, $attributes)
Definition: input.php:625

◆ getRequiredError()

static getRequiredError ( array  $input,
  $value 
)
static
Аргументы
array$input
$value
Возвращает
bool

Переопределяется в Address.

См. определение в файле input.php строка 541

542 {
543 $errors = array();
544
545 if ($value === null)
546 $value = $input['VALUE'];
547
548 if ($input['MULTIPLE'] == 'Y')
549 {
550 $index = -1;
551 foreach (static::asMultiple($value) as $value)
552 {
553 if ($value === '' || $value === null)
554 {
555 if ($input['REQUIRED'] == 'Y')
556 $errors[++$index] = array('REQUIRED' => Loc::getMessage('INPUT_REQUIRED_ERROR'));
557 }
558 }
559 }
560 else
561 {
562 $value = static::asSingle($value);
563
564 if ($value === '' || $value === null)
565 {
566 return ($input['REQUIRED'] == 'Y')
567 ? array('REQUIRED' => Loc::getMessage('INPUT_REQUIRED_ERROR'))
568 : array();
569 }
570 }
571
572 return $errors;
573 }
static getMessage($code, $replace=null, $language=null)
Definition: loc.php:29

◆ getSettings()

static getSettings ( array  $input,
  $reload 
)
static

Переопределяется в StringInput, Number, Enum, File, Date, ProductCategories и ConcreteProduct.

См. определение в файле input.php строка 618

619 {
620 return array(); // no settings
621 }

◆ getValue()

static getValue ( array  $input,
  $value 
)
static

См. определение в файле input.php строка 586

587 {
588 if ($input['DISABLED'] == 'Y')
589 return null; // TODO maybe??
590
591 if ($value === null)
592 $value = $input['VALUE'];
593
594 if ($input['MULTIPLE'] == 'Y')
595 {
596 $values = array();
597
598 foreach (static::asMultiple($value) as $value)
599 {
600 $value = static::getValueSingle($input, $value);
601 if ($value !== null)
602 $values []= $value;
603 }
604
605 return $values ? $values : null;
606 }
607 else
608 {
609 return static::getValueSingle($input, static::asSingle($value));
610 }
611 }

◆ getValueSingle()

static getValueSingle ( array  $input,
  $value 
)
static

Переопределяется в ProductCategories, ConcreteProduct, EitherYN и File.

См. определение в файле input.php строка 613

614 {
615 return $value;
616 }

◆ getViewHtml()

static getViewHtml ( array  $input,
  $value = null 
)
static

Переопределяется в Address, ProductCategories и ConcreteProduct.

См. определение в файле input.php строка 378

379 {
380 if ($value === null)
381 $value = $input['VALUE'];
382
383 if ($input['MULTIPLE'] == 'Y')
384 {
385 $tag = isset($input['MULTITAG']) ? htmlspecialcharsbx($input['MULTITAG']) : static::MULTITAG;
386 [$startTag, $endTag] = $tag ? array("<$tag>", "</$tag>") : array('', '');
387
388 $html = '';
389
390 foreach (static::asMultiple($value) as $value)
391 $html .= $startTag.static::getViewHtmlSingle($input, $value).$endTag;
392
393 return $html;
394 }
395 else
396 {
397 return static::getViewHtmlSingle($input, static::asSingle($value));
398 }
399 }

◆ getViewHtmlSingle()

static getViewHtmlSingle ( array  $input,
  $value 
)
static

Переопределяется в EitherYN, Enum, File и Location.

См. определение в файле input.php строка 401

402 {
403 $output = $valueText = htmlspecialcharsbx($value);
404 if ($input['IS_EMAIL'] == 'Y')
405 {
406 $output = '<a href="mailto:'.$valueText.'">'.$valueText.'</a>';
407 }
408
409 return $output;
410 }

◆ hasMultipleValuesSupport()

static hasMultipleValuesSupport ( )
static
Возвращает
bool

Переопределяется в Address.

См. определение в файле input.php строка 711

712 {
713 return true;
714 }

◆ isMultiple()

static isMultiple (   $value)
static

Check if value is multiple.

Аргументы
$value
Возвращает
bool

Переопределяется в File и Address.

См. определение в файле input.php строка 339

340 {
341 return is_array($value);
342 }

Поля

◆ MULTITAG

const MULTITAG = 'div'

См. определение в файле input.php строка 333


Объявления и описания членов класса находятся в файле: