Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Klikalny bbcode


Przejdź do rozwiązania Rozwiązane przez Macsch15,

Rekomendowane odpowiedzi

Opublikowano

W temacie poprzednim jeden z użytkowników pomógł w stworzeniu bbcode'a. Chodzi o ten wątek ->

http://forum.invisionize.pl/topic/44522-pytania-po-instalacji/?p=268666

 

Wszystko ładnie wygląda, ale przy testach natknąłem się na pewien problem. Chciałbym aby po kliknięciu w ikonę download użytkownik był przenoszony do strony zawartej w bbcode (content). Obecnie po kliknięciu w obraz download uaktywnia się lightbox i powiększa obraz. Nie da się tego zablokować dla tego elementu?

 

Macsch15 użył w definicji czegoś takiego:

<div style="float: left">
  <img src="http://forum.invisionize.pl/uploads/imgs/pre_1413233153__download.png" alt="Download" /></div>
  <pre class="prettyprint prettyprinted" style="width: auto">{content}</pre>

Próbowałem to tak przerabiać aby div był prawidłowo klikalny. Kombinowałem jak mogłem i stworzyłem takie coś (formatowanie nieważne, robiłem na swoje potrzeby):

<div style="float: left; padding: 10px;">
 <input type="image" src="/download.png" onclick="window.open('http://{content}')" border="0" alt="Download"></div>
  <pre class="prettyprint prettyprinted" style="width: auto; ;">{content}</pre>


Pewnie przekombinowane, jeśli chodzi o htmla to wiem tyle ile wyczytam. Chętnie przyjmę wszelkie uwagi co do tego kodu.

 

Wersja którą podałem powyżej działa, ale nie zawsze. Jeżeli link rozpoczyna się od www to wszystko chula. Problem występuje gdy wklejony zostanie link razem z http://.

 

W tym kodzie wstawiłem 'http://{content}' ponieważ samo {content} powoduje wywołanie podwójnego adresu np. www.adresforum.pl/www.linkzbbcode.pl  

 

Za wszelką pomoc z góry dziękuje. 

 

Opublikowano

Dobra, zmodyfikowałem ten twór. Teraz wygląda tak:

<div style="float: left">
  <a href="http://{content}" target="_blank"><img src="http://forum.invisionize.pl/uploads/imgs/pre_1413233153__download.png" alt="Download" /></a></div>
  <pre class="prettyprint prettyprinted" style="width: auto">{content}</pre>

BBcode działa na linkach www.cos.pl.

Nie działa natomiast na linkach http://www.cos.pl 

 

Przy kliku na link rozpoczynający się od http wywoływany jest błędny adres w którym brakuje dwukropka. Wyglada on tak: http//www.cos.pl. Jak wiadomo taki adres nie działa. Ma ktoś pomysł? 

  • Rozwiązanie
Opublikowano

Jeżeli chodzi o włączającego się lightboxa, IPS nie przewidział jego prostego wyłączenia:

 

admin\sources\classes\text\parser\html.php

		/* Add lightbox rel tag. Emoticons should be code at this point */
		if ( ! parent::$Perms['parseHtml'] )
		{
			$html = preg_replace( "/(?!<span rel='lightbox'>)<img(?!.*sharedmedia_screenshot)([^>]+?)>/i", "<span rel='lightbox'><img class='bbc_img'\\1></span>", $html );
			$html = preg_replace( "/<img class='bbc_img'([^>]+?)class='bbc_img'([^>]+?)>/i", "<img class='bbc_img'\\1\\2>", $html );
		}

Możesz zrobić tak:

		/* Add lightbox rel tag. Emoticons should be code at this point */
		if ( ! parent::$Perms['parseHtml'] )
		{
			if( ! strpos($html, 'no-lgh') ) {
				$html = preg_replace( "/(?!<span rel='lightbox'>)<img(?!.*sharedmedia_screenshot)([^>]+?)>/i", "<span rel='lightbox'><img class='bbc_img'\\1></span>", $html );
				$html = preg_replace( "/<img class='bbc_img'([^>]+?)class='bbc_img'([^>]+?)>/i", "<img class='bbc_img'\\1\\2>", $html );
			}
		}

A następnie w BBCode:

<div style="float: left">
  <img rel="no-lgh" src="http://forum.invisionize.pl/uploads/imgs/pre_1413233153__download.png" alt="Download" />
</div>
<pre class="prettyprint prettyprinted" style="width: auto">{content}</pre>

I w tym momencie możesz zrobić tak:

<div style="float: left">
  <a href="{content}">
    <img rel="no-lgh" src="http://forum.invisionize.pl/uploads/imgs/pre_1413233153__download.png" alt="Download" />
  </a>
</div>
<pre class="prettyprint prettyprinted" style="width: auto">{content}</pre>

(brzydki hack)

 

Jednak pamiętaj że to jest całkowicie bez walidacji i użytkownik zamiast adresu może wpisać co tylko chce.

  • Lubię to 1
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.