Seite 1 von 3

Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 25.06.2009 14:44
von xconnect
Hi@all,

wenn ein User einen Beitrag schreibt sieht man ja rechts unten im Bild immer kleine Icons, die auf die ausgefüllten Profilfelder wie z.B. "ICQ-Nummer", "AOL Webname", "WLM-Adresse", "Yahoo!-ID", etc. im persönlichen Bereich verweisen.

Ich würde gerne so ein Icon neu anlegen, was einfach rechts daneben auftaucht mit einer Verlinkung, die der jeweilige User in seinem Profil, wie das Feld "Website:" ausfüllen kann.
Wie stelle ich da am geschicktesten an?

Ich habe Euch mal 2 Screenshots gemacht, damit Ihr besser versteht was ich meine:

1. Screenshot für bessere Erklärung (wo soll das Icon hin)
2. Screenshot für bessere Erklärung (wie soll der Link im Profil des persönlichen Bereichs ausfüllbar sein)

...hat also Ähnlichkeiten mit dem Icon Website.


Vielen Dank für Eure Bemühungen im Vorraus!

LG xconnect :D

Nachtrag:
Ich habe mir eben in der Datenbank die Tabelle "phpbb_users" angesehen. Dort gibt eine Feld "user_website", das sicherlich (in Kopie) genutzt werden könnte um so einen Link zu realisieren.
Ich muss wahrscheinlich nochmal so ein Feld anlegen, oder? Aber wie? Alleine kann ich das nicht realisieren und bin da wirklich auf Eure Hilfe angewiesen!

LG xconnect

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 26.06.2009 13:58
von xconnect
Hat da niemand eine Idee?

LG xconnect

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 26.06.2009 17:49
von 4seven
da fällt mir spontan ein:
bau das feld website doch einfach nach.
soll heißen, kopiere die syntax und benenne sie um :wink:
dürfte easy sein :grin:

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 26.06.2009 18:48
von xconnect
Hi 4seven, gute Idee, ... hatte ich auch schon... und wie genau?

LG xconnect :grin:

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 27.06.2009 02:18
von 4seven
kannst du wenigstens etwas html/php? oder bist du "oberflächen-admin" only?
ich bräuchte noch das passende icon. hast du da was?

edit: seis drum, hab's jetzt so gemanaged:
http://www.loaditup.de/files/374474.jpg
http://www.loaditup.de/files/374475.jpg

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 27.06.2009 11:06
von xconnect
Hi 4seven,

das sieht schonmal richtig gut aus!!! :grin:

Wie hast Du das genau realisiert? Kannst Du mir hier eine Anleitung posten?

Zu meinen Kenntnissen:
HTML ist nicht das Problem und PHP (nach HTML mit learnig by doing beigebracht ... und natürlich lerne ich da auch jeden Tag was neues :grin: ) sollte ich, falls ich Vorlagen habe, auch lösen können. :grin:
Ich studiere unter anderem auch (Nebenfach) Informatik, allerdings habe ich mich bis jetzt kaum mit Scriptsprachen, "Webkram" und OOP beschäftigt.

Das was mir das Leben mit phpbb am schwersten macht ist, dass ich noch nicht genau weiß "Was" "Wo" zu finden ist. Aber Du scheinst ja wirklich fit mit PHP zu sein! :grin:

LG xconnect

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 27.06.2009 11:23
von dieweltist

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 27.06.2009 12:46
von 4seven
verstehe..

na dann mal los. ein tip noch voraus, für alle, die phpbb-coden spielerisch erlernen wollen. wir fangen bei dem detektiv-spiel beim monitor, sprich: bei der ausgabe an (bei "reinen" funktionen in den php's) und > das ist in dem falle das template. also suchen wir in dem falle nach der variable für website und da die ausgabe der user-website hier im topic erfolgt, nach der viewtopic_body.html. die zuständige php-datei ist in dem falle (logo) die viewtopic.php. aha, wir wollen ja noch ein feld ins ucp bringen. demnach ist hier als php die ucp_profile.php (sagt ja schon der name) und als template die ucp_profile_profile_info.html zuständig. als language-datei wählen wir die language/de/common.php aus, da die spachvariable für besatz sowohl im ucp als auch in der viewtopic verfügbar sein soll.
- empfehlenswert zum editieren wie immer notepad++.
- zwar nicht zum editieren aber sehr wohl zur datei-übergreifenden suchen ist hier proton optimal.

die sache war hier natürlich einfach, da wir (mit einer kleinen abwandlung) lediglich die funktions-variable website kopieren mussten :wink:

anmerkung: durch dieses beispiel sollte es leicht sein, auch andere dinge ins profil zu beamen.

aber zur sache

sql (phpmyadmin oder mysql-dumper) > wichtig: präfix phpbb_ anpassen :wink:

Code: Alles auswählen

ALTER TABLE phpbb_users ADD COLUMN `user_besatz` varchar(200) COLLATE utf8_bin NOT NULL DEFAULT '';  
öffne

viewtopic.php

finde

Code: Alles auswählen

                'www'            => $row['user_website'],  
dahinter füge ein

Code: Alles auswählen

                'www_besatz'    => $row['user_besatz'],  
finde

Code: Alles auswählen

        'U_WWW'            => $user_cache[$poster_id]['www'],  
dahinter füge ein

Code: Alles auswählen

        'U_BESATZ_PIC'    => $phpbb_root_path . 'images/linkz.gif', 
        'U_WWW_BESATZ'    => $user_cache[$poster_id]['www_besatz'],  
öffne

includes/ucp/ucp_profile.php

finde

Code: Alles auswählen

                    'website'        => request_var('website', $user->data['user_website']),  
dahinter füge ein

Code: Alles auswählen

                    'besatz'        => request_var('besatz', $user->data['user_besatz']),  
finde

Code: Alles auswählen

                        'website'        => array(
                            array('string', true, 12, 255),
                            array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),      
dahinter füge ein

Code: Alles auswählen

                        'besatz'        => array(
                            array('string', true, 12, 255),    
                            array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),  
finde

Code: Alles auswählen

                            'user_website'    => $data['website'],  
dahinter füge ein

Code: Alles auswählen

                            'user_besatz'    => $data['besatz'],  
finde

Code: Alles auswählen

                    'WEBSITE'    => $data['website'],  
dahinter füge ein

Code: Alles auswählen

                    'BESATZ'    => $data['besatz'],  
öffne

language/de/common.php

finde

Code: Alles auswählen

$lang = array_merge($lang, array( 
dahinter füge ein

Code: Alles auswählen

    'BESATZ'                            => 'Mein Besatz',  
öffne

styles/prosilver/template/ucp_profile_profile_info.html

finde

Code: Alles auswählen

    <dl>
        <dt><label for="website">{L_WEBSITE}:</label></dt>
        <dd><input type="text" name="website" id="website" maxlength="255" value="{WEBSITE}" class="inputbox" /></dd>
    </dl>  
dahinter füge ein

Code: Alles auswählen

    <dl>
        <dt><label for="besatz">{L_BESATZ}:</label></dt>
        <dd><input type="text" name="besatz" id="besatz" maxlength="255" value="{BESATZ}" class="inputbox" /></dd>
    </dl>  
öffne

styles/prosilver/template/viewtopic_body.html

finde

Code: Alles auswählen

                    <!-- IF postrow.U_WWW --><li class="web-icon"><a href="{postrow.U_WWW}" title="{L_VISIT_WEBSITE}: {postrow.U_WWW}"><span>{L_WEBSITE}</span></a></li><!-- ENDIF -->  

dahinter füge ein

Code: Alles auswählen

            <!-- IF postrow.U_WWW_BESATZ -->
            <img style="position: relative; bottom: -9px;" 
            src="{postrow.U_BESATZ_PIC}" width="14" height="12" alt="" />
            <strong><span style="position: relative; bottom: -8px;">
            <a href="{postrow.U_WWW_BESATZ}" title="{postrow.U_WWW_BESATZ}">{L_BESATZ}</a></span></strong>
            <!-- ENDIF -->  
-clear all browser and board-caches

-enjoy

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 27.06.2009 13:06
von xconnect
Vielen Dank für die tolle Anleitung 4seven! Ich werde mich gleich mal ranmachen das Ganze einzubauen :D

LG xconnect

Re: Icon im Seitenbereich anlegen mit Link auf interne Website

Verfasst: 27.06.2009 13:25
von 4seven
achja, das pic als linkz.gif [ externes Bild ] noch nach images/linkz.gif kopieren