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

Closing Reason as Post - błąd formatowania tekstu


kodif

Rekomendowane odpowiedzi

Witam,

 

mam problem z modyfikacją Closing Reason as Post

W skrócie: modyfikacja podczas zamykania tematu dodaje ostatni post z automatyczna wiadomością o przyczynach zamknięcia wątku.

W ACP można ustawić ID użytkownika który będzie wystepował jako autor zamykającego posta (np. jakiś bot),  bądź nie wpisywać żadnego ID, wtedy autorem posta będzie ten kto zamknął temat.

I tu ciekawostka -  gdy w ACP ID nie jest wpisane, zamykam temat i mam prawidłowe formatowanie:

Automatic generated message
This topic has been closed by a moderator.

Reason: A bo tak

If you disagree with this action, please report this post and a moderator or administrator will reconsider it.

Kind regards,

 

ale gdy jest wpisane jakieś ID to post wygląda tak:

<span style='color: #ff0000'><strong class='bbc'>Automatic generated message</strong></span><br />This topic has been closed by a moderator.<br /><br /><strong class='bbc'>Reason:</strong> A bo tak<br /><br />If you disagree with this action, please report this post and a moderator or administrator will reconsider it.<br /><br />Kind regards,

 

Takie złe formatowanie pojawia się nawet wtedy gdy podam swoje ID w ACP, tj ID=1.

 

W kodzie hooka jest podmiana użytkownika

 

$tempMemberData = $this->memberData;
   $newMemberData = IPSMember::load( intval( $this->settings['im_craap_postAuthor'] ), 'all', 'id' );
   if ( is_array( $newMemberData ) AND count( $newMemberData ) )
   {
    $this->memberData = $newMemberData;
   }

a następnie wywołana funkcja

 

$return = $this->modLibrary->topicAddReply(
          $reasonText,
          $topics,
          ( $this->settings['im_craap_incPostcount'] == 1 ? 1 : 0 )
            );

Moje dwa pytania

1. Jaki związek ta funkcja z podmianą zmiennej $members bo tego kompletnie mnie kumam

2. Gdzie ta funkcja właściwie siedzi?

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo rozumiem Twoje pytanie. Zachowuje się tak jak opisałem w pierwszym poście, czyli jeśli zmienna $meberData jest nietknięta to formatowanie jest prawidłowe, jeżli $meberData była zmieniana to są krzaki.Wgląda mi to jakby treść posta była wtedy dwa razy parsowana.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

No to wpisz ID i zakomentuj to:

$reasonText = str_replace( "\n", "", IPSText::getTextClass('bbcode')->preDbParse( str_replace( "\r", '', $reasonText ) ) );

Oczywiście to w formie testu, pewny nie jestem.

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

Już to robiłem wcześniej, więcej powiem, po wymuszeniu zawartości $reasonText:

 

$reasonText ='<span style="color: #ff0000"><strong>Automatic generated hardcoded message</strong></span><br />
This topic has been closed by a moderator.<br />
<br />';

        $return = $this->modLibrary->topicAddReply( 
                                        $reasonText, 
                                        $topics, 
                                        ( $this->settings['im_craap_incPostcount'] == 1 ? 1 : 0 )
                                       );

 

efekt jest ten sam, bez wpisanego ID autora postu formatowanie jest prawidłowe, z wpisanym ID jest nieprawidłowe (tzn, post jest w postaci html'a)

Wskazuje to że błąd jest w funkcji topicAddReply

Odnośnik do komentarza
Udostępnij na innych stronach

Post w którym formatowanie jest prawidłowe (ID nie zostało wpisane w ACP)

 

 

[color=#ff0000][b]Automatic generated hardcoded message[/b][/color]<br />
This topic has been closed by a moderator.
 

Post z nieprawidłowym formatowaniem (ID zostało wpisane w ACP)

 

 

<span style="color: #ff0000"><strong>Automatic generated hardcoded message</strong></span><br /><br />
This topic has been closed by a moderator.<br /><br />
<br />
 
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

No to formatuje jakby jako HTML i dziwię się, że moja opcja nie działa. A możesz dla testu wpisać tam ID użytkownika który nie ma praw pisania HTML?

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

  • Manager

No jajca, gdzieś to formatuje jako HTML. Przypomnij mi się jutro popołudniu to to zainstaluję i sprawdzę na localu, bo na razie nie miałem czasu i sposobności na analizę tego u siebie.

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

  • Manager

Nad:

$return = $this->modLibrary->topicAddReply(

Wstaw:

$reasonText =  IPSText::br2nl( html_entity_decode( $reasonText ) );

Lub to:

$this->settings['im_craap_postTemplate'] =  IPSText::br2nl( html_entity_decode( $this->settings['im_craap_postTemplate'] ) );

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

No ja mam to samo... ja daje np komus prawa Moderatora to odrazu nie ma tego formatowania... po jakims czasie samo sie zmienia (chyba).

 

Po dodaniu

$this->settings['im_craap_postTemplate'] =  IPSText::br2nl( html_entity_decode( $this->settings['im_craap_postTemplate'] ) );

 

mam tak...

 

pre_1362911254__przechwytywanie.png

 

Po dodaniu tego:

 

$reasonText =  IPSText::br2nl( html_entity_decode( $reasonText ) );

 

jest tak: 

pre_1362911460__przechwytywanie.png

 

U innych jest normalne formatowanie... tzn grupy z uprawnieniemi moderatora.

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