Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

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?

Opublikowano

Ad 1 i Ad 2 chodziło mi wszak o funkcję topicAddReply, bo to ona dziwnie sie zachowuje w zależności od zmiennej $memberData

Opublikowano

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.

  • Manager
Opublikowano

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.

Opublikowano

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

Opublikowano

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

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.

Opublikowano (edytowane)

Wszyscy mają wyłączoną możliwość pisania HTML. Dla testu włączyłem ją ale też nic nie dało.

Edytowane przez kodif
  • Manager
Opublikowano

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.

  • Manager
Opublikowano

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.

Opublikowano

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.

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