Skocz do zawartości
  • 0
Zaloguj się, aby obserwować  
KaLu

Edycja css/html - zapis do bazy

Pytanie

KaLu    0

Cześć. Z pewien znajomy pomógł mi nieco ze zrobieniem edycji CSS/HTML, jednakże owy kod musiałem edytować w bazie danych, co było dość uciążliwe. Jak teraz, gdy zrobiłem sobie edycję z forum dodać zapis?

W tej chwili wygląda to tak:

66286417388925643169.png

I chcę, by treść tego pola textarea była wysyłana do bazy - tabela members, pole css. Oraz gdy wejdę w "dostosowanie profilu", to by był tam mój kod automatycznie tak bym nie musiał go 100 razy wklejać i takie tam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

17 odpowiedzi na to pytanie

Polecane posty

  • 0
Spanner    4237

Ale koniecznie w dostosowywaniu? musisz edytować admin/applications/core/extensions/usercpForms.php sekcje customize

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Tak, ale co dalej. Bo nie będę ukrywał, że zielony jestem w tym. Pozbyłem się tych standardowych dostosowań z szablonu.

Aktualnie mój szablon wygląda tak:


<if test="$this->memberData['gbw_allow_url_bgimage'] OR $this->memberData['gbw_allow_upload_bgimage']">


<fieldset class='ipsSettings_section'>

<h3 class='ipsSettings_sectiontitle'>Edycja kodu CSS/HTML</h3><br />

<div><br />

        <textarea id='field_7' class='input_text' cols='60' rows='4' name='field_7'>{$member['css']}</textarea>

</div>

</fieldset>

</if>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
Spanner    4237

I wyświetla Ci się to ? musisz podczas zapisu danych w tym pliku, który Ci podałem dodać zapis wartości pola field_7. Czy napewno dobrą nazwę dałeś? pobierasz z użytkownika wartość css a nazwa pola to field_7

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Znaczy pole nadal jest puste, nie wiem sam dlaczego. W tym pliku, którego ścieżkę podałeś wyżej mam jakoś zdefiniować to pole field_7?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
Spanner    4237

No ale gdzie to wkleiłeś? czy w tym szablonie przekazywana jest zmienna $member? bo normalnie dane z tabeli ibf_members są dostępne w zmiennej $this->memberData.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

To pole znajduje się w szablonie membersProfileCustomize.

Edytowano przez Karol170396

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Dobra, teraz odczytuje.


<if test="$this->memberData['css']">

<fieldset class='ipsSettings_section'>

<h3 class='ipsSettings_sectiontitle'>Edycja kodu CSS/HTML</h3><br />

<div><br />

			 <textarea id='field_7' class='input_text' cols='60' rows='4' name='field_7'>{$this->memberData['css']}</textarea>

</div>

</fieldset>

</if>

Sory za dubla, myślałem, że posty są łączone.

Edytowano przez Karol170396

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
Spanner    4237

a tam masz dostępne 3 zmienne: $options, $input, $errors więc nie wiem skąd to wszystko wziąłeś

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Rzecz w tym, że usunąłem całą zawartość szablonu i wpisałem tam tylko to, co dałem wyżej. Teraz jak zrobić, by tekst, który tam wpiszę był wysyłany do bazy danych (tabela members, pole css).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
Spanner    4237

Ok, ponieważ innych rzeczy nie masz to w pliku admin/applications/core/extensions/usercpForms.php

Znajdź:

IPSMember::save( $this->memberData['member_id'], array( 'extendedProfile' => array( 'pp_customization' => serialize( $custom ) ) ) );
i Zamień na:
IPSMember::save( $this->memberData['member_id'], array( 'core' => array( 'css' => $this->request[ 'field_7' ] ) ) );

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Okej zapisuje, ale problem w tym, że nie zamienia tego na css/html w profilu. A wcześniej, bez zamiany tych linijek było dobrze.

37019182198005513418.png

Szablon (może jakiś błąd):


<if test="$this->memberData['css']">

<fieldset class='ipsSettings_section'>

<h3 class='ipsSettings_sectiontitle'>Edycja kodu CSS/HTML</h3><br />

<div><br />

			    <textarea id='field_7' class='input_text' cols='60' rows='4' name='field_7'>{$this->memberData['css']}</textarea>

</div>

</fieldset>

</if>

Edytowano przez Karol170396

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Sory, nie mogę edytować, pewnie czas edycji minął. Dodatkowo teraz, gdy dodam sobie coś do pola "css" w phpmyadmin, to ładnie parsuje, jednakże gdy dodam kod HTML poprzez to pole w ustawieniach, to zapisuje ale już potem nie zamienia na html/css. Pokazuje się np. to:

37019182198005513418.png

Oraz, gdy pole jest puste, to w ogóle się nie pokazuje.

Edytowano przez Karol170396

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
Spanner    4237

Skoro dałeś warunek:

<if test="$this->memberData['css']">

to nie może się pokazywać jeśli jest puste

Co do błędu. To prawidłowo wszystko działa. Masz 2 wyjścia, albo niebezpiecznie używać tego pola i wtedy $this->request podczas zapisu zamienić na $_POST, albo przy wyświetlaniu pola zrobić htmlspecialchars_decode

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Jakieś dokładniejsze wskazówki lub przykład?

Warunek wywaliłem i jest git. Ale teraz zapis poprawić. ;P

Edytowano przez Karol170396

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
Spanner    4237

No to napisałem Ci co masz zmienić z zapisem lub wyświetlaniem kodu, żeby było ok

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0
KaLu    0

Okej. Użyłem tego $_POST i działa świetnie, dziękuje za pomoc :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.
Zaloguj się, aby obserwować  

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.