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

Rekomendowane odpowiedzi

Opublikowano (edytowane)

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
Opublikowano (edytowane)

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
  • Manager
Opublikowano

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.

Opublikowano

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 */"

Opublikowano (edytowane)

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
Opublikowano

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...

Opublikowano (edytowane)

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

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ę.