Dawid Baruch - DEV blog » aplikacja http://baruch.pl Blog eksperta IP.Board Tue, 07 May 2013 13:52:48 +0000 pl-PL hourly 1 http://wordpress.org/?v=3.5.1 Konkurs na darmową aplikację http://baruch.pl/2013/03/konkurs-na-darmowa-aplikacje/ http://baruch.pl/2013/03/konkurs-na-darmowa-aplikacje/#comments Fri, 08 Mar 2013 08:15:16 +0000 Dawid Baruch http://baruch.pl/?p=819 W ostatnich dniach na łamach forum oraz na fan page’u na facebooku został ogłoszony konkurs, w którym do wygrania jest darmowa aplikacja dla IP.Board. Co trzeba zrobić aby wygrać nagrodę? Nic trudnego wystarczy zgłosić swój pomysł na aplikację a następnie mieć trochę szczęścia w głosowaniu publiczności na to, kto ma zgarnąć nagrodę. Do dnia 17 [...]

Post Konkurs na darmową aplikację pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
Konkurs na darmową aplikację W ostatnich dniach na łamach forum oraz na fan page’u na facebooku został ogłoszony konkurs, w którym do wygrania jest darmowa aplikacja dla IP.Board.

Co trzeba zrobić aby wygrać nagrodę? Nic trudnego wystarczy zgłosić swój pomysł na aplikację a następnie mieć trochę szczęścia w głosowaniu publiczności na to, kto ma zgarnąć nagrodę. Do dnia 17 marca można zgłaszać swoje propozycje. Po tym dniu zostanie uruchomione głosowanie publiczności a zwycięzca otrzyma darmową aplikację. Dla pozostałych uczestników także przewidziane są nagrody.

Aby konkurs został zrealizowany potrzebujemy jeszcze kilka zgłoszeń. No chyba, że nikt nie chce autorskiej aplikacji za darmo to nie ma żadnego problemu…

Post Konkurs na darmową aplikację pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2013/03/konkurs-na-darmowa-aplikacje/feed/ 0
IP.Downloads 2.5.2 i stare błędy z IP.Nexus… http://baruch.pl/2012/10/ip-downloads-2-5-2-i-stare-bledy-z-ip-nexus/ http://baruch.pl/2012/10/ip-downloads-2-5-2-i-stare-bledy-z-ip-nexus/#comments Fri, 12 Oct 2012 08:39:06 +0000 Dawid Baruch http://baruch.pl/?p=611 Użytkownicy IP.Board zapewne znają aplikację IP.Downloads. Służy ona do tworzenia plikowni, z której użytkownicy mogą pobierać różnego rodzaju pliki. Dodatkowo jeśli posiadamy aplikację IP.Nexus to możemy sprzedawać te pliki. Wszystko było by fajnie, gdyby nie jeden mały szczegół… Mianowicie od jednej z wersji IP.Nexus pozwala na wybranie sposobu płatności za jakiś produkt. Jest to bardzo [...]

Post IP.Downloads 2.5.2 i stare błędy z IP.Nexus… pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
IP.Downloads 2.5.2 i stare błędy z IP.Nexus... Użytkownicy IP.Board zapewne znają aplikację IP.Downloads. Służy ona do tworzenia plikowni, z której użytkownicy mogą pobierać różnego rodzaju pliki. Dodatkowo jeśli posiadamy aplikację IP.Nexus to możemy sprzedawać te pliki.

Wszystko było by fajnie, gdyby nie jeden mały szczegół… Mianowicie od jednej z wersji IP.Nexus pozwala na wybranie sposobu płatności za jakiś produkt. Jest to bardzo przydatne, jeśli chcemy zrobić płatność za jakiś produkt np. SMS’em po 3zł. I właśnie tu pojawia się problem… Po pierwsze w IP.Downloads nie możemy ustawić typów płatności, a co za tym idzie możemy kupić plik powiedzmy za 100zł płacąc SMS’em za wspomniane 3zł… I tym oto prostym sposobem użytkownicy mogą nas naciągnąć na pewną kwotę… Zgłosiłem jakiś czas temu na forum IPS’u ten problem, oczywiście stwierdzili, że nie wiedzą kiedy wyjdzie nowa wersja IP.Downloads więc nie wiedzą kiedy to poprawią i czy w ogóle to poprawią. I tak po jakichś 2 miesiącach pojawiła się nowa wersja IP.Downaloads, która oczywiście nie zawiera tej poprawki.

Gdyby nie to, że IP.Nexus jest zakodowany to sam bym to sobie przerobił no ale cóż jest jak jest… Ale żeby nie było tak ponuro to pocieszę właścicieli forów, którzy sprzedają subskrypcje poprzez IP.Nexus. A mianowicie załóżmy, że mamy konto VIP za 5zł przelewem lub 10zł SMS, oraz konto VIP za 20zł przelewem i brakiem możliwości płacenia SMS’em za to konto. Użytkownik oczywiście kupuje konto VIP za 20zł, płaci przelewem i np. po 3 miesiącach musi odnowić to konto. Tutaj natrafiamy na kolejny błąd, przy odnowieniu użytkownik może sobie wybrać dowolną metodę płatności więc jest możliwość odnowienia konta VIP poprzez SMS…

To taka mała porcja błędów, które IPS uważa nie za błędy, tylko nowe funkcjonalności, które nie wie czy wprowadzi…

Mimo to i tak polecam ten system e-commerce do prowadzenia swojego własnego sklepu z plikami, artykułami i innymi tego typu rzeczami.

Post IP.Downloads 2.5.2 i stare błędy z IP.Nexus… pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/10/ip-downloads-2-5-2-i-stare-bledy-z-ip-nexus/feed/ 0
Domyślna aplikacja w IP.Board http://baruch.pl/2012/06/domyslna-aplikacja-ip-board/ http://baruch.pl/2012/06/domyslna-aplikacja-ip-board/#comments Wed, 13 Jun 2012 07:15:57 +0000 Dawid Baruch http://baruch.pl/?p=358 Na wstępie może napiszę czym tak naprawdę jest domyślna aplikacja w IP.Board. Otóż jest to nic innego jak domyślnie wyświetlana zawartość podczas wchodzenia na „czysty” adres forum. Czystym adresem jest np. http://www.ipsbeyond.pl – dla takiego adresu domyślnie jest używana aplikacja forum. Aby zmienić tą aplikację na dowolnie inną wystarczy wykonać kilka bardzo prostych czynności. A [...]

Post Domyślna aplikacja w IP.Board pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
Na wstępie może napiszę czym tak naprawdę jest domyślna aplikacja w IP.Board. Otóż jest to nic innego jak domyślnie wyświetlana zawartość podczas wchodzenia na „czysty” adres forum. Czystym adresem jest np. http://www.ipsbeyond.pl – dla takiego adresu domyślnie jest używana aplikacja forum. Aby zmienić tą aplikację na dowolnie inną wystarczy wykonać kilka bardzo prostych czynności.

A mianowicie logujemy się na FTP i przechodzimy do katalogu głównego forum. Następnie edytujemy plik initdata.php i szukamy w nim takiego wpisu:

define( 'IPS_DEFAULT_PUBLIC_APP', 'forums' );

Aby zmienić domyślną aplikację np. na blog wystarczy zamienić słowo forums na blog. Zapisać zmiany i wgrać na serwer.

A co w przypadku gdy chcemy pozwolić np. użytkownikom decydować o tym, jakiego wyglądu chcą używać? Tutaj sprawa nie jest już niestety taka prosta, o czym przekonałem się sam niedawno. Wydawało by się, że to nie jest w cale trudne, bo wystarczy w bazie danych w tabeli ibf_members dodać nową kolumnę, która będzie decydować o wybranym wyglądzie i odpowiednio ją wykorzystać gdzieś w skrypcie. Podstawowe pytanie każdego użytkownika w tym momencie powinno brzmieć gdzie? Ja osobiście postanowiłem to zrobić w głównym pliku czyli ipsRegistry.php.

Trochę to trwało ale się udało tego dokonać. Przedstawię fragment zmian jakie dokonałem w core systemu aby to wszystko działało jak należy.

Zacznijmy od zmiany w initdata.php

Na wstępie szukamy:

if ( ! defined( 'IPS_DEFAULT_APP' ) )
{
	define( 'IPS_DEFAULT_APP', ( IPS_AREA == 'public' ) ? IPS_DEFAULT_PUBLIC_APP : 'core' );
}

i zamieniamy to na:

if ( ! defined( 'IPS_DEFAULT_APP' ) && IN_ACP )
{
	define( 'IPS_DEFAULT_APP', 'core' );
}

następnie w ipsRegistry.php

szukamy:

/* _manageIncomingURLs MUST be called first!!! */
		self::_setUpAppData();

		/* Load app / coreVariables.. must be called after app Data */
		self::_loadAppCoreVariables( IPS_APP_COMPONENT );

		/* Must be called after _manageIncomingURLs */
		self::$handles['db']->getDB()->setDebugMode( ( IPS_SQL_DEBUG_MODE ) ? ( isset($_GET['debug']) ? intval($_GET['debug']) : 0 ) : 0 );

		/* Get caches */
		self::$handles['caches']   = ips_CacheRegistry::instance();

		/* Make sure all is well before we proceed */
		try
		{
			self::instance()->setUpSettings();
		}
		catch( Exception $e )
		{
			print file_get_contents( DOC_IPS_ROOT_PATH . 'cache/skin_cache/settingsEmpty.html' );
			exit;
		}
		
		/* Bah, now let's go over any input cleaning routines that have settings *sighs* */
		self::$request = IPSLib::postParseIncomingRecursively( self::$request );
		
		/* Set up dummy member class to prevent errors if cache rebuild required */
		self::$handles['member']   = ips_MemberRegistryDummy::instance();
		
		/* Build module and application caches */
		self::instance()->checkCaches();
		
		/* Set up app specific redirects. Must be called before member/sessions setup */
		self::_parseAppResets();
		
		/* Re-assign member */
		unset( self::$handles['member'] );
		self::$handles['member']   = ips_MemberRegistry::instance();
		
		/* Load other classes */
		$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_localization.php', 'class_localization' );
		self::instance()->setClass( 'class_localization', new $classToLoad( self::instance() ) );
		
		$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php', 'classPublicPermissions' );
		self::instance()->setClass( 'permissions'       , new $classToLoad( self::instance() ) );

		/* Must be called before output initiated */
		self::getAppClass( IPS_APP_COMPONENT );
		
		if ( IPS_AREA == 'admin' )
		{
			require_once( IPS_ROOT_PATH . 'sources/classes/output/publicOutput.php' );/*noLibHook*/
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/output/adminOutput.php', 'adminOutput' );
			self::instance()->setClass( 'output'           , new $classToLoad( self::instance() ) );
			
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . "sources/classes/class_admin_functions.php", 'adminFunctions' );
			self::instance()->setClass( 'adminFunctions'   , new $classToLoad( self::instance() ) );
			
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_permissions.php', 'class_permissions' );
			self::instance()->setClass( 'class_permissions', new $classToLoad( self::instance() ) );
		}
		else
		{
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH  . 'sources/classes/output/publicOutput.php', 'output' );
			self::instance()->setClass( 'output', new $classToLoad( self::instance(), TRUE ) );
			
			register_shutdown_function( array( 'ipsRegistry', '__myDestruct' ) );
		}
		
		/* Post member processing */
		self::$handles['member']->postOutput();

		/* Add SEO templates to the output system */
		self::instance()->getClass('output')->seoTemplates = self::$_seoTemplates;

		//-----------------------------------------
		// Sort out report center early, so counts
		// and cache is right
		//-----------------------------------------

		$memberData	=& self::$handles['member']->fetchMemberData();
		$memberData['showReportCenter']	= false;

i zastępujemy to następującym kodem:

//Modify by SolutionDEVs
				
	    if( IPS_AREA == 'public' && self::$request[ 'do' ] == 'logout' )
	    {     
	        if ( ! defined( 'IPS_DEFAULT_APP' ) )
		    {
        		if ( IN_ACP )
                {
                	define( 'IPS_DEFAULT_APP', 'core' );
                }
                else
                {
                    define( 'IPS_DEFAULT_APP', 'forums' );
                }
		    }
		    
	        /* _manageIncomingURLs MUST be called first!!! */
		    self::_setUpAppData();   
		    
		    /* Load app / coreVariables.. must be called after app Data */
		    self::_loadAppCoreVariables( IPS_APP_COMPONENT );
		    
		    /* Set up app specific redirects. Must be called before member/sessions setup */
		    self::_parseAppResets();
	    }
		    
		/* Must be called after _manageIncomingURLs */
		self::$handles['db']->getDB()->setDebugMode( ( IPS_SQL_DEBUG_MODE ) ? ( isset($_GET['debug']) ? intval($_GET['debug']) : 0 ) : 0 );
		
		/* Get caches */
		self::$handles['caches']   = ips_CacheRegistry::instance();
		
		/* Make sure all is well before we proceed */
		try
		{
			self::instance()->setUpSettings();
		}
		catch( Exception $e )
		{
			print file_get_contents( DOC_IPS_ROOT_PATH . 'cache/skin_cache/settingsEmpty.html' );
			exit;
		}
		
		/* Bah, now let's go over any input cleaning routines that have settings *sighs* */
		self::$request = IPSLib::postParseIncomingRecursively( self::$request );
	
		/* Set up dummy member class to prevent errors if cache rebuild required */
		self::$handles['member']   = ips_MemberRegistryDummy::instance();
		
		/* Build module and application caches */
		self::instance()->checkCaches();
		
		/* Re-assign member */
		unset( self::$handles['member'] );
		self::$handles['member']   = ips_MemberRegistry::instance();
		
		/* Load other classes */
		$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_localization.php', 'class_localization' );
		self::instance()->setClass( 'class_localization', new $classToLoad( self::instance() ) );
		
		$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php', 'classPublicPermissions' );
		self::instance()->setClass( 'permissions'       , new $classToLoad( self::instance() ) );

		/* Post member processing */
		self::$handles['member']->postOutput();
		
		$memberData	=& self::$handles['member']->fetchMemberData();

		if ( ! defined( 'IPS_DEFAULT_APP' ) )
		{
    		if ( IN_ACP )
            {
            	define( 'IPS_DEFAULT_APP', 'core' );
            }
            else
            {
                if( ( $memberData[ 'member_id' ] == 0 ) || ( $memberData[  'member_id' ] > 0 && $memberData[  'sd32_type_view' ] != 1 ) )
                {
                    define( 'IPS_DEFAULT_APP', 'forums' );
                }
                else
                {
                    define( 'IPS_DEFAULT_APP', 'MOJA_APLIKACJA' );
                    
                }
            }
		}
		
		/* _manageIncomingURLs MUST be called first!!! */
		self::_setUpAppData();

		/* Load app / coreVariables.. must be called after app Data */
		self::_loadAppCoreVariables( IPS_APP_COMPONENT );
		
		/* Set up app specific redirects. Must be called before member/sessions setup */
		self::_parseAppResets();
		
		
		/* Must be called before output initiated */
		self::getAppClass( IPS_APP_COMPONENT );
		
		if ( IPS_AREA == 'admin' )
		{
			require_once( IPS_ROOT_PATH . 'sources/classes/output/publicOutput.php' );/*noLibHook*/
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/output/adminOutput.php', 'adminOutput' );
			self::instance()->setClass( 'output'           , new $classToLoad( self::instance() ) );
			
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . "sources/classes/class_admin_functions.php", 'adminFunctions' );
			self::instance()->setClass( 'adminFunctions'   , new $classToLoad( self::instance() ) );
			
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_permissions.php', 'class_permissions' );
			self::instance()->setClass( 'class_permissions', new $classToLoad( self::instance() ) );
		}
		else
		{
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH  . 'sources/classes/output/publicOutput.php', 'output' );
			self::instance()->setClass( 'output', new $classToLoad( self::instance(), TRUE ) );
			
			register_shutdown_function( array( 'ipsRegistry', '__myDestruct' ) );
		}
		
		/* Add SEO templates to the output system */
		self::instance()->getClass('output')->seoTemplates = self::$_seoTemplates;

		//-----------------------------------------
		// Sort out report center early, so counts
		// and cache is right
		//-----------------------------------------

		$memberData	=& self::$handles['member']->fetchMemberData();
		$memberData['showReportCenter']	= false;
		
		if( IPS_AREA == 'public' )
		{
    		self::$handles['member']->sessionClass()->updateMySession( array( 'current_appcomponent' => IPS_APP_COMPONENT ) );
		}

Następnie jedyne co jeszcze musimy zrobić, to wprowadzić jakieś ustawienie w panelu użytkownika, lub w popup’ie. Metodę wykonania zostawiam już Wam :)

Jako opcja decydująca o wyborze aplikacji decyduje pole sd32_type_view w tabeli ibf_members, które możemy dodać w następujący sposób:

ALTER TABLE ibf_members ADD COLUMN sd32_type_view TINYINT UNSIGNED NOT NULL DEFAULT 0;

Jeśli ustawimy to pole na wartość 1, wtedy będzie odpalana domyślnie nasza aplikacja, natomiast goście i użytkownicy, którzy mają inną wartość w tym polu będą widzieć forum.

Artykuł był pisany w oparciu o wersję IP.Board 3.2.3 i nie obiecuję, że w najnowszej wersji 3.3.3 coś się nie zmieniło w ipsRegistry we fragmencie, który poddaliśmy edycji.

Post Domyślna aplikacja w IP.Board pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/06/domyslna-aplikacja-ip-board/feed/ 0
Advanced Reputation System 2.0.0 – rozpoczęcie prac http://baruch.pl/2012/04/advanced-reputation-system-2-0-0-rozpoczecie-prac/ http://baruch.pl/2012/04/advanced-reputation-system-2-0-0-rozpoczecie-prac/#comments Mon, 16 Apr 2012 11:51:32 +0000 Dawid Baruch http://baruch.pl/?p=219 Dodatek Advanced Reputation System jest już zapewne wszystkim znany. Właśnie zaczynają się prace nad nową wersją oznaczoną numerkiem 2.0.0. Nowa wersja przyniesie parę bardzo ciekawych zmian, które powinny przypaść do gustu wszystkim użytkownikom… Nowa odsłona dodatku przyniesie kilka ciekawych zmian. Miedzy innymi zostanie napisana z myślą o najnowszej wersji IP.Board 3.3.x. Następnymi zmianami jakie się [...]

Post Advanced Reputation System 2.0.0 – rozpoczęcie prac pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
Dodatek Advanced Reputation System jest już zapewne wszystkim znany. Właśnie zaczynają się prace nad nową wersją oznaczoną numerkiem 2.0.0. Nowa wersja przyniesie parę bardzo ciekawych zmian, które powinny przypaść do gustu wszystkim użytkownikom…

Nowa odsłona dodatku przyniesie kilka ciekawych zmian. Miedzy innymi zostanie napisana z myślą o najnowszej wersji IP.Board 3.3.x. Następnymi zmianami jakie się pojawią względem obecnej wersji to to, że nie trzeba będzie już dokonywać żadnych edycji plików. Wszystko zostanie zautomatyzowane.

Dodatkowo co stanowi nowość dodana zostanie możliwość dania powodu przyznawanego plusa lub minusa znana z innego mojego dodatku… Ale to jeszcze nie wszystko dodatkowo zmieniona zostanie cena dodatku. Stanie się on tańszy, przez co więcej użytkowników będzie sobie mogło pozwolić na kup tego dodatku… ale to już niedługo, narazie zabieram się do pracy za owy dodatek.

Post Advanced Reputation System 2.0.0 – rozpoczęcie prac pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/04/advanced-reputation-system-2-0-0-rozpoczecie-prac/feed/ 0
(SD32) Advanced Topics Functions – prace rozpoczęte http://baruch.pl/2012/04/sd32-advanced-topics-functions-prace-rozpoczete/ http://baruch.pl/2012/04/sd32-advanced-topics-functions-prace-rozpoczete/#comments Mon, 02 Apr 2012 13:25:03 +0000 Dawid Baruch http://baruch.pl/?p=149 (SD32) Advanced Topics Functions zgodnie z wymaganiami jakie postawił klient ma być dość zaawansowaną aplikacją, pozwalającą na pewnego typu operacje na postach czy nowych tematach. Zlecenie to trafiło oczywiście do naszej mojej firmy SolutionDEVs, świadczącej profesjonalne usługi dla IP.Board. Jeśli interesują Was szczegóły dotyczące tej aplikacji to zapraszam do dalszego czytania artykułu. Jak już wcześniej [...]

Post (SD32) Advanced Topics Functions – prace rozpoczęte pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
(SD32) Advanced Topics Functions zgodnie z wymaganiami jakie postawił klient ma być dość zaawansowaną aplikacją, pozwalającą na pewnego typu operacje na postach czy nowych tematach. Zlecenie to trafiło oczywiście do naszej mojej firmy SolutionDEVs, świadczącej profesjonalne usługi dla IP.Board. Jeśli interesują Was szczegóły dotyczące tej aplikacji to zapraszam do dalszego czytania artykułu.

Jak już wcześniej wspominałem dodatek ma za zadanie dodać nową funkcjonalność do tematów i postów na forum. Dokładniej chodzi o to, ze w wybranych fora po założeniu tematu powinien on zostać przekopiowany do innego forum z zachowaniem wszystkich informacji. Dodatkowo, aplikacja powinna zamienić znaczniki CODE w treści posta na wiadomość, jaką ustawimy sobie w panelu admina. Tyle jeśli chodzi o funkcjonalność tematów.

Funkcjonalność postów jest deczko inna, a mianowicie, w temacie tak przeniesionym do innego forum jeśli użytkownik odpowie na niego to ma zostać wysłana prywatna wiadomość do grupy użytkowników (także definiowana w ustawieniach aplikacji) z treścią, którą administrator ustawi w Panelu admina oraz dodatkowymi informacjami jak adres do tematu oraz tytuł tematu.

Nie było by w tym nic skomplikowanego, gdyby nie to, że aplikacja ma działać bez najmniejszej edycji plików, co za tym idzie należy użyć systemu hooków. Prac jest dość sporo ale aplikacja naprawdę jest ciekawa. Postaram się opisywać poszczególne etapy pracy nad nią tak abyście mogli się coś także nauczyć czytając moje wpisy.

Post (SD32) Advanced Topics Functions – prace rozpoczęte pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/04/sd32-advanced-topics-functions-prace-rozpoczete/feed/ 0
(SD32) Profile – wydane !!! http://baruch.pl/2012/03/sd32-profile-wydane/ http://baruch.pl/2012/03/sd32-profile-wydane/#comments Sat, 31 Mar 2012 11:14:29 +0000 Dawid Baruch http://baruch.pl/?p=141 (SD32) Profile jest aplikacją, która została wykonana na zlecenie i nie będzie dostępna publicznie. Nie zmienia to jednak faktu, że mogę trochę napisać o tej aplikacji. Nie pozostaje mi nic innego jak tylko zachęcić do dalszego czytania niniejszego wpisu. Zacznijmy od początku. Aplikacja stworzona została dla największego polskiego forum dla rolników – AgroFoto.pl. W związku [...]

Post (SD32) Profile – wydane !!! pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
(SD32) Profile jest aplikacją, która została wykonana na zlecenie i nie będzie dostępna publicznie. Nie zmienia to jednak faktu, że mogę trochę napisać o tej aplikacji. Nie pozostaje mi nic innego jak tylko zachęcić do dalszego czytania niniejszego wpisu.

Zacznijmy od początku. Aplikacja stworzona została dla największego polskiego forum dla rolników – AgroFoto.pl. W związku z tym przy użyciu hooków dodane zostały nowe pola profilów, które dają możliwość definiowania np. posiadanych upraw, hodowanych zwierząt itp. Pola posiadają funkcję autouzupełniania. Jeśli w bazie nie zostanie odnaleziona jakaś pozycja to po wpisaniu jej przez nas do pola zostanie automtycznie zapisana w bazie. Po akceptacji przez moderatora będzie widoczne to dla wszystkich użytkowników. Dodatkowym możliwością jaką posiada użytkownik jest możliwość zdefiniowania, które pola mają być widoczne dla innych użytkowników forum, a które nie.

Obecnie prowadzę jeszcze małe prace rozwojowe, tak, aby panel administratora posiadał jeszcze dodatkowe możliwości filtrowania bazy oraz możliwości edycji danych użytkownika.

Post (SD32) Profile – wydane !!! pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/03/sd32-profile-wydane/feed/ 0
(DB32) Force Regulation – wymuszenie regulaminu http://baruch.pl/2012/03/db32-force-regulation-wymuszenie-regulaminu/ http://baruch.pl/2012/03/db32-force-regulation-wymuszenie-regulaminu/#comments Thu, 29 Mar 2012 09:25:27 +0000 Dawid Baruch http://baruch.pl/?p=121 Dzisiejszy wpis będzie trochę inny bo poświęcony jest nie tylko dodatkowi do IP.Board ale także po części prawnym aspektom prowadzenia forum dyskusyjnego. Wpis ten dlatego można podciągnąć pod aspekty prawne, że zgodnie z prawem zmieniając regulamin użytkownicy/klienci powinni zaakceptować zmiany. W związku z tym powstał ten dodatek. Na początku był on napisany tylko dla potrzeb [...]

Post (DB32) Force Regulation – wymuszenie regulaminu pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
Dzisiejszy wpis będzie trochę inny bo poświęcony jest nie tylko dodatkowi do IP.Board ale także po części prawnym aspektom prowadzenia forum dyskusyjnego.

Wpis ten dlatego można podciągnąć pod aspekty prawne, że zgodnie z prawem zmieniając regulamin użytkownicy/klienci powinni zaakceptować zmiany. W związku z tym powstał ten dodatek. Na początku był on napisany tylko dla potrzeb WHT.pl, ale ponieważ moje forum także przechodzi gruntowne zmiany to trzeba było także ten dodatek zastosować tutaj.

Cały problem polega w tym, że użytkownik aby korzystać z serwisu musi zatwierdzić regulamin. Nic więc prostszego. Zabronimy użytkownikowi korzystać z serwisu do póki nie potwierdzi, że zapoznał się z regulaminem :)

Tak właśnie działa (DB32) Force Regulation. Dodaje on wymuszenie akceptacji regulaminu. Działa to na tej zasadzie, że użytkownicy serwisu wchodzą na forum i nic innego nie widzą jak tylko regulamin i checkbox do jego akceptacji. Jeśli nie zaakceptuje regulaminu to może się tylko wylogować z forum. Nowi użytkownicy akceptują owy regulamin już na etapie rejestracji więc nie ma sensu im pokazywać regulaminu po zalogowaniu.

Post (DB32) Force Regulation – wymuszenie regulaminu pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/03/db32-force-regulation-wymuszenie-regulaminu/feed/ 0
Prace nad nowymi dodatkami IP.Board http://baruch.pl/2012/03/prace-nad-nowymi-dodatkami-ip-board/ http://baruch.pl/2012/03/prace-nad-nowymi-dodatkami-ip-board/#comments Tue, 27 Mar 2012 12:37:28 +0000 Dawid Baruch http://baruch.pl/?p=119 Dzisiejszy wpis będzie dość krótki bo poświęcony jest planowanym dodatkom jakie będę pisać. Będą to w zasadzie 3 różne dodatki, a w zasadzie jedna aplikacja pisana na wyłączność, jeden hook oraz jedna bramka płatności. Narazie nie mogę za wiele szczegółów zdradzić prócz nazwy aplikacji i hooka :) O bramce płatności narazie nie będę pisać bo [...]

Post Prace nad nowymi dodatkami IP.Board pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
Dzisiejszy wpis będzie dość krótki bo poświęcony jest planowanym dodatkom jakie będę pisać. Będą to w zasadzie 3 różne dodatki, a w zasadzie jedna aplikacja pisana na wyłączność, jeden hook oraz jedna bramka płatności.

Narazie nie mogę za wiele szczegółów zdradzić prócz nazwy aplikacji i hooka :) O bramce płatności narazie nie będę pisać bo to jeszcze nie jest pewne że będę ją pisać.

Ale wracając do tematu, aplikacja będzie nosić nazwę (SD32) Advanced Topics Functions natomiast hook będzie się nazywać (SD32) Top Statistics. Same nazwy już coś niecoś sugerują co to będą za dodatki, ale szerzej o nich będę pisać podczas pisania odpowiedniej funkcjonalności.

Post Prace nad nowymi dodatkami IP.Board pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/03/prace-nad-nowymi-dodatkami-ip-board/feed/ 0
Najnowsze dodatki IP.Board http://baruch.pl/2012/03/najnowsze-dodatki-ip-board/ http://baruch.pl/2012/03/najnowsze-dodatki-ip-board/#comments Mon, 26 Mar 2012 08:10:30 +0000 Dawid Baruch http://baruch.pl/?p=115 W minionym tygodniu na łamach IPSBeyond.pl pojawiły się 2 bardzo ciekawe dodatki. Jednym z nich jest znana już wszystkim aplikacja (DB32) Members Export, natomiast drugi dodatek to nowość. Jest to hook (SD32) Reputation Reason. Nowa odsłona aplikacji (DB32) Members Export oznaczona numerkiem 1.2.1 przynosi kilka zasadniczych zmian. Najważniejszą z nich jest możliwość wyeksportowania bazy emaili [...]

Post Najnowsze dodatki IP.Board pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
W minionym tygodniu na łamach IPSBeyond.pl pojawiły się 2 bardzo ciekawe dodatki. Jednym z nich jest znana już wszystkim aplikacja (DB32) Members Export, natomiast drugi dodatek to nowość. Jest to hook (SD32) Reputation Reason.

Nowa odsłona aplikacji (DB32) Members Export oznaczona numerkiem 1.2.1 przynosi kilka zasadniczych zmian. Najważniejszą z nich jest możliwość wyeksportowania bazy emaili w postaci pliku csv. Druga nowość wynikła w tzw. praniu. Okazało się, że przy bazie, która posiada około 100 000 adresów email i więcej php sobie nie radzi z eksportem tak dużej ilości danych. W związku z tym dorobiłem porcjowanie danych, dzięki któremu możemy eksportować emaile w paczkach po np 20 000 adresów.

Dodatek (SD32) Reputation Reason, dodaje dodatkowe możliwości podczas dawania punktów reputacji, a dokładniej daje możliwość dania powodu, dla którego tak a nie inaczej oceniamy czyjąś wypowiedź. Co prawda jest to nowy hook, ale już doczekał się kolejnej wersji. Ma to związek z tym, że np. w języku Rosyjskim powód dania reputacji był zamieniany na nieprawidłowe „krzaczki”.

Post Najnowsze dodatki IP.Board pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/03/najnowsze-dodatki-ip-board/feed/ 0
(DB32) Terrarium Company Directory – Czyli katalog firm dla IP.Board – Wydane!!! http://baruch.pl/2012/03/db32-terrarium-company-directory-czyli-katalog-firm-dla-ip-board-wydane/ http://baruch.pl/2012/03/db32-terrarium-company-directory-czyli-katalog-firm-dla-ip-board-wydane/#comments Fri, 23 Mar 2012 09:29:10 +0000 Dawid Baruch http://baruch.pl/?p=113 W ostatnim czasie pisałem o Katalogu profili firmowych dla IP.Board. I tak po paru dniach światło ujrzała finalna wersja wersja aplikacji oznaczona numerkiem 1.0.0. Sama aplikacja jest do kupienia na stronie IPSBeyond.pl a dokładnie (DB32) Terrarium Company Directory 1.0.0. Aplikacja jest płatna, ale koszt uważam, że nie jest wysoki patrząc na to, że można na [...]

Post (DB32) Terrarium Company Directory – Czyli katalog firm dla IP.Board – Wydane!!! pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
W ostatnim czasie pisałem o Katalogu profili firmowych dla IP.Board. I tak po paru dniach światło ujrzała finalna wersja wersja aplikacji oznaczona numerkiem 1.0.0.
Sama aplikacja jest do kupienia na stronie IPSBeyond.pl a dokładnie (DB32) Terrarium Company Directory 1.0.0. Aplikacja jest płatna, ale koszt uważam, że nie jest wysoki patrząc na to, że można na nim zarabiać poprzez pobieranie opłat za wpisy sponsorowane. Na stronie aplikacji zarówno na IPSBeyond.pl jak i na stronie SolutionDEVs.pl umieszczone zostały screeny z aplikacji, dzięki którym można zobaczyć jak aplikacja faktycznie wygląda w praktyce.

Post (DB32) Terrarium Company Directory – Czyli katalog firm dla IP.Board – Wydane!!! pojawił się poraz pierwszy w Dawid Baruch - DEV blog.

]]>
http://baruch.pl/2012/03/db32-terrarium-company-directory-czyli-katalog-firm-dla-ip-board-wydane/feed/ 0