Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'porady'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Forum

  • IPSBeyond
    • BOU
    • Propozycje i sugestie
    • Informacje Developerskie
  • IP.Board Support
    • IPSBeyond.pl Support Premium
    • Ogólne rozmowy o IP.Board
    • IPS Community Suite 4
    • IP.Board 3.4.x
    • Inne aplikacje Invision Power Services
    • Tworzenie własnych dodatków
    • Tutoriale i Artykuły
    • IP.Board Coding
    • Wersje niewspierane
  • Support dodatków
    • IP.Board
    • IP.Nexus
    • IP.Content
    • Spolszczenia
    • Gotowe przyciski
    • Inne graficzne dodatki
    • Spolszczenia przycisków
    • Zlecenia na dodatki
  • Ogólne
    • Rozmowy Niekontrolowane
    • Ogłoszenia
    • Pokaż się
    • Webmastering
    • IPS Community Suite - News
    • Spam Room
    • Kosz
  • IPSBeyond friends Tematy

Kategorie

  • IPS Community Suite 4
    • Aplikacje
    • eCommerce
    • Pluginy
    • Szablony
    • Tłumaczenia
  • IP.Board
    • Aplikacje
    • Modyfikacje
    • Hooki i pluginy
    • Skiny
    • Inne dodatki
  • Publikacje IP.Board
  • Spolszczenia
    • Spolszczenia produktów IPS
    • Spolszczenia modyfikacji
  • IP.Nexus
  • IP.Content
  • Inne dodatki
    • Przyciski
    • Inne grafiki

Blogi

Brak wyników do wyświetlenia.

Brak wyników do wyświetlenia.

Kalendarze

  • Kalendarz IPSBeyond

Kategorie

  • IPS Community Suite 4
  • IP.Board 3.3.x oraz 3.4.x
  • IP.Board 3.2.x
  • IP.Board 3.1.x
  • IP.Board 3.0.x
  • IP.Board 2.3.x

Kategorie

  • Instalacja i Rozpoczęcie pracy
  • Skiny i wygląd
  • Moderowanie
  • Bezpieczeństwo
  • Konserwacja i konfiguracja
  • Aplikacje IPS
    • IP.Blog
    • IP.Board
    • IP.Content
    • IP.Downloads
    • IP.Gallery
    • IP.Nexus
  • Zaawansowane i programowanie
    • Integracja
    • Aplikacje
    • Hooki
    • Metody API
    • Interface użytkownika
    • IP.Nexus
    • IP.Content
    • Różne
    • Schemat bazy danych
  • Baza wiedzy
  • Aplikacje (SD)
    • (SD) Apps System
    • (SD) Newsletter
    • (SD) Sales Portal Pro

Kategorie

  • Dzieci i Rodzina
  • Edukacja
  • Ekonomia i Biznes
  • Ekstremalne
  • Gry
  • Hobbystyczne
  • Inne
  • Internet i Komputery
  • Filmy, Kultura i Sztuka
  • Motoryzacja
  • Muzyka
  • Nauka i Technika
  • Regionalne
  • Rozrywka
  • Sport
  • Świat, Ludzie i Polityka
  • Towarzyskie, Erotyka i Sex
  • Wielotematyczne
  • Zdrowie i Uroda
  • Zwierzęta i Rośliny

Kategorie

  • (SD) Company Directory

Kategorie

  • (SD) My Places

Kategorie

  • (SD) Newsletter

Kategorie

  • (SD) Sales Portal Pro

Kategorie

  • (SD) Image Host

Kategorie

  • (SD) Game Keys Store

Kategorie

  • Hosting IP.Board
  • Inne usługi związane z IP.Board
  • Usługi związane z IP.Board
  • Tworzenie stron WWW

Kategorie

  • Sprzedam
    • Licencja IPS
    • Modyfikacje
    • Inne
    • Skiny
    • Skrypty
  • Kupię

Kategorie

  • Miejsca / Trasy

Znaleziono 4 wyniki

  1. 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.
  2. 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: Dodać odpowiedni kod do klasy elementu, który będzie przetrzymywał komentarze Stworzyć odpowiednią strukturę tabeli 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
  3. Czasami w aplikacji, którą piszemy potrzebujemy zrobić szybki podgląd zawartości. Przykładem takiego miejsca jest chociażby lista tematów w danym forum, gdzie po najechaniu myszką na tytuł tematu po chwili pokazuje nam się podgląd pierwszego i ostatniego posta w temacie.Podgląd taki jest efektem bardzo prostym do osiągnięcia. Pokażę to na przykładzie mojej nowej aplikacji. W widoku, w miejscu gdzie jest link do wpisu dodajemy coś takiego: data-ipsHover data-ipsHover-target='{$row->url()->setQueryString( 'preview', 1 )}' data-ipsHover-timeout='1.5' Czyli całość wygląda np. tak: <a href="{$row->url()}" data-ipsHover data-ipsHover-target='{$row->url()->setQueryString( 'preview', 1 )}' data-ipsHover-timeout='1.5'>{$row->name}</a> Następnie w kontrolerze dla takiego żądania musimy stworzyć odpowiedni kod, który obsłuży takie żądanie. W moim przypadku kod jest umieszczony w metodzie manage() i zawiera bardzo prosty kod: if( \IPS\Request::i()->isAjax() && \IPS\Request::i()->preview ) { \IPS\Output::i()->sendOutput( \IPS\Theme::i()->getTemplate( 'core' )->ticketHover( $this->ticket ) ); return; } I to jest w sumie tyle. Jak będzie wyglądać podgląd i co będziecie w nim prezentować zależy już tylko od Was.
  4. Ponieważ forum się rozwija i chcę żeby jeszcze lepiej się rozwijało postanowiłem, podzielić się czymś co jest najcenniejsze i nie da się tego w żaden sposób zmierzyć - wiedzą :) Na początek chcę zacząć pisać proste poradniki, albo bardziej zaawansowane też. Coś co przyciągnie użytkowników. Ponieważ jeszcze żaden poradnik nie powstał chciałem Was zapytać co chcielibyście przeczytać w pierwszej kolejności ? Głosujcie w ankiecie i zgłaszajcie swoje propozycje.
×

Ważne informacje

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