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

Kopiowanie Uprawnień Forum


HeadHunter

Rekomendowane odpowiedzi

Witam... podczas tworzenia for na IP.Board zauważyłem że gdy chcę ustawić uprawnienia forum, nie widzę panelu dzięki któremu mógłbym te ustawienia skopiować...

11988601.jpg

Później zauważyłem, że ten pasek pojawia się gdy chcę edytować to forum wybierając z menu kontekstowego wybranego forum "Uprawnienia"

48148284.jpg

I tutaj jest moje pytanie - czy mógłby mi ktoś powiedzieć, jak zmodyfikować skrypt (prawdopodobnie jest w tym katalogu /admin/applications/forums/modules_admin/forums/), tak aby podczas tworzenia forum wyświetlał taki sam panel kopiowania uprawnień, jak w przypadku edytowania tego forum, oraz aby ten skrypt działał?

Edytowane przez HeadHunter
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Co już masz? Bo widzę, że prosisz o modyfikację. A to wymaga czasu i posiedzenia przy tym. Samo się nie zrobi. :D

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

nie wiem czy chodzi o modyfikację czy o zmianę w skrypcie - raczej to drugie - jak już powiedziałem w katalogu (/admin/applications/forums/modules_admin/forums/) znajdują się pliki forums.php i permissions.php - i chyba w tym pierwszym trzeba zrobić zmiankę - dlaczego tak uważam?

                //-----------------------------------------
	// Get this forum details
	//-----------------------------------------

	$forum = $this->forum_functions->forum_by_id[ $this->request['f'] ];

	if( $this->request['copyForumPerms'] )
	{
		$forumToCopy	= $this->forum_functions->forum_by_id[ $this->request['copyForumPerms'] ];

		foreach( array( 'perm_view', 'perm_2', 'perm_3', 'perm_4', 'perm_5', 'perm_6' ) as $field )
		{
			$forum[ $field ] = $forumToCopy[ $field ];
		}
	}

- ten kod znalazłem w tym pliku i zastanawiam się czy nie trzeba go gdzieś skopiować, albo coś zrobić aby kopiowanie uprawnień for było możliwe z panelu tworzenia for.

Edytowane przez HeadHunter
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Widać, że coś tam wiesz - pokombinuj, napisz więcej, to wtedy będzie komuś łatwiej na to również spojrzeć. Ja dziś mam napięty dzień, że nic nowego nie ruszam.

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, znalazłem jeszcze formularz (chyba) tworzenia for -

		//-----------------------------------------
	// ADD
	//-----------------------------------------

	if ( $type == 'new' )
	{
		 $this->DB->build( array( 'select' => 'MAX(id) as top_forum', 'from' => 'forums' ) );
		 $this->DB->execute();

		 $row = $this->DB->fetch();

		 if ( $row['top_forum'] < 1 )
		 {
		 	$row['top_forum'] = 0;
		 }

		 $row['top_forum']++;

		/* Forum Information */
		//$save['id']               = $row['top_forum'];
		$save['position']         = $row['top_forum'];
		$save['topics']           = 0;
		$save['posts']            = 0;
		$save['last_post']        = 0;
		$save['last_poster_id']   = 0;
		$save['last_poster_name'] = "";

		/* Insert the record */
		$this->DB->insert( 'forums', $save );
		$forum_id = $this->DB->getInsertId();

		/* Permissions */
		$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php', 'classPublicPermissions' );
		$permissions = new $classToLoad( ipsRegistry::instance() );
		$permissions->savePermMatrix( $this->request['perms'], $forum_id, 'forum' );

		if( !$save['can_view_others'] )
		{
			$this->DB->update( 'permission_index', array( 'owner_only' => 1 ), "app='forums' AND perm_type='forum' AND perm_type_id={$forum_id}" );
		}

		/* Done */
		$this->registry->output->global_message = $forum_cat_lang . $this->lang->words['for__created'];			
		$this->registry->adminFunctions->saveAdminLog( $forum_cat_lang . " '" . $this->request['name'] . "'" . strtolower ( $this->lang->words['for__created'] ) );
	}
	else
	{
		 if ( $this->request['parent_id'] == -1 )
		 {
			$save['can_view_others'] = 1;

			/* Permissions */
			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php', 'classPublicPermissions' );
			$permissions = new $classToLoad( ipsRegistry::instance() );
			$permissions->savePermMatrix( $this->request['perms'], $this->request['f'], 'forum' );

			if( ! $save['can_view_others'] )
			{
				$this->DB->update( 'permission_index', array( 'owner_only' => 1 ), "app='forums' AND perm_type='forum' AND perm_type_id={$this->request['f']}" );
			}
			else
			{
				$this->DB->update( 'permission_index', array( 'owner_only' => 0 ), "app='forums' AND perm_type='forum' AND perm_type_id={$this->request['f']}" );
			}
		}

		$this->DB->update( 'forums', $save, "id=" . $this->request['f'] );

		$this->registry->output->global_message = $forum_cat_lang.$this->lang->words['for__edited'];

		$this->registry->adminFunctions->saveAdminLog( $forum_cat_lang." '" . $this->request['name'] . "' " . strtolower ( $this->lang->words['for__edited'] ) );
	}

	$this->recacheForums();

	$this->request['f'] = '';
	if( $save['parent_id'] > 0 )
	{
		$this->request['f'] = $save['parent_id'];
	}

	$this->forum_functions->forumsInit();

	$this->showForums();
}

/**
 * Show the form to edit permissions
 *
 * @return	void		Outputs to screen
 */	
public function permEditForm()
{

- możliwe że gdzieś tutaj należy dokonać modyfikacji, a dokładniej w miejscu podpisanym "/* Permissions */"

Odnośnik do komentarza
Udostępnij na innych stronach

Znalazłem jeszcze formularz który pokazuje uprawnienia podczas edycji fora

		//-----------------------------------------
	// Show permission matrix
	//-----------------------------------------

	if ( $type != 'edit' OR $addnew_type == 'category' )
	{
		/* Permission Class */
		$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php', 'classPublicPermissions' );
	   	$permissions = new $classToLoad( ipsRegistry::instance() );

		if( $addnew_type == 'category' )
		{
			$perm_matrix = $permissions->adminPermMatrix( 'forum', $forum, 'forums', 'view' );
		}
		else
		{
	   		$perm_matrix = $permissions->adminPermMatrix( 'forum', $forum );
		}
	}                $forum = $this->forum_functions->forum_by_id[ $this->request['f'] ];

               if( $this->request['copyForumPerms'] )
               {
                       $forumToCopy    = $this->forum_functions->forum_by_id[ $this->request['copyForumPerms'] ];

                       foreach( array( 'perm_view', 'perm_2', 'perm_3', 'perm_4', 'perm_5', 'perm_6' ) as $field )
                       {
                               $forum[ $field ] = $forumToCopy[ $field ];
                       }
               }

Edytowane przez HeadHunter
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Pokaż, co kombinujesz.. Opisz to i wtedy dopiero ktoś zajrzy. Inaczej to jak robienie tego od poczaątku.

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

Próbuję wstawić kod php który pokazuje pasek kopiowania forum podczas ich edycji, tak aby pokazywał się wtedy gdy tworzę te forum - kopiuję i wklejam - najczęściej to pokazuje mi się błąd typu "coś tam on line ###", albo nic się nie robi i nie widać żadnej zmiany...

Odnośnik do komentarza
Udostępnij na innych stronach

mam pojęcie o PHP - ale podstawowe, wiem jak zakończyć formularz, czy funkcję i gdzie co wstawić, ale nie w tym tkwi problem - bo nawet jak wstawię ten skrypt w jakiekolwiek miejsce to nic się nie pokazuje (żadna zmiana nie następuje)...

Edytowane przez HeadHunter
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ę.