Trükkök, ha dolgozik alkatrészek Bitrix

Két különböző típusú gyorsítótár komponensek

A legtöbb szabványos komponensek egyidejűleg használt Bitrix caching $ arResult tömb és a html-kódot. Azonban, ha írásban a saját elemek nem mindig kényelmes, gyakran előfordul, hogy a minta szükséges végezni néhány kódot minden találatot, így jobban csak a gyorsítótárból az adatokat a $ arResult. Az alábbi 2 példa I. idézett gyorsítótár-(a component.php) - egy HTML-Code-gyorsítótár nélkül. Jegyezzük meg, a második megvalósítási mód szerint a minta kapcsolat után a cache blokk, és elfoglalja helyét a $ this-> EndResultCache ().

$ ArResult cache és sablon HTML-kód:


Gyorsítótárral csak $ arResult:


Add az adatokat a cache sablon használható component_epilog.php

Component_epilog.php - egy fájl futtatása után a sablon kimenet, nincs a gyorsítótárban, azaz fut, nem számít, kimutatták az újonnan létrehozott html-kódot a sablon vagy a kimenetet a cache. Ennek megfelelően tudjuk használni ezt a fájlt valamilyen műveletet végeznek minden hit, sőt, például, hogy megjelenjen a html-kódot az oldalon említett, a késleltetési funkcióit. Ugyanakkor a rendelkezésre álló adatok component_epilog.php, általában igen korlátozott az alkatrészeket használó html-cache-t. Ebben a példában megmutatom, hogyan lehet bővíteni a listát az adatok, ezért helyezze be a következő kódot a fájlban result_modifier.php Comp a sablon (például a kulccsal «ADATOK” a tömbben $ arResult tartalmazó komponens »bitrix: news.list« fő tömb adatok):


Írásban $ arResult szülő összetett szerkezetű sablonból

Néha kompozit építőelem sablon fájlok (amelyek nem rendelkeznek saját cache) kényelmes, hogy van néhány adatot tőlük használják a hagyományos (nekomleksnyh) komponenseket. Példa: csatlakoztatása után egy összetevő catalog.section.list nekünk összhangban szerkezetét html-kód, amelyet a kódoló, eléréséhez szükséges bizonyos területeken a sablon rész integrált része. Ahhoz, hogy elkerülje a további lekérdezések az adatbázis és a hozzá tartozó caching fenyegető vagy csatlakoztassa catalog.section.list alkatrész, ezt:

Add a cache komponens az összes szükséges adatot, például a használat result_modifier.php fájlt hozzá egy sor $ arResult # 91; „SECTION” # 93;

A component_epilog.php fájl megkapja az objektum a szülő alkatrész, ha rendelkezésre áll, és használja azt a felvételt ingatlan értékének arResult

Kapcsolódó cikkek