/** * FAQ & Bibliografia Autolink Blocker * * Wtyczka blokująca automatyczne linkowanie w sekcjach FAQ i bibliografii przez Autolinks Manager DEAXT * Wykrywa sekcje z nagłówkami FAQ oraz Bibliografia i zapobiega autolinkowaniu w tych sekcjach */ (function($) { 'use strict'; // Globalne ustawienia var settings = { bibliografia: { headerText: 'Bibliografia', headerLevel: 'h4' }, faq: { headerText: ['Najczęściej zadawane pytania', 'FAQ', 'Najczęściej zadawane pytania (FAQ)'], headerLevel: 'h2', questionLevel: 'h3' } }; // Pomocnicza funkcja do debugowania (możesz włączyć, aby sprawdzić co się dzieje) function debug(message, obj) { if (window.console && window.console.log) { console.log('[FAQ Blocker] ' + message, obj || ''); } } // Inicjalizacja po załadowaniu strony $(document).ready(function() { debug('Inicjalizacja wtyczki blokującej autolinki'); // Pobranie ustawień z WordPress if (typeof FAQBibliografiaAutolinkBlocker !== 'undefined') { // Ustawienia dla bibliografii settings.bibliografia.headerText = FAQBibliografiaAutolinkBlocker.bibliografia_header_text || settings.bibliografia.headerText; settings.bibliografia.headerLevel = FAQBibliografiaAutolinkBlocker.bibliografia_header_level || settings.bibliografia.headerLevel; // Ustawienia dla FAQ settings.faq.headerText = FAQBibliografiaAutolinkBlocker.faq_header_text || settings.faq.headerText; settings.faq.headerLevel = FAQBibliografiaAutolinkBlocker.faq_header_level || settings.faq.headerLevel; settings.faq.questionLevel = FAQBibliografiaAutolinkBlocker.faq_question_level || settings.faq.questionLevel; } // Zastosowanie blokady auto-linkowania blockAutolinkingInBibliography(); blockAutolinkingInFAQ(); // Usuwanie linków, które mogły zostać już dodane cleanupLinksInBibliography(); cleanupLinksInFAQ(); // Ustawienie obserwatora zmian w DOM setupMutationObserver(); // Dodajemy opóźnione sprawdzenie, bo niektóre wtyczki mogą dodawać linki z opóźnieniem setTimeout(function() { cleanupLinksInBibliography(); cleanupLinksInFAQ(); }, 1000); }); /** * Funkcja blokująca proces linkowania w bibliografii */ function blockAutolinkingInBibliography() { // Szukamy nagłówka bibliografii var bibliographyHeaders = $(settings.bibliografia.headerLevel).filter(function() { return $(this).text().trim() === settings.bibliografia.headerText; }); if (bibliographyHeaders.length === 0) { debug('Nie znaleziono nagłówka bibliografii'); return; } debug('Znaleziono nagłówki bibliografii:', bibliographyHeaders.length); // Dla każdego nagłówka bibliografii bibliographyHeaders.each(function() { // Znajdujemy sekcję bibliografii - wszystkie elementy po nagłówku aż do następnego nagłówka var $header = $(this); var $bibliographySection = []; var $currentElement = $header.next(); while ($currentElement.length && !$currentElement.is('h1, h2, h3, h4, h5, h6')) { $bibliographySection.push($currentElement); $currentElement = $currentElement.next(); } debug('Znaleziono elementy bibliografii:', $bibliographySection.length); // Dodajemy klasę do sekcji bibliografii, aby łatwiej ją zidentyfikować $($bibliographySection).each(function() { $(this).addClass('no-autolink bibliography-section'); $(this).attr('data-deaxt-no-autolink', 'true'); }); }); } /** * Funkcja blokująca proces linkowania w sekcjach FAQ */ function blockAutolinkingInFAQ() { // Szukamy nagłówka FAQ (może być więcej niż jedna możliwa nazwa) var faqHeaders = $(settings.faq.headerLevel).filter(function() { var headerText = $(this).text().trim(); if (Array.isArray(settings.faq.headerText)) { for (var i = 0; i < settings.faq.headerText.length; i++) { if (headerText.indexOf(settings.faq.headerText[i]) !== -1) { return true; } } return false; } else { return headerText.indexOf(settings.faq.headerText) !== -1; } }); if (faqHeaders.length === 0) { debug('Nie znaleziono nagłówka FAQ'); // Spróbujmy znaleźć nagłówek po zawartości, a nie po dokładnym dopasowaniu faqHeaders = $('h1, h2').filter(function() { var text = $(this).text().toLowerCase().trim(); return text.indexOf('faq') !== -1 || text.indexOf('pytania') !== -1; }); if (faqHeaders.length > 0) { debug('Znaleziono alternatywne nagłówki FAQ:', faqHeaders.length); } else { return; } } debug('Znaleziono nagłówki FAQ:', faqHeaders.length); // Dla każdego nagłówka FAQ faqHeaders.each(function() { var $faqHeader = $(this); debug('Przetwarzanie nagłówka FAQ:', $faqHeader.text()); // Dodajemy klasę do nagłówka FAQ, żeby go później łatwiej znaleźć $faqHeader.addClass('faq-header'); var $faqSection = []; var $currentElement = $faqHeader.next(); // Znajdujemy koniec sekcji FAQ (do następnego nagłówka tego samego lub wyższego poziomu) while ($currentElement.length) { // Sprawdź czy to jest koniec sekcji FAQ if ($currentElement.is('h1') || ($currentElement.is('h2') && !$currentElement.text().toLowerCase().includes('faq'))) { break; } // Jeśli to jest pytanie FAQ (h3) if ($currentElement.is(settings.faq.questionLevel)) { debug('Znaleziono pytanie FAQ:', $currentElement.text()); $currentElement.addClass('no-autolink faq-question'); $currentElement.attr('data-deaxt-no-autolink', 'true'); // Zajmijmy się też odpowiedzią (elementy po h3 aż do następnego h3) var $answerElements = []; var $answerElement = $currentElement.next(); while ($answerElement.length && !$answerElement.is('h1, h2, h3')) { debug('Dodaję element odpowiedzi:', $answerElement.prop('tagName')); $answerElement.addClass('no-autolink faq-answer'); $answerElement.attr('data-deaxt-no-autolink', 'true'); $answerElements.push($answerElement); $answerElement = $answerElement.next(); } } // Dodajemy element do sekcji FAQ $faqSection.push($currentElement); $currentElement = $currentElement.next(); } debug('Znaleziono elementy FAQ:', $faqSection.length); // Dodajemy klasę do wszystkich elementów w sekcji FAQ $($faqSection).each(function() { $(this).addClass('no-autolink faq-section'); $(this).attr('data-deaxt-no-autolink', 'true'); }); }); // Dodatkowa metoda - jeśli wiemy, że pytania są w h3, a odpowiedzi w p // Znajdujemy wszystkie h3 w dokumencie var allQuestions = $(settings.faq.questionLevel); // Sprawdzamy, czy każde h3 jest pytaniem FAQ (jeśli występuje po nagłówku FAQ) allQuestions.each(function() { var $question = $(this); var isFAQQuestion = false; // Sprawdź, czy to pytanie występuje po nagłówku FAQ var $prevHeaders = $question.prevAll('h1, h2'); for (var i = 0; i < $prevHeaders.length; i++) { var $header = $($prevHeaders[i]); var headerText = $header.text().toLowerCase().trim(); if (headerText.indexOf('faq') !== -1 || headerText.indexOf('pytania') !== -1) { isFAQQuestion = true; break; } // Jeśli znaleźliśmy nagłówek innej sekcji, przerywamy if (i > 0 && ($header.is('h1') || $header.is('h2'))) { break; } } if (isFAQQuestion) { debug('Znaleziono pytanie FAQ (alternatywna metoda):', $question.text()); $question.addClass('no-autolink faq-question'); $question.attr('data-deaxt-no-autolink', 'true'); // Blokujemy też odpowiedź (paragraf po h3) var $answer = $question.next('p'); if ($answer.length) { debug('Znaleziono odpowiedź FAQ (alternatywna metoda)'); $answer.addClass('no-autolink faq-answer'); $answer.attr('data-deaxt-no-autolink', 'true'); } } }); } /** * Funkcja sprawdzająca czy element jest w sekcji bibliografii */ function isElementInBibliographySection(element) { var $element = $(element); // Sprawdzamy, czy element ma już klasę bibliography-section if ($element.hasClass('bibliography-section') || $element.closest('.bibliography-section').length) { return true; } // Szukamy najbliższego nagłówka przed tym elementem var $prevHeaders = $element.prevAll('h1, h2, h3, h4, h5, h6'); if ($prevHeaders.length > 0) { var $closestHeader = $($prevHeaders[0]); return $closestHeader.is(settings.bibliografia.headerLevel) && $closestHeader.text().trim() === settings.bibliografia.headerText; } return false; } /** * Funkcja sprawdzająca czy element jest w sekcji FAQ */ function isElementInFAQSection(element) { var $element = $(element); // Sprawdzamy, czy element ma już klasę faq-section lub faq-question if ($element.hasClass('faq-section') || $element.hasClass('faq-question') || $element.hasClass('faq-answer') || $element.closest('.faq-section, .faq-question, .faq-answer').length) { return true; } // Sprawdź, czy element jest w paragrafie bezpośrednio po h3, które jest w sekcji FAQ if ($element.closest('p').length && $element.closest('p').prev().is('h3')) { var $prevH3 = $element.closest('p').prev('h3'); if ($prevH3.hasClass('faq-question')) { return true; } } // Sprawdź, czy element jest wewnątrz h3 pytania if ($element.closest('h3').length) { var $h3 = $element.closest('h3'); // Przejdź przez wszystkie poprzedzające nagłówki h2 var $prevH2 = $h3.prevAll('h2'); for (var i = 0; i < $prevH2.length; i++) { var headerText = $($prevH2[i]).text().toLowerCase().trim(); if (headerText.indexOf('faq') !== -1 || headerText.indexOf('pytania') !== -1) { return true; } break; // Sprawdzamy tylko najbliższy h2 } } return false; } /** * Funkcja usuwająca linki z bibliografii */ function cleanupLinksInBibliography() { // Szukamy nagłówka bibliografii var bibliographyHeaders = $(settings.bibliografia.headerLevel).filter(function() { return $(this).text().trim() === settings.bibliografia.headerText; }); if (bibliographyHeaders.length === 0) return; // Dla każdego nagłówka bibliografii bibliographyHeaders.each(function() { // Znajdujemy sekcję bibliografii var $header = $(this); var $currentElement = $header.next(); while ($currentElement.length && !$currentElement.is('h1, h2, h3, h4, h5, h6')) { // Szukamy wszystkich linków w elemencie i przywracamy ich oryginalny format (tekst) $currentElement.find('a').each(function() { var originalText = $(this).text(); $(this).replaceWith(originalText); }); $currentElement = $currentElement.next(); } }); } /** * Funkcja usuwająca linki z sekcji FAQ */ function cleanupLinksInFAQ() { // Szukamy wszystkich elementów z klasą faq-question i faq-answer $('.faq-question, .faq-answer, .faq-section').find('a').each(function() { var originalText = $(this).text(); $(this).replaceWith(originalText); }); // Szukamy nagłówków FAQ var faqHeaders = $('.faq-header'); if (faqHeaders.length === 0) { // Spróbuj znaleźć nagłówki FAQ faqHeaders = $(settings.faq.headerLevel).filter(function() { var headerText = $(this).text().toLowerCase().trim(); return headerText.indexOf('faq') !== -1 || headerText.indexOf('pytania') !== -1; }); } if (faqHeaders.length === 0) return; // Dla każdego nagłówka FAQ faqHeaders.each(function() { var $faqHeader = $(this); var $currentElement = $faqHeader.next(); // Przechodzimy przez wszystkie elementy sekcji FAQ while ($currentElement.length) { // Jeśli to jest koniec sekcji FAQ if ($currentElement.is('h1') || ($currentElement.is('h2') && !$currentElement.text().toLowerCase().includes('faq'))) { break; } // Usuwamy linki z każdego elementu $currentElement.find('a').each(function() { var originalText = $(this).text(); $(this).replaceWith(originalText); }); // Jeśli to jest pytanie (h3) if ($currentElement.is(settings.faq.questionLevel)) { // Sprawdź, czy samo pytanie nie zawiera linku (np. cały h3 jest linkiem) if ($currentElement.is('a') || $currentElement.parent().is('a')) { var $link = $currentElement.is('a') ? $currentElement : $currentElement.parent(); var $originalContent = $link.html(); $link.replaceWith($originalContent); } // Usuwamy linki z elementów wewnątrz h3 $currentElement.find('a').each(function() { var originalText = $(this).text(); $(this).replaceWith(originalText); }); } $currentElement = $currentElement.next(); } }); // Dodatkowa metoda - szukamy wszystkich h3 i sprawdzamy, czy są pytaniami FAQ $(settings.faq.questionLevel).each(function() { var $question = $(this); // Sprawdź, czy to pytanie występuje po nagłówku FAQ var isInFAQSection = false; var $prevH2 = $question.prevAll('h2'); for (var i = 0; i < $prevH2.length; i++) { var headerText = $($prevH2[i]).text().toLowerCase().trim(); if (headerText.indexOf('faq') !== -1 || headerText.indexOf('pytania') !== -1) { isInFAQSection = true; break; } break; // Sprawdzamy tylko najbliższy h2 } if (isInFAQSection) { // Usuń linki z pytania $question.find('a').each(function() { var originalText = $(this).text(); $(this).replaceWith(originalText); }); // Usuń linki z odpowiedzi (paragraf po h3) var $answer = $question.next('p'); if ($answer.length) { $answer.find('a').each(function() { var originalText = $(this).text(); $(this).replaceWith(originalText); }); } } }); } /** * Funkcja ustawiająca obserwator mutacji DOM */ function setupMutationObserver() { // Sprawdzenie, czy przeglądarka obsługuje MutationObserver if (typeof MutationObserver === 'undefined') return; // Tworzymy nowy obserwator mutacji DOM var observer = new MutationObserver(function(mutations) { var shouldCleanupBibliography = false; var shouldCleanupFAQ = false; mutations.forEach(function(mutation) { // Jeśli dodano nowe węzły if (mutation.addedNodes.length) { // Sprawdzamy, czy wśród dodanych węzłów są linki w bibliografii lub FAQ mutation.addedNodes.forEach(function(node) { // Jeśli węzeł jest elementem DOM if (node.nodeType === 1) { if (node.tagName === 'A') { if (isElementInBibliographySection(node)) { shouldCleanupBibliography = true; } if (isElementInFAQSection(node)) { shouldCleanupFAQ = true; } } else if ($(node).find) { $(node).find('a').each(function() { if (isElementInBibliographySection(this)) { shouldCleanupBibliography = true; } if (isElementInFAQSection(this)) { shouldCleanupFAQ = true; } }); } } }); } }); if (shouldCleanupBibliography) { cleanupLinksInBibliography(); } if (shouldCleanupFAQ) { cleanupLinksInFAQ(); } }); // Konfiguracja obserwatora - obserwuj dodawanie węzłów i modyfikacje atrybutów var config = { childList: true, subtree: true, attributes: true, attributeFilter: ['href'] }; // Rozpocznij obserwację całego dokumentu observer.observe(document.body, config); } // Dodajemy wywołanie funkcji czyszczenia co jakiś czas, na wypadek gdyby autolinki były dodawane z opóźnieniem setInterval(function() { cleanupLinksInFAQ(); cleanupLinksInBibliography(); }, 2000); })(jQuery); Klorazepan - działanie substancji czynnej, wskazania, lista leków

Cloranxen

Cloranxen to lek o działaniu przeciwlękowym, uspokajającym i nasennym. Zawiera substancję czynną dipotasu klorazepan, która należy do grupy leków zwanych benzodiazepinami. Wskazaniami do zastosowania leku Cloranxen są: krótkotrwałe leczenie stanów lęku i niepokoju, doraźnie wspomagająco w przebiegu nerwicy oraz zespół abstynencji w uzależnieniu alkoholowym. Lek jest dostępny na receptę.

Tranxene

Tranxene to lek psychotropowy, który jest dostępny tylko na receptę. Zawiera substancję czynną klorazepat, należącą do grupy leków zwanych benzodiazepinami. Lek wykazuje działanie przeciwlękowe, zmniejszające napięcie mięśni szkieletowych, uspokajające, nasenne i przeciwdrgawkowe. Stosowany jest w stanach lęku i niepokoju, a także w łagodzeniu ostrych objawów alkoholowego zespołu abstynencyjnego. Może powodować działania niepożądane, takie jak zahamowanie aktywności psychoruchowej oraz senność.