Uporabniki Komponent Inurl Pogled registracije je frisky. Kvačkanje in pletenje - sheme in pletenje vzorcev. Prej se je spremenila spremembe datotek

Segal bomo upoštevali izkoriščanje kritične 1-dnevne ranljivosti v priljubljeni CMS Joomla, ki je na internetu nazdravila konec oktobra. To bo šla na ranljivosti s številkami CVE-2016-8869., CVE-2016-8870. in CVE-2016-9081.. Vsi trije se pojavijo iz enega kode, ki je bil nekoč v globinah okvira, ki čakajo na svoje ure, potem se osvobodimo in prinašajo z njim kaos, hacked mestih in solze v nedolžnih uporabnikih te Joomle. Samo najbolj pogumni in krepki razvijalci, katerih oči so rdeče od svetlobe monitorjev, in tipkovnice so naletene s krušnimi drobtinami, so lahko izpodbijale otekle sprave in nalagajo glavo na oltar popravkov.

Opozorilo

Vse informacije so na voljo izključno za informativne namene. Niti uredniki niti avtor niso odgovorni za morebitno škodo, ki jo povzročajo materiali tega člena.

Zakaj se je vse začelo

6. oktobra 2016, Damis Palma (Demis Palma) je ustvaril temo o zamenjavi stack, ki se je spraševala: zakaj, v Joomla različici 3.6 obstajata dve metodi za registracijo uporabnikov z istim registrom imena ()? Prvi se nahaja v uporabniškem kontrolorju, drugi pa v uporabniških storitvah. Damis je želel vedeti, če uporabnikiKrolleruser :: Register () se uporablja nekje, ali pa je samo evolucijski anahronizem, ki ostaja iz stare logike. Z njimi je bil zaskrbljen zaradi dejstva, da se lahko, tudi če se ta metoda ne uporablja v nobeni predstavitvi, se lahko imenuje z uporabo oblikovane zahteve. Kakšen je bil odgovor razvijalca pod vzdevkom Itoctopusa, ki potrjuje: problem res obstaja. In poslala poročilo Joomla razvijalcem.

Nato so se dogodki najhitreje razvili. 18. oktobra, razvijalci Joomla sprejmejo poročilo Damis, ki je do takrat pounded Poc, ki vam omogoča, da registrirate uporabnika. Objavil je sporočilo na svojem spletnem mestu, kjer je na splošno povedal o problemu in misli o tem. Istega dne se pojavi nova različica Joomla 3.6.3, ki še vedno vsebuje ranljivo kodo.

Po tem, David Tampellini (Davide Tampellini) vrtenje hrošča v stanje registracije ni preprost uporabnik, ampak skrbnik. In 21. oktobra, Varnostna ekipa Joomla prispe nov primer. To že govori o dvigu privilegijev. Istega dne se napoved pojavi na spletni strani Joomla, ki bo v torek, 25. oktobra, bo izšla druga različica z zaporedno številko 3.6.3, ki bo popravlja kritično ranljivost v sistemskem jedru.

25. oktobra, Joomla Security Strike Ekipa najde zadnji problem, ki ga je koda odkrila Damis. Potem v glavni veji uradnega skladišča Joomla, se zaveza z oktobra 21, z neopaznim imenom Pripravite 3.6.4 stabilno sproščanje, ki določa slabega napajanja.

Po tem so številni zainteresirani posamezniki povezani s prenosom razvijalcev do prenosa razvijalcev - začnejo spodbujati ranljivost in trdno snov.

27. oktobra, Harry Roberts Raziskovalec določa pripravljen izkoriščanje v repozitoriju XIPHOS, ki lahko prenese datoteko PHP na strežnik z ranljivim CMS.

Podrobnosti

No, s prazgodovino je končano, pojdite na najbolj zanimivo stvar - razglednost ranljivosti. Kot testno različico sem namestil Joomla 3.6.3, zato bodo vse vrste vrstic pomembne za to različico. In vse poti do datotek, ki jih boste videli, bodo prikazane glede na koren nameščenih CMS.

Zahvaljujoč najti Damis Palm, vemo, da obstajata dve metodi, ki opravljajo registracijo uporabnika v sistemu. Prvo uporablja CMS in je v /componenteni/com_users/Controllers/comers/Controllers/Registration.php:108. Drugi (tisti, ki ga bomo morali poklicati), živi v / komponente / COM_USERS / Krmilniki / User.php: 293. Poglejmo ga bližje.

286: / ** 287: * Metoda za registracijo uporabnika. 288: * 289: * @return Boolean 290: * 291: * @Since 1.6 292: * / 293: Register javne funkcije () 294: (295: JSession :: CheckToken ("Post") ali Jexit (Jtext :: _ ("Jinvalid_token")); ... 300: // dobite podatke obrazca. 301: $ Data \u003d $ To-\u003e Input-\u003e Post-\u003e Get ("User", Array (), "Array"); .. 315: $ Return \u003d $ Model-\u003e Potrdilo ($ Obrazec, $ Podatki); 316: 317: // Preverite napake. 318: če ($ Return \u003d\u003d\u003d False) 319: (... 345: / Končajte registracijo. 346: $ Return \u003d $ Model -\u003e Registriraj se ($ Podatki);

Tukaj sem zapustil samo zanimive linije. Celotno različico ranljive metode si lahko ogledate v skladišču Joomla.

Ugotovili bomo, kaj se zgodi, ko redna registracija uporabnika: Kateri podatki se pošljejo in kako se obdelujejo. Če je registracija uporabnika omogočena v nastavitvah, lahko na obrazcu najdete na http: //joomla.local/index.php/component/users/? View \u003d Registracija.


Legitimna zahteva za registracijo uporabnika izgleda kot naslednji zaslon.


Komponente COM_Users je odgovorno za delo z uporabniki. V poizvedbi bodite pozorni na parameter opravil. Ima $ Controller. $ Metoda. Poglejmo strukturo datoteke.

Imena skriptov v mapi krmilniki. Izpolnjuje imena imenovanih krmilnikov. Ker je v naši zahtevi zdaj $ Controller \u003d "Registracija", bo datoteka poklicala. registracija.php. in njen register () metoda.

Pozor, Vprašanje: Kako posredovati obdelavo registracije na ranljivem območju v kodi? Verjetno ste že uganili. Imena ranljivih in sedanjih metod sovpada (register), zato lahko samo spremenimo ime imenovanega krmilnika. In kje je ranljiv krmilnik? Desno v datoteki uporabnik.php.. Izkazalo se je $ Controller \u003d "Uporabnik". Zbiramo vse skupaj in dobimo nalogo \u003d uporabnik.Registriraj. Zdaj je zahteva za registracijo obdelana z metodo, ki jo potrebujemo.


Druga stvar, ki jo moramo storiti, je, da pošljete podatke v pravo obliko. Tukaj je vse preprosto. Legitimni register () čaka na polje od nas imenovanega JFFORT, v katerem pošiljamo podatke za registracijo - ime, prijavo, geslo, pošto (glejte posnetek zaslona s poizvedbo).

  • /componetedes/com_users/controllers/registration.php: 124: // dobil uporabniške podatke. 125: $ RequestData \u003d $ To-\u003e Input-\u003e Post-\u003e Get ("JForm", matrika (), "matrika");

Naš oddelek prejme te podatke iz pomerjenega uporabnika.

  • /componetedes/com_users/controllers/user.php: 301: // dobil podatke obrazca. 302: $ Data \u003d $ To-\u003e Input-\u003e Post-\u003e Get ("User", Array (), "Matrika");

Zato spreminjamo imena vseh parametrov z JFROM na uporabnika.

Tretji korak je, da najdete veljaven žeton CSRF, saj ne bo registracije brez nje.

  • /Componetedes/com_users/controllers/user.php: 296: JSession :: CheckToken ("Post") ali Jixit (Jinvalid_token));

Izgleda kot hash md5, in ga lahko vzamete, na primer iz obrazca za avtorizacijo na spletnem mestu /dex.php/component/users/?view\u003dlogin.


Zdaj lahko uporabnike ustvarite z želeno metodo. Če se je vse zgodilo, čestitam - pravkar si razumel ranljivost CVE-2016-8870. "Manjkajoče preverjanje dovoljenj za registracijo novih uporabnikov."

Tukaj je, kako izgleda v "delovnem" metodi registra () iz uporabniških kontrolor

  • /componetedes/com_users/Controllers/registration.php: 113: // Če je registracija onemogočena - preusmeritev na stran Prijava. 114: IF (JcompontentHelper :: GetParams ("COM_Users") -\u003e Get ("TocuseRericiation") \u003d\u003d 0) 115: (116: $ To-\u003e Setredirect (Jroute :: _ ("Index.php? Opcija \u003d COM_USERS & Pogled \u003d prijava ", false"); 117: 118: vrnite false; 119 :)

In tako v ranljivem:

  • /Componetedes/com_users/controllers/user.php:

Ja, nikakor ni.

Da bi razumeli drugi, veliko bolj resen problem, bomo poslali zahtevo, ki jo je oblikovala in sledimo, kako se izvaja na različnih oddelkih kodeksa. Tukaj je kos, ki je odgovoren za preverjanje podatkov, ki jih uporabnik pošlje v delovni metodi:

Nadaljevanje samo udeležencem

Možnost 1. Pridružite se skupnosti spletnega mesta, da preberete vse materiale na spletnem mestu

Članstvo v skupnosti v določenem roku vam bo odprlo dostop do vseh materialov hakerja, bo povečal vaš osebni akumulativni popust in bo nabral profesionalno oceno XAKEP!

Iz te vadnice se boste naučili, kako dovoliti registracijo uporabnikov na spletni strani Joomla 3.x in jo upravljate.

Če želite obiskovalcem spletnega mesta omogočiti, da se registrirajo, da bi dobili dodaten dostop do materialov spletnega mesta, to lahko storite z naslednjimi navodili po korakih:

    Dovoli splošno registracijo. Odprite nadzorno ploščo Joomla in pojdite na razdelek Sistem (sistem)\u003e Splošne nastavitve\u003e Upravitelj uporabnikov\u003e Komponenta\u003e Dovoli registracijo uporabnika (dovolite registracijo uporabnikov). Nastavite vrednost Da ("da") In shranite spremembe:

    Objavite modul za prijavo (prijava). Pojdi na poglavje Razširitve\u003e Upravitelj modula\u003e Prijava obrazec (prijavni obrazec) in kliknite "Omogoči" ("Omogoči") Za aktiviranje modula.

    Objavite gumb za prijavo. Pojdi na poglavje Meniji\u003e Meni uporabnikov\u003e Prijava (Prijava). Ga vklopite.

    Dodajte element menija za registracijo uporabnikov.Pojdi na poglavje Meni (meniji)\u003e Meni uporabnikov\u003e Ustvari (dodaj novo). Določite naslov novega gumba MENU. Pojdi do Tip elementa menija (Vrsta menija)\u003e Izberite (Izberi)\u003e Upravitelj uporabnikov\u003e Obrazec za registracijo. V TAB. "Slog predloge") Izberite Theme #### - privzeto in shranite spremembe:

Sedaj posodobite spletno mesto, prijavo in registracijo (registracija) in registracija (registracija) sta uspešno dodana.

Deluje takoj, ko je novi uporabnik registriran na spletnem mestu. Ko so uporabniški podatki dodani v bazo podatkov.

Hook prejme kot parameter ID uporabnika.

V času delovanja te kljuke so bile vse metapodatke že dodane v bazo podatkov. Geslo je že šifrirano.

Ta kavelj se lahko uporablja za dodajanje dodatnih metapodatkov, prenesenih v obliki registracije novega uporabnika.

Če želite dodati ali posodobiti uporabnika metapodatkov, lahko uporabite tudi kljuko Insert_User_meta. Glej primer spodaj ali funkcijsko kodo WP_Insert_User ()

Z uporabo

add_action ("user_register", "____action_function_name"); Funkcija ____ Action_function_name ($ User_id) (// Akcija ...) $ User_id (število) ID registriranega uporabnika.

Primeri

# 1 Pri registraciji dodajte dodatne uporabniške podatke

Ta primer prikazuje, kako dodati vrednost polja User_sex, ki se prenaša na $ _post podatke iz prijavnega obrazca.

Ne pozabite, da preverjanje posodobljenih podatkov ne bi smelo biti v času tega kljuka - že prepozno, je uporabnik že dodan! Preverjanje podatkov je treba izvesti med kljuko registracije_Errorje, kavelj User_register ne bo deloval, če ček ne bo opravljen ...

// Pred-preverite polje ADD_FILTER ("Registrica_Errors", "My_validad_User_Data"); Funkcija MY_VALIDIDAD_USER_DATA ($ Errors) (če (prazna ($ _ Post ["User_sex"])) $ Napake -\u003e Dodaj ("Empty_User_sex", "Paul mora biti določen!"); Elseif (! In_array ($ _ Post [" uporabnik_sex "], matrika (" moški "," ženska ")) $ Napake -\u003e Dodaj (" Invalid_user_sex "," Paul je napačen! "); Vrnite $ Errs;) // posodabljanje metapodatkov uporabnika Add_Action (" Uporabnik_register "," My_User_Registracija "); Funkcija My_User_Registracija ($ user_id) (// $ _post ["user_sex"], preverjena vnaprej ... update_user_meta ($ user_id, "user_sex", $ _post ["user_sex"]);)

# 2 UPDATE UPORABNIKA UPRAVLJANJE UPORABNIKA

To je podoben prvi primer z uporabo HSSED_USER_META Hook, da med registracijo dodate uporabnik metapodatkov. Ta možnost je zaželena, ker je bolj priročna ...

Ta primer v celoti nadomešča kavelj User_register iz prejšnjega primera. Preverite, ali so napake vzete pred tem. Primer.

// $ meta \u003d apply_filters ("Insert_user_meta", $ Meta, $ uporabnik, $ Update); ADD_FILTER ("INSERT_USER_META", "MY_USER_REGISTRATION_META", 10, 3); Funkcija MY_USER_REGISTRATION_META ($ Meta, $ User, $ Update) (// je prišla, če ne registrira uporabnika, če ($ Update) vrne $ meta; $ meta ["user_sex"] \u003d $ _post ["user_sex"]; / / $ _post ["user_sex"] preverjen vnaprej ... vrnitev $ meta;)

Seznam sprememb

Z različico 1.5.0. Predstavljen.

Kjer se imenuje kavelj

Kjer se kavelj uporablja (v jedru WP)

WP-admin / vključuje / admin-filters.php 92 add_action ("user_register", matrika ("wp_internal_points", "razrešitev_points_for_new_Users"));

Lekcija, v kateri se bomo seznanili z dodajanjem prijave. Ta dodatek je namenjen izvajanju na spletnem mestu, ki je morda potreben za delo z uporabniki na koncu. Vključuje predmete za izvajanje registracije, potrdite registracijo, obnovitev in spreminjanje gesla, avtorizacije, osebnega računa in številnih drugih funkcij.

Nameščanje prijavne aplikacije

Odprite stran za upravljanje paketov (aplikacije -\u003e Installer). Izvedite nalaganje in namestitev komponente za prijavo.

Ustvarjanje uporabniške skupine in virov "Uporabniki"

Odprite stran "Nadzor dostopa" (Gear -\u003e Control Access). Kliknite gumb »Nova uporabniška skupina«.

V pogovornem oknu Ustvarite uporabniško skupino, izpolnite naslednja polja:

  • Ime: uporabniki;
  • Opis: registrirani uporabniki;
  • Ustvarite vzporedno skupino virov: Da;
  • Politiki so postali: (brez politike).

Preverjamo, ali se je pojavila nova skupina virov "uporabnikov". Ta skupina virov je bila ustvarjena pri ustvarjanju skupine uporabnikov "uporabnikov" (omogočeno, da ustvari vzporedno skupino virov «). Skupina Sredstva »Uporabniki« je potrebna, da v njej dajo sredstva, dostop do katerih bodo imeli uporabniki, ki se nahajajo v skupini »Uporabniki«. To bodo viri "osebnega računa", "sprememba gesla" in "Urejanje podatkov". Anonimni uporabniki ne bodo mogli dostopati do teh virov.

Konfiguriranje pravic skupine uporabnikov uporabnikov ". Če želite to narediti, na strani za nadzor dostopa kliknite desni gumb miške na skupini »Uporabniki« in izberite element »Uredi uporabnika«.

Na skupini uporabnikov: stran stran uporabnikov, kliknite na polje "Web" in izberite "Uredi dostop do konteksta" polje.

V pogovornem oknu "Access User Group Access Access", nastavite politiko dostopa na "Load, Seznam in Ogled" in kliknite gumb "Shrani".

Ustvarjanje strani (virov) za prijavo. Nastavitev dostopa do teh strani

Ustvarite naslednje strani (viri):

  • Registracija (28) in potrditev registracije (31);
  • Dovoljenje (29) in obnovitev gesla (32);
  • Osebni račun (30), spremenite geslo (33) in montažo podatkov (34).

Konfigurirajte dostop do strani osebnih računov, "Spreminjanje gesla", "Urejanje podatkov". Na voljo morajo biti samo registriranim uporabnikom (uporabnikom).

Odprl bom stran skupine virov (spletne strani skupin virov) in prenosa zgoraj navedenih virov iz desnega drevesa na skupino "uporabnikov".

Poleg tega je skupina uporabnikov (anonimna) namestiti "samo obremenitev". To je treba storiti, da lahko naložijo strani uporabnikov uporabnikov, preverijo pravice dostopa in prejmejo napako 403 "dostop je prepovedan". Če ne dajete samo (anonimne) obremenitve samo, potem za njih te strani ne bodo obstajale, in bodo prejeli napako 404 "ni bilo mogoče najti".

Postopek: Gear -\u003e Nadzor dostopa -\u003e (anonimno) -\u003e Urejanje uporabniške skupine (z desnim klikom) -\u003e Dostop do skupin virov -\u003e Dodaj skupino virov.

V dialogu "Dodaj skupino virov":

  • Skupina virov: uporabniki;
  • Kontekst: Spletna stran (spletna stran);
  • Minimalna vloga: član (9999);
  • Dostopna politika: samo obremenitev.

Zadnja stvar, ki jo morate storiti je, da določite "dostop" prepoveduje "prepovedano" prepovedano "" dovoljenje "(ID \u003d 29) kot stran napake. To je narejeno v sistemih nastavitve z uporabo parametra UnAuthorized_Page. Če želi anonimni uporabnik priti do zaprtih strani, je opisan stran "Dovoljenje".

Stran (vir) "Registracija"

Registracijska stran bo izvedela naslednja dejanja:

  • izhodni obrazec za prijavo uporabnika;
  • obdelava obrazca, ki ga je uporabnik (Podatki) na strežniku, s pomočjo Renigenskega registra.

Register obdelovanja obdelave bo konfiguriran tako, da bo izvedel naslednje:

  1. Prehod na obdelavo obrazca za registracijo samo, če je bila poslana z gumbom, ki je vrednost atributa imena enaka predložitvi.
  2. Opravil inšpekcijski pregled (potrjevanje) polj obrazca za skladnost z določenimi zahtevami. Če se odkrijejo napake, jih izpisujejo ([[! + Reg.error.imapol]]) obrazce.
  3. Če oblika, napolnjena s strani uporabnika, nima napak (preverjena veljavnost):
    • prikaže sporočilo o uspehu;
    • poslal sem e-pošto uporabniku, ki bi vseboval sporočilo in referenco. To dejanje je potrebno, da uporabnik potrdi e-pošto, tj. Z njim je aktiviran (povezave).

Vsebina registracije vira "(register oblike in odreza): \\ t

[[! Registriraj se? & Submingvar \u003d `Pumentbtn` & Activation \u003d` 1` & ActivationEmailSubject \u003d `Registracija potrditev" 11 "& Uspectsg \u003d`

Hvala za registracijo. Na vašem e-poštnem sporočilu [[! + Reg.email]] Poslala e-poštno sporočilo, ki vsebuje povezavo, ki je potrebna za aktiviranje računa. Pomaknite se skozi to povezavo, da dokončate postopek registracije.

`& UserGroups \u003d` Users` & UserNeefield \u003d `e-pošta '& passwordfield \u003d` passwd` & valided \u003d `nospam: prazno, passwd: zahtevo: Minlength \u003d ^ 8 ^, Passwdagain: Passwdagain \u003d ^ Passwd ^, FullName: Potrebno, E-pošta : Potrebno: E-pošta `& Placeholderprefix \u003d` reg.`]]
Prijava
[[! + Error.Message: Eq \u003d ``: Potem \u003d `
[[! + Reg.Error.fullName]]
[[! + Reg.error.email]]
[[! + Reg.error.passwd]]
[[! + Reg.error.passwdagain]]
`: Drugač \u003d`
[[! + Error.Sessage]]
`]]

Opis parametrov Registracija odreza:

Ime parametra Opis
predloži Ključ, katerega vrednost se preveri, preden se odrezek Register začne obdelati obrazec. Če podate prazen niz ali false kot vrednost tega parametra, bo register obdeloval obrazec ob prejemu poznejše zahteve.
aktiviranje. Določa, ali bo potrdila e-poštno sporočilo, določeno v obrazcu za registracijo ali ne. Ti. Uporabnik ne bo aktiviran, dokler ne potrdi e-pošte. Pomen: 1 (da, potrebno).
activationEmailSubject. Predmet pisma, v katerem povezava vključuje račun.
aktivacijaPrtpl Predloga za črko, ki vsebuje informacije in povezavo, da aktivirate račun. Uporabili bomo privzeto predlogo: LGNACIVATEEMAILPLPL.
aktivacijaResourceid. Identifikator virov, v katerem se odrezek nahaja, s katerim se aktivira uporabniški račun. Vrednost: 31 (ID potrditve registracije).
uspeh. Prikaže določeno sporočilo po uspešnem pošiljanju registracijskega obrazca. Ta parameter deluje, ko se parameter predloženega prejemnika ni uporabljen.
predložene. Preusmeri uporabnika na določen vir, potem ko uspešno pošilja prijavni obrazec.
skupine uporabnikov. Seznam (nad vejicami) imena uporabnikov uporabnikov ali identifikatorjev teh skupin, v katerih morate dodati samo registrirani uporabnik. Pomen: Uporabniki.
uporabniško ime. Ime polja obrazca, ki vsebuje uporabniško ime kot vrednost. Vrednost: E-pošta.
passwordfield. Obrazec za ime polja, ki vsebuje uporabniško geslo. Pomen: Passwd.
potrdite. Seznam (nad vejicami) Polja za validacijo (ček). Označeno je na naslednji način: Ime: Validator (na primer, uporabniško ime: obvezno, e-pošta: obvezno). Valizatorji se lahko povežejo. Na primer, e-pošta: E-pošta: obvezno.
placeholderprefix. Predpona za playcold. Na primer, vrednosti predvajanja za e-poštno polje ob upoštevanju predpone rega. : [[! + Reg.email]] (vrednosti polja), [[! + Reg.error.Email]] (vrednost napake).

Kako deluje aktivacija računa

To se zgodi takole: Po uspešni validaciji oblike se registrirajo Spispats ustvari objekt moduser in nastavi aktivno polje 0. Potem pošlje pismo uporabniku v skladu z obrazcem za registracijo e-pošte. To pismo vsebuje URL (povezava za aktiviranje). Takoj, ko uporabnik nadaljuje s tem URL-jem, bo Snipket Contryregister spremenil vrednost aktivnega polja na 1. Zdaj se bo uporabnik lahko prijavil na spletno mesto, tj. Prijavite se s svojim računom.

Resource "Potrditev registracije"

Stran za potrditev registracije je zasnovana tako, da aktivira uporabniški račun. Aktiviranje izvede odrezke Potrdi, ki temelji na URL-ju. Načelo delovanja je spremeniti vrednost aktivnega uporabnika polja do 1. Po tem se lahko uporabnik prijavi na spletno mesto, tj. Prijavite se s svojim računom.


Vsebina vira potrditve registracije (odrezki potrditve):

[[! PotrdiloRegister? & Pristnost \u003d `1` & Redirectto \u003d` 4` & Errorpage \u003d `4`]]

Opis uporabljenih parametrov odrezkov potrdil.

Prej so bile izvedene spremembe.

kopiraj

komponente / COM_USERS / Ogledi / Registracija / TMPL / v
predloge / Protostar / HTML / COM_Users / Registracija / Datoteke

default.php. in privzeto.xml. in jih spremenite na na primer homologacijo.php. in odobritev.xml.

homologacijo.php.

// tukaj veliko število kode // .....

params-\u003e Get ("SHOW_AGE_CHECKBOX")) :?\u003e

"Naslov \u003d" (! Lang:">

odobritev.xml.

Dodane jezikovne zamenjave

jezik / Preglasi / EN-GB.ordide.ini

My_new_registration \u003d "Prijavni obrazec z dodatnimi polji" Pogoji_of_Service \u003d "Pogoji storitve" Strinjam \u003d "Strinjam se s pogoji uporabe" AGE \u003d "IM najmanj 18 let"

jezik / preglasitev / ru-ru.ordide.ini

My_new_registration \u003d "Prijavni obrazec z dodatnimi parametri" Pogoji_of_service \u003d "Pogoji za storitev" Strick \u003d "Strinjam se s pogoji storitve" Starost \u003d "Imam že 18 let"

administrator / Jezik / Preglasi / EN-GB.ordide.ini

My_new_registration_title \u003d "(! Lang: prijavni obrazec z dodatnimi polji" SHOW_AGE_CHECKBOX="Show Age Checkbox" SHOW_AGE_CHECKBOX_DESCRIPTION="Show or hide the age checkbox" AGE_CHECKBOX_DESCRIPTION_HIDE="Hide" AGE_CHECKBOX_DESCRIPTION_SHOW="Show" !}

administrator / Jezik / Preglasitev / RU-RU.ORRIDE.INI

My_new_registration_title \u003d "(! Lang: Prijavni obrazec z dodatnimi parametri" SHOW_AGE_CHECKBOX="Показывать подтверждение !}
starost pri registraciji "Show_Age_checkbox_description \u003d" Prikaži / skrij potrditev starosti pri registraciji "Age_checkbox_description_hide \u003d" Skrij "starost_checkbox_description_show \u003d" Show "

Pošiljanje na superglobalno polje spremenljivk $ _Request. Metoda Post. Vrednosti polja polja Potrebno je, da ima vsako polje edinstven atribut ime.. Popolni potrditvena polja v atributu datoteke v datoteki homologacijo.php.

params-\u003e Get ("SHOW_AGE_CHECKBOX")) :?\u003e

Zdaj pa se obrnemo na ustvarjanje vtičnika.

Pokliči ga myRegistration.. Ustvarite mapo zanj plugins / Uporabnik / MyregistrationV IT datotekah myregistration.php. in myregistration.xml.. Ne pozabite na vtič index.html.

myregistration.xml.

plg_user_myregistration. Marec 2012. admin // psa // joomla.org www.joomla.org. 2.5.0 PLG_USER_MYREGISTRATION_XML_DESCRIFRIFITION. myregistration.php. index.html. jezik.

myregistration.php.

iSPITE ()) (Return True;) // Prenesite $ to-\u003e LoadLaguaAuge () jezikovna podpora datoteki; $ Rezultat \u003d true; // Preverite, ali je Componksia Checkbox nameščen s pogoji vzdrževanja (! JREQUEST :: getBool ("tos_agree")) (Jerror :: Raisewarning (1000, Jtext :: _ ("plg_user_Myregistration_tos_agree_Required"); / / Preverite namestitveno zastavo, da potrdite doseganje 18 let, če (! Jrequest :: GetBool ("Old_Enough")) (Jerror :: Raisewarning (1000, Jtext :: _ ("PLG_USER_MYREGISTRATION_OLD_ENOTE_REQUERED"); $ Rezultat \u003d FALSE; ) Vrniti $ rezultat; ))

Ime razreda kaže v skladu z odpiranjem

plgustermiregistration.

pLG. (priključen vtičnik), Uporabnik.(Vtičnik vrste po meri), MyRegistration. (Ime vtičnika). Ta razred razširja razred JPLUGIN..

Ta razred ima eno metodo, označeno z imenom dogodka, ki se obdeluje - onuserBeforeSave (). Ta dogodek se sproži, ko poskušate shraniti nove uporabniške podatke v admin ali ga registrirati v uporabniškem delu.

Jrequest :: GetBool () Pozval k pridobitvi vhodnega elementa tos_agree. ali dovolj star Iz superglobalne spremenljivke $ _Request. Jezik PHP. Vrne false. ali prav..

Jerror :: Raisewarning () - Napaka. Kot so navedeni argumenti: koda napake in besedilna napaka. V tem primeru se koda ne uporablja in je lahko kdorkoli, besedilo pa je prikazano iz vtičnika za jezikovno podporo.

Datoteke za podporo jeziku

Priporočljivo je, da jih ustvarite v mapi z vtičnikom. Ruski jezik mora biti v kodiranju UTF-8 brez BOM - sicer jih sistem ne pobere.

Prvi so namenjeni vsem spremenljivkam, ki se uporabljajo na sprednji strani in izpišejo nastavitve vtičnika.
vtičniki \\ \\ MyRegistration Landeary En-GB \\ EN-GB.PLG_USER_MYREGISTRATION.INI
vtičniki Uporabnik MyRegistracija Language ru-ru-ru-ru-ru.plg_user_myregistration.ini

Drugi se uporablja za prikaz imena naslova v Plug-ins upravljanje in prikaže sporočilo po namestitvi širitve.
vtičniki Uporabnik MyRegistration Jezik En-GB EN-GB.PLG_USER_MYREGISTRATION.SYS.INI
vtičniki Uporabnik MyRegistration \\ t RU-RU \\ RU-EN.PLG_USER_MYREGISTRATION.SYS.INI

en-gb.plg_user_myregistration.ini.

Plg_user_myregistration_tos_agree_required \u003d "Strinjate se s pogoji storitve" PLG_USER_MYREGISTRATION_OLD_ENOTE_REQUIRED \u003d "Morate biti stari vsaj 18 let"

eN-GB.PLG_USER_MYREGISTRATION.SYS.INI.

Plg_user_myregistration \u003d "Uporabnik - moja registracija" plg_user_myregistration_xml_description \u003d "Preverite, ali so bili preverjeni pogoji in starostne škatle"

rU-RU.PLG_USER_MYREGISTRATION.INI.

Plg_user_myregistration_tos_agree_required \u003d "Strinjate se s pogoji storitve" plg_user_mmiyregistration_enough_required \u003d "bi morali biti stari najmanj 18 let"

rU-RU.PLG_USER_MYREGISTRATION.SYS.INI.

Plg_user_myregistration \u003d "Uporabnik - moja registracija" plg_user_myregistration_xml_description \u003d "Preverite soglasje na pogoje storitve in doseganje uporabnika 18 let"

Popolnoma avtonomna različica vtičnika.

Razred se uporablja Jmform. Če želite zamenjati prijavni obrazec, preden prikažete obrazec z DUPONTS in preveri zanesljivost, ki odpravlja potrebo po alternativnem elementu menija in izhodna predloga modula.

Ime novega vtičnika MyRegistracije. Vsebuje:

obrazce / obrazec.xml.
jezik / EN-GB / EN-GB.PLG_USER_MYREGISTRATIONALL.INI
jezik / EN-GB / EN-GB.PLG_USER_MYREGISTRATIONALL.SYS.INI
jezik / ru-ru / ru-ru.plg_user_myregistrationAll.ini
jezik / RU-EN / RU-EN.PLG_USER_MYREGISTRAYAL.SYS.INI
myregistictisticsAll.php.
myregistictisticsAll.xml.

Main. myRegictisticsAll..xML. Datoteka vtičnika. V razdelku za konfiguracijo so polja nastavljena za prikaz v nastavitvah vtičnika.

pLG_USER_MYREGISTIKACIJALL. Mark Dexter in Louis Landry feat taatshi Marec 2012. (C) 2012 Mark Dexter in Louis Landry GNU splošna javna licenca različica 2 ali novejša; Glej licenco.txt. admin // psa // joomla.org www.joomla.org. 2.5.0 Plg_user_myregistrationAll_xml_description. myregistictisticsAll.php. index.html. jezik. obrazci.

fORM.XML.

myregistictisticsAll.php.

getName ()! \u003d "COM_USERS.Registration") (vrnitev;) // Download Jezik Podpora datoteki $ To-\u003e LoadLlanguage (); // naložite datoteko XML v obrazcu za prijavo uporabnika - Pay Pozor - okoli datoteke je dvojna podčrtana $ Obrazec-\u003e LoadFile (Diname (__ datoteka __). "/ Obrazci / obrazec.xml"); // Preverjanje parametra za prikaz potrditvenega polja, da preverite starost v nastavitvah, če plugin (! $ To-\u003e Params-\u003e Get ("Show_Age_CHECKBOX", "1")) ($ Form-\u003e Removefield ("Old_nough"); // Če želimo, da potrditveno polje po izbiri, bo dovolj, da dodamo niz: // $ form-\u003e setfieldattribute ("old_nough", "requried", "false");)))

en-gb.plg_user_myregistrationAll.ini.

PLG_USER_MYREGISTRATIONALL_TERMS_OF_SERVICE \u003d "Dodana polja za pogoje storitve Sporazum" PLG_USER_MMYREGISTRATIONALL_AGREE \u003d "Strinjam se s pogoji" PLG_USER_MYREGISTRATIONALL_AGER_MYREGISTRATIONALL_AGER_MYREGISTRATIONALL_AGER_MMYREGISTRATIONALL_SHOW_USER_MYREGISTRATIONALL_SHOW_AGE \u003d "Prikaži starostno preverjanje" Polje. Če se prikaže, bo potrebno. "

rU-RU.PLG_USER_MYREGISTRATIONALL.INI.

PLG_USER_MYREGISTRATIONALL_TERMS_OF_SERVICE \u003d "Sprejem pravil storitev" PLG_USER_MYREGISTRATIONALL_AGREE \u003d "Strinjam se s pogoji storitve" PLG_USER_MMYREGISTRATIONALL_AGER_MYREGISTRATIONALL_AGER_MYREGISTRATIONALL_AGER_MYREGISTRATIONALL_SER_MYREGISTRATIONALL_SHOW_MAGE \u003d "Preverjanje starosti" PLG_USER_MYREGISTRATIONALL_SHOW_AGE_DESC \u003d "Prikaži ali skrij potrditveno polje za preverjanje starosti"

eN-GB.PLG_USER_MYREGISTRATIONALL.SYS.INI.

PLG_USER_MYREGISTRATIONALL \u003d "Uporabnik - Moja registracija - samostojna" PLG_USER_MYREGISTRATIONALL_XML_DESOPTRION \u003d "Preverite, ali so bile preverjene pogoje in starostne škatle - samostojno"

rU-RU.PLG_USER_MYREGISTRATIONALL.SYS.INI.

PLG_USER_MYREGISTRATIONALL \u003d "Uporabnik - Moja registracija - avtonomija" PLG_USER_MYREGISTRATIONALL_XML_DESOPTRION \u003d "Preverite pogoje s pogoji storitve in doseganje uporabnika 18 let - avtonomu

Nalaganje ...Nalaganje ...