18.07.2013, 14:54
Stron: 1 2
18.07.2013, 15:17
Skoro tak uważasz, wklej sobie kod EveryOne do jakiegoś pluginu i zobacz co wychodzi w edytorze szablonów: https://docs.google.com/file/d/0B6pgReiH...p=drivesdk
Po pierwsze ucina się na polskim znaku, po drugie wstrzyka się {$info[\'subject\']} co jest niepoprawne (zobacz sobie na inne szablony jak wygląda np. {$mybb->user['username']} lub {$post['signature']} - nie ma slashów).
Po wklejeniu któregoś z moich kodów:
https://docs.google.com/file/d/0B6pgReiH...p=drivesdk
Po pierwsze ucina się na polskim znaku, po drugie wstrzyka się {$info[\'subject\']} co jest niepoprawne (zobacz sobie na inne szablony jak wygląda np. {$mybb->user['username']} lub {$post['signature']} - nie ma slashów).
Po wklejeniu któregoś z moich kodów:
https://docs.google.com/file/d/0B6pgReiH...p=drivesdk
18.07.2013, 16:54
(18.07.2013, 14:37)Destroy666 napisał(a): [ -> ]Przecież nie masz tak jak napisał Supryk.Może i tak ale pozostaje jeden problem. Gdy dam tak jak ty mówisz wywala mi błąd podczas aktywacji pluginu (błąd zapytania). Wstawiłem zmienne ręcznie i działa lecz wywala tylko 1 wynik. Dodać do zapytania limit 0 , 5 ?
Masz to:
A powinno być:Kod PHP:$template = array(
"title" => "posty_w_temacie_row",
"template" => '<tr>
<td> post o tytule {$info[\\\'subject\\\']} <td> treść: {$info[\\\'message\\\']} </td>
</tr>',
"sid" => -1
);
Lub ewentualnie:Kod PHP:$template = array(
"title" => "posty_w_temacie_row",
"template" => '<tr>
<td> post o tytule {$info[\'subject\']}</td><td> tresc: {$info[\'message\']} </td>
</tr>',
"sid" => -1
);
Kod PHP:$template = array(
"title" => "posty_w_temacie_row",
"template" => "<tr>
<td> post o tytule {\$info['subject']}</td><td> tresc: {\$info['message']} </td>
</tr>",
"sid" => -1
);
Z innych mniejszych błędów - masz jeszcze niedomknięty <tr>:
Kod PHP:<tr>
<td class="thead" colspan="2">Tytuł</td>
(18.07.2013, 14:37)Destroy666 napisał(a): [ -> ]Niepotrzebnie wymagasz tego pliku (nie używasz z niego żadnej funkcji):
No i niepotrzbenie używasz rebuild_settings(), nie masz żadnych ustawień.Kod PHP:require MYBB_ROOT."/inc/adminfunctions_templates.php";
Potrzebne bo to kawałek pluginu. Jest sporo ustawień
18.07.2013, 17:07
Ah, jak to tylko część i używasz funkcji find_replace_templatesets oraz masz ustawienia to faktycznie musisz zostawić rebuild_settings() oraz linijkę z require adminfunctions_templates. Myślałem że to cały plugin dlatego tak napisałem.
A jedna linijka jest dlatego, że nie sklejasz pętli.
Powinno być:
To wyświetli wszystkie posty, więc trzeba dodać limit do zapytania tak jak mówisz.
A jedna linijka jest dlatego, że nie sklejasz pętli.
Kod PHP:
eval('$posty_w_temacie_row = "'.$templates->get('posty_w_temacie_row').'";');
Kod PHP:
eval('$posty_w_temacie_row .= "'.$templates->get('posty_w_temacie_row').'";');
To wyświetli wszystkie posty, więc trzeba dodać limit do zapytania tak jak mówisz.
18.07.2013, 17:31
Okey wszystko działa. Lecz mam pytanie. Jak zrobić, żeby te posty czytały bbcode? Chodzi o znaczniki [ code ], [ b ], [ url ] i tego typu?? bo teraz je normalnie wyświetla a chce żeby je stosowało.
18.07.2013, 17:42
Wyciągnięty tekst musisz przejechać parserem.
Dołączenie parseraDalej jego ustawienia
I teraz użycie
Dołączenie parsera
Kod PHP:
require_once MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;
Kod PHP:
$parser_options = array(
"allow_html" => 0,
"allow_mycode" => 1,
"allow_smilies" => 0,
"allow_imgcode" => 1,
"allow_videocode" => 1,
"filter_badwords" => 1
);
Kod PHP:
$post = $parser->parse_message($wyciągnięty_tekst, $parser_options);
18.07.2013, 17:46
Musisz skorzystać z parsera. Mniej więcej tak:
Pisane na szybko, więc mogą być błędy.
EDIT: opcje Matsloma aktualniejsze (z wideo), skorzystaj z nich jeśli chcesz wyłączyć parsowanie filmów.
Kod PHP:
function posty_w_profilu()
{
global $mybb, $templates, $memprofile, $db, $parser, $posty_w_temacie_row, $posty_w_temacie;
if(!isset($parser))
{
require_once MYBB_ROOT . 'inc/class_parser.php';
$parser = new postParser;
}
$opcje = array(
"allow_html" => 0,
"allow_mycode" => 1,
"allow_smilies" => 1,
"allow_imgcode" => 1,
"filter_badwords" => 1
);
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."posts WHERE uid='".$memprofile['uid']."' LIMIT 0, 5");
while($info = $db->fetch_array($query)){
$info['message'] = $parser->parse_message($info['message'], $opcje);
eval('$posty_w_temacie_row .= "'.$templates->get('posty_w_temacie_row').'";');
}
eval('$posty_w_temacie = "'.$templates->get('posty_w_temacie').'";');
}
Pisane na szybko, więc mogą być błędy.
EDIT: opcje Matsloma aktualniejsze (z wideo), skorzystaj z nich jeśli chcesz wyłączyć parsowanie filmów.
18.07.2013, 18:06
Dzięki Matslom za kod parsera i dla Ciebie plus za gotowy kod. Wszystko pięknie śmiga. Plugin leci w DL zaraz ^^
Stron: 1 2