Skocz do zawartości
  • 0
Madafaker

Zakładka w profilu

Pytanie

Cześć, zacząłem pisać dość małą appkę pod IP.Board.

Zrobiłem system newsów, kto jest aktualnie na serwerze itd. taki panel gracza. Zrobiłem już sam panel, teraz zabieram się do zakładki w profilu. Przeczytałem tutaj poradnik o nich, przeczytałem na forum ipsu też, no i zrobiłem. Mam malutki problem, nie wiem jak zrobić, by każdy użytkownik miał tak jakby swój kod, tzn. np. nick w tej zakładce, a nie to co ja mam.

 

Oraz chciałbym zrobić w ustawieniach profilu zakładkę o np. dodania tam swojego kodu :P

Myślę, że coś zrobić z bazą, dodać tabele czy coś. Proszę o pomoc. :P

 

Pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Polecane posty

  • 0


by każdy użytkownik miał tak jakby swój kod, tzn. np. nick w tej zakładce, a nie to co ja mam

 

tzn? możesz jaśniej? to zależy jaki kod napisałeś dla zakładki

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Dobra, narazie zostawiłem sam kod zakładki, ale chcę zrobić do tego zakładkę w ustawieniach profilu o nazwie "Minecraft", w której by było okienko itd.

 

Dodałem do tabeli members kolumnę o nazwie minecraft. Teraz chciałbym się dowiedzieć jak zrobić ZAPIS i ODCZYT tego pola w profilu, zapis to w ustawieniach profilu, pole.

 

Już wczoraj modziłem i zrobiłem coś takiego:

 

Odczyt:

  /**
     * Show the minecraft pages
     *
     * @author    PGmajster
     * @return    string        Processed HTML
     */
    public function formMinecraft()
    {
        /* Load editor stuff */
        $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );
        $this->editor = new $classToLoad();
        
        /* HTML checkbox language strings */
        $this->registry->getClass('class_localization')->loadLanguageFile( array( 'public_post' ), 'forums' );
        
        //-----------------------------------------
        // Check to make sure that we can edit profiles..
        //-----------------------------------------
                
        $minecraft_restrictions = explode( ':', $this->memberData['g_minecraft_limits'] );
        
        if ( ! $this->memberData['g_edit_profile'] OR ( $minecraft_restrictions[0] AND ! $this->memberData['g_minecraft_unit'] ) )
        {
            $this->registry->getClass('output')->showError( 'members_profile_disabled', 1024, null, null, 403 );
        }
        
    
            
            if( $form['_noPerm'] )
            {
                return $this->registry->getClass('output')->getTemplate('ucp')->membersMinecraftFormError( $form );
            }
        }

         
        /* Set content in editor */
        $this->editor->setLegacyMode(false);
        $this->editor->setAllowBbcode( true );
        $this->editor->setAllowSmilies( true );
        $this->editor->setAllowHtml( $this->memberData['g_dohtml'] );
        $this->editor->setIsHtml( $this->memberData['bw_html_minecraft'] );
        $this->editor->setBbcodeSection('minecraft');
        $this->editor->setContent( $this->memberData['minecraft'] );
        
        /* Load parser */
        $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/text/parser.php', 'classes_text_parser' );
        $parser = new $classToLoad();
        
        $parser->set( array( 'memberData'       => $this->memberData,
                             'parseBBCode'       => 1,
                             'parseHtml'       => ( $this->memberData['g_dohtml'] && $this->memberData['bw_html_minecraft'] ),
                             'parseArea'      => 'minecraft',
                             'parseEmoticons' => 1 ) );
        
        $minecraft    = $parser->display( $this->memberData['minecraft'] );
        
        return $this->registry->getClass('output')->getTemplate('ucp')->membersMinecraftForm( $this->editor->show( 'Post', array( 'noSmilies' => false ) ), $minecraft_restrictions, $minecraft );
    }

 

Zapis

 

/**
     * UserCP Save Form: Minecraft
     *
     * @return    array    Errors
     */
    public function saveMinecraft()
    {
        /* Load editor stuff */
        $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );
        $this->editor = new $classToLoad();
        $this->editor->setLegacyMode(false);
        
        $isHtml = intval( $this->request['minecraft_htmlstatus'] );
        
        //-----------------------------------------
        // Check to make sure that we can edit profiles..
        //-----------------------------------------

        $minecraft_restrictions    = explode( ':', $this->memberData['g_minecraft_limits'] );
        
        if ( ! $this->memberData['g_edit_profile'] OR ( $minecraft_restrictions[0] AND ! $this->memberData['g_minecraft_unit'] ) )
        {
            $this->registry->getClass('output')->showError( 'members_profile_disabled', 1028, null, null, 403 );
        }

        //-----------------------------------------
        // Post process the editor
        // Now we have safe HTML and bbcode
        //-----------------------------------------
        
        /* Set content in editor */
        $this->editor->setAllowBbcode( true );
        $this->editor->setAllowSmilies( true );
        $this->editor->setIsHtml( $this->memberData['g_dohtml'] && $isHtml );
        $this->editor->setBbcodeSection('minecraft');
        $this->editor->setContent( $this->memberData['minecraft'] );
        
        $minecraft = $this->editor->process( $_POST['Post'] );
        
        //-----------------------------------------
        // Parse post
        //-----------------------------------------
        
        /* Load parser */
        $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/text/parser.php', 'classes_text_parser' );
        $parser = new $classToLoad();
        
        $parser->testForParsingLimits( $minecraft, array( 'quote', 'emoticons', 'urls' ) );
            
        if ( is_array( $parser->getErrors() ) && count( $parser->getErrors() ) )
        {
            $this->lang->loadLanguageFile( array( 'public_post' ), 'forums' );
                
            $_error    = array_pop( $parser->getErrors() );
            $this->registry->getClass('output')->showError( $_error, 10210 );
        }
        
        //-----------------------------------------
        // Signature restrictions...
        //-----------------------------------------
        
        $minecraft_errors    = array();

        $minecraft    = preg_replace( '#^\s*(</p>)+#i', '', $minecraft );
        $minecraft    = preg_replace( '#(</p>)+?\s*$#i', '', $minecraft );
        
        
        
        //-----------------------------------------
        // Now the crappy part..
        //-----------------------------------------
                
        if( isset($minecraft_restrictions[2]) and $minecraft_restrictions[2] !== '' AND isset($minecraft_restrictions[3]) and $minecraft_restrictions[3] !== '' )
        {
            preg_match_all( '/\<img([^>]+?)>/i', $minecraft, $allImages );

            if( count($allImages[1]) )
            {
                foreach( $allImages[1] as $foundImage )
                {
                    preg_match( '#src=[\'"]([^\'"]+?)[\'"]#i', $foundImage, $url );
                    $imageProperties = @getimagesize( $url[1] );
                    
                    if( is_array($imageProperties) AND count($imageProperties) )
                    {
                        if( $imageProperties[0] > $minecraft_restrictions[2] OR $imageProperties[1] > $minecraft_restrictions[3] )
                        {
                            $minecraft_errors[] = sprintf( $this->lang->words['sig_imagetoobig'], $url[1], $minecraft_restrictions[2], $minecraft_restrictions[3] );
                        }
                    }
                    else
                    {
                        $minecraft_errors[] = $this->lang->words['sig_imagenotretrievable'];
                    }
                }
            }
        }
        
        if( count($minecraft_errors) )
        {
            $this->registry->getClass('output')->showError( implode( '<br />', $minecraft_errors ), 10211 );
        }
        
        /* Save HTML status */
        $members_bitoptions = IPSBWOptions::thaw( $this->memberData['members_bitoptions'], 'members', 'global' );
        $members_bitoptions['bw_html_minecraft'] = $isHtml;
        
        //-----------------------------------------
        // Write it to the DB.
        //-----------------------------------------
        
        IPSMember::save( $this->memberData['member_id'], array( 'members' => $members_bitoptions, 'extendedProfile' => array( 'minecraft' => $minecraft ) ) );
        
        /* Update cache */
        IPSContentCache::update( $this->memberData['member_id'], 'minecraft', $parser->display( $minecraft ) );
        
        return TRUE;
    }
  

 

To dodałem do

admin/applications/core/extensions/usercpForms.php

 

Skopiowałem to z kodu sygnatury, więc odłamki pozostały.

 

Gdy przechodze do edycji profilu wyskakuje mi błąd

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /home/u121283872/public_html/upload/admin/applications/core/extensions/usercpForms.php on line 1308

 

około 10 lin przed linią 1308

 

    public function formMinecraft()
    {
        /* Load editor stuff */
        $classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );
        $this->editor = new $classToLoad();
        
        /* HTML checkbox language strings */
        $this->registry->getClass('class_localization')->loadLanguageFile( array( 'public_post' ), 'forums' );
        
        //-----------------------------------------
        // Check to make sure that we can edit profiles..
        //-----------------------------------------
                
        $minecraft_restrictions = explode( ':', $this->memberData['g_minecraft_limits'] );
        
        if ( ! $this->memberData['g_edit_profile'] OR ( $minecraft_restrictions[0] AND ! $this->memberData['g_minecraft_unit'] ) )
        {
            $this->registry->getClass('output')->showError( 'members_profile_disabled', 1024, null, null, 403 );
        }
        
    
            
            if( $form['_noPerm'] )
            {
                return $this->registry->getClass('output')->getTemplate('ucp')->membersMinecraftFormError( $form );
            }
        }

 

Linia 1308: $this->editor->setLegacyMode(false);

 

Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

A linijka 1307 lub kilka wcześniej ? Namieszałeś tymi parserami i tym wszystkim strasznie :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Wiem. :nomention:

 

Wyżej podałem od linijki około 1230 do 1308.

 

//Edit

ogólnie chce usunąć $minecraft_restrictions

ale nie wiem jak się za to zabrać. W kodach np. jest coś takiego:

if ( ! $this->memberData['g_edit_profile'] OR ( $minecraft_restrictions[0] AND ! $this->memberData['g_minecraft_unit'] ) )

No i jak usunąć $minecraft_resticitions? Wgl. będzie bez tego użyteczny kod?

Edytowano przez Madafaker

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Nie wiem, ciężko mi tak z kontekstu cokolwiek wywnioskować, bo nie wiem co jest co

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Problem został rozwiązany.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.