Podstawy modułu

Podstawy modułu

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ę.


    • Related Articles

    • Bezpieczeństwo modułu

      Stworzyłeś więc moduł i działa dobrze, ale czy toBezpiecznie? Musisz upewnić się, że Twój moduł jest bezpieczny i nie jest podatny na żadneWstrzyki SQL przechodzą katalogi. Poniżej znajdziesz najlepsze praktyki, aby upewnić się, że TwojeModuł będzie ...
    • Wspólne funkcje modułu

      _aktywacja_hak /** * Hak aktywacji modułu * @paramModuł strunowy $Nazwa systemu modułu * @param$funkcja mieszanadla funkcji haka *@return mieszany * Register_activation_hook($moduł, $funkcja) _deaktywacja_hak /** * Hak dezaktywacji modułu * ...
    • Nagłówki plików modułów

      Każdy moduł w naszym CRM składa się z pliku init, który zawieraOgólna konfiguracja modułu i zawiera nagłówki zawierającemetainformacje dotyczące modułu. ModułW nagłówkach plików przykład Podążaj za przykład pobrano z domyślnego modułu CRMKonfiguracja ...
    • Stwórz propozycję

      Stwórz propozycję Z menu głównego przejdź do Sales->Propozycje, a po lewej górnej stronie kliknijUtwórz propozycjęPrzycisk Możeszutworzenie propozycji prowadzącej lub klienta. Wybierz Lead lub klienta. Wybierz którą/klient jest powiązany- Nie. Po ...
    • Twórz elementy menu

      Jeśli tworzysz niestandardowe moduły, prawdopodobnie będziesz chciałaby tworzyć elementy menu, które zostaną wyświetlane na pasku bocznym obszaru administracji lub obszarze klientównawigacja. Dzięki naszemu CRM możesz łatwo to osiągnąć dzięki kilku ...