[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |