[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/administrator/components/com_privacy/src/Helper/ -> PrivacyHelper.php (source)

   1  <?php
   2  
   3  /**
   4   * @package     Joomla.Administrator
   5   * @subpackage  com_privacy
   6   *
   7   * @copyright   (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
   8   * @license     GNU General Public License version 2 or later; see LICENSE.txt
   9   */
  10  
  11  namespace Joomla\Component\Privacy\Administrator\Helper;
  12  
  13  use Joomla\CMS\Factory;
  14  use Joomla\CMS\Helper\ContentHelper;
  15  use Joomla\Component\Privacy\Administrator\Export\Domain;
  16  
  17  // phpcs:disable PSR1.Files.SideEffects
  18  \defined('_JEXEC') or die;
  19  // phpcs:enable PSR1.Files.SideEffects
  20  
  21  /**
  22   * Privacy component helper.
  23   *
  24   * @since  3.9.0
  25   */
  26  class PrivacyHelper extends ContentHelper
  27  {
  28      /**
  29       * Render the data request as a XML document.
  30       *
  31       * @param   Domain[]  $exportData  The data to be exported.
  32       *
  33       * @return  string
  34       *
  35       * @since   3.9.0
  36       */
  37      public static function renderDataAsXml(array $exportData)
  38      {
  39          $export = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><data-export />');
  40  
  41          foreach ($exportData as $domain) {
  42              $xmlDomain = $export->addChild('domain');
  43              $xmlDomain->addAttribute('name', $domain->name);
  44              $xmlDomain->addAttribute('description', $domain->description);
  45  
  46              foreach ($domain->getItems() as $item) {
  47                  $xmlItem = $xmlDomain->addChild('item');
  48  
  49                  if ($item->id) {
  50                      $xmlItem->addAttribute('id', $item->id);
  51                  }
  52  
  53                  foreach ($item->getFields() as $field) {
  54                      $xmlItem->{$field->name} = $field->value;
  55                  }
  56              }
  57          }
  58  
  59          $dom = new \DOMDocument();
  60          $dom->loadXML($export->asXML());
  61          $dom->formatOutput = true;
  62  
  63          return $dom->saveXML();
  64      }
  65  
  66      /**
  67       * Gets the privacyconsent system plugin extension id.
  68       *
  69       * @return  integer  The privacyconsent system plugin extension id.
  70       *
  71       * @since   3.9.2
  72       */
  73      public static function getPrivacyConsentPluginId()
  74      {
  75          $db    = Factory::getDbo();
  76          $query = $db->getQuery(true)
  77              ->select($db->quoteName('extension_id'))
  78              ->from($db->quoteName('#__extensions'))
  79              ->where($db->quoteName('folder') . ' = ' . $db->quote('system'))
  80              ->where($db->quoteName('element') . ' = ' . $db->quote('privacyconsent'));
  81  
  82          $db->setQuery($query);
  83  
  84          return (int) $db->loadResult();
  85      }
  86  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer