ModułyImię i lokalizację
Wszystkie moduły powinny być dodane doModułyFolderW katalogu root, gdzie zainstalowany jest nasz CRM iKażdy moduł musiMają unikalną nazwę folderu i plik init o tej samej nazwie co folder modułuNazwa- Nie.
TworzenieTwój pierwszy moduł
Wcześniejaby opracować moduł, upewnij się, że ustawiłeśTryb rozwojuAby zobaczyć jakiekolwiekostrzeżenia o błędach przed przestarzałością funkcji i haczyków.
Aby rozpocząć i utworzyć swój pierwszy moduł, postępuj zgodnie zkroki poniżej.
·Przejdź do naszej instalacji CRM i otwórzModułyKatalog
·Utwórz nowy katalog i nazwij go po module(e.q._moduł próbki)
·Utwórz nowy plik PHPO tej samej nazwie coKatalog modułów, w tym przypadku,_module.php, próbkaTen plik będzie działać jako "Init" plikdla tego modułu.
W tym przypadku moduł jest już utworzony i zarejestrowanyNic jeszcze nie robi, ale nie dodaje żadnego imienia ani opisów, myDoda metadane modułu, takie jak nazwa, opis, URL, autor za pośrednictwem PHPkomentarz blokuje, który będzie działać jako nagłówki modułów.
Nagłówki modułu powinny być dodawane tylko w module initplik.
Teraz otwórz plik próbki_module.php, który stworzyliśmy wcześniej iDodaj następujący komentarz na górze pliku:
<?php
/**
* Zapewnia, że plik modułu init nie może byćdostęp bezpośrednio, tylko w ramach aplikacji.
*
("Zdefiniowana podstawa") lub('Nie dozwolony bezpośredni dostęp do skryptu');
/*
Nazwa modułu: Próbka naszaModuł CRM
Opis: Próbkaopis modułu.
Wersja: 2.3.0
Wymaga co najmniej: 2.3.*
*
Po zapisaniu pliku możesz poruszać się w naszym CRMObszar admin do->KonfiguracjaBędziesz mógł zobaczyćTwój moduł listy.
Komentarz będzie działać jako nagłówek pliku modułu, TyPowinien sprawdzićPrzewodnik po nagłówkach plikówJeśli chcesz dostaćbardziej znajome.
MakeZawsze dodajeszNazwa modułuNagłówek
Jest toBardzo ważne, abyUpewnij się, że nazwa folderu modułu i .phpNazwa pliku jest ta samaW przeciwnym razie moduł nie zostanie wyświetlany wLista modułów
PodstawoweHaki
Będziesz musiał wdrożyć kilka podstawowych haków podczas tworzeniaNowy moduł, jak_activation_hook(),_deactivation_hook()orazRegistruj się_uninstall_hook()
Jeśli znasz WordPress, prawdopodobnie będziesz wiedziałPraca, którą wykonują te haki.
DodawanieHaki
Możesz dodawać haki do modułu .php pliki z:
Haki()->add_action($tag,$work_to_add, $priorytet = 10, $akcepted_args = 1);
()->add_filter($tag,$work_to_add, $priorytet = 10, $akcepted_args = 1);
()->do_action($tag,= $arg '');
()->apply_filters($tag,$wartość, $dodadplementParams);
Możesz dodawać własne filtry i działania, dzięki czemu możesz używaćW ich wdrożeniu modułu pomoże również dodawanie działań i filtrówInne moduły do interakcji z modułem i rozszerzenia modułufunkcjonalności.
PrefiksNiestandardowe funkcje
PowinieneśZawsze prefiks dowolnych niestandardowych funkcjiorazAby zapobiec jakimkolwiek konfliktom z naszymi domyślnymi funkcjami lub klasami CRM lubz wszelkimi innymi modułami.
StosowanieCodeign Instance w plikach modułowych
Prawdopodobnie będziesz chciał skorzystać z ram CodeigniterW przypadku pliku modułu init lub jakichkolwiek innych plikach modułów, które nie sąrozszerzenie klas podstawowych ramowych.
$toDziała tylko w Twoich kontrolerach,modele lub twoje poglądy.
Możesz to osiągnąć w dowolnym miejscu w swoich plikach dziękiNastępujący kod:
Najpierw przypisaj obiekt CodeIgniter zmiennej:
$CI = &get_instance();
Po przypisaniu obiektu do zmiennej użyjeszTa zmiennaZamiast tegoz$to
$Ci&get_instance();
$CI->load->helper('module_name/helper_name');
$CI->load->library('module_name/library_name');
Baza danychPrefiks
Z wersji 2.3.0 Nasz CRM ma możliwość zdefiniowania niestandardowychprefiks tabel bazy danych.
Domyślny prefiks tabeli w naszym CRM jesttbl
Zawsze powinieneś korzystać z naszej niestandardowej funkcjidb_prefix()douzyskać prefiks bazy danych podczas zapytania bazy danych, zapewni to, że wUżytkownik zmienił prefiks bazy danych, moduł nadal będzie współpracował zNowy prefiks użytkownika.
Oto przykład zŚledzenie celówModułInstaluj.phpplik.
<?php
("Zdefiniowana podstawa") lub('Nie dozwolony bezpośredni dostęp do skryptu');
Jeśli(!$CI->db->table_exists(db_prefix() . 'cel')) {
$CI->db->query('Stwórz tabelę '' .db_prefix() . "cel" (
'id' int(11) NULL,
'przedmiot' warchar(191) NIE NULL,
'opis' tekst NIE NULL,
'start_date' data NIE NULL,
'end_date' data NIE NULL,
'goal_type' int(11) NULL,
'contract_type' int(11) NIE NULL DEFAULT '0',
'osiągnięcia' int(11) NIE NULL,
'notify_when_fail' Smallint(1) NIE NULLFault '1',
'notify_when_achieve' Smallint(1) NIE NULLFault '1',
'notified' int(11) NIE NULL DEFAULT '0',
'staff_id' int(11) NIE NULL DEFAULT '0'
Silnik = INnoDB DEFAULT )ChARSET=". $CI->db->char_set . ";");
UtwórzOpcje modułu
CRM ma tabelę w bazie danychOpcjedlaPrzechowywanie różnych ustawień do użytku wewnętrznego i ustawień, które są używane wcechy. Opracowaliśmy niestandardowe funkcje PHP, które będą wykonywać zapytania dopobierz opcje z bazy danych.
Nazwy opcji to struny i muszą być unikalne, abynie są one sprzeczne ani z naszym CRM, ani z innymi modułami.
add_option($name,$wartość, $autoload)
$imię
(wymagane). Nazwa opcji do dodania, abyJest unikalny i prefiksowany z E.Q. Nazwa modułu.
$wartość
Wartość opcji (string)
$autoload
(całość) 1 lub 0
Czy ta opcja powinna być automatycznie załadowana wszystkimi innymi opcjami, jeśli jesteśKorzystając z zbyt dużej ilości czasu w widoku, najlepiej jest automatycznie załadować ją dozapobiec wielu zapytaniom, aby uzyskać opcję. Domyślnie do 1
Należy pamiętać, żeAdd_optionFunkcjanie utworzy opcji, jeśli nazwa opcji istnieje już w tabeli opcji.
get_option($option_name);
Pobierz opcję z bazy danych,$option_name(strunka)Twoja opcja.
Aktualizacja_option_name,$Newvalue);
U pacjentów z rekombinantnym erytropoetinowym erytropoetinowym erytropoetinowym erytropoAktualizacja_optionZaktualizuje funkcjęWartość, od wersji 2.3.3, kiedy dzwonisz opcjęAktualizacja_option, jeśliopcja nie istnieje, nasz CRM stworzy tę opcję.