Zorgvuldige portal php mod. Modulair programmeren in PHP of hoe je een klein portaal schrijft

Hé jongens! Lang niet gezien toch? Nou, ik ben druk geweest voor de , maar laten we dit uit de weg ruimen.

Nu Greenlight bijna ten einde loopt, laten we onszelf eraan herinneren wat voor geweldige dingen het voor ons deed. De enige manier waarop mensen mods moesten spelen was door naar een downloadpagina te gaan en het handmatig op Steam te installeren (geweldig systeem trouwens, had zijn eigen systeem). map op de steamapps). Hoewel dat voor het grootste deel misschien eenvoudig klinkt, waren er mensen die gewoon niet wisten dat je daadwerkelijk mods op Steam kon installeren, om nog maar te zwijgen van de Steam Pipe-update die alles kapot maakte.

En toen kwam er groen licht. Hoewel het inderdaad een deur was voor veel vreselijke games, controverses en het maandelijkse Steam-dramafeest, deed het eigenlijk veel goeds. Veel indie-ontwikkelaars hadden eindelijk de kans om hun game op de markt te brengen voor elke pc-gamer. En daar profiteerden mods van. Mensen die niet eens wisten dat mods bestonden, niet wisten hoe ze ze moesten installeren of gewoon niet wisten hoe ze een kapotte mod moesten repareren, hadden eindelijk de kans om meer van hun favoriete games te spelen. dit was ENORM, veel youtubers maakten laten spelen van mods en een gemakkelijke manier om ze eindelijk te spelen. Er was zelfs het geval van PS: Mel dat een prijs won tijdens de Games Awards 2015.

Veel mods hebben er ook van geprofiteerd. Zonder dat het basisspel geïnstalleerd hoefde te worden, hoefden mensen zich geen zorgen te maken over eventuele fouten, aangezien Valve ervoor zorgde dat de mod als een echt spel (voor Steam) werd beschouwd, waardoor zaken als workshopimplementatie en prestaties mogelijk waren.

Wat betekent dit nu voor ons, nu er groen licht komt?

Steam Direct is het geheel nieuwe systeem waarmee je elk spel op Steam kunt zetten voor $ 100 en de goedkeuring van Valve. De vergoeding van $ 100 is niets na al het werk dat jij en je team aan je mod hadden kunnen doen, en de vergoeding kan worden opgesplitst. Hoe dan ook, maar het gaat niet om de vergoeding, het nieuwe systeem zal feitelijk een betere toegangspoort tot nieuwe games en mods betekenen.

Nu er echter een heleboel geweldige mods op komst zijn, zullen jullie een nieuwe bron voor nieuwe mods moeten vinden. Deze collectie wordt niet meer bijgewerkt omdat mods geen groen licht meer krijgen. Ik heb wel een paar websites die jullie kunnen bekijken

Voor zover ik me kan herinneren de langstlopende Portal 1 & 2-community. Ze hebben niet alleen de meest getalenteerde mensen, ze hebben ook alle mensen uit de gemeenschap. Om nog maar te zwijgen van de ENORME database met kaarten voor beide games in de serie, de beste bron om overal afzonderlijke kaarten te downloaden. En ook veel plezier! Het zijn geweldige mensen.

http://www.moddb.com/ - niet alleen voor de portalfan, moddb was voor mij de beste keuze voor elke mod van valve-spellen. Ze hebben geen beheer, maar je kunt alle mods in een grote lijst vrijelijk verkennen, en met een paar filters heb je al een enorme downloadlijst waar je gebruik van kunt maken. Moddb heeft ook een paar mods die mensen niet eens kenden. waar ik over hoorde, die ik graag zelf ontdekte en bespeelde. Wist je dat Portal een Chinese mod heeft waarmee je een telefoon kunt gebruiken? Het is trouwens geweldig.

Nou jongens, ik denk dat het zo is. Ik zie jullie overal, maar denk niet dat dit iets betekent voor de portaalgemeenschap. In feite zal dit vrijwel niets veranderen! Mensen zullen mods blijven maken en jullie zullen ervan blijven genieten. Gewoon via een betere methode! Tot ziens,

EDIT: Als je met de mensen van het Thinking With Portals-forum wilt praten, controleer dan ook hun onenigheid.

Handmatige installatie-instructies voor SMF 1.0 RC1 1.0 RC2 1.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.0.10 1.0.11 1.0.12 1.0.13 1.0 .14 ​​​​1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.1 Bèta 3 Openbaar 1.1 RC1 1.1 RC2 1.1 RC3 1.1.1.1.2 1.1.3 1.1 .4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.20 1.1.21 2.0 Bèta 3 Openbaar 2.0 Bèta 3.1 Openbaar 2.0 Bèta 4 2.0 RC1 2.0 RC1-1 2.0 RC1.2 2.0 RC2 2.0 RC3 2.0 RC4 2.0 RC4 Beveiligingspatch 2.0 RC5 2.0 2.0.1 2.0.2 2.0.3 2. 0.4 2.0 .5 2.0.6 2.0.7 2.0.8 2.0.9 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.1 Bèta 1 2.1 Bèta 2 2.1 Bèta 3 2.1 RC1 2.1 RC2

Beschrijving:

PortaMx v1.54 met volledig uitgerust categorie-/artikelbeheer
en Search Engine Friendly URL's (SEF)-optie en ECL-optie voor SMF 2

PortaMx heeft veel functies, zoals categorie- en artikelbeheer en een optie voor zoekmachinevriendelijke url's. We gebruiken de SMF Integrations hooks uitgebreid, dus we hebben meer dan 50% minder wijzigingen aan de SMF-bestanden nodig. Alle basisbestanden zoals de functie voor de Integratie, caching en de SEF-module (indien ingeschakeld) worden automatisch geladen bij het opstarten van SMF. Alle extra menu's en functies zijn ook gemaakt met SMF-hooks.

Omdat we de PortaMx-filosofie voortzetten om het portaal beter en sneller te maken, maken we voor alle nieuwe functionaliteiten gebruik van uitgebreide caching. Het is dus aan te raden om caching in SMF in te schakelen. Werkt uiteraard allemaal zonder caching, maar niet zo snel.

Het nieuwe categorie-/artikelsysteem is hoog configureerbaar in alle opties, zoals toegang, overname en visualisatie. Volg de installatieopties die we hebben:

  • Het eerste artikel wordt getoond en alle andere artikelen in de categorie zijn in een zijbalk gelinkt.
  • Alle artikelen op één pagina weergegeven met paginering.
  • Erven van het toegangsrecht van een Categorie tot de Artikelen daarin, zodat je makkelijk met de rechten kunt omgaan (geef de artikelen eenvoudigweg geen rechten). Hierdoor wordt ook onderdrukt dat het Artikel zelf kan worden opgevraagd.
  • Categorieën en artikelen kunnen worden gebruikt als statische elementen op de voorpagina (categorie-/artikelblokken).
  • Beide kunnen op dezelfde manier worden aangevraagd als een aanvraag voor één pagina (cat=categorienaam, art=artikelnaam).
We hebben het overzichtsscherm (Blokken, Artikelen en Categorieën Manager) uitgebreid met nieuwe instellingenelementen, ze werken in een pop-upvenster. Hiermee kunt u eenvoudig en snel de belangrijkste instellingen wijzigen, zoals titel, positie, toegang en meer. U kunt een enkel blok of alle blokken in het paneel bijwerken.
Ook breiden we de dynamische zichtbaarheidsoptie uit en herontwerpen we, vooral de klantacties. Deze hebben nu logische EN- en OF-functionaliteit, kunnen elk verzoektype afhandelen en ook subacties zoals action=pm;sa=send. Hiervoor zullen we een aparte documentatie maken.

Veel gebruikers vroegen ons om zoekmachinevriendelijke url's aan de portal toe te voegen en dat doen we in deze release. De SEF-module die we hebben gemaakt is gebaseerd op SimpleSEF, maar volledig herschreven. We maken gemakkelijke en "sprekende" url's (zonder komma) in het formaat dat door Google wordt voorgesteld.
Uiteraard hebben we alle URL's geïmplementeerd die ze voor de Portal gebruikten, zoals Enkele pagina's, Categorieën en Artikelen. De SEF-module heeft verschillende instellingen, maar normaal gesproken kunt u de standaardinstellingen zonder enige wijziging gebruiken. Verder kunnen we ook URL's converteren , ze zijn gemaakt door SimpleSEF, zoals board_## en topic_##.

Tenslotte geven we de Portal zijn eigen Right Management.
Hiermee kunt u elke SMF-groep de rechten geven om eigen artikelen te maken, bewerken en verwijderen, een groep om artikelen te modereren en een groep om de blokken in ingeschakelde panelen te modereren. U kunt tenminste een SMF-groep Portal Administrator-rechten geven. Deze groep heeft volledige toegang tot ALLE Portal-functies (behalve update), maar GEEN toegang tot SMF Administrator-functies. Al deze functies zijn gekoppeld in het gebruikersprofielmenu.

PortaMx Beheercentrum

PortaMx Taalmanager

BIB-technologievoorbeeld - vrij gepositioneerde blokken

BIB-technologievoorbeeld - YUI-blokken met caching

Mod-functies:
- "Gratis spelen/vrij spelen"
Nadat je het spel voor de eerste keer hebt voltooid, verschijn je bij de kerncentrale van Tsjernobyl en kun je elk ander einde van het spel proberen. Als je O-Consciousness bereikt en weigert mee te doen, word je in een vrachtwagen van de doden gepakt en naar vroege locaties gestuurd. Hierna is het mogelijk om je bij alle facties aan te sluiten; je kunt je bij hen aansluiten door met Sidorovich op Corodon te praten.

Opmerking: wanneer je de kerncentrale van Tsjernobyl bereikt nadat je er doorheen bent gegaan, zal er geen emissie zijn, dus je kunt veilig het grondgebied van de kerncentrale van Tsjernobyl verkennen, maar er zullen daar geen mensen zijn, alleen monsters. (Je moet een nieuw spel starten of een opgeslagen spel laden vóór Pripyat)

PS: Elke keer dat je wakker wordt, zie je een nieuwe droom, willekeurig geselecteerd.

Let op: Als je het Stadion wilt zien, ga dan naar de hoofdingang en ga links of rechts, waar je over het hek kunt klimmen.
- "Emissies."

Het is een volledig willekeurig element, met willekeurige luchten en willekeurige effecten, waardoor elk niveau een heel ander gevoel krijgt. Maak je klaar voor totaal onverwachte effecten zoals psiphantoms, psips en mutanten die tijdens het uitwerpen worden geboren. Er is geen timer en je weet niet wanneer de volgende release zal plaatsvinden, dus je hoeft je niet van tevoren te verstoppen en het kan je elk moment betrappen. Neem voldoende wodka mee op reis, dan zal de straling van de vrijgave voor jou pure onzin lijken.

PS: Ik heb een weergave toegevoegd wanneer je een nieuwe game start en na 5 minuten begint de release, waar je optimaal van kunt genieten
- “Word lid van een groep” (Monoliet, Militair, Vrijheid, Schuld, Bandieten, Milieuactivisten, Huurlingen en Vrijheid)

Ja, je kunt je bij elke factie aansluiten, maar het is niet nodig om je op deze manier bij Duty of Freedom aan te sluiten, omdat er speciale speurtochten voor hen zijn om lid te worden.

Opmerking: om je bij een factie aan te sluiten, moet je het spel voltooien, maar Ecologen, Vrijheid en Plicht worden onmiddellijk geactiveerd omdat ze niet in strijd zijn met andere dingen en je elke zoektocht ernaar kunt voltooien.
Nadat je het hebt voltooid, kun je je bij andere facties aansluiten, waarbij je unieke kansen krijgt als je erin blijft.

Als je bijvoorbeeld lid wordt van de Monolith, krijg je in de meeste levels een absolute hel, maar op de radar en de kerncentrale van Tsjernobyl krijg je hulp van de Monolith, dit geldt ook voor het leger, maar op het laatste level zal er wees geen militair, alleen monolieten.

Om lid te worden van een factie heb je voldoende geld nodig (10-50k)
- “Herstel van de betrekkingen met de factie” en het verlaten van hun factie
Als je dergelijke problemen hebt, ga dan naar Sidorovich.

Opmerking: alleen voor Singles, Long en Freedom, voor andere facties ben je altijd een vijand, dit kan worden gecorrigeerd door je bij andere facties aan te sluiten, - "Mod-instellingen" - Ik heb de speler de mogelijkheid gelaten om de mod naar eigen goeddunken te configureren, alle instructies staan ​​in het bestand db.script.

Enkele van de aanpasbare functies zijn: lid worden van andere facties, terreurtijd, uitwerpingen, enz.

Dit is niet alleen het voortbrengen van nieuwe mutanten, het is ook een speciaal speciaal effect dat afhankelijk is van het niveau. Sommige monsters kunnen heel dichtbij je verschijnen, je zult dit leren door hun huiveringwekkende geschreeuw te horen.
- Activering van artefacten, met unieke texturen en geluiden.
- Reparatieartefact (opladen)

Doet zijn naam eer aan, repareert wapens (87%) en bepantsering (90%), dankzij "Frag Maniac (AKA>Omen< " за идею. Я не стал делать 100% починку, так как это сделало бы бессмысленным починку у торговцев.

Zone Television - de doos toont nu grappige foto's, kijk naar de screenshots.

PS: Er zijn nog veel meer leuke foto's, maar laat dit een verrassing voor je zijn)

Neem geld van NPC's, zodat je meer wapens kunt kopen als je een nieuw spel start. Ik denk dat dit eerlijk is, aangezien het aantal monsters is toegenomen en het leven moeilijker is!

Opmerking: afhankelijk van rang en willekeur kunnen stalkers meer geld bij zich hebben.

Een gewelddadiger a-life (mogelijk niet compatibel met andere mods die a-life veranderen, aangezien dit een a-life modifier is), de eerste versie van a-life was al behoorlijk brutaal en je kunt ALLE speurtochten voltooien.

Grote oplossing: het voortbrengen van mutanten is opgelost, NPC's kunnen ze aanvallen.

Verhaal NPC's in uniek pantser. Ik dacht dat ze zich moesten onderscheiden van andere NPC's, ze hebben betere wapens en pantserbescherming (je moet een nieuw spel starten).

- "Nieuwe NPC's" (zie screenshots) en betere wapens vanaf het begin, nu kunnen ze tegen mutanten vechten, en niet alleen maar vlees zijn (je moet een nieuw spel starten).

Psi-hond in Pripyat en andere niveaus.

- "Black Bolt" - Artefact Bolt, een dodelijk wapen op korte afstand, maar je hebt goede bescherming tegen de straling nodig.

Messenwerpen - ja, dat klopt, je kunt een set van 1000 werpmessen kopen. Zeer goed voor het middenbereik en een beetje voor het lange bereik.

Opmerking: de animatie is een beetje ruw, maar het werkt. Ik heb geprobeerd mini-messen te maken, maar ik had niet genoeg tijd. (Als iemand mini-messen wil animeren in plaats van bouten, stuur mij dan een e-mail).

Sleep Mod, nu hoef je niet bang te zijn om tijdens het slapen van de honger om te komen.

Alle bepantsering is aangepast en met Exo Armor kun je extra gewicht dragen en rennen. Er zijn ongeveer 40 Exo-pantsers aangepast voor nachtkijkers en voor het heffen van extra gewicht.

3 soorten nachtkijkers, nieuwe apparaten hebben veel beter zicht, wat erg belangrijk is, aangezien de nachten donkerder zijn.

Het weersysteem is herwerkt, nu is het duidelijker in Pripyat en de kerncentrale van Tsjernobyl, de willekeur van het weer is ook vergroot, bliksem tijdens een onweersbui komt heel vaak voor.

Alle verkopers zijn aangepast, er verschijnen meer goederen in de uitverkoop. Om alle goederen van Sidorovich te ontgrendelen, moet je de eerste missie voltooien en met de Wolf praten.

Een handelaar in Pripyat toegevoegd.

Je moet een groep stalkers volgen, als er tenminste één van hen overleeft, dan kun je dingen kopen, ze verzamelen zich ook bij het grote gebouw links van de metro.

Meer fysieke objecten.

3 soorten messen - je verschijnt met een oud mes, je kunt twee nieuwe kopen bij handelaars.

Let op: Om een ​​mes te verwisselen, verkoop je je oude en koop je een nieuw mes, of gooi je het actieve mes op de grond en pak je een ander mes dat je in je hand wilt nemen. Als je het actieve mes laat vallen en een ander mes in je inventaris probeert te verplaatsen, crasht het spel.

U kunt verbeterde detectoren kopen bij een handelaar.
- Je start een nieuw spel met een verbeterd wapen, een Walter-pistool, veel munitie, een wetenschappelijke EHBO-doos, anti-rad, 2 granaten en een mes.
- Meer nieuwe wapens toegevoegd, 2 automatische pistolen: Walter en Beretta. Meer unieke aanpassingen aan oude wapens: Super Gauss, Gauss Pistol, Zone TP301 (modificatie van LR300 - andere texturen en functies), twee MP5-aanvalsgeweren (gemodificeerd goud en MP5)
- Bloeding aangepast
- Een accordeon toegevoegd aan alle Stalkers, ik zou er meer willen toevoegen, maar ik kan geen muziek voor ze vinden.
- Factierelaties zijn gecorrigeerd
- andere kleine bug- en balansoplossingen
- Alle andere functies komen uit het eerste deel van mijn mod.
Vertaling door belkien
Veroordeling van de mode



Ik zal proberen hier uit te leggen hoe ik het schrijf van sites die plug-ins kunnen gebruiken, aanpak. Een voorbeeld hiervan is het bekende PHPNuke-script. Hoe ze hem ook uitschelden, de daarin gebruikte benadering van modulair programmeren is erg handig. Maar vanwege de onhandigheid van de algemene code wordt het niet aanbevolen om een ​​dergelijk script te gebruiken op serieuze sites, of beter gezegd portals, met een groot aantal bezoekers. Waarom? Het script werkt langzaam en belast de database zeer zwaar. Er valt nog veel meer te beschrijven, maar dit is stof voor een ander artikel. Als iemand geïnteresseerd is: het internet staat vol met beschrijvingen van deze motor. Ik was zelf overtuigd van de “onverteerbaarheid” van PHPNuke. Mijn hoofdproject, NVIDIA BIOS Collection, was aanvankelijk gebaseerd op PHPNuke, maar voortdurende hostingproblemen dwongen mij om mijn portaalsysteem helemaal opnieuw te ontwikkelen. Van PHPNuke heb ik alleen de essentie van de modules overgenomen; de rest heb ik zelf gedaan. En dus om te beginnen. Allereerst moet u nadenken over het catalogussysteem, wat waar wordt opgeslagen. Hier is een voorbeeld.

/
/mods/ - map voor het opslaan van modules
/img/ - afbeeldingen
/include/ - map met hulpbestanden
Dit is wat we nu nodig hebben. We zullen voorlopig geen blokken en skins gebruiken. Er waren ook andere mappen in mijn portaal
/blocks/ - Ook een soort modules, maar ze geven de informatie zelf niet weer, maar retourneren een gevulde variabele.
/js/ - map voor Java-scripts
/theme/ - map voor het kiezen van thema's of, grofweg, een set skins voor de site.
/files/ - bestanden om te downloaden
en andere catalogi.

Er is slechts één index.php-bestand opgeslagen in de hoofdmap en al het werk gaat hier doorheen. Nu moeten we beslissen hoe de site zelf eruit zal zien. Voor ons voorbeeld is de eenvoudigste ontwerpoptie geschikt: de bovenkant van de site, de onderkant van de site en in het midden staat onze informatie uit de modules. Om dit te doen, zullen we in de include map twee bestanden top.php en bottom.php aanmaken, die respectievelijk het bovenste deel van het ontwerp en het onderste deel van het ontwerp zullen zijn.

top.php $PAGE_TITLE breedte = "100%" id = "AutoNummer1">

de koptekst wordt hier weergegeven

Sitemenu

- Module 1
-Module2

"; ?>

Ik voorzie reacties waarin ze zullen zeggen waarom ik de HTML-code niet afzonderlijk weergeef, en de PHP-code afzonderlijk. Ik ben eraan gewend geraakt om 100% PHP-code te schrijven; het ziet er misschien niet zo mooi uit, maar het is handiger voor mij. Als iemand anders wil schrijven, dan ben ik geen adviseur. Let op de variabele $PAGE_TITLE in top.php. In mijn implementatie wordt alle informatie over modules opgeslagen in een database, waar naast de modulebestandsnaam ook de naam ervan wordt opgeslagen, die vervolgens in $PAGE_TITLE wordt geplaatst om deze in de browserheader weer te geven.

bodem.php


"; ?> We zullen ook een configuratiebestand config.php aanmaken en dit in de include directory plaatsen. config.php Hier is een voorbeeld van hoe index.php werktLaten we nu twee bestanden mod1.php en mod2.php maken en deze in de mods-directory plaatsen. mod1.php"; echo "En hier kun je module nummer 2 bekijken"; ?> mod2.php"; echo "En hier kun je module nummer 1 bekijken"; ?>

Laat me deze lijn een beetje uitleggen

If (!eregi("index.php", $PHP_SELF)) ( die ("Toegang geweigerd"); ) Het is raadzaam om een ​​dergelijke controle in elke module op te nemen om te voorkomen dat het modulebestand buiten index.php zelf wordt aangeroepen. Met behulp van mijn portal als voorbeeld maak ik, voordat ik de module aanroep, verbinding met de database, lees enkele globale variabelen, en zonder deze kan geen enkele module op zichzelf werken. Het is dus het beste om het rechtstreeks aanroepen van de module eenvoudigweg uit te schakelen. In dit geval worden de modules aangeroepen via een regel in de vorm index.php?mod=modulenaam, maar hier kunt u ook het CNC-systeem gebruiken. Dan ziet de URL eruit als index.php/modulenaam/

Hier is in principe een zeer ruw schema voor het implementeren van modules. Je kunt elke module toevoegen door deze simpelweg in de map mods/ te plaatsen en je aan het algemene concept van werk te houden, waardoor een zeer complexe website wordt gebouwd. Wat zijn de gemakken van werk? In wezen raak je de belangrijkste zorg van het uitrekken van de code op het ontwerp van jezelf af. Dit wordt eenmalig gedaan in index.php. De module zelf zou alleen moeten werken en nuttig moeten zijn. Centralisatie van het verzamelen van basisinformatie uit een database of configuratiebestand, globale sitevariabelen, gebruikersinformatie, enz. Aan de andere kant zijn er nadelen (hoewel dit op het eerste gezicht geen nadelen lijken te zijn). U moet bijvoorbeeld duidelijk controleren welke namen van variabelen vóór de module worden gebruikt, om ze niet per ongeluk in de module te overschrijven. . Dit is mij één keer overkomen. Na dit incident heb ik er een regel van gemaakt om systeemvariabelen in de volgende vorm een ​​naam te geven: $sys_variable name. Een ander voor de hand liggend nadeel is de moeilijkheid om verschillende ontwerpopties voor verschillende modules te implementeren. Maar! Ook hier is een uitweg.

Als we als regel aannemen dat elke module de kop- en onderkant van de site zelf moet weergeven, dan heb je al de vrijheid om te kiezen wat en hoe je wilt weergeven.

Zo kunnen bijvoorbeeld onze eenvoudige modules aangepast worden.

"; echo "En hier kun je module nummer 2 bekijken"; include("inc/bottom.php"); ?>

Het is aan u om te beslissen wat u in dit en specifieke geval moet doen. Ik heb zojuist geprobeerd degenen die beginnen te schrijven in PHP, en misschien degenen die al schrijven, te wijzen op een bepaalde optie of stijl van programmeren.
//www.x-bios.3dgames.ru - De site van mijn portal, maar helaas is deze gesloten
//fallenangels.combats.ru - De website van de gamingclan is ook volledig gebouwd op een modulair systeem.