Skocz do zawartości

Blog IPSBeyond.pl

  • wpisy
    71
  • komentarzy
    21
  • wyświetleń
    118086

O blogu

Blog poświęcony wszystkiemu temu co związane z IPS Communiity Suite (dawniej IP.Board) oraz z funkcjonowaniem tego forum

Wpisy w tym blogu

Spanner

Dziś chciałbym Wam przedstawić kolejną nowość w (SD) Game Keys Store. Dziś będą to zaawansowane promocje.

Czym jest zaawansowana promocja?

Zaawansowane promocje są specjalnym modułem, który umożliwia definiowanie promocji na wybrane gry. W panelu administratora możemy wybrać gry, które mają być w promocji i określić od kiedy i do kiedy ma być promocja na dane gry. Dodatkowo określamy rabat na wybrane gry.

Wszystko to odbywa się w prostym formularzu:

(SD) Game Keys Store - acp - promotion form.png

Po wypełnieniu, którego możemy zarządzać wszystkimi promocjami:

(SD) Game Keys Store - acp - promotions list.png

 

Od strony użytkownika promocje wyglądają w następujący sposób:

(SD) Game Keys Store - promotion widgets.png

 

Oraz po wejściu na specjalną stronę z daną promocją, mamy listę wszystkich gier biorących udział w promocji:

(SD) Game Keys Store - promotion view.png

Spanner

W kolejnym wpisie dotyczącym (SD) Game Keys Store chciałbym Ci przybliżyć co nieco nową funkcjonalność którą jest integracja z klubami. Czym jest i na czym ona dokładnie polega.

 

Czym jest integracja z klubami?

Jak wiemy w wersji 4.2 IPS wprowadził coś, co się nazywa kluby. W dużym uproszczeniu klub to nic innego jak miejsce, w którym skupia się grono użytkowników i w którym mogą np. dyskutować na jakiś temat. Przykładem takiego klubu może być chociażby klub o aplikacji (SD) Game Keys Store:

 

Zapewne ciekawi Was zatem na czym polega integracja tej aplikacji z klubami. Otóż w wersji 1.1.0 możliwe będzie połączenie gry z istniejącym klubem co spowoduje wyświetlenie dodatkowych informacji wraz z zaproszeniem do takiego klubu w karcie produktu.

 

Jak połączyć grę z klubem?

Sam proces łączenia gry i klubu jest bardzo prosty. Sprowadza się jedynie do wybrania odpowiedniego klubu z listy w formularzu dodawania/edycji gry w panelu administrator co widać na poniższym screenie:

(SD) Game Keys Store - acp - connect with club.png

 

Jak wygląda połączona gra z klubem?

W ostatniej już sekcji pokażę Ci jak to wygląda po połączeniu. Jeśli dokonasz takiego połączenia to w informacjach o grze, a dokładniej pod opisem gry pojawi się nowy blok, który będzie prezentował klub wraz z krótką informacją zachęcającą użytkownika do dołączenia do klubu.

(SD) Game Keys Store - connected club.png

Spanner

Dziś chciałbym się z Wami podzielić nowym tutorialem, który w prosty sposób pozwoli Wam na wymuszenie zakupu podczas rejestracji.

Z poniższego filmu dowiesz się jak skonfigurować aplikację Commerce aby podczas rejestracji użytkownik musiał dokonać zakupu pakietu. Poruszony zostanie także temat ja po zakupie przenieść użytkownika do innej grupy oraz co zrobić, aby taki pakiet trzeba było odnawiać co pewien czas.

Jesteś ciekaw co musisz zrobić? Zapraszam do oglądania.

 

Spanner

Dawno nie pojawiło się nic nowego w aplikacji (SD) My Places, dlatego postanowiłem to zmienić. W nowej wersji ruszamy od razu z przytupem i zaczynamy od największej nowości a mianowicie od garażu.

Czym jest garaż?

Ogólnie garaż jest miejscem, w którym użytkownicy mogą dodawać swoje pojazdy oraz podawać podstawowe informacje. Każdy użytkownik może dodać nieograniczoną ilość pojazdów. Strona główna garażu prezentuje się następująco:

(SD) My Places - My garage - no info.png

(SD) My Places - My garage - with photo.png

Do czego służy garaż?

Oprócz tego o czym wspomniałem w poprzednim akapicie, dodając pojazd do naszego garażu zyskujemy szereg nowych możliwości. Dziś omówię dwie:

  1. Logi przejechanych tras/kilometrów
  2. Średnie spalanie

Logi przejechanych tras/kilometrów

W tej części mamy w zasadzie dwie funkcjonalności. Po pierwsze tutaj będzie znajdować się lista wszystkich tras, które przejechaliśmy danym pojazdem. Po drugie możemy ręcznie dodać dzienny przebieg niezwiązany z żadną trasą.

W przypadku przejechanych tras zmiana będzie polegać teraz na tym, że oznaczając jakąś trasę, że ją przebyliśmy, oprócz podawania daty kiedy odbyliśmy ją, będziemy wybierać dodatkowo pojazd (pod warunkiem, że mamy więcej niż jeden pojazd w serwisie. Jeśli mamy tylko jeden pojazd lub nie mamy żadnego zmiany nie będą widoczne).

(SD) My Places - My garage - distance logs.png

W przypadku ręcznego dodawania dziennego przebiegu musimy podać tylko 2 informacje. Datę dla której dodajemy przebieg oraz przebyty dystans z dokładnością do maksymalnie dwóch miejsc po przecinku.

(SD) My Places - My garage - distance logs - custom form.png

(SD) My Places - My garage - distance logs - with custom.png

 

Średnie spalanie

Zakładka średniego spalania jest trochę bardziej rozbudowana. Na stronie oprócz standardowych statystyk znajdziemy listę tankowań:

(SD) My Places - My garage - refueling logs.png

Formularz dodawania tankowania także jest trochę bardziej rozbudowany i zawiera więcej informacji do podania.

(SD) My Places - My garage - refueling logs - forms.png

Na podstawie tych wszystkich informacji wyliczane jest średnie globalne spalanie naszego pojazdu.

Spanner

Kolejną nowością dostępną w (SD) Sales Portal Pro od wersji 2.3.0 jest centrum sporów.

Czym jest centrum sporów?

Mówiąc wprost jest to miejsce w którym możesz zgłosić sprzedającemu niezgodność zakupionego towaru z z opisem. Oprócz tego, że wiadomość trafi do sprzedającego, trafi też do "mediatora". Mediatorem w tym przypadku jest każdy administrator forum.

Więcej o sposobie działania centrum sporów możecie dowiedzieć się z poniższego filmiku.

 

 

Spanner

Pozostając w tematach bazy danych, dziś chciałbym Wam przybliżyć temat tworzenia kopii bazy danych z poziomu phpMyAdmina.

W poprzednim wpisie (https://www.ipsbeyond.pl/blogs/entry/117-phpmyadmin-jak-zoptymalizować-tabele-w-bazie-danych/) pokazałem jak zoptymalizować bazę danych, dlatego kontynuując prace w panelu phpMyAdmin zapraszam Cię do zapoznania się z wideo tutorialem pokazującym w jaki sposób wykonać kopię bazy danych.

 

 

Podobny wpis:

 

Spanner

Często prosicie mnie o pomoc w optymalizacji bazy danych. Dość dawno temu napisałem krótki tutorial na temat tworzenia kopii bazy danych połączony z optymalizacją, jednakże od tego czasu phpMyAdmin uległ trochę zmianie, a tutorial trochę się zdezaktualizował.

Postanowiłem nagrać więc wideo tutorial na dotyczący samej optymalizacji bazy danych. Poniżej znajdziecie link do tego filmu.

 

 

Podobny wpis:

 

Spanner

Dziś pragnę się z Wami podzielić pierwszymi informacjami z nadchodzącej wersji (SD) Sales Portal Pro 2.3.0. Są to restrykcje. Kto używał tej aplikacji jeszcze dla IP.Board 3 zapewne pamięta tę funkcjonalność. W nowej odsłonie jednakże trochę się pozmieniało.

Czym są restrykcje i jak działają?

Restrykcje to nic innego jak ograniczenia, które nakładają na użytkowników pewne wymogi. Przykładowo jeśli chcemy, aby na naszej giełdzie mogli sprzedawać tylko użytkownicy, którzy napisali więcej niż 100 postów i zarejestrowali się przynajmniej rok temu na forum, to ustawiamy następujące restrykcje:

  • W zakładce System w polu Member joined wpisujemy 365 i wybieramy z select boxa opcję "more than" (więcej niż)
  • W zakładce Forums w polu Member posts wpisujemy 100 i także wybieramy opcję "more than"

Jak to działa?

Przy próbie dodania oferty (zarówno kliknięcie buttona dodaj ofertę jak i wybranie z szybkiego menu utwórz ofertę) sprawdzane jest:

  • czy istnieją aktywne restrykcje?
  • czy jakieś aktywne restrykcje odnoszą się do grupy aktualnie zalogowanego użytkownika?

Jeśli oba powyższe stwierdzenia są poprawne, sprawdzane są kryteria jakie ustawiliśmy. W naszym przypadku jest to data dołączenia i liczba zatwierdzonych postów. Jeśli użytkownik nie spełni któregoś z warunków zostanie wyświetlony komunikat błędu, który definiujemy podczas tworzenia restrykcji.

Lista restrykcji w acp

Lista restrykcji jest stosunkowo prosta. Zawiera nazwę restrykcji, która ma informować administratora co to jest za grupa restrykcji oraz status (czy restrykcje są aktywne czy nie).

Sales Portal Pro - acp - restrictions list.png

Formularz w acp

Formularz dodawania restrykcji może się różnić w zależności od tego, jakie aplikacje posiadamy. Każdy będzie posiadał na pewno 3 zakładki: Basic settings, (SD) Sales Portal Pro oraz System. Jeśli będziemy posiadać galerię, blog lub kalendarz, będziemy mieć dodatkowe możliwości wprowadzenia ograniczeń.

Niektóre aplikacje, jak np. (SD) Sales Portal Pro, Forums, Downloads, Gallery posiadają dodatkowo możliwość ograniczonego sprawdzania.

Ograniczone sprawdzanie to nic innego jak to, że wybrane restrykcje będą sprawdzane tylko w wybranych kategoriach. Przykładowo, chcemy aby możliwe dodawanie nowych ofert, ale tylko jeśli użytkownik posiada mniej niż 3 aktywne oferty w kategoria X, Y, Z. Wybieramy zatem te kategorie i ustawiamy odpowiednią ilość aktywnych ofert.

Sales Portal Pro - acp - restrictions form - basic.pngSales Portal Pro - acp - restrictions form - sales portal pro.pngSales Portal Pro - acp - restrictions form - system.pngSales Portal Pro - acp - restrictions form - forums.pngSales Portal Pro - acp - restrictions form - calendar.pngSales Portal Pro - acp - restrictions form - blog.pngSales Portal Pro - acp - restrictions form - downloads.pngSales Portal Pro - acp - restrictions form - gallery.png

Bonus

Na koniec mały bonus czyli film, na którym możecie zobaczyć jak działają restrykcje.

 

Spanner

Ostatnią nowością jaka ukaże się w (SD) Company Directory 3.4.0 jest system newsów.

Do czego służy system newsów?

System newsów powstał z myślą udostępnienia użytkownikom, którzy posiadają profil w katalogu miejsca, w którym będą mogli zaprezentować jakieś nowości/promocje ze swojego profilu. Najprostszym zastosowaniem tego systemu jest poinformowanie klientów, że firma X otworzyła nowy oddział w miejscowości Y.

Jak to działa

Zasadniczo działanie jest bardzo proste. W panelu administratora możemy włączyć lub wyłączyć system newsów.

Natomiast jako użytkownik wybieram z "szybkiego menu" tworzenie newsów. Następnie w formularzu wybieramy, dla którego z naszych profili chcemy dodać news.

Company Directory - News - Choose company profile.png

Następnie jesteśmy przenoszeni do właściwego formularza, w którym mamy do uzupełnienia tylko dwa pola: Tytuł newsa i jego treść.

Company Directory - News - form.png

Po zatwierdzeniu news jest dodawany do systemu.

Gdzie się będą wyświetlać newsy

Oczywiście każdy news posiada swoją stronę, na której widzimy tytuł, datę dodania newsa, treść newsa oraz krótką metryczkę profilu, który jest powiązany z tym newsem.

Company Directory - News - details.png

Dodatkowo istnieje strona, która zawiera spis wszystkich newsów, które są dodane w systemie. Lista jest stronicowana.

Company Directory - News - list.png

Ponadto mamy możliwość umieszczenia w dowolnym miejscu na forum widgetu pionowego lub poziomego, który będzie wyświetlać najnowsze newsy.

Company Directory - News - widgets.png

Plany na przyszłość

W kolejnych wersjach planuję rozwinąć system newsów o kolejne funkcjonalności, między innymi dodać je do wyników wyszukiwania na forum, stworzyć dla nich mapę witryny google oraz prezentować je w widoku profilu danej firmy.

Spanner

Kolejną nowością w  (SD) Company Directory 3.4.0 są firmy w pobliżu.

Jak to działa?

Funkcjonalność ta polega na tym, że w pierwszej kolejności udostępniamy przeglądarce naszą lokalizację lub podajemy ją w formularzu. Następnie możemy sprecyzować dodatkowe kryteria jak specjalizacja, państwo, województwo, miasto, kategoria i szukamy. Jako dodatkowe kryterium wybieramy odległość jaka nas interesuje.

Company Directory - nearby companies.png

Spanner

W poprzednim wpisie ((SD) Company Directory 3.4.0 - Zmiany w wyglądzie) wspominałem o jednej z ciekawych nowości w najnowszej odsłonie (SD) Company Directory 3.4.0, jaką są media społecznościowe.

Dlaczego zrobiłem to w ten sposób?

Oczywiście część z Was zadaje sobie pytanie po co taka funkcjonalność, skoro można ją osiągnąć używając pól dodatkowych w aplikacji. Oczywiście, że można i wiele osób zapewne tak zrobiło, ale poczynione zmiany mają na celu pewną standaryzację.

Po pierwsze wszystkie media społecznościowe są zebrane w jednej strukturze i w jednym miejscu, dzięki czemu łatwiej możemy tym zarządzać.

Po drugie mając taki podział (osobno pola dodatkowe, osobno media społecznościowe) mamy więcej możliwości rozwojowych w przyszłości.

Po trzecie możemy umieścić linki wraz z ikonkami do mediów społecznościowych danej firmy w dowolnym miejscu i nie będzie to wymagało od nas żadnych dodatkowych prac ani zmian w kodzie. Aby wstawić ikony linkujące do danych profili wystarczy umieścić w szablonie taki oto kod:

{$profile->social|raw}

 

Company Directory - Form - Social Media.png

Company Directory - profile view.png

Company Directory - ACP - Social Media - list.png

Company Directory - ACP - Social Media - form.png

Spanner

W ostatnich tygodniach ciężko pracowałem nad nową odsłoną (SD) Company Directory 3.4.0, która ukaże się już niedługo.

Ten wpis w całości poświęcony będzie zmianom w wyglądzie, jakie zaszły w nowej wersji aplikacji.

Wygląd strony głównej oraz kategorii

Podobnie jak w poprzednich wersjach, tak i w tej, w ustawieniach w panelu administratora możemy wybrać sposób prezentowania wpisów w kategorii. Wybór mamy pomiędzy kafelkami i listą. Nowością w wersji 3.4.0 jest taki sam wybór, ale dla strony głównej aplikacji. Obydwa wyglądy zostały odświeżone i w tej chwili prezentują się w ten sposób:

Company Directory - Grid view.pngCompany Directory - List view.png

Wygląd formularza

Formularz dodawania/edycji został gruntownie przebudowany i podzielony na poszczególne częśći. Po pierwsze są to zakładki, które zostały wprowadzone ze względu na dodanie nowych funkcjonalności, którymi są media społecznościowe oraz godziny otwarcia (szerzej o nowych funkcjonalnościach napiszę w osobnych wpisach).

Dodatkowo "stara" część formularza została przebudowana i czytelniej podzielona na poszczególne fragmenty, dzięki czemu łatwiej można będzie się odnaleźć w samym formularzu.

Company Directory - Form - Basic.pngCompany Directory - Form - Hours - close.pngCompany Directory - Form - Hours - open.pngCompany Directory - Form - Social Media.png

Wygląd listy cen

Lista cen nie przeszła jakiś rewolucyjnych zmian. Była to bardziej ewolucja tego, co już było. Zmianie uległ wygląd poszczególnych bloków, powiększona została czcionka określająca cenę pakietu oraz lekko zmodyfikowano kolory reprezentujące poszczególne sekcje bloku, aby ujednolicić wygląd z pozostałą częścią aplikacji.

Company Directory - Price list.png

Wygląd profilu

Największe zmiany dotknęły profilu. Tutaj zrezygnowałem całkowicie z możliwości wyboru wyglądu. Przebudowana została całościowo struktura strony wprowadzając powiew świeżości i nowe funkcjonalności (wspomniane wcześniej media społecznościowe oraz godziny otwarcia). Dodatkowo nowością jest też integracja z aplikacją (SD) Sales Portal Pro.

Company Directory - profile view.png

Spanner

Jedną z nowości jaka zagościła w (SD) Newsletter 2 jest autoresponder.

 

Czym tak na prawdę jest Autoresponder?

Autoresponder, jak sama nazwa wskazuje, jest automatyczną wiadomością wysyłaną przez system w określonych sytuacjach. W przypadku aplikacji (SD) Newsletter mamy do wyboru dwa rodzaje autoresponderów:

  • Cykliczny, gdzie wysyłka odbywa się co tydzień, co miesiąc, co rok, ogólnie co określony przedział czasu
  • Pojedynczy autoresponder. Ten natomiast dzieli się jeszcze na dwa typy:
    • Wysyłany niezwłocznie po zapisaniu się do newslettera
    • Wysyłany z pewnym opóźnieniem (opóźnienie możemy ustawić) po zapisaniu się do newslettera.

Więcej na temat możliwości konfiguracyjnych autorespondera dowiesz się oglądając poniższy film:

 

 

 

Spanner

Zgodnie z obowiązującymi przepisami prawa każde forum dyskusyjne powinno pozwalać użytkownikom usunąć ich konto.

Standardowo jest to dość uciążliwa sprawa, ponieważ wymaga aby użytkownik wysłał prośbę do administratora, administrator musi tego maila przeczytać, wejść do panelu, odnaleźć użytkownika itp., itd. Dodatkowo nie jest jasno napisane, jak ma taki mail wyglądać i niekiedy wymagana jest odpowiednia formuła takiej wiadomości.

Tutaj z pomocą przychodzi aplikacja (SD) Delete Account, która niektórym z Was może być już znana, ponieważ jest dostępna jeszcze dla wersji IPB3. Powstała nowa odświeżona wersja dedykowana IPS Community Suite 4.

Jak działa aplikacja?

  1. Użytkownik wchodzi na odpowiednią podstronę, na której potwierdza chęć usunięcia konta
  2. Na maila otrzymuje potwierdzenie chęci usunięcia konta, w którym znajduje się link. Kliknięcie w link potwierdza w 100%, że chce usunąć konto i że dokonał tego świadomie, a nie przez przypadek
  3. Po potwierdzeniu chęci usunięcia konta, administrator dostaje powiadomienie, że w kolejce oczekują konta na usunięcie.
  4. Po zalogowaniu się do panelu administratora i przejściu na specjalną podstronę administrator od razu widzi konta, które oczekują na usunięcie i od razu może podjąć decyzję, czy usuwa te konta lub nie.

Poniżej znajduje się kilka screenów obrazujących wygląd aplikacji:

(SD) Delete Account - settings.png

(SD) Delete Account - stats.png

(SD) Delete Account - to confirm.png

(SD) Delete Account.png

(SD) Delete Account - confirmed.png

(SD) Delete Account - Deleted membes.png

(SD) Delete Account - Requests management.png

Spanner

Czasami zdarza się, że użytkownicy na forum posiadają nieaktualne adresy e-mail, a my na nasze skrzynki główne forum dostajemy masę zwrotek typu "adres nie istnieje". Do tej pory nie było na to rozwiązania, bo jak skontaktować się z takim użytkownikiem, skoro jego e-mail nie działa?

Od dziś to się zmieni. Z pomocą przychodzi aplikacja (SD) Outdate Emails, która pozwala oznaczyć takie użytkownika w panelu administratora.

Co daje oznaczenie nieaktualnego adresu e-mail?

  • Do użytkownika nie będą wysyłane żadne e-maile z forum
  • Po wejściu na forum użytkownikowi będzie wyświetlany za każdym razem popup z informacją, że ma nieaktualny adres
  • Informacja ta zniknie dopiero, gdy użytkownik zmieni swój adres

Pozostałe Funkcjonalności

  • Historia zmian adresów e-mail wszystkich użytkowników na forum
  • Podczas oznaczania nieaktualnego adresu e-mail możemy zmienić grupę użytkownikowi (do której wróci automatycznie po zmianie adresu e-mail)
  • Całkowita blokada wysyłki e-maili z forum na zablokowane adresy e-mail
  • Popup z informacją o nieaktualnym adresie e-mail

(SD) Outdate Emails - Import emails.png

(SD) Outdate Emails - Member edit.png

(SD) Outdate Emails - Outdated emails.png

(SD) Outdate Emails - Statistics.png

(SD) Outdate Emails - Frontend.png

(SD) Outdate Emails - History email change.png

Spanner

(SD) Mass PM

Każdy z nas używał przynajmniej raz prywatnych wiadomości na forum, czy to w postaci zadawania pytań komuś, czy to otrzymując jakieś informacje od administratora.

Aplikacja z zasady działa w bardzo prosty sposób. Administrator ustala pewne kryteria jak grupy odbiorców. Dodatkowo możemy wybrać użytkowników, którzy mają określoną ilość postów lub dołączyli do serwisu w określonym przedziale czasu. Możemy też wybrać użytkowników, którzy w określonym przedziale czasu byli dostępni na forum. Wysyłka wiadomości następuje w sposób automatyczny w tle, w związku z czym nie jest wymagana żadna dodatkowa aktywność od nas.

(SD) Mass PM pozwala także wysłać ponownie wiadomość do tych samych odbiorców.

Poniżej kilka screenów z aplikacji

 

(SD) Mass PM - form filtering open.png

(SD) Mass PM - lists.png

(SD) Mass PM - overview.png

(SD) Mass PM - form additional.png

(SD) Mass PM - form basic.png

(SD) Mass PM - form filtering close.png

Spanner

Dziś mam dla Was kolejną odsłonę wideotutorialu  dotyczącego (SD) My Places. W dzisiejszym odcinku mam przyjemność zaprezentować najnowszą funkcjonalność tzn. Dodawanie trasy w postaci pojedynczego punktu.

Czasem może być tak, że nie planujesz trasy, ale chcesz pokazać jakieś ciekawe miejsce. Używając najnowszej odsłony aplikacji My Places możesz tego dokonać kilkoma kliknięciami myszki. Nie trzeba tworzyć żadnej sztucznej trasy, w tym przypadku wystarczy kliknąć na mapie.

 

Spanner

Większość aplikacji dla IPS Community Suite 4 posiada możliwość tworzenia dodatkowych pól. Aplikacja (SD) Company Directory 3, także posiada taką możliwość, a dodatkowo pozwala na przypisanie konkretnych pól do konkretnych kategorii. Chcesz wiedzieć jak to zrobić? Nic prostszego. W dzisiejszym wpisie odpowiem Ci na to pytanie.

Czym jest (SD) Company Directory?

Niestety (albo na szczęście) aplikacja (SD) Company Directory nie posiada konkretnej definicji czym tak naprawdę jest. Dlaczego? Odpowiedź jest dość prosta - ta aplikacja ma tak wiele zastosowań, że ciężko ją przyporządkować do jednej.

Pierwotnie aplikacja powstała jako katalog profili firmowych, zorganizowanych w kategorie. Szybko jednak się okazało, że możliwości jest więcej. Dzięki katalogowi możecie tworzyć zarówno prostą bazę firm w jakimś rejonie np. w Polsce. Po bardziej skomplikowane np. posegregowane restauracje, posiadające swoje specjalizacje (kuchnia chińska, burgery, itp).

Aplikacja pozwala stworzyć profile zarówno z fizyczną lokalizacją na mapie, jak i z pominięciem mapy. Możemy się "meldować" pod tym adresem, dodawać opinie, komentować takie wpisy. Dodatkowo każdy profil firmy może posiadać lokalizacje dodatkowe.

Jak stworzyć pole dodatkowe i przypisać je do kategorii

Nic prostszego. Sam proces tworzenia takich pól jest dość prosty i sprowadza się do kilku kliknięć. Zobaczcie z resztą sami na poniższym filmie.

 

Spanner

Dziś pokażę Wam jaki prosty jest zapis do newslettera dzięki aplikacji (SD) Newsletter. Nie wymaga to od nas żadnych wymagających rzeczy. Wystarczy podać nazwę, adres e-mail i opcjonalnie wybrać kategorie, do których chcemy się zapisać.

Czym jest aplikacja (SD) Newsletter?

(SD) Newsletter jest aplikacją pozwalającą na wysyłanie newsletterów z poziomu forum. Aplikacja w swojej prostocie posiada bardzo duże możliwości. Dzięki tej aplikacji możemy wysyłać zarówno cykliczne jak i pojedyncze newslettery do osób, które się zapisały do naszej bazy. Zapisać mogą się za równo użytkownicy forum jak i goście odwiedzający naszą stronę. Każdy wysłany newsletter pozwala śledzić ilość otwarć mailingu - zarówno unikalne odsłony jak i łączne. Dodatkowo każdy link w newsletterze jest śledzony, dzięki czemu możemy w statystykach sprawdzić, w które treści użytkownicy klikają najchętniej.

(SD) Newsletter posiada także możliwość zachęcania użytkowników do zapisu poprzez popup wyświetlający się po wejściu na stronę.

Jak zapisać się do newslettera?

Jak pokazuje poniższy filmik, zapis do newslettera jest bardzo prosty. Zalogowany użytkownik musi tylko zaakceptować regulamin, natomiast gość musi podać jeszcze adres e-mail oraz nazwę. Dodatkowo możemy wybrać jeszcze newslettery do jakich chcielibyśmy się zapisać.

 

Spanner

Używasz aplikacji (SD) My Places i chciałbyś zaimportować z pliku csv nowe miejsca? Nic prostszego w tym wpisie zobaczysz jakie to proste.

Czym jest aplikacja (SD) My Places?

My Places jest zaawansowaną aplikacją pozwalającą społeczności dzielić się ciekawymi trasami. Aplikacja jest idealnym rozwiązaniem dla forów o tematyce motocyklowej, rowerowej czy samochodowej. Niemniej jednak zastosowań jest dużo więcej. Podstawową funkcjonalnością aplikacji jest dodawanie tras. Możemy to zrobić na kilka sposobów: wyznaczając trasę na mapie google z punktu A do punktu B, zaimportować istniejącą już trasę (tutaj możemy importować trasy z kilku rodzajów plików) lub wkleić link do google maps i aplikacja sama stworzy nam trasę. Dodatkowo taką trasę możemy uzupełnić o opis, czas jaki jest potrzebny na przejechanie jej, zdjęcia z trasy oraz kiedy ją odbyliśmy.

Oczywiście administrator może stworzyć dodatkowe pola, które jeszcze bardziej uatrakcyjnią taki wpis. Mając już taki wpis użytkownicy mogą komentować, oceniać trasę a także zaznaczać, że odbyliśmy, nie odbyliśmy lub chcieli byśmy odbyć trasę.

No dobrze, ale co zrobić jeśli mamy plik csv z listą setek tras? Dodawanie ich ręcznie przyprawi nas o ból głowy. Na to pytanie odpowiedzią jest poniższa część wpisu.

Jak zaimportować miejsca?

Cały proces importowania nowych miejsc obrazuje poniższy film.

 

 

 

 

Spanner

W ostatnim czasie robiłem aktualizację dość dużego forum z wersji IP.Board 3 do wersji IPS Community Suite 4. Oczywiście nie obyło się bez problemów. Podstawowym problemem jak zawsze przy aktualizacji są polskie znaki.

Jeśli forum jest w latin2 to nie ma z tym problemów bo wiadomo, że trzeba je przekonwertować do utf-8. Ale co zrobić jeśli nasze forum w wersji 3 miało kodowanie utf, a aktualizacja stwierdza, że to nie jest utf i trzeba dokonać konwersji? W przypadku małego forum możemy oczywiście próbować wykonać taką konwersję, ale z doświadczenia wiem, że nie rzadko kończy się to tym, że zamiast polskich znaków diakrytycznych mamy krzaczki  w postaci np. znaków zapytania.

Metoda, którą przestawiam poniżej jest dość prosta, choć trochę się naszukałem i nakombinowałem aby to zrobić. Niestety aby wszystko działało prawidłowo musimy mieć dostęp do bazy danych z poziomu SSH.

SELECT CONCAT("ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CHARACTER SET utf8 COLLATE utf8_general_ci; ", "ALTER TABLE ",TABLE_SCHEMA,".",TABLE_NAME," CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; ") AS alter_sql FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'NAZWA_BAZY_DANYCH' INTO OUTFILE '/tmp/database.txt';

Zapytanie to tworzy listę zapytań typu ALTER TABLE..., które zmieniają kodowanie tabel z utf8_genral_ci na utf8_unicode_ci dla bazy danych podanej w NAZWA_BAZY_DANYCH.

Następnie musimy uruchomić z poziomu SSH plik, który powstanie w wyniku tego zapytania i koniec. Możemy dokonać aktualizacji forum bez żadnej dodatkowej konwersji.

 

Spanner

Live streams jest aplikacją dla IPS Community Suite 4, która pozwala prezentować streaming gier z portali: Twitch.tv, Beam.pro i Hitbox.tv. 

Funkcjonalności aplikacji Live streams

Oczywiście do podstawowych funkcjonalności należy dodawanie strumieni przez użytkowników. Sam proces dodawania odbywa się w dwojaki sposób. Możemy albo podać nasz login w serwisie, albo link do naszego profilu. Dodatkowo musimy wybrać platformę, z której dodajemy strumień, oraz jeśli chcemy możemy dodać jakiś własny opis.

System dodatkowo pozwala na zakup płatnego wyróżnienia kanału. Płatność realizowana jest przez aplikację Store (dawniej IP.Nexus).

Sam widok profilu strumienia możemy dodatkowo komentować (jeśli administrator włączył taką opcję). Na stronie znajduje się także chat danego systemu strumienia. Administrator może wybierać jego położenie (nad playerem, obok playera, poniżej playera).

Oczywiście oprócz tego są jeszcze liczne widgety pokazujące aktywności z systemu oraz możliwość automatycznego tworzenia tematów po dodaniu strumienia.

Wygląd aplikacji Live streams

Poniżej przedstawiam kilka screenów z wyglądu aplikacji

Stream-view-right.png

grid-view.png

Live-stream-my-streams.png

Live-stream-main-page-new.png

Live-stream-Games.png

Live-stream-home-block.png

Live-stream-Game-Streamers.png

Stream-view-bottom.png

Stream-form.png

topic-view.png

Stream-view-top.png

List-view.png

Live-stream-additional-filters.png

Live-stream-filter-by-platform.png

Spanner

Praktycznie każda aplikacja, którą piszemy, będziemy pisać w przyszłości będzie potrzebować systemu komentarzy. Nie ważne czy jest to aplikacja typu moje trasy, blog, platforma z ogłoszeniami. Zawsze dążymy do tego by użytkownik wchodził w jakąś interakcję z dodaną treścią. Najłatwiej jest to osiągnąć właśnie przez system komentarzy.

Co musimy zrobić?

Aby uruchomić system komentarzy w naszej aplikacji musimy wykonać 3 kroki:

  1. Dodać odpowiedni kod do klasy elementu, który będzie przetrzymywał komentarze
  2. Stworzyć odpowiednią strukturę tabeli
  3. Stworzyć model klasy komentarzy

Ale zacznijmy od początku.

Zmiana w pliku

Opiszę tutaj to na przykładzie jednej z moich aplikacji. Aplikacja znajduje się w przestrzeni nazw IPS\livestreams a elementem (modelem), który będzie przetrzymywać komentarze jest Stream. Zatem Otwieramy plik: /applications/livestreams/sources/Stream/Stream.php i wklejamy w nim wewnątrz klasy:

	/**
	 * @brief	Comment Class
	 */
	public static $commentClass = 'IPS\livestreams\Stream\Comment';

Struktura bazy danych

Tutaj musimy stworzyć dość prostą tabelę a mianowicie:

CREATE TABLE `ibf_livestreams_streams_comments` (
	`comment_id` INT(10) NOT NULL AUTO_INCREMENT,
	`comment_stream_id` INT(10) NOT NULL DEFAULT '0',
	`comment_member_id` MEDIUMINT(8) NOT NULL DEFAULT '0',
	`comment_author` VARCHAR(255) NULL DEFAULT NULL,
	`comment_ip_address` VARCHAR(46) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	`comment_date` INT(10) NULL DEFAULT NULL,
	`comment_append_edit` TINYINT(1) NULL DEFAULT '0',
	`comment_approved` TINYINT(1) NOT NULL DEFAULT '0',
	`comment_text` MEDIUMTEXT NULL COLLATE 'utf8mb4_unicode_ci',
	`comment_edit_time` INT(10) NOT NULL DEFAULT '0',
	`comment_edit_name` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
	PRIMARY KEY (`comment_id`),
	INDEX `comment_parent_id` (`comment_stream_id`),
	INDEX `comment_author_id` (`comment_member_id`)
);

Idąc od początku:

  • comment_id - Id komentarza w bazie
  • comment_stream_id - Id elementu, którego komentarz ma dotyczyć
  • comment_member_id - Id autora komentarza
  • comment_author - Nazwa autora
  • comment_ip_address - Adres IP użytkownika
  • comment_date - Data dodania wpisu
  • comment_approved - Czy komentarz jest zatwierdzony
  • comment_text - Treść komentarza
  • comment_edit_time - Czas, kiedy komentarz był edytowany

Model klasy komentarzy

Plik musi nosić nazwę Comment.php i znajdować się w katalogu /applications/livestreams/sources/Stream/. A jego kod wygląda następująco:

<?php
/**
 * SolutionrDEVs Application
 * (SD) Live Streams
 *
 * @brief       Comment model
 * @author      Dawid Baruch <dawid.baruch@solutiondevs.pl> <a href='http://www.solutiondevs.pl'>SolutionDEVs</a>
 * @copyright   (c) 2005 - 2016 SolutionDEVs
 * @package     SolutionDEVs Apps
 * @subpackage  (SD) Live Streams
 * @link        http://www.solutiondevs.pl
 * @link        http://www.ipsbeyond.pl
 * @since       25 Aug 2016
 * @version     2.0.0
 */

namespace IPS\livestreams\Stream;

/* To prevent PHP errors (extending class does not exist) revealing path */
if( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER[fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"][ 'SERVER_PROTOCOL' ] ) ? $_SERVER[ 'SERVER_PROTOCOL' ] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * Stream Comment Model
 */
class _Comment extends \IPS\Content\Comment implements \IPS\Content\EditHistory, \IPS\Content\ReportCenter, \IPS\Content\Hideable, \IPS\Content\Reputation, \IPS\Content\Searchable, \IPS\Content\Embeddable
{
	/**
	 * @brief	[ActiveRecord] Multiton Store
	 */
	protected static $multitons;
	
	/**
	 * @brief	[Content\Comment]	Item Class
	 */
	public static $itemClass = 'IPS\livestreams\Stream';
	
	/**
	 * @brief	[ActiveRecord] Database Table
	 */
	public static $databaseTable = 'livestreams_streams_comments';
	
	/**
	 * @brief	[ActiveRecord] Database Prefix
	 */
	public static $databasePrefix = 'comment_';
	
	/**
	 * @brief	Database Column Map
	 */
	public static $databaseColumnMap = array(
		'item'				=> 'stream_id',
		'author'			=> 'member_id',
		'author_name'		=> 'author',
		'content'			=> 'text',
		'date'				=> 'date',
		'ip_address'		=> 'ip_address',
		'edit_time'			=> 'edit_time',
		'edit_member_name'	=> 'edit_name',
		'edit_show'			=> 'append_edit',
		'approved'			=> 'approved'
	);
	
	/**
	 * @brief	Application
	 */
	public static $application = 'livestreams';
	
	/**
	 * @brief	Title
	 */
	public static $title = 'livestreams_streams_comment';
	
	/**
	 * @brief	Icon
	 */
	public static $icon = 'video-camera';
	
	/**
	 * @brief	Reputation Type
	 */
	public static $reputationType = 'comment_id';
	
	/**
	 * @brief	[Content]	Key for hide reasons
	 */
	public static $hideLogKey = 'livestreams-scomment';
	
	/**
	 * Get URL for doing stuff
	 *
	 * @param	string|NULL		$action		Action
	 * @return	\IPS\Http\Url
	 */
	public function url( $action=NULL )
	{
		return parent::url( $action )->setQueryString( 'tab', 'comments' );
	}
}

I ogólnie to tyle, aby dodać komentarze do naszej aplikacji

×

Ważne informacje

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