# Shortcode-ok és blokkok

> A LearnDash tartalmak beszúrása oldalakba shortcode-dal vagy blokkal: profil, listák, haladás, feltételes tartalom és a paramétereik.

A shortcode-ok és a blokkok a LearnDash dinamikus tartalmait szúrják be a kurzusokba, oldalakba, bejegyzésekbe és más egyéni bejegyzéstípusokba. A tanúsítványokhoz saját shortcode-ok tartoznak ([Tanúsítvány-shortcode-ok](https://hub.hellowp.io/hu/plugins/sfwd-lms/feladatok-tanusitvanyok-tanusitvany-shortcode-ok/)).

## Shortcode vagy blokk?

**Shortcode**: a tartalomszerkesztő eredeti módja a dinamikus tartalom beszúrására. Oldalszerkesztőkben is használható, és paraméterekkel (beállításokkal) testre szabható. Példa egy paraméteres shortcode-ra: `[ld_course_list num="10"]`.

**Blokk**: a WordPress 5.0-ban bevezetett blokkszerkesztőben érhető el. Ugyanazokat a funkciókat és beállításokat tartalmazza, mint a shortcode, de egyszerűbb felületen szúrhatod be és állíthatod be.

Minden shortcode-nak van megfelelő blokkja, és minden blokknak megfelelő shortcode-ja, funkcióbeli különbség nincs köztük. Hogy melyiket használd:

- Blokkszerkesztőnél (Gutenberg) bármelyiket, a blokkok általában könnyebbek.
- Klasszikus szerkesztő bővítménynél shortcode kell.
- Oldalszerkesztőknél (page builder) shortcode kell, mert a blokkok a legtöbbjükben még nem érhetők el.
- Widgetbe vagy oldalsávba shortcode kell, mert a blokkok a widgetekben nem használhatók.

## A használatuk

### Blokk beszúrása

A szerkesztőben kattints a **+** ikonra, keresd meg a blokkot név szerint (vagy görgesd a listát), és kattints rá. A beszúrás után a beállítások az oldalsávi blokkbeállítások panelen módosíthatók. A lehetőségek blokkonként eltérnek.

### Shortcode használata

A shortcode-ok szögletes zárójelben (`[` és `]`) állnak: a shortcode neve, majd a kívánt paraméterek. Paraméter nélkül a felhasználó LearnDash-profilja:

```text
[ld_profile]
```

Paraméterekkel, a kurzusok cím szerint növekvő sorrendjében:

```text
[ld_profile orderby="title" order="ASC"]
```

Léteznek nyitó és záró taggel használt, feltételes shortcode-ok is. Ezek a bennük lévő szöveget csak akkor jelenítik meg, ha a feltétel igaz. A záró tag előtt perjel áll:

```text
[student]Ezt csak a kurzusba beiratkozott tanuló látja.[/student]
```

Fejlesztők a shortcode-okat a `do_shortcode()` függvénnyel a téma fájljaiba vagy saját bővítménybe is beépíthetik.

## Az összes blokk és shortcode

### Általános blokkok és shortcode-ok

| Blokk | Shortcode | Mit jelenít meg |
|---|---|---|
| LearnDash Profile | `[ld_profile]` | A felhasználó alapadatait (név, avatar), a kurzusok és a kurzuspontok számát, a beiratkozott kurzusok listáját, a kvízeredményeket és a megszerzett tanúsítványokat. |
| LearnDash User Course Points | `[ld_user_course_points]` | A felhasználó megszerzett kurzuspontjait. |
| LearnDash Course Progress | `[learndash_course_progress]` | Az adott kurzushoz tartozó előrehaladás-sávot. |
| LearnDash Course List | `[ld_course_list]` | A kurzusok listáját, sok szűrési és testreszabási lehetőséggel. A kurzusrács bekapcsolásakor rácsként jelenik meg. |
| LearnDash Lesson List | `[ld_lesson_list]` | A leckék listáját, a kurzuslistához hasonlóan. |
| LearnDash Topic List | `[ld_topic_list]` | A témák listáját, a kurzuslistához hasonlóan. |
| LearnDash Quiz List | `[ld_quiz_list]` | A kvízek listáját, a kurzuslistához hasonlóan. |
| LearnDash Group List | `[ld_group_list]` | A csoportok listáját, a kurzuslistához hasonlóan. |
| LearnDash Course Content | `[course_content]` | A kurzus leckéinek, témáinak és kvízeinek teljes listáját. |
| LearnDash User Groups | `[user_groups]` | Azoknak a csoportoknak a listáját, amelyekhez a felhasználó tanulóként vagy vezetőként tartozik. |
| LearnDash Course Expire Status | `[ld_course_expire_status]` | A kurzus lejárati dátumát az aktuális felhasználónak. |
| LearnDash Video | `[ld_video]` | A videót a lecke- vagy témaoldal tetszőleges pontján. Csak videós előrehaladásnál működik. |
| LearnDash Payment Buttons | `[learndash_payment_buttons]` | Az adott kurzus fizetési gombját az oldal bárhol. |
| LearnDash Course Info | `[ld_course_info]` | A regisztrált kurzusok listáját, a haladás részleteit és a kitöltött kvízeket. |
| LearnDash Login | `[learndash_login]` | Bejelentkezési hivatkozást, amely a LearnDash bejelentkezési és regisztrációs felugró ablakát nyitja. |
| LearnDash Certificate | `[ld_certificate]` | A megszerzett tanúsítvány letöltési hivatkozását. |
| LearnDash Resume Course | `[ld_course_resume]` | A kurzus utolsó lépésére visszavivő hivatkozást vagy gombot. |
| LearnDash Reset Password | `[ld_reset_password]` | Jelszó-visszaállító űrlapot. |

### Feltételes tartalom

Ezekkel a tartalmat csak bizonyos felhasználóknak vagy csoportoknak mutatod meg.

| Blokk | Shortcode | Mikor jelenik meg a benne lévő tartalom |
|---|---|---|
| LearnDash Visitor | `[visitor]…[/visitor]` | Ha a felhasználó nincs beiratkozva a kurzusra. |
| LearnDash Student | `[student]…[/student]` | Ha a felhasználó be van iratkozva a kurzusra. Egyes felhasználóknak is megadható (azonosító alapján). |
| LearnDash Course Not Started | `[course_notstarted]…[/course_notstarted]` | Ha a felhasználónak van hozzáférése, de még nem fejezett be egy lépést sem. |
| LearnDash Course In Progress | `[course_inprogress]…[/course_inprogress]` | Ha a felhasználó legalább egy lépést befejezett, de a kurzust még nem. |
| LearnDash Course Complete | `[course_complete]…[/course_complete]` | Ha a felhasználó a kurzust teljesen befejezte. |
| LearnDash Quiz Complete | `[ld_quiz_complete]…[/ld_quiz_complete]` | Ha a felhasználó befejezett egy kvízt. |
| LearnDash Group Message | `[ld_group]…[/ld_group]` | A megadott csoport tagjainak. A csoport azonosítója kötelező. |

A feltételes shortcode-oknál mindig kell nyitó és záró tag is.

## A fontosabb shortcode-ok részletesen

A blokkok testreszabása minden blokknál ugyanúgy megy: a lent leírt paraméterek mind elérhetők a blokk oldalsávi beállításai között.

### Profil (`[ld_profile]`)

A bejelentkezett felhasználó tanulói profilját építi fel. Alapból ezt jeleníti meg:

- profilkép (avatar), név, a profil szerkesztésére mutató hivatkozás,
- a beiratkozott kurzusok, a befejezett kurzusok, a megszerzett tanúsítványok és a pontok összesített száma,
- a beiratkozott kurzusok listája: keresővel, előrehaladás-jelzőkkel, a tanúsítványok letöltési hivatkozásaival, valamint a kitöltött kvízekkel (dátum, pontszám, statisztika).

A profil tetején lévő gombbal az összes kurzus részletei egyszerre kibonthatók vagy összecsukhatók. A használatáról a [Felhasználói profilok](https://hub.hellowp.io/hu/plugins/sfwd-lms/csoportok-felhasznalok-profilok/) fejezetben is olvashatsz.

| Paraméter | Mit csinál | Alapérték |
|---|---|---|
| `per_page="10"` | Hány kurzus jelenjen meg egy oldalon a lapozás előtt. | |
| `course_points_user="no"` | Elrejti a megszerzett kurzuspontokat. | `yes` |
| `expand_all="yes"` | A profil minden részét kibontja. | `no` |
| `orderby="title"` | A kurzusok rendezési szempontja, az `order` paraméterrel együtt. | `id` |
| `order="ASC"` | A rendezés iránya: `ASC` vagy `DESC`. | |
| `profile_link="no"` | Elrejti a profilhivatkozást. | `yes` |
| `show_quizzes="no"` | Elrejti a felhasználó kvízkísérleteit. | `yes` |
| `show_search="no"` | Elrejti a keresőt. | `yes` |
| `show_header="no"` | Elrejti a fejlécet. | `yes` |
| `quiz_num="5"` | Hány kvíz jelenjen meg oldalanként, ha a kvízek ki vannak bontva. | A `per_page` értéke |

### Kurzuspontok (`[ld_user_course_points]`)

Egy sorban megjeleníti a felhasználó összes pontját, például: „Megszerzett kurzuspontok: 100”. Az összeg tartalmazza a kurzusokért kapott és a felhasználó WordPress-profiljában kézzel hozzáadott extra pontokat is. Egyedi felhasználói profiloldal építésénél lehet hasznos.

Egyetlen paramétere van: `[ld_user_course_points user_id="5"]` az 5-ös azonosítójú felhasználó pontjait mutatja. Paraméter nélkül a bejelentkezett felhasználóét.

### Kurzus-előrehaladás (`[learndash_course_progress]`)

Előrehaladás-sávot mutat az aktuális felhasználó adott kurzusban elért haladásáról. Általában kurzus-, lecke-, téma- vagy kvízoldalon használják, ilyenkor magától felismeri, melyik kurzusról és melyik felhasználóról van szó. Kurzuson kívül vagy egy adott felhasználóhoz:

- `[learndash_course_progress user_id="5"]`: egy adott felhasználó haladása
- `[learndash_course_progress course_id="12"]`: egy adott kurzus haladása

Oldalszerkesztővel épített egyedi kurzus-, lecke- és témaoldalakhoz is jól használható.

### Kurzus-, lecke-, téma-, kvíz- és csoportlista

A `[ld_course_list]` a kurzusok listáját adja, sok paraméterrel. A kurzusrácsra a LearnDash-be beépített rács szolgál (a 4.21.4-es verziótól a Course Grid része a fő bővítménynek, külön kiegészítőt nem kell telepíteni).

A `[ld_lesson_list]` a leckéket listázza, és leginkább kurzusoldalon jó az alapértelmezett kurzus-tartalomjegyzék helyett. Töltsd fel az egyes leckék kiemelt képét, hogy az alapértelmezett helyőrző képeket lecserélje. Egy adott kurzus leckéihez: `[ld_lesson_list course_id="12"]`.

A `[ld_topic_list]` a témákat listázza, leginkább egy több témát tartalmazó leckeoldalon. A `lesson_id` és a `course_id` paraméterrel szűrhető: `[ld_topic_list lesson_id="34" course_id="12"]`. A kiemelt kép itt is a helyőrző képeket váltja le.

A `[ld_quiz_list]` a kvízeket listázza. Akkor lehet hasznos, ha a kurzusnak több kvíze van. A kvízeket általában a kurzus tartalomjegyzékében, a kurzusnavigációban a természetes haladási helyükön, vagy a lecke- és témaoldalak alján (magától beszúrva) érdemes megjeleníteni. A `lesson_id` paraméterrel a megadott leckéhez tartozó kvízek listázhatók.

A `[ld_group_list]` a csoportokat listázza, és akkor hasznos, ha több, önként beiratkozható csoportod van. A kurzusráccsal együtt is használható.

### Kurzus tartalma (`[course_content]`)

A kurzusoldalon alapból megjelenő tartalomjegyzék pontos mása: a kurzushoz rendelt leckék, témák és kvízek teljes áttekintése a felhasználó haladásával. Megadható, hogy a leckékhez kötött témák és kvízek megjelenjenek-e. Minden elem mellett állapotikon mutatja, hogy a felhasználó hol tart.

Két hasznos felhasználása van:

- egyedi kurzus-nyitóoldalon (oldalszerkesztővel),
- WooCommerce, Easy Digital Downloads, MemberPress vagy más webáruház-megoldás értékesítési oldalán.

Ha nem kurzusoldalon használod, a `course_id` paraméter kötelező: `[course_content course_id="12"]` a 12-es azonosítójú kurzus tartalomjegyzékét mutatja.

### Csoportjaim (`[user_groups]`)

A felhasználó csoportjait listázza, tanulóként és vezetőként is.

### Kurzus lejárata (`[ld_course_expire_status]`)

Az aktuális felhasználó kurzushozzáférésének lejárati dátumát mutatja. A működéshez a kurzus szerkesztőjében be kell kapcsolni a hozzáférés lejáratát ([Beiratkozás és hozzáférés](https://hub.hellowp.io/hu/plugins/sfwd-lms/kurzusok-hozzaferes/)). Kurzusoldalon magától felismeri a kurzust és a felhasználót. Az alapüzenetek:

- ha a lejárat a jövőben van: „Course access will expire on: {dátum}” (a felület fordítása szerint)
- ha már lejárt: „Course access expired on: {dátum}”

| Paraméter | Mit csinál |
|---|---|
| `label_before` | A dátum előtti szöveg. |
| `label_after` | A dátum utáni szöveg. |
| `format` | A dátum formátuma (PHP-s dátumformátum). Alapból a WordPress dátumbeállítása érvényes. |
| `course_id`, `user_id` | A kurzus és a felhasználó azonosítója. Általában nem kell megadni, mert magától felismeri. |

Példák:

```text
[ld_course_expire_status label_before="Ez a kurzus lejárt: "]
[ld_course_expire_status label_after=". Újítsd meg a tagságod a hozzáféréshez."]
[ld_course_expire_status format="Y. m. d."]
[ld_course_expire_status format="Y. m. d." label_before="Ez a kurzus lejárt: " label_after=". Újítsd meg a tagságod." course_id="12" user_id="5"]
```

### Videó (`[ld_video]`)

Ennek a shortcode-nak nincs blokkja, a blokkszerkesztőben a Shortcode blokkal használhatod. Csak akkor működik, ha a lecke vagy a téma videós előrehaladást használ, be van kapcsolva és megadtál egy videó-webcímet ([Lecke- és témamegjelenés, tartalmi beállítások](https://hub.hellowp.io/hu/plugins/sfwd-lms/leckek-temak-megjelenites-tartalom/)). Alapból a videó a tartalom felett jelenik meg. Ha máshová szeretnéd, tedd a `[ld_video]` shortcode-ot önálló sorba a lecke- vagy témaoldal tartalmában. Paramétere nincs. Oldalszerkesztővel épített oldalakon a videó pontos elhelyezéséhez hasznos.

### Fizetési gombok (`[learndash_payment_buttons]`)

Csak akkor használd, ha a LearnDash alapértelmezett fizetési módjait használod (Stripe Connect, PayPal Checkout vagy 2Checkout). WooCommerce, MemberPress vagy más külső rendszer fizetésénél nem működik.

Ha a kurzus hozzáférési módja nem „nyitott”, a kurzusoldalon alapból megjelenik a „Kurzus felvétele” gomb, amely elindítja a fizetést. A shortcode-dal ezt a gombot máshová teheted, például egyedi nyitóoldalon. Ha nem kurzusoldalon használod, add meg a `course_id` paramétert: `[learndash_payment_buttons course_id="12"]`.

### Kurzusinfó (`[ld_course_info]`)

A felhasználói profiloldal részeinek építéséhez jó. Három dolgot jelenít meg:

- a regisztrált kurzusok listáját indexképpel,
- a haladás részleteit: a kurzus állapotát (Nincs elkezdve, Folyamatban, Befejezve), a teljesített lépések számát (X a Y-ból) és a kezdés dátumát,
- a kitöltött kvízeket: a kvíz nevét (hivatkozással), a pontszámot, a kapott pontokat, a statisztikára mutató hivatkozást, a kitöltés dátumát és az értékelés állapotát.

A kinézet témától függően kissé eltérhet. Paraméterek (a blokkban is elérhetők):

| Paraméter | Mit csinál |
|---|---|
| `registered_show_thumbnail` | `true`: mutatja, `false`: elrejti az indexképet. |
| `registered_num` | A megjelenített regisztrált kurzusok száma. |
| `registered_orderby`, `registered_order` | A regisztrált kurzusok rendezése (azonosító, cím, dátum stb.) és iránya (`ASC` vagy `DESC`). |
| `progress_num` | A haladási részben megjelenő kurzusok száma. |
| `progress_orderby`, `progress_order` | A haladási rész rendezése és iránya. |
| `quiz_num` | A megjelenített kvízek száma. |
| `quiz_orderby`, `quiz_order` | A kvízek rendezése és iránya. |

A `user_id` megadása nem kötelező: ha kimarad, a bejelentkezett felhasználó azonosítóját használja.

### Bejelentkezés (`[learndash_login]`)

Bejelentkezési hivatkozást tesz oldalra, bejegyzésbe, oldalsávba vagy menübe. A kattintás a LearnDash bejelentkezési felugró ablakát nyitja. Bejelentkezett felhasználónál a hivatkozás „Kijelentkezés” lesz, és kattintásra kijelentkeztet. Csak akkor működik, ha a LearnDash bejelentkezés és regisztráció be van kapcsolva ([Bejelentkezés és regisztráció](https://hub.hellowp.io/hu/plugins/sfwd-lms/csoportok-felhasznalok-bejelentkezes-regisztracio/)).

Paraméterek (alapértékekkel):

```text
'url'              => false,
'label'            => false,
'icon'             => false,
'placement'        => false,
'class'            => false,
'button'           => false,

'login_url'        => '',
'login_label'      => 'Bejelentkezés',
'login_icon'       => 'login',
'login_placement'  => 'left',
'login_class'      => 'ld-login',
'login_button'     => 'true',

'logout_url'       => '',
'logout_label'     => 'Kijelentkezés',
'logout_icon'      => 'arrow-right',
'logout_placement' => 'right',
'logout_class'     => 'ld-logout',
'logout_button'    => '',
```

Példa: `[learndash_login logout_label="Saját kijelentkezés felirat"]`

### Tanúsítvány (`[ld_certificate]`)

Letöltési hivatkozást ad a megszerzett tanúsítványhoz. A megjelenítéshez a `course_id` vagy a `quiz_id` közül legalább az egyik kötelező. Egy adott kvízhez tartozó tanúsítványnál mindkettő kell:

```text
[ld_certificate course_id="123" quiz_id="456"]
```

Opcionális paraméterek:

- `user_id`: egy adott felhasználó hivatkozása (üresen: az aktuális felhasználó)
- `group_id`: egy adott csoport hivatkozása
- `label`: a gomb vagy hivatkozás felirata
- `class`: a hivatkozás HTML-osztálya
- `context`: a shortcode kezelőjének átadott, tetszőleges érték
- `callback`: saját visszahívó függvény az alapértelmezett megjelenítés helyett

### Kurzus folytatása (`[ld_course_resume]`)

Hivatkozást vagy gombot ad, amellyel a felhasználó gyorsan visszatérhet a kurzus utolsó lépéséhez.

- `course_id`: a kurzus azonosítója (kurzuson belül vagy kurzusoldalon kívül üresen hagyható, ilyenkor az utoljára aktív kurzust veszi)
- `user_id`: egy adott felhasználóhoz (üresen az aktuális)
- `label`: a hivatkozás vagy gomb felirata

### Jelszó-visszaállítás (`[ld_reset_password]`)

Jelszó-visszaállító oldalt készíthetsz vele: hozz létre egy oldalt, és szúrd be a blokkot vagy a shortcode-ot a kívánt helyre. Az űrlap szélessége a blokk beállításai között, shortcode-nál a szélesség paraméterrel állítható.

## Feltételes tartalom részletesen

Ezekkel a blokkokkal és shortcode-okkal a tartalmat a beiratkozási állapot alapján mutathatod vagy rejtheted el. A tartalom lehet HTML, kép, videó vagy más médiatartalom. Mindegyik nyitó és záró taget kér:

```text
[shortcode]és a záró tag[/shortcode]
```

Blokkszerkesztőben a blokk fölé víve egy kis jelzés mutatja, hogy a hozzáadott tartalom a feltételes blokkba kerül.

Elementor-sablonokban a feltételes shortcode-okhoz adhatod az `autop="false"` paramétert, hogy a nem kívánt `<p>` és `<br>` elemek ne jelenjenek meg a sablonban. Ez elrendezési hibákat előzhet meg.

| Shortcode | Példa |
|---|---|
| `[visitor]` | `[visitor course_id="12"]Ezt csak az látja, akinek NINCS hozzáférése a kurzushoz. Itt lehet regisztrációs űrlap vagy e-mailcím-gyűjtő.[/visitor]` |
| `[student]` | `[student course_id="12"]Ezt csak az látja, akinek VAN hozzáférése a kurzushoz.[/student]` |
| `[course_notstarted]` | `[course_notstarted course_id="12"]Ezt azok látják, akik még nem fejeztek be egy lépést sem. Bátoríthatod őket az indulásra.[/course_notstarted]` |
| `[course_inprogress]` | `[course_inprogress course_id="12"]Ezt azok látják, akik elkezdték, de még nem fejezték be a kurzust.[/course_inprogress]` |
| `[course_complete]` | `[course_complete course_id="12"]Ezt azok látják, akik teljesen befejezték a kurzust (minden lépést teljesítettek és a kötelező kvízeket letették). Itt lehet a tanúsítvány hivatkozása vagy ajánlott következő kurzusok.[/course_complete]` |
| `[ld_quiz_complete]` | `[ld_quiz_complete quiz_id="32"]Ezt azok látják, akik befejezték a kvízt.[/ld_quiz_complete]` |
| `[ld_group]` | `[ld_group group_id="32"]Ezt csak a 32-es azonosítójú csoport tagjai látják.[/ld_group]` |

A `[visitor]` leginkább magán a kurzusoldalon használatos, de egyedi értékesítési oldalon is jó a `course_id` megadásával.

A `[student]` shortcode többféleképpen szűkíthető:

- több kurzus egyszerre: `[student course_id="4523,2894"]…[/student]`, ilyenkor csak az látja, akinek mindkét kurzushoz van hozzáférése,
- csoportra: a `group_id` paraméterrel, ugyanúgy, mint a `course_id`-nél,
- egy adott felhasználóra: `[student user_id="5"]Ezt csak az 5-ös azonosítójú felhasználó látja.[/student]`.
