123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Block\Account\Dashboard;
- use Magento\Framework\Exception\NoSuchEntityException;
- /**
- * Dashboard Customer Info
- *
- * @api
- * @since 100.0.2
- */
- class Info extends \Magento\Framework\View\Element\Template
- {
- /**
- * Cached subscription object
- *
- * @var \Magento\Newsletter\Model\Subscriber
- */
- protected $_subscription;
- /**
- * @var \Magento\Newsletter\Model\SubscriberFactory
- */
- protected $_subscriberFactory;
- /**
- * @var \Magento\Customer\Helper\View
- */
- protected $_helperView;
- /**
- * @var \Magento\Customer\Helper\Session\CurrentCustomer
- */
- protected $currentCustomer;
- /**
- * Constructor
- *
- * @param \Magento\Framework\View\Element\Template\Context $context
- * @param \Magento\Customer\Helper\Session\CurrentCustomer $currentCustomer
- * @param \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory
- * @param \Magento\Customer\Helper\View $helperView
- * @param array $data
- */
- public function __construct(
- \Magento\Framework\View\Element\Template\Context $context,
- \Magento\Customer\Helper\Session\CurrentCustomer $currentCustomer,
- \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory,
- \Magento\Customer\Helper\View $helperView,
- array $data = []
- ) {
- $this->currentCustomer = $currentCustomer;
- $this->_subscriberFactory = $subscriberFactory;
- $this->_helperView = $helperView;
- parent::__construct($context, $data);
- }
- /**
- * Returns the Magento Customer Model for this block
- *
- * @return \Magento\Customer\Api\Data\CustomerInterface|null
- */
- public function getCustomer()
- {
- try {
- return $this->currentCustomer->getCustomer();
- } catch (NoSuchEntityException $e) {
- return null;
- }
- }
- /**
- * Get the full name of a customer
- *
- * @return string full name
- */
- public function getName()
- {
- return $this->_helperView->getCustomerName($this->getCustomer());
- }
- /**
- * @return string
- */
- public function getChangePasswordUrl()
- {
- return $this->_urlBuilder->getUrl('customer/account/edit/changepass/1');
- }
- /**
- * Get Customer Subscription Object Information
- *
- * @return \Magento\Newsletter\Model\Subscriber
- */
- public function getSubscriptionObject()
- {
- if (!$this->_subscription) {
- $this->_subscription = $this->_createSubscriber();
- $customer = $this->getCustomer();
- if ($customer) {
- $this->_subscription->loadByCustomerId($customer->getId());
- }
- }
- return $this->_subscription;
- }
- /**
- * Gets Customer subscription status
- *
- * @return bool
- *
- * @SuppressWarnings(PHPMD.BooleanGetMethodName)
- */
- public function getIsSubscribed()
- {
- return $this->getSubscriptionObject()->isSubscribed();
- }
- /**
- * Newsletter module availability
- *
- * @return bool
- */
- public function isNewsletterEnabled()
- {
- return $this->getLayout()
- ->getBlockSingleton(\Magento\Customer\Block\Form\Register::class)
- ->isNewsletterEnabled();
- }
- /**
- * @return \Magento\Newsletter\Model\Subscriber
- */
- protected function _createSubscriber()
- {
- return $this->_subscriberFactory->create();
- }
- /**
- * @return string
- */
- protected function _toHtml()
- {
- return $this->currentCustomer->getCustomerId() ? parent::_toHtml() : '';
- }
- }
|