Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Dostęp do forum od XX postów


DawPi

Rekomendowane odpowiedzi

  • Manager

Jeśli z jakiś powodów chcesz umożliwić dostęp do danego forum od XX postów ( XX - liczba dowolnie modyfikowana ) postępuj wg poniższej instrukcji.

Przejdź do:

ACP > ADMIN > SQL Management > SQL Toolbox >> Run a Query

i wykonaj następujące zapytanie:

ALTER TABLE ibf_forums ADD posts_to_enter varchar(32) NOT NULL

oraz:

ALTER TABLE ibf_forums ADD posts_to_enter_group varchar(32) NOT NULL

Pamiętaj by zastąpić ibf_ prefixem Twojej bazy danych.

Nie znasz prefixu bazy danych?

Otwórz plik: conf_global.php

Znajdź:

$INFO['sql_tbl_prefix']			=	'PREFIX';

w miejscu PREFIX jest to, czego szukasz ;)

Otwórz plik: skin_acp/IPB2_Standard/acp_skin_html/cp_skin_forums.php

Znajdź:

 	<tr>
  		<td width='40%' class='tablerow1'><strong>Do you wish to allow posting in this forum?</strong><div class='desctext'>You may wish to set this to no if you will be creating sub-forums underneath this forum.  If this is set to no, the rest of the settings will have no effect.</div></td>
  		<td width='60%' class='tablerow2'>{$form['sub_can_post']}</td>
	</tr>

Dodaj poniżej:

 	<tr>
  		<td width='40%' class='tablerow1'><strong>Postów by wejść:</strong><div class='desctext'>Ustaw ilość postów wymaganych by wejść do tego forum<br>Zostaw puste by wyłączyć.</div></td>
  		<td width='60%' class='tablerow2'>{$form['posts_to_enter']}</td>
	</tr>
	<tr>
  		<td width='40%' class='tablerow1'><strong>Grupy chronione:</strong><div class='desctext'>Wybierz grupy które mimo nie posiadania wystarczającej ilości postów będą mogły omijać to zabezpieczenie.</div></td>
  		<td width='60%' class='tablerow2'>{$form['posts_to_enter_group']}</td>
	</tr>

Zapisz i wyślij.

Otwórz plik: sources/action_admin/forums.php

Znajdź:

$form['name']		 = $this->ipsclass->adskin->form_input(   'name'		, $this->ipsclass->parse_clean_value( $_POST['name'] ) ? $this->ipsclass->parse_clean_value( $_POST['name'] ) : $forum['name'] );

Dodaj powyżej:

		//-----------------------------------------
	// Bring up the groups
	//-----------------------------------------

	$this->ipsclass->DB->simple_construct( array( 'select' => 'g_id, g_title', 'from' => 'groups', 'order' => "g_title" ) );
	$this->ipsclass->DB->simple_exec();

	while ( $r = $this->ipsclass->DB->fetch_row() )
	{
		$mem_group[] = array( $r['g_id'] , $r['g_title'] );
	}
							$arr = explode( ",", $forum['posts_to_enter_group'] );
	$form['posts_to_enter'] = $this->ipsclass->adskin->form_input('posts_to_enter'   , $_POST['posts_to_enter'] ? $_POST['posts_to_enter'] : $forum['posts_to_enter'] );
	$form['posts_to_enter_group'] = $this->ipsclass->adskin->form_multiselect( "posts_to_enter_group[]", $mem_group, $arr, 6);

Znajdź:

		//-----------------------------------------
	// Save array
	//-----------------------------------------

Dodaj poniżej:

		if ( is_array($_POST['posts_to_enter_group']) )
	 {
		$_POST['posts_to_enter_group'] = implode(",",$_POST['posts_to_enter_group'] ); 
	 }

Znajdź:

'description'			 => $this->ipsclass->my_nl2br( $this->ipsclass->txt_stripslashes($_POST['description']) ),

Dodaj poniżej:

		 'posts_to_enter'				=> $this->ipsclass->input['posts_to_enter'],
	 'posts_to_enter_group'				  => $_POST['posts_to_enter_group'],

Zapisz i wyślij.

Otwórz plik: sources/action_public/forums.php

Znajdź:

		// Build permissions
	//-----------------------------------------

	$this->build_permissions();

Dodaj poniżej:

		//-----------------------------------------
	// Post Check And Group Override
	//-----------------------------------------

	if ($this->forum['posts_to_enter'])
	{
	if ( !in_array( $this->ipsclass->member['mgroup'], explode( ",", $this->forum['posts_to_enter_group'] ) ) )
	{
	if ($this->forum['posts_to_enter'] > $this->ipsclass->member['posts'])
	{
	$this->ipsclass->Error( array( LEVEL => 1, MSG => 'no_posts', EXTRA => $this->forum['posts_to_enter'] ) );
	}
	}
	}

Zapisz i wyślij.

Otwórz plik: sources/action_public/topics.php

Znajdź:

		//-----------------------------------------
	// Error out if we can not find the topic
	//-----------------------------------------

	if ( ! $this->topic['tid'] )
	{
		$this->ipsclass->Error( array( LEVEL => 1, MSG => 'is_broken_link') );
	}

Dodaj poniżej:

		//-----------------------------------------
	// Post Check And Group Override
	//-----------------------------------------

	if ($this->forum['posts_to_enter'])
	{
		if ( !in_array( $this->ipsclass->member['mgroup'], explode( ",", $this->forum['posts_to_enter_group'] ) ) )
		{
			if ($this->forum['posts_to_enter'] > $this->ipsclass->member['posts'])
			{
			 $this->ipsclass->Error( array( LEVEL => 1, MSG => 'no_posts', EXTRA => $this->forum['posts_to_enter'] ) );
			}
		}
	}

Zapisz i wyślij.

Otwórz plik:

cache/lang_cache/XX/lang_error.php

( XX to Twój język )

Znajdź:

$lang = array (

Dodaj poniżej:

'no_posts'					=>	"Przepraszamy, nie masz wystarczającej ilości postów by przeglądać to forum. Wymagane postów <#EXTRA#> by wejść.",

Zapisz i wyślij.

Enjoy!

Edytowane przez DawPi
poprawa literówki.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

ehh tak sie sklada ze nie mam tego 1

<tr>
	   <td width='40%' class='tablerow1'><strong>Do you wish to allow posting in this forum?</strong><div class='desctext'>You may wish to set this to no if you will be creating sub-forums underneath this forum.  If this is set to no, the rest of the settings will have no effect.</div></td>
	   <td width='60%' class='tablerow2'>{$form['sub_can_post']}</td>
</tr>

Edytowane przez DawPi
dodanie tagów code

Moje forum istnieje dzięki pomocy DawPi

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Na pewno masz tylko pewnie trochę inny kod. Musisz sprawdzić dokładnie. Np. spróbuj znaleźć fragment kodu, jak choćby: Do you wish to allow posting in this, a następnie wyłuskać z tego kod ;)

Nic trudnego..

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 11 miesięcy temu...
'no_posts' => "Przepraszamy, nie masz wystarczającej ilości postów by przeglądać to forym. Wymagane postów <#EXTRA#> by wejść.",

Nie chce się czepiać ale popraw tutaj "forym" na "forum" ;) Mała literówka, ale zawsze, idziemy na pełen profesjonalizm. ;)

BTW Dzięki za tutek. Przydatna rzecz.

Edytowane przez Dr R.I.P
Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
  • 3 tygodnie później...

No to z tym mam tylko to:

   		<td width='40%' class='tablerow1'><strong>Treat this forum as a category?</strong><div class='desctext'>If this is set to 'Yes' previously posted topics will not display, and posting in this forum will not be allowed.  Users will only be allowed to view the subforums under this forum.  If this is set to yes, the rest of the settings will have no effect.</div></td>
  		<td width='60%' class='tablerow2'>{$form['sub_can_post']}</td>

Jest i działa.

Podziękował serdecznie.

Edytowane przez Dr R.I.P
Odnośnik do komentarza
Udostępnij na innych stronach

Jednak jak to w życiu bywa to nie koniec.

Gdy chcę wejść w dział w którym ustawiłem taką opcję jest:

Parse error: syntax error, unexpected T_IF, expecting ';' or '{' in /home/makensis/public_html/forum/sources/action_public/forums.php on line 123

Ta linia to:

var $can_close_topics = 0;

Odnośnik do komentarza
Udostępnij na innych stronach

CODE-BOX
var $auth_key = 0;

var $announce_out = "";

var $pinned_topic_count = 0;

var $forum_has_unread_topics = 0;

var $db_row;



# Permission

var $can_edit_topics = 0;

var $can_close_topics = 0;

var $can_open_topics = 0;



# Update...

var $update_topics_close = array();

var $update_topics_open = array();


To co edytowałem wygląda tak:

CODE-BOX
if ( ! $this->forum['id'] )

{

$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'is_broken_link') );

}



//-----------------------------------------

// Build permissions

//-----------------------------------------



$this->build_permissions();


//-----------------------------------------
// Post Check And Group Override
//-----------------------------------------

if ($this->forum['posts_to_enter'])
{
if ( !in_array( $this->ipsclass->member['mgroup'], explode( ",", $this->forum['posts_to_enter_group'] ) ) )
{
if ($this->forum['posts_to_enter'] > $this->ipsclass->member['posts'])
{
$this->ipsclass->Error( array( LEVEL => 1, MSG => 'no_posts', EXTRA => $this->forum['posts_to_enter'] ) );
}
}
}
//-----------------------------------------

// Is it a redirect forum?

//-----------------------------------------



if ( isset($this->forum['redirect_on']) AND $this->forum['redirect_on'] )
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Najpierw piszesz, że masz ( wyżej ), a teraz, że nie masz. Wiesz, może lepiej nie zabieraj się za instalację modyfikacji jak nie możesz znaleźć prostego tekstu w tekście? Więcej szkód jak pożytku sobie zrobisz.

Ja się staram pomóc, ale jak widzę, że ktoś mi pisze, że ma problem z linią X, a potem, że takiej linii nie ma to sam nie wiem co mam myśleć.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Ajjj, głowa mnie już boli, nie ten plik otworzyłem... =/ Przepraszam.

CODE-BOX
class forums {

# Global

var $ipsclass;

var $output = "";

var $base_url = "";

var $html = "";

var $moderator = array();

var $forum = array();

var $mods = array();

var $show_dots = "";

var $nav_extra = "";

var $read_array = array();

var $board_html = "";

var $sub_output = "";

var $pinned_print = 0;

var $new_posts = 0;

var $is_mod = 0;

var $auth_key = 0;

var $announce_out = "";

var $pinned_topic_count = 0;

var $forum_has_unread_topics = 0;

var $db_row;

# Permission

var $can_edit_topics = 0;

var $can_close_topics = 0;

Edytowane przez Dr R.I.P
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Przecież nie ma żadnych ifów powyżej tej linii. Nie wiem co tam namieszałeś, ale może wykonaj ponownie edycję tego pliku na czystym pliku?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, sprawdziłem, działa. Widocznie coś musiałem namieszać przy edycji. Coś mi nie pasował pierwszy plik który edytowałem, bo było coś takiego:

$this->build_permissions()

Lecz po edycji całkiem czystego pliku wszystko działa.

Działa idealnie, komunikat wyświetla, omija ograniczenie dla ustawionych grup. Dzięki za pomoc. :D

Edytowane przez Dr R.I.P
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.