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


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

Rekomendowane odpowiedzi

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.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

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

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.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Rozwiązanie

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.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

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.

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