Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

phpBB 3 - Invitation only?

Pagina: 1
Acties:

  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
Hoi,

Ik wil graag een phpBB 3.0.5 NL forum "invitation only" maken.
De enige mod die ik kan vinden die iets met invitation only te maken heeft, is deze: http://www.phpbb.com/comm...85&hilit=Invitation+Refer , en dat is niet wat ik zoek. Ik wil immers dat enkel de admin invitaties kan geven...
Kortom, zo'n mod lijkt niet te bestaan.

Nu is er hier - als ik mij goed herinner - een Tweaker die het anders oplost: verwijder de registratie links van alle pagina's, en hernoem de pagina vanwaar je de regsitratie kan starten. Geef de mensen die je wil toelaten een link naar deze pagina.
Dat ben ik nu dus aan 't proberen, maar ik kom er niet aan uit.

Ik ben met de Engelse release bezig, het taalpakket verandert het plaatsen van de registratie links allicht niet...

Ik ben zo de verschillende php files aan't doorlopen, maar ik kan 't zo niet direct vinden. Er zijn namelijk bijzonder veel files... :/

Wat ik dus moet vinden is:
waar de content van de header gegenereerd wordt -> verwijderen 'registreer' link
+ van de login pagina (idem)
+ hoe de registratiepagina te hernoemen...

Een grote hulp die ik zou kunnen gebruiken is, welke files moet ik hiervoor hebben?

Het verwijderen van
code:
1
2
3
4
5
6
7
8
9
    case 'register':
        if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        $module->load('ucp', 'register');
        $module->display($user->lang['REGISTER']);
    break;

uit ucp.php maakt registreren algemeen onmogelijk, je beland altijd op de login pagina. Dat heb ik al gevonden, maar dat is dus niet de bedoeling...

Kan iemand helpen?

  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 20:24
PHP:
1
2
3
4
5
6
7
8
9
    case 'register':
        if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        $module->load('ucp', 'register');
        $module->display($user->lang['REGISTER']);
    break;


de if case hierbij is dus sowieso nutteloos hier.
Hiermee bedoel ik dat tussen de if($user->data[status???]=="admin")){

dat hij het dan mag doen anders moet hij redirecten zoals hij nu doet.. begrijp je? dus ofwel
een !="admin"
is waarschijnlijk het makkelijkste

[ Voor 83% gewijzigd door Icekiller2k6 op 17-07-2009 20:52 ]

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000


  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 19:38
Ik heb een tijdje phpBB 3 gebruikt in eenzelfde soort situatie, waarbij algemene registratie uitstond en we zelf gebruikers met de hand toevoegden. Is dat geen optie?

Anders zie ik wel een andere mogelijkheid: Namelijk zelf een parameter toevoegen aan de registratielink.

Je stuurt gebruikers dus een link die ongeveer zo is: http://domain.tld/forum/u...register&invitationCall=1

Je moet de code die je hieronder had staan als volgt aanpassen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
case 'register':
        if( empty(  $_GET[ 'invitationCall' ] ) ){  // dit is dus eigenlijk een manier om te controlleren of iemand jouw speciale link heeft gehad
          break;//eventueel kan je ook een pagina met een error aanroepen en exit; gebruiken
        }
        if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        $module->load('ucp', 'register');
        $module->display($user->lang['REGISTER']);
        break;


De code bevat mogelijk fouten, maar het gaat om het idee. Je zou bijvoorbeeld de empty() functie kunnen mergen met de if die er al staat en gebruikers zonder geprepareerde link aldus doorsturen naar de index.php.

Waarschijnlijk moet het registratieformulier ook worden aangepast om de invitationCall parameter bij het submitten mee te sturen.

@Icekiller2k6: Ik snap niet wat je bedoelt :S

edit: onhandig idee een beetje aangepast :p

[ Voor 47% gewijzigd door doeternietoe op 17-07-2009 21:06 ]


  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
@ Icekiller:
Nee, ik volg niet...

@ Doeterniettoe:
Erg bedankt voor je code. Ik ga het zo meteen eens uitproberen. :)

upc.php is idd de pagina die wordt aangesproken voor het registreren en inloggen, zoals je net vroeg. :)

Edit: Getest:
Klikken op de registratie link op het forum resulteert in een wit blad (break), dat is dus al goed. (moet die link nog wel weg, maar dat is voor later).
Via het soort link dat jij geeft kom je effectief op de pagina om te registreren, maar dan moet je eerst de voorwaarden accepteren. Klik 'accepteren en doorgaan', en je krijgt een wit blad...

M.a.w, je geraakt succesvol op:
http://www.***.**/forum/ucp.php?mode=register&invitationCall=1
maar om daarna problemen te hebben bij het verder gaan naar:
http://www.***.**/forum/ucp.php?mode=register

[ Voor 239% gewijzigd door Tweaker36 op 17-07-2009 21:35 ]


  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 19:38
Tweaker36 schreef op vrijdag 17 juli 2009 @ 21:11:
Via het soort link dat jij geeft kom je effectief op de pagina om te registreren, maar dan moet je eerst de voorwaarden accepteren. Klik 'accepteren en doorgaan', en je krijgt een wit blad...

M.a.w, je geraakt succesvol op:
http://www.***.**/forum/ucp.php?mode=register&invitationCall=1
maar om daarna problemen te hebben bij het verder gaan naar:
http://www.***.**/forum/ucp.php?mode=register
doeternietoe schreef op vrijdag 17 juli 2009 @ 20:54:
Waarschijnlijk moet het registratieformulier ook worden aangepast om de invitationCall parameter bij het submitten mee te sturen.
Je moet dus dat formulier zo aanpassen dat $_GET[ 'invitationCall' ] ook bij het verzenden van het formulier wordt behouden.

Deze regel:
HTML:
1
<form method="post" action="./ucp.php?mode=register" id="agreement">

Moet dus zo worden:
HTML:
1
<form method="post" action="./ucp.php?mode=register&invitationCall=1" id="agreement">


En bij het volgende formulier hetzelfde idee. Kijk hoe phpBB die action in de template vult en hoe je dat kunt aanpassen. Dat kan hardcoded, in je template of in de php-bestanden die deze template vullen.

edit: De lap code die je nu plakt lijkt me niet zo relevant. Lange lappen code kun je beter sowieso niet op het forum plakken. Je had de relevante code er al uit gehaald, dus meer is niet nodig. Als het toch nodig is/lijkt veel code te plakken lijkt deze me handiger:
http://pastebin.com/

edit2: en hij is weer weg :)

[ Voor 11% gewijzigd door doeternietoe op 17-07-2009 21:37 ]


  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
Idd, ik snap het.

Alleen, waar haal jij die regel vandaan?

Ik gebruik het 610NM theme, en dat is de inhoud van ucp_agreement.html:

HTML:
1
2
3
<!-- (...) -->
<form method="post" action="{S_UCP_ACTION}">
<!-- (...) -->


Idd. Die regel dus.

[ Voor 74% gewijzigd door Tweaker36 op 17-07-2009 21:53 ]


  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 19:38
Tweaker36 schreef op vrijdag 17 juli 2009 @ 21:41:
(...)waar haal jij die regel vandaan.
Van het forum van phpbb.com, de plek waar ik het snelst een draaiende variant van phpBB kon vinden :p Misschien dat ze hun eigen forum niet helemaal in onaangepaste vorm gebruiken :)

Deze moet iets mee gebeuren:
code:
1
action="{S_UCP_ACTION}"


En ik laat aan jou over hoe. :)

  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
Ik moet toegeven dat mij kennis php zeer minimaal is, maar ik wil geen verwijt van zelf niet te zoeken.
Ik laat 't je weten als ik het gevonden heb. ;)

Edit: Gevonden, zie verder.

[ Voor 11% gewijzigd door Tweaker36 op 17-07-2009 23:34 ]


  • r0b
  • Registratie: December 2002
  • Laatst online: 16:50

r0b

Um, als alleen de admin "invites" uit kan delen, kan je dan niet gewoon registraties eerst laten activeren door een admin? Zelfde effect, toch?

Kijk anders hier eens: http://www.phpbb.com/comm...85&hilit=Invitation+Refer

  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
r0b schreef op vrijdag 17 juli 2009 @ 21:58:
Um, als alleen de admin "invites" uit kan delen, kan je dan niet gewoon registraties eerst laten activeren door een admin? Zelfde effect, toch?

Kijk anders hier eens: http://www.phpbb.com/comm...85&hilit=Invitation+Refer
Dat klopt, alleen staat het zo mooi niet he... Je kan registreren, maar je registratie zal nooit geaccepteerd worden... :|

Naar die mod had ik al in mijn startpost verwezen. ;)

  • r0b
  • Registratie: December 2002
  • Laatst online: 16:50

r0b

Tweaker36 schreef op vrijdag 17 juli 2009 @ 22:07:
[...]


Dat klopt, alleen staat het zo mooi niet he... Je kan registreren, maar je registratie zal nooit geaccepteerd worden... :|

Naar die mod had ik al in mijn startpost verwezen. ;)
Stom, had de TS wel gelezen maar dat was me glad ontschoten .. :+

Anyway, als jij publieke registratie uit schakelt (phpBB optie), het aantal invites per member op 0 zet, dan kan jij met die mod - volgens mij, als ik de beschrijving goed lees - gewoon via het adminpanel invites uitgeven.

  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
Ik geef niet op. :)

Na 'lang' zoeken bleken de nodige declaraties in \includes\ucp\ucp_register.php te staan.
Door regel 136 en 558 te editten (dus de andere niet) ben ik erin geslaagd succesvol te registreren.

Nu nog de links verwijderen. Ik ben er al achter, dat dit theme afhankelijk is en ik daar moet zoeken. :)
Maar waar...

[ Voor 4% gewijzigd door Tweaker36 op 17-07-2009 23:20 ]


  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
Ik snap het niet, hoe ik die links weg krijg. Ik zou verwachten dat als ik uit overall_header.html regel 197:

HTML:
1
<!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED --><li><a href="{U_REGISTER}">{L_REGISTER}</a></li><!-- ENDIF -->


verwijder, de registratie knop uit de hoofdnavigatie is...?

Idem voor login_body.html, regel 39 tot 41:
HTML:
1
2
3
<!-- IF not S_ADMIN_AUTH and S_REGISTER_ENABLED -->
    <br /><a class="gensmall" href="{U_REGISTER}">{L_REGISTER}</a>
<!-- ENDIF -->


Maar dat schijnt dus niet zo te zijn... :/

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 19:38
Houdt er wel rekening mee dat phpBB3 templates cached. Dat houdt simpel in dat je eerst in de admintools de cache moet legen voordat een aanpassing aan je templates werkelijk wordt doorgevoerd.

  • Tweaker36
  • Registratie: Juni 2007
  • Laatst online: 18-09 08:25
doeternietoe schreef op zaterdag 18 juli 2009 @ 00:16:
Houdt er wel rekening mee dat phpBB3 templates cached. Dat houdt simpel in dat je eerst in de admintools de cache moet legen voordat een aanpassing aan je templates werkelijk wordt doorgevoerd.
Zo, dat deed het hem dus.
Alle registratie links zijn verdwenen, door de aanpassingen beschreven in mijn vorige post, en even de buffer te legen! :)

Het forum is voor niet-technische mensen bedoeld, dus die gaan nooit zelf http://www.***.**/forum/ucp.php?mode=register handmatig gaan ingeven. De gewone break mag dus blijven, ga er geen redirect van maken...

Goed, erg bedankt! :)
Pagina: 1