DLE - mój pierwszy moduł, jak napisać własny moduł Datalife Engine

  1. Utwórz plik modułu
  2. Podstawowe parametry
  3. Zapytania do bazy danych
  4. Gotowy moduł
  5. Wzór

Bez względu na to, jak próbowałem uciec z DLE, ponieważ jest opłacany, a na rynku jest wiele darmowych analogów, to nie działa - główna strona jest oparta na tym silniku i coraz bardziej zagłębiam się w jego część techniczną!

Utwórz plik modułu

Utwórz plik * .php o dowolnej nazwie w katalogu engine / modules , na przykład mymodule.php i na samym szczycie napisz takie wiersze kodu, które nie pozwolą na bezpośredni dostęp do modułu, ponieważ nie minie stałej DATALIFEENGINE , której nie można uzyskać z zewnątrz.

<? php jeśli (! zdefiniowane ('DATALIFEENGINE'))) umiera („Idź się pieprzyć!”);

Moduł jest technicznie dość prosty, więc postanowiłem nie przejmować się osobnym szablonem i wszystkim z nim związanym. Po prostu koduj i wyślij go w szablonie ze znacznikiem meta:

{include file = "path_to_file.php"}

Podstawowe parametry

Następnie musisz uzyskać identyfikatory bieżącej kategorii i posta. Żadne niepotrzebne gesty nie są potrzebne, istnieją globalnie.

Wiadomości Aydi istnieją jako stała superglobalna, a kategorie istnieją jako zmienna globalna:

$ category_id NEWS_ID

Zapytania do bazy danych

Ponadto nie zawracałem sobie głowy uniwersalnym żądaniem do bazy danych i rozbiłem go na 2 proste:

$ row1 = array_reverse ($ db-> super_query ("SELECT` id`,` alt_name`, `title` FROM". PREFIX. "_post WHERE id> $ id AND category = $ catid ORDER BY id ASC LIMIT 3", 1 )) $ row2 = $ db-> super_query ("SELECT` id`,` alt_name`, `title` FROM". PREFIX. "_post WHERE id <= $ id AND category = $ catid ORDER BY id DESC LIMIT 3", 1) ;

Metoda super_query ($ query, $ return) działa w dwóch trybach. Jeśli drugi parametr ma wartość false, zwraca łańcuch - mysqli_fetch_row , co w naszym przypadku nie jest dobre, ponieważ potrzebujesz mysqli_fetch_array . Dlatego dajemy mu jednostkę!

Uruchomiłem $ row1 przez funkcję array_reverse (), aby odwrócić tablicę posortowaną w odwrotnej kolejności (10,9,8) i odwrotnie (8,9,10) i umieścić ją w chronologii (patrz po pogrubionym elemencie):

    null
  • rekord +2
  • Rekord +1
  • aktualny rekord
  • rekord -1
  • rekord -2
  • rekord -3

Gotowy moduł

&lt;? php jeśli (! zdefiniowane ('DATALIFEENGINE'))) umiera („Idź się pieprzyć!”); // ----------- Zastąp swoimi danymi // zapisz kategorie id do zmiennej dla wygody $ catid = 36; // --------------------------------------- // zmniejsz obciążenie i wywołaj moduł tylko tam w razie potrzeby! // moduł będzie działać, jeśli bieżąca kategoria jest równa interesującej nas, tj. 36 if ($ category_id == $ catid) {// otrzymujemy od superglobalnego identyfikatora bieżącego posta $ id = NEWS_ID; $ row1 = array_reverse ($ db-> super_query ("SELECT` id`,` alt_name`, `title` FROM". PREFIX. "_post WHERE id> $ id AND category = $ catid ORDER BY id ASC LIMIT 3", 1 )) $ row2 = $ db-> super_query ("SELECT` id`,` alt_name`, `title` FROM". PREFIX. "_post WHERE id <= $ id AND category = $ catid ORDER BY id DESC LIMIT 3", 1) ; foreach ($ row1 as $ ro) {?> <li> <a href="&lt;?= $ro['id'₽ ?> - &lt;? = $ ro ['alt_name']? >> html "> &lt;? = $ ro ['title']?> </a> </ li> &lt;? php} foreach ($ row2 jako $ ro) {if ($ ro ['id'] == $ id) {?> <li > <a href="&lt;?= $ro['id' 版? ?> - &lt;? = $ ro ['alt_name']?>. html "> <b> &lt;? = $ ro ['title']?> </ b> </a> </ li> &lt;? php} else {?> <li> <a href="&lt;?= $ro['id'__ ?> - &lt;? = $ ro ['alt_name' ]?>. html "> &lt;? = $ ro ['title']?> </a> </ li> &lt;? php}}}?>

Uzyskane dane przechodzą przez cykle i tworzą w nich blok linków!

Wzór

W odpowiednim miejscu pliku fullstory.tpl wypisujemy następujący kod:

[catlist = 36] <h2> Poprzednie wpisy w dzienniku </ h2> <div class = "quote"> <ul> <! - usuń spację poniżej -> {include file = "engine / modules / mymodule.php"} </ ul> <br/> <a href="/658-kak-nachat-zarabatyvat-na-investiciyah-bazovye-pravila-investrora.html"> Jak zacząłem inwestować! </a> </ div> [/ lista]Lt;?
Ro['id'₽ ?
Ro ['alt_name']?
Ro ['title']?
Php} foreach ($ row2 jako $ ro) {if ($ ro ['id'] == $ id) {?
Ro['id' 版?
Ro ['alt_name']?
Ro ['title']?
Php} else {?
Последние новости:
10 лучших игр и игрушек для детей 2-5 лет в самолете или поезде – чем занять ребенка в дороге?

Малыш уже достиг возраста 2 месяцев, а ведь так недавно он был совсем еще беспомощным. Теперь вы замечаете,

Еще совсем недавно появившись на свет, ребеночек трех месяцев стремительно растет и развивается. Родители

                                     В этот период развитию ребенка будет способствовать

Малыш 4-7 месяцев от роду обычно уже активно стремится сидеть, либо уже сидит. Пусть даже просто на коленях

Проводя раскопки в местах древнейших поселений людей, археологи часто находят детские игрушки: погремушки,

  Хотя малыш еще совсем недавно появился на свет, игрушки для месячного ребенка нужны, ведь развитием

25 лучших развивающих игр для новорожденных – развивающие занятия с рождения до полугода Большое заблуждение

» Ребенку 6 месяцев Какие игрушки нужны детям в 6 месяцев Погремушки, мячики, резиновые

Дети в этом возрасте все активнее познают окружающий мир, все больше вещей они умеют делать самостоятельно