• Rejestracja
vBHELP.pl - polskie wsparcie vBulletin
Strona 1 z 2 12 OstatniOstatni
Like Tree1Przydatne posty
  1. #1
    Elber jest nieaktywny Użytkownik
    Dołączył
    maj 2009
    Posty
    59
    Przydatne posty
    1

    Domyślnie Pomoc w określeniu lokalizacji umieszczenia kodu ... (treść posta)

    Witam,

    w której wtyczce umieścić kod który wyciągnie z treści post'a to co jest w i doda nad tym jakąś treść ? Oraz jak nazywa się zmienna w której jest treść posta



  2. #2
    Awatar WoG
    WoG
    WoG jest nieaktywny vB Specialist
    Dołączył
    lut 2008
    Posty
    2 812
    Przydatne posty
    297
    Wpisów
    1

    Domyślnie

    Wtyczka postbit_display_complete lub postbit_display_start.

    Zmienna to:
    Kod php:
    $post['message'
    Z poważaniem,
    WoG

    Ty też możesz pomóc spolszczać vBulletin 5: GitHub.com
    "Rozczarowanie spowodowane niską jakością pamięta się długo po przeminięciu radości spowodowanej niską ceną"


  3. #3
    Elber jest nieaktywny Użytkownik
    Dołączył
    maj 2009
    Posty
    59
    Przydatne posty
    1

    Domyślnie

    Hmm ... coś vB nie chce ze mną współpracować A możesz powiedzieć mi jak uzyskać taki efekt w vB ? Tutaj jest zwykły PHP, który robi to czego potrzebuję...tyle że chciałbym aby ta lista rozwijana pojawiła się jako pierwsza linikja w [.code]

    <?php
    $tresc_posta = $post['message'];

    $hashcodes = substr($tresc_posta, strpos($tresc_posta, '[.code]')+6, strlen($tresc_posta));
    $hashcodes = substr($hashcodes, 0, strpos($hashcodes, '[./code]'));

    $hashc = explode('M4UDownloader://', $hashcodes);

    echo '<select id="downloadList" onchange="M4UD(this.value)">';
    echo '<option value="" style="font-weight: bold">Pobierz:</option>';

    foreach($hashc as $hc){
    if(strlen($hc) != 0){
    if(preg_match('/(M4UDownloader\:\/\/+[\d\D]+?\/)/', 'M4UDownloader://'.$hc)){
    $hc_name = $hc;
    $hc_name = substr($hc_name, strpos($hc_name, '://'), strlen($hc_name));
    $hc_name = substr($hc_name, 0, strpos($hc_name, '|'));
    echo '<option value="M4UD://'.base64_encode('M4UDownloader://'.$hc).'" style="margin-left: 20px;">'.$hc_name.'</option>';
    }
    }
    }

    echo '</select>';

    echo '<script type="text/javascript">
    function M4UD(link){
    if(link != ""){
    window.location = link;
    }
    }
    </script>';


  4. #4
    Awatar WoG
    WoG
    WoG jest nieaktywny vB Specialist
    Dołączył
    lut 2008
    Posty
    2 812
    Przydatne posty
    297
    Wpisów
    1

    Domyślnie

    Echo się tutaj nie zda.
    Preparując kod, musisz skorzytać z szablonów, i zarejestrować zmienne do nich.

    W Twoim przypadku będą to postbit lub postbit_legacy (w zależności z którego układu korzystasz).
    Z poważaniem,
    WoG

    Ty też możesz pomóc spolszczać vBulletin 5: GitHub.com
    "Rozczarowanie spowodowane niską jakością pamięta się długo po przeminięciu radości spowodowanej niską ceną"


  5. #5
    Elber jest nieaktywny Użytkownik
    Dołączył
    maj 2009
    Posty
    59
    Przydatne posty
    1

    Domyślnie

    Hmm tylko skoro chcę te wysuwane pole wstawić jako pierwszą linijkę w code ... to jak to uczynić ?


  6. #6
    Awatar WoG
    WoG
    WoG jest nieaktywny vB Specialist
    Dołączył
    lut 2008
    Posty
    2 812
    Przydatne posty
    297
    Wpisów
    1

    Domyślnie

    Celem tego działu jest pomaganie użytkownikom, którzy sami próbują zrobić cokolwiek, a nie czekają na gotowe rozwiazanie - pamiętaj o tym

    W zmiennej
    Kod php:
    $post['message'
    nie siedzi wiadomość z bbcodem, a już parsowana, czyli kod HTML.
    Aby dostać się do tej wiadomości, aby wychwycić tag [code][/code] należy operować na zmiennej:
    Kod php:
    $post['pagetext'
    Jeżeli chcesz edytować fragment code - przyda się trochę znajomości kodu vBulletin, ponieważ jeżeli spreparujesz wiadomość to trzeba ją przeparsować, aby została nadpisana zmienna, która jest ładowana do wyglądu czyli
    Kod php:
    $post['message'
    . Możesz oczywiście operować na tej zmiennej, ale wtedy powyższy kod nie będzie działał, a Ty musiałbyś operować na wyrażeniach regularnych między tym HTMLem.
    Elber uważa to za przydatne.
    Z poważaniem,
    WoG

    Ty też możesz pomóc spolszczać vBulletin 5: GitHub.com
    "Rozczarowanie spowodowane niską jakością pamięta się długo po przeminięciu radości spowodowanej niską ceną"


  7. #7
    Elber jest nieaktywny Użytkownik
    Dołączył
    maj 2009
    Posty
    59
    Przydatne posty
    1

    Domyślnie

    OK nie chce gotowego rozwiązania tylko takie info jak wyżej Jak przeparsować zmodyfikowany $post['pagetext'] ??

    $post['pagetext']=$bbcode_parser->parse($post['pagetext']); ??


  8. #8
    Awatar WoG
    WoG
    WoG jest nieaktywny vB Specialist
    Dołączył
    lut 2008
    Posty
    2 812
    Przydatne posty
    297
    Wpisów
    1

    Domyślnie

    Zajrzyj do plików ./includes/class_postbit.php i ./includes/class_postbit_alt.php.
    Tam znajdziesz cały sposób generowania postów.

    Odwołuję się do plików, bo nie wiem z której wersji vB korzystasz - a tak od razu będziesz miał kod pod ręką.
    Z poważaniem,
    WoG

    Ty też możesz pomóc spolszczać vBulletin 5: GitHub.com
    "Rozczarowanie spowodowane niską jakością pamięta się długo po przeminięciu radości spowodowanej niską ceną"


  9. #9
    Elber jest nieaktywny Użytkownik
    Dołączył
    maj 2009
    Posty
    59
    Przydatne posty
    1

    Domyślnie

    <?php

    $tresc_posta = $post['pagetext'];

    $hashcodes = substr($tresc_posta, strpos($tresc_posta, '[.code]')+6, strlen($tresc_posta));
    $hashcodes = substr($hashcodes, 0, strpos($hashcodes, '[./code]'));

    $hashc = explode('M4UDownloader://', $hashcodes);

    $add = '<select id="downloadList" onchange="M4UD(this.value)">';
    $add .= '<option value="" style="font-weight: bold">Pobierz:</option>';

    foreach($hashc as $hc){
    if(strlen($hc) != 0){
    if(preg_match('/(M4UDownloader\:\/\/+[\d\D]+?\/)/', 'M4UDownloader://'.$hc)){
    $hc_name = $hc;
    $hc_name = substr($hc_name, strpos($hc_name, '://'), strlen($hc_name));
    $hc_name = substr($hc_name, 0, strpos($hc_name, '|'));
    $add .= '<option value="M4UD://'.base64_encode('M4UDownloader://'.$hc).'" style="margin-left: 20px;">'.$hc_name.'</option>';
    }
    }
    }

    $add .= '</select>';

    $add .= '<script type="text/javascript">
    function M4UD(link){
    if(link != ""){
    window.location = link;
    }
    }
    </script>';

    $post['message'] = preg_replace('/<pre class="bbcode_code"style="height:372px;">([^"]*)</pre>/', $add.'<pre class="bbcode_code"style="height:372px;">\\1</pre>', $post['message']);

    ?>
    CO tu jest źle że nie działa ?? Umieszczam to w postbit_display_start


  10. #10
    Awatar WoG
    WoG
    WoG jest nieaktywny vB Specialist
    Dołączył
    lut 2008
    Posty
    2 812
    Przydatne posty
    297
    Wpisów
    1

    Domyślnie

    Wydaje mi się, że źle operujesz na preg_replace. Tak nie wygląda poprawne wyrażenie regularne.
    Z poważaniem,
    WoG

    Ty też możesz pomóc spolszczać vBulletin 5: GitHub.com
    "Rozczarowanie spowodowane niską jakością pamięta się długo po przeminięciu radości spowodowanej niską ceną"


Strona 1 z 2 12 OstatniOstatni
Chmurka.pl

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67