# Közösségi média mint külön sütikategória

> Hogyan adhatsz a sütisávhoz „Social media” kategóriát MU-pluginnal, és mit kell tudni a korlátairól.

A Complianz alapból három hozzájárulási kategóriát használ (funkcionális, statisztika, marketing), a közösségi média szolgáltatásait a marketinghez sorolja. A kérdés mégis gyakori, ezért egy MU-pluginnal külön **Social media** kategóriát vehetsz fel a sütisávba.

Fontos: ez nem változtatja meg, hogyan csoportosítja a sütiket és a szolgáltatásokat a cookiedatabase.org. A kategória csak a sávban jelenik meg, és a hozzájárulást a megadott közösségi szolgáltatásokra alkalmazza.

## Mit csinál a plugin

- A sütisáv HTML-jébe (szűrő: `cmplz_banner_html`) egy új, lenyitható **Social media** kategóriát tesz a marketing kategória elé, jelölőnégyzettel.
- Ha a látogató a **Beállítások mentése** gombbal elmenti a választását, és a Social media be van jelölve, a plugin engedélyezi az általános kategóriát és a felsorolt szolgáltatásokat, és beállít egy `socialmedia` sütit `allow` értékkel.
- A következő látogatáskor a jelölőnégyzet be lesz pipálva, ha a süti értéke `allow`; a hozzájárulás visszavonásakor a süti `deny` lesz.
- Ha a kategória engedélyezve van, `socialmedia` eseményt küld a `dataLayer`-be, és a `cmplz_tag_manager_event` eseményt is kiváltja (Tag Managerhez).

## Amit módosíthatsz

A kód teljes változata az alábbi, az MU-plugin létrehozásához a [saját MU-plugin készítéséről szóló fejezet](https://hub.hellowp.io/hu/plugins/complianz-gdpr-premium/stilus-css-mu-plugin-peldak/) ad útmutatót.

- A **Social media** kategória leírása (a „Social Media descriptive text” megjegyzés alatti `_e()` szöveg), tetszés szerint átírható. Az alapszöveg a marketing kategória leírását ismétli: „The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.”
- A szolgáltatások listája (a `services` tömb a szkriptben): itt vehetsz fel vagy törölhetsz közösségi szolgáltatásokat. Alapértelmezés: `facebook`, `instagram`, `whatsapp`, `tiktok`, `pinterest`, `linkedin`, `twitter`, `disqus`.

```php
let services = ['facebook', 'instagram', 'whatsapp', 'tiktok', 'pinterest', 'linkedin', 'twitter', 'disqus'];
```

## A teljes plugin

```php
<?php
function cmplz_add_social_media_category( $html ) {
	$pattern = '/<details class="cmplz-category cmplz-marketing.*?<\/details>/is';
	ob_start();
	?>
	<details class="cmplz-category cmplz-socialmedia">
		<summary>
    <span class="cmplz-category-header">
        <span class="cmplz-category-title"><?php _e( "Social media", "complianz-gdpr" ) ?></span>
        <span class="cmplz-banner-checkbox">
            <input type="checkbox" id="cmplz-socialmedia-optin" data-category="cmplz_socialmedia" class="cmplz-consent-checkbox cmplz-socialmedia" size="40" value="1">
            <label class="cmplz-label" for="cmplz-socialmedia-optin" tabindex="0"><span></span></label>
        </span>
        <span class="cmplz-icon cmplz-open">
			<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" height="18"><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"></path></svg>
		</span>
    </span>
</summary>
		<div class="cmplz-description">
			<span class="cmplz-description-socialmedia">
			<!-- Social Media descriptive text -->
			<?php _e( "The technical storage or access is required to create user profiles to send advertising,
			or to track the user on a website or across several websites for similar marketing purposes.", "complianz-gdpr" ) ?></span>
		</div>
	</details>
	<?php
	$social = ob_get_clean();
	if ( preg_match( $pattern, $html, $matches ) ) {
		$marketing = $matches[0];
		$html      = str_replace( $marketing, $social . $marketing, $html );
	}
	return $html;
}
add_filter( 'cmplz_banner_html', 'cmplz_add_social_media_category' );

function cmplz_social_media_script() {
	ob_start();
	?>
	<script>
        document.addEventListener('click', e => {
            if ( e.target.closest('.cmplz-save-preferences') ) {
                let social_media_enabled = document.querySelector('input.cmplz-socialmedia').checked;
                if (social_media_enabled) {
                    // szolgáltatások hozzáadása vagy törlése itt
                    // ha bármelyik szolgáltatás engedélyezett, az általános kategória is az, mert egyes szolgáltatások részben általánosak
                    let services = ['facebook', 'instagram', 'whatsapp', 'tiktok', 'pinterest', 'linkedin', 'twitter', 'disqus'];

                    cmplz_enable_category('', 'general');
                    for (let key in services) {
                        if (services.hasOwnProperty(key)) {
                            let service = services[key];
                            if (service.length == 0) continue;
                            cmplz_set_service_consent(service, true);
                            cmplz_enable_category('', service);
                            document.querySelectorAll('.cmplz-accept-service[data-service=' + service + ']').forEach(obj => {
                                obj.checked = true;
                            });
                        }
                    }
                    cmplz_set_cookie('socialmedia', 'allow');
                }
            }
        });

        document.addEventListener("cmplz_before_cookiebanner", function(e) {
            if (cmplz_get_cookie('socialmedia') === 'allow'){
                document.querySelector('input.cmplz-socialmedia').checked = true;
            }
        });

        document.addEventListener("cmplz_fire_categories", function (e) {
            var consentedCategories = e.detail.categories;
            if ( cmplz_in_array( 'socialmedia', consentedCategories ) ) {
                if (cmplz_fired_events.indexOf('socialmedia') === -1) {
                    cmplz_fired_events.push('socialmedia');
                    window.dataLayer = window.dataLayer || [];
                    window.dataLayer.push({
                        'event': complianz.prefix+'event_socialmedia'
                    });
                    let event = new CustomEvent('cmplz_tag_manager_event', { detail: 'socialmedia' });
                    document.dispatchEvent(event);
                }
            }
        });

        document.addEventListener("cmplz_revoke", function(e) {
            cmplz_set_cookie('socialmedia', 'deny');
        });
	</script>
	<?php
	$script = ob_get_clean();
	$script = str_replace( array( '<script>', '</script>' ), '', $script );
	wp_add_inline_script( 'cmplz-cookiebanner', $script );
}
add_action( 'wp_enqueue_scripts', 'cmplz_social_media_script', PHP_INT_MAX );
```

## Miért nem alapértelmezett a „Social media” kategória?

Az egyik leggyakoribb kérdés a sáv beállításakor: miért nem szerepel a legtöbb sávban „Social media” kategória, csak a funkcionális, a beállítások, a statisztika és a marketing. Az ok az, hogy a legtöbb adatvédelmi jog szerint ez nem megfelelő. Idő kérdése, hogy egy adatvédelmi hatóság vagy egy olyan szervezet, mint a NOYB, fellépjen az olyan webhelyek ellen, amelyek „Social media” kategóriát használnak.

**A közösségi média nem cél.** A látogató nem tudhatja, mit jelent a „Social media” a sávon. Lehet beágyazott Instagram-videó, láthatatlan Facebook-pixel újracélzáshoz, követés nélküli WhatsApp Business vagy beágyazott Twitter-hírfolyam. Ha a sávon külön kategóriaként kérdezel rá egy funkcióra (közösségi média, spamvédelem, kényelmes böngészés, videó), a további célokhoz (marketing, követés, statisztika) még mindig hiányzik a hozzájárulás.

**Mit jelent ez a gyakorlatban?** A hozzájárulás előtt tájékoztatnod kell a látogatót, hogy a javasolt funkcióhoz adott hozzájárulás a harmadik felek szolgáltatásainak további céljaira is érvényes (marketing, követés, statisztika). Példa a Facebook-pixelre: ez közösségi szolgáltatás, amely személyes adatot használ marketing- és követési célra. Ilyenkor a marketing/követés kategóriára kell hozzájárulás, nem csak a „közösségi média” funkcióra.

Ritka kivétel, ha egy közösségi szolgáltatás marketing-, követési vagy statisztikai célra nem tárol és nem olvas információt a látogató böngészőjéből vagy eszközéről: ilyenkor a funkcionális és szükséges sütikre vonatkozó ePrivacy-kivétel miatt hozzájárulás egyáltalán nem szükséges.
