Name.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Block\Adminhtml\Items\Column;
  7. use Magento\Framework\Filter\TruncateFilter\Result;
  8. /**
  9. * Sales Order items name column renderer
  10. *
  11. * @api
  12. * @since 100.0.2
  13. */
  14. class Name extends \Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn
  15. {
  16. /**
  17. * @var Result
  18. */
  19. private $truncateResult = null;
  20. /**
  21. * Truncate string
  22. *
  23. * @param string $value
  24. * @param int $length
  25. * @param string $etc
  26. * @param string &$remainder
  27. * @param bool $breakWords
  28. * @return string
  29. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  30. */
  31. public function truncateString($value, $length = 80, $etc = '...', &$remainder = '', $breakWords = true)
  32. {
  33. $this->truncateResult = $this->filterManager->truncateFilter(
  34. $value,
  35. ['length' => $length, 'etc' => $etc, 'breakWords' => $breakWords]
  36. );
  37. return $this->truncateResult->getValue();
  38. }
  39. /**
  40. * Add line breaks and truncate value
  41. *
  42. * @param string $value
  43. * @return array
  44. */
  45. public function getFormattedOption($value)
  46. {
  47. $remainder = '';
  48. $this->truncateString($value, 55, '', $remainder);
  49. $result = [
  50. 'value' => nl2br($this->truncateResult->getValue()),
  51. 'remainder' => nl2br($this->truncateResult->getRemainder())
  52. ];
  53. return $result;
  54. }
  55. }