Προσθήκη πρόσθετου
Τα πρόσθετα είναι οι επεκτάσεις που επεκτείνουν τις δυνατότητες του Light Portal. Για να δημιουργήσετε το δικό σας πρόσθετο, απλώς ακολουθήστε τις παρακάτω οδηγίες.
Σημειώσεις
Μπορείτε να χρησιμοποιήσετε το PluginMaker ως βοηθητικό για να δημιουργήσετε τα δικά σας πρόσθετα. Κάντε λήψη και ενεργοποιήστε το στη σελίδα Διαχειριστής -> Ρυθμίσεις πύλης -> Προσθήκες.
Επιλογή του τύπου προσθήκης
Επί του παρόντος, είναι διαθέσιμοι οι ακόλουθοι τύποι προσθηκών:
block
Προσθήκες που προσθέτουν έναν νέο τύπο μπλοκ για την πύλη.
ssi
Προσθήκες (συνήθως μπλοκ) που χρησιμοποιούν συναρτήσεις SSI για την ανάκτηση δεδομένων.
editor
Προσθήκες που προσθέτουν ένα πρόγραμμα επεξεργασίας τρίτου μέρους για διαφορετικούς τύπους περιεχομένου.
comment
Προσθήκες που προσθέτουν ένα γραφικό στοιχείο σχολίων τρίτου μέρους αντί για το ενσωματωμένο.
parser
Προσθήκες που υλοποιούν τον αναλυτή για το περιεχόμενο σελίδων και μπλοκ.
article
Πρόσθετα για την επεξεργασία του περιεχομένου καρτών άρθρων στην κεντρική σελίδα.
frontpage
Πρόσθετα για την αλλαγή της κύριας σελίδας της πύλης.
impex
Πρόσθετα για εισαγωγή και εξαγωγή διαφόρων στοιχείων πύλης.
block_options
| page_options
Προσθήκες που προσθέτουν πρόσθετες παραμέτρους για την αντίστοιχη οντότητα (block ή .page).
icons
Προσθήκες που προσθέτουν νέες βιβλιοθήκες εικονιδίων για να αντικαταστήσουν στοιχεία διεπαφής ή για χρήση σε κεφαλίδες μπλοκ
seo
Πρόσθετα που επηρεάζουν κατά κάποιο τρόπο την ορατότητα του φόρουμ στο δίκτυο.
other
Προσθήκες που δεν σχετίζονται με καμία από τις παραπάνω κατηγορίες.
Δημιουργία καταλόγου προσθηκών
Δημιουργήστε έναν ξεχωριστό φάκελο για τα αρχεία των προσθηκών σας, μέσα στο /Sources/LightPortal/Plugins
. Για παράδειγμα, εάν η προσθήκη σας ονομάζεται «HelloWorld», η δομή του φακέλου θα πρέπει να μοιάζει με αυτό:
...(Plugins)
└── HelloWorld/
├── langs/
│ ├── english.php
│ └── index.php
├── index.php
└── HelloWorld.php
Το αρχείο «index.php» μπορεί να αντιγραφεί από φακέλους άλλων προσθηκών. Το αρχείο HelloWorld.php
περιέχει τη λογική της προσθήκης:
<?php
namespace Bugo\LightPortal\Plugins\HelloWorld;
use Bugo\Compat\{Config, Lang, Utils};
use Bugo\LightPortal\Plugins\Plugin;
if (! defined('LP_NAME'))
die('No direct access...');
class HelloWorld extends Plugin
{
// FA icon (for blocks only)
public string $icon = 'fas fa-globe';
// Your plugin's type
public string $type = 'other';
// Optional init method
public function init(): void
{
// Access to global variables: Utils::$context['user'], Config::$modSettings['variable'], etc.
// Access to language variables: Lang::$txt['lp_hello_world']['variable_name']
}
// Custom properties and methods
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Χρήση SSI
Εάν το πρόσθετο χρειάζεται να ανακτήσει δεδομένα χρησιμοποιώντας συναρτήσεις SSI, χρησιμοποιήστε την ενσωματωμένη μέθοδο «getFromSsi(string $function, ...$params)». Ως παράμετρος $function
πρέπει να μεταβιβάσετε το όνομα μιας από τις συναρτήσεις που περιέχονται στο αρχείο SSI.php, χωρίς πρόθεμα ssi_
. Για παράδειγμα:
<?php
// See ssi_topTopics function in the SSI.php file
$data = $this->getFromSSI('topTopics', 'views', 10, 'array');
Χρήση του Composer
Η προσθήκη σας μπορεί να χρησιμοποιεί βιβλιοθήκες τρίτων που έχουν εγκατασταθεί μέσω του Composer. Βεβαιωθείτε ότι το αρχείο «composer.json», το οποίο περιέχει τις απαραίτητες εξαρτήσεις, βρίσκεται στον κατάλογο των προσθηκών. Πριν δημοσιεύσετε την προσθήκη, ανοίξτε τον κατάλογο της προσθήκης στη γραμμή εντολών και εκτελέστε την εντολή: "composer install --no-dev -o". Μετά από αυτό, ολόκληρο το περιεχόμενο του καταλόγου πρόσθετων μπορεί να συσκευαστεί ως ξεχωριστή τροποποίηση για SMF (για παράδειγμα, δείτε το πακέτο PluginMaker).