Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Skrypt szukający filmów YT w postach i pokazujący je na głów. Zmiana phpbb3 na MyBB

Założony przez  SwietyMikolaj.

Cześć.  Słuchajcie, potrzebuje pomocy ze skryptem, który szuka filmów z youtube w postach i umieszcza je na stronie głównej i w archiwum.
Skrypt działa na phpbb3, ale nie wiem jak go przerzucić na MyBB.
Do MyBB zainstalowałem plugin Theme Variables, Dodałem tam var o nazwie filmy1
Skrypt wygląda tak:

// Assign index specific vars

for ($u = 0; $u < 10; $u++)
{
mysql_query('SET NAMES utf8');

$wynik = mysql_query('SELECT * FROM mybb_posts WHERE message LIKE "%youtube%" ORDER BY tameline DESC LIMIT '.$u.', 1');
    if(mysql_num_rows($wynik) > 0) {
        $caption = array();
            while($rows = mysql_fetch_array($wynik)){      
            $caption[] = $rows;
            }
        foreach($caption as $row) {
        $yt = substr_count($row['post_text'], '[youtube');
        $tablica_tekst_yt = explode('[youtube',$row['post_text']);
        for ($i=0; $i<$yt; $i++) {
            $tablica_tekst_yt2 = explode('[/youtube',$tablica_tekst_yt[++$i]);
            $wydobyty_parametr_v = explode('v=',$tablica_tekst_yt2[0]);
            $parametrV = explode(' ',$wydobyty_parametr_v[1]);
            $v = $parametrV[0];
            $template->assign_block_vars('somerow', array(
                'VAR1'   => "<div align=\"center\" style=\"background-color:#AAE0F0\"><a href=\"http://<link-bez reklamy>.pl/viewtopic.php?f=".$row['forum_id']."&t=".$row['topic_id']."&p=".$row['post_id']."#p".$row['post_id']."\">".$row['post_subject']."</div></br><span><img src=\"http://img.youtube.com/vi/".substr($v, 0, 11)."/2.jpg\"></a><hr>",
            ));
            }
        }
    }
}
Lecz niestety nie działa, próbuję go jakoś modyfikować, ale coś mi nie wychodzi. W szablony->strona głowna -> index.php wrzuciłem @{filmy1}, ale się krzaczy i na stronie głównej wyskakuje tylko
[Obrazek: beznazaxa.jpg]

Jeszcze mam podstronę archiwum.php, która ma taki kod:
<?php
header('Content-Type: text/html; charset=utf-8');
   /**
   *
   * @autor Imie i nazwisko autora email_autora@domena.pl - http://mojastrona.pl
   * @autor Nazwa autora inny_email@domena.pl - http://mojastrona.pl
   *
   * @paczka {NAZWAPACZKI}
   * @wersja $Id$
   * @prawa autorskie (c) 2009 Nazwa Grupy
   * @licencja http://opensource.org/licenses/gpl-license.php GNU Public License
   *
   */

   /**
   * @ignouj
   */
   define('IN_PHPBB', true);
   // Okresl sciezke do katalogu w którym zainstalowane jest  phpBB3.
   $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
   $phpEx = substr(strrchr(__FILE__, '.'), 1);
   // Plik common.php jest wymagany.
   include($phpbb_root_path . 'common.' . $phpEx);
   include($phpbb_root_path . '/includes/functions_display.' . $phpEx);

   // Start session management
   $user->session_begin();
   $auth->acl($user->data);

   // okresl style i/lub lokalizacje
   // w tym przykladzie, okreslilismy ze bedziemy uzywac plik: moj_jezyk.php
   $user->setup('mods/new_lang');

   /*
   * Wszystkie kodowania beda tutaj, ustawienia zmiennych, zapytania bazy danych, itd...
   *
   * To jest bardzo prosty przyklad, majacy na celu pokazanie Ci jak to dziala.
   */
   $example_variable = sprintf($user->lang['TIME_NOW'], $user->format_date(time()));
   $google_logo = '<a href="http://www.google.com/"><img src="http://www.google.com/intl/en_ALL/images/logo.gif" alt="Google" /></a>';
    
    // PLAYER
    
    $video = $_GET["v"];
    $komunikat = '<div align="center"><font size="+3" color="#FF0000"><b>'.sprintf($user->lang['KOMUNIKAT_VIDEO_LOGIN']).'</b></font></div> ';    
    
   // Typowy przyklad wysylania zmiennych do szablonu.
   $template->assign_vars(array(
       'EXAMPLE_VAR'    => $example_variable,
       'GOOGLE_LOGO'    => $google_logo,
       'MY_AVATAR'      => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
        'VIDEO'          => $video,
        'KOMUNIKAT'         => $komunikat,
   ));

   /*
    * przypisywanie stalych danych do tabeli.
    * wszystkie ciagi jezykowe beda zawarte w pliku jezykowym,
    */
    
    // Pokaz artykulów
        $dbms2 = 'mysqli';
        $dbhost2 = 'localhost';
        $dbname2 = '';
        $dbuser2 = '';
        $dbpasswd2 = '';
        
        // nawiazujemy polaczenie
        $connection2 = @mysql_connect($dbhost2, $dbuser2, $dbpasswd2)
        // w przypadku niepowodznie wyswietlamy komunikat
        or die('Brak polaczenia z serwerem MySQL.<br />Blad: '.mysql_error());
        // polaczenie nawiazane ;-)
        // echo "Udalo sie polaczyc z serwerem!<br />";
        // nawiazujemy polaczenie z baza danych
        
        $db2 = @mysql_select_db($dbname2, $connection2)
        // w przypadku niepowodzenia wyswietlamy komunikat
        or die('Nie moge polaczyc sie z baza danych<br />Blad: '.mysql_error());
        // polaczenie nawiazane ;-)
        // echo "Udalo sie polaczyc z baza danych!";
        mysql_query('SET NAMES utf8');


       //$wynik = mysql_query('SELECT * FROM mybb_posts ORDER BY post_id DESC');
        if (!(isset($_GET["strona"])) || ($_GET["strona"] == 0)) {
            $strona = 0;
            $ilosc = 25;
        } else {
            $strona = $_GET["strona"];
            $ilosc = 25;
        }
        
        $wynik = mysql_query('SELECT * FROM autowrzuta_posts WHERE post_text LIKE "%[youtube%" ORDER BY post_id DESC LIMIT '.$strona.', '.$ilosc);
        if(mysql_num_rows($wynik) > 0) {
        $caption = array();
        while($rows = mysql_fetch_array($wynik)){      
        $caption[] = $rows;
        }
        foreach($caption as $row) {
        // Check if youtube video item exists by the existance of the the 200 response
        $yt = substr_count($row['post_text'], '[youtube');
        $tablica_tekst_yt = explode('[youtube',$row['post_text']);
        for ($i=0; $i<$yt; $i++) {
            $tablica_tekst_yt2 = explode('[/youtube',$tablica_tekst_yt[++$i]);
            $wydobyty_parametr_v = explode('v=',$tablica_tekst_yt2[0]);
            $parametrV = explode(' ',$wydobyty_parametr_v[1]);
            $v = $parametrV[0];
            $u++;
            if (($u%5==0) && ($u!=25)) {
                $podzial = "\n</tr><tr>\n";
            } elseif ($u==25) {
                $podzial = "\n</tr>\n";
            } else {
                $podzial = "";
            }
            $template->assign_block_vars('thumbnail', array(
                'EXAMPLE' => "<td class=\"bg1\" align=\"center\"><a href=\"http://autowrzuta.pl/viewtopic.php?f=".$row['forum_id']."&t=".$row['topic_id']."&p=".$row['post_id']."#p".$row['post_id']."\"><span>".$row['post_subject']."</span></br><span><img src=\"http://img.youtube.com/vi/".substr($v, 0, 11)."/2.jpg\"></a></td>".$podzial,
            ));
            }
        }
    }
$przelicz_strony = mysql_query('SELECT * FROM autowrzuta_posts WHERE post_text LIKE "%[youtube%"');
$ilosc_wierszy = mysql_num_rows($przelicz_strony);
$numer_strony = $ilosc_wierszy / 25;
for($nr=0;$nr<$numer_strony;$nr++) {
    $nast = $nr * 25;
    ++$prezentacja_numeru_strony;
    if ((isset($_GET["nr"])) && ($_GET["nr"] == $prezentacja_numeru_strony)) {
        $kolor = "#FF0000";
        $rozmiar = "+2";
        $link = "";
        $link_end = "";
    } else {
        $kolor = "#000000";
        $rozmiar = "+1";
        $link = "<a href=\"?strona=".$nast."&nr=".$prezentacja_numeru_strony."\">";
        $link_end = "</a>";
    }
    $template->assign_block_vars('podzial', array(
        'NR_STRONY' => $link."<font color=\"".$kolor."\" size=\"".$rozmiar."\">".$prezentacja_numeru_strony."</font>".$link_end." || ",
    ));
}

   // Tytul strony, ta zmienna jezykowa powinna byc okreslona w pliku jezykowym.
   page_header($user->lang['MOJ_TYTUL']);

   // Ustaw nazwe pliku szablonu którego chcesz uzyc dla tego pliku.
   // Nazwa pliku szablonu zlokalizowanego w /styles/twoj_styl/templates/.
   $template->set_filenames(array(
       'body' => 'new_body.html',
   ));

   // Konczymy skrypt i pokazujemy strone.
   page_footer();

   ?>

Ale tego kodu nie przyjmuje edytor szablonów forum, bo wyskakuje 503.


Pomoże ktoś przerobić ten kod na MyBB?
W finalnej wersji forum będzie zakładka partnerzy i nie omieszkam wrzucić tam linka do mybboard.pl
Pozdrawiam.
myCreedo napisał 01.10.2016, 13:36:
Niewłaściwy dział, przenoszę. Staraj się pisać tematy w odpowiednich działach.
1. W szablonach mybb nie można używać php. Jeżeli koniecznie chcesz to zrobić to użyj pluginu php in templates który doda taką opcję.
2. Nie radziłbym używać tego skryptu w obecnej formie bo generować on będzie duże obciążenie. Każde odświeżenie strony głównej będzie przeszukiwało dużą ilość postów w poszukiwaniu filmiku.
Powinno to działać na innej zasadzie. Poszukiwanie filmu powinno odbywać się podczas dodawania nowego posta. Jeżeli zostanie wykryty to dodawany byłby do tabeli z filmami. Strona główna pobierałaby jedynie x filmików z tabeli z gotowymi danymi. Niestety takie coś wymaga trochę pracy i nie wiem czy ktoś napisze Ci to od zera. Na forum możemy Cię nakierować/pomóc jednak musisz zabrać się do pisania tego sam.
3. Co do archiwum to zapoznaj sie z tym http://mybbsite.pl/dodawanie-nowej-podstrony/ Jednak ten skrypt wymaga także sporo zmian aby działał pod MyBB.
Zainstalowałem ten plugin ale nawet mybb nadal i nawet w takiej formie nie akceptuje tego skryptu, bo wyskakuje 403.

Mogę się namęczyć, aby wskażcie drogę i pomóżcie :)
Wyskakuje 403 bo jest to skrypt dla phpbb. Tak jak pisałem, potrzeba go zmodyfikować.



Użytkownicy przeglądający ten wątek: