Skocz do zawartości
  • Zarejestruj się

Dokumentacji

Zaloguj się, aby obserwować  

Tworzenie własnego pluginu do wysyłki newslettera


Spanner
  • https://uploads.ipsbeyond.pl/

Ponieważ aplikacja (SD) Newsletter umożliwia nam wysyłanie cyklicznych newsletterów z naszego forum stwrzone zostało API, dzięki któremu możemy dla każdej aplikacji dostępnej na forum stworzyć taki plugin, który będzie wysyłać cykliczne treści.

Aby stworzyć taki plugin musimy stworzyć plik: /admin/applications_addon/other/XXX/extensions/newsletter/newsletterSection.php

gdzie XXX to folder naszej aplikacji.

Plik powinien mieć następującą zawartość:

<?php
/**
 * SolutionrDEVs Application
 * Application
 *
 * @author      Dawid Baruch <dawid.baruch@solutiondevs.pl>
 * @copyright   (c) 2005 - 2013 SolutionDEVs
 * @package     SolutionDEVs Apps
 * @subpackage  PHP
 * @link        http://www.solutiondevs.pl
 * @version     1.0.0 
 *
 */

class newsletter_section__app extends newsletterSectionCore
{
    public function __construct( ipsRegistry $registry )
    {
        parent::__construct( $registry );
        
        $registry->getClass('class_localization')->loadLanguageFile( array( 'admin_lang' ), 'app' );
    }
    
    /**
     * Get data type
     *
     * <pre>
     *  $return = array(
     *      'posts' => 'Latest posts',
     *      'reply' => 'Amount of replay',
     *      ....
     *  );
     * </pre>
     *
     * @return array data type
     */
    public function getDataType()
    {
        return array(
                'gamer' => $this->lang->words[ 'sd_leader_newsletter_gamer' ],
                'games' => $this->lang->words[ 'sd_leader_newsletter_games' ],
        );
    }

    /**
     * Get sort Options
     *
     * <pre>
     *  $return = array(
     *      'posts' => array( 'date' => 'Label', 'field_id' => 'Label' ),
     *      'reply' => array( 'amount' => 'Label', 'member_id' => 'Label' ),
     *      ....
     *  );
     * </pre>
     *
     * @return array sort options
    */
    public function getSortOptions()
    {
        return array(
                'gamer' => array(
                        'game_amount' => $this->lang->words[ 'sd_leader_newsletter_gamer_game_amount' ],
                        'gamescore'   => $this->lang->words[ 'sd_leader_newsletter_gamer_gamescore' ],
                        'reputation'  => $this->lang->words[ 'sd_leader_newsletter_gamer_reputation' ],
                ),
                'games' => array(
                        'amount_users' => $this->lang->words[ 'sd_leader_newsletter_games_amount_users' ],
                        'gamerscore'   => $this->lang->words[ 'sd_leader_newsletter_games_gamerscore' ],
                        'achievements' => $this->lang->words[ 'sd_leader_newsletter_games_achievements' ],
                ),
        );
    }

    /**
     * Get data for newsletter
     *
     * Limit for query is in varible $this->limit
     * Sort order is in varible $this->sortOrder
     *
     * <pre>
     *  $return = array(
     *      array(
     *          'url'     => 'URL to content',
     *          'title'   => 'Content title',
     *          'content' => 'Short description',
     *          'image'   => 'Content image'
     *      ),
     *      ....
     *  );
     * </pre>
     *
     * @param string $dataType data type
     * @param string $sortField sort field
     * @return array array with data
    */
    public function getNewsletterData( $dataType, $sortField )
    {
        switch( $dataType )
        {
            ...
        }
    }
}
?>

Metoda getDataType() zwraca nam dostępne typy danych.

Metoda getSortOptions() zwraca nam opcje sortowania dla poszczególnych typów.

Metoda getNewsletterData( $dataType, $sortField ) powinna zwrócić nam dane dla odpowiedniego typu ($dataType) oraz posortowane względem opcji ($sortField). W tej metodzie mamy dstępne jeszcze 2 zmienne:

$this->limit

która zwraca nam ile rekordów mamy pobrać z bazy oraz

$this->sortOrder

zawierająca sposób sortowania (ASC lub DESC).

Zaloguj się, aby obserwować  


Opinie użytkowników

Rekomendowane komentarze

Brak komentarzy do wyświetlenia.



Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.