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

Customowe ustawienia dla forów


Przejdź do rozwiązania Rozwiązane przez Codepixel,

Rekomendowane odpowiedzi

Opublikowano

Witam, krótko zwięźle i na temat: potrzebuję pomocy, informacji bądź chociażby naprowadzenia na dobry tor. Zacząłem pracę nad pewną aplikacją, która docelowo z poziomu ustawienia forum wpływa na jego wygląd, jednakże z tego co zauważyłem, nie mam możliwości wpływania na tabelę forums_forums zatem muszę operować na tabeli od aplikacji, co nie jest żadnym problemem, problem zaczyna się w miejscu, w którym tak naprawdę nie wiem jak zaimplementować to bez "uszkodzenia" kodu podstawowego. 

 

Póki co stworzyłem Hook, który extenduje Node IPS\forums\Forum
 

class cpfiafi_hook_forum_settings extends _HOOK_CLASS_
{
	public function form( &$form )
	{
		parent::form($form);
		$form->addTab( 'tab_settings' );
		$form->addHeader( 'header_settings' );
		$form->add( new \IPS\Helpers\Form\Text('_setting') );
	}
}

 

jednakże - wiadomo, przy próbie zapisania wyrzuca błąd o braku kolumny _setting w field list tabeli forums_forums.

 

Jakieś pomysły/sugestie jak to rozwiązać bym mógł z poziomu tworzenia/edycji forum dodawać te ustawienia?

Nothing is impossible.

  • Manager
Opublikowano

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Opublikowano (edytowane)

tak mam, już czytam co tam napisali

 

z tego co rozumiem muszę stworzyć własnego Node'a i na nim bazować cały kod - co już próbowałem ale podczas zapisywania forum, wyrzucało i tak błąd o braku kolumny _setting w field list

Edytowane przez Jakub Sochalec

Nothing is impossible.

  • Rozwiązanie
Opublikowano

Rozwiązaniem okazało się dodanie takiego kodu do hooka:

 /**
  * [Node] Format form values from add/edit form for save
  *
  * @param	array	$values	Values from the form
  * @return	array
  */
public function formatFormValues( $values )
{
  if(isset($values['fa_icon']))
  {
  unset($values['fa_icon']);
  }
  return parent::formatFormValues( $values );
}

 

  • Lubię to 1

Nothing is impossible.

  • Manager
Opublikowano

Lub poprzez save, co ja stosuję, a co było w tych tematach do podałem:

/**
	 * Save Changed Columns
	 *
	 * @return	void
	 */
	public function save()
	{
		$data = $this->_data;

		$myTableData = array();
		foreach ( ( $this->_new ? $this->_data : $this->changed ) as $k => $v )
		{
			if ( \in_array( $k, array( 'col1', 'col2' ) ) )
			{
				$myTableData[ $k ] = $v;
				unset( $this->_data[ $k ] );
				unset( $this->changed[ $k ] );
			}
		}

		parent::save();
		$data['m_id'] = $this->_data['member_id'];
		$this->_data = $data;

		if ( \count( $myTableData ) )
		{
			$myTableData['m_id'] = $this->member_id;
			\IPS\Db::i()->insert( 'test55_testdata', $myTableData, TRUE );
		}
	}

 

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

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