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
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
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ą"
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>';
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ą"
Hmm tylko skoro chcę te wysuwane pole wstawić jako pierwszą linijkę w code ... to jak to uczynić ?
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 zmiennejnie siedzi wiadomość z bbcodem, a już parsowana, czyli kod HTML.Kod php:
$post['message']
Aby dostać się do tej wiadomości, aby wychwycić tag [code][/code] należy operować na zmiennej:
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 czyliKod php:
$post['pagetext']
. 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.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ą"
OK nie chce gotowego rozwiązania tylko takie info jak wyżej Jak przeparsować zmodyfikowany $post['pagetext'] ??
$post['pagetext']=$bbcode_parser->parse($post['pagetext']); ??
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ą"
CO tu jest źle że nie działa ?? Umieszczam to w postbit_display_start<?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']);
?>
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ą"