Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

SS3.0.3 / CMS: reload content


Reply

2 Posts   356 Views

Avatar
dacar

8 February 2013 at 9:27pm Community Member, 168 Posts

Hi,

i am just testing SS3.0.3 and found an issue. If i switch between two menu items in the sitetree, tahn the content will not reload. you have to reload the whole window to show the new content. During the installation process i had to delete mb_regex_encoding('UTF-8'); in Core.php because of some error messages. Is that related to the problem? How to aktivate mb_regex_encoding in php.ini? My PHP version is 5.3.0

Hope that someone can help. Greetings, Carsten.

ERROR [Warning]: json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument
IN GET /silver_test/admin/pages/edit/show/2
Line 103 in /framework/core/Convert.php

Source
======
94:    }
95:
96:    /**
97:     * Encode a value as a JSON encoded string.
98:     *
99:     * @param mixed $val Value to be encoded
100:     * @return string JSON encoded string
101:     */
102:    public static function raw2json($val) {
* 103:       return json_encode($val);
104:    }
105:
106:    /**
107:     * Encode an array as a JSON encoded string.
108:     * THis is an alias to {@link raw2json()}
109:     *

Trace
=====
json_encode(Array)
Convert.php:103

Convert::raw2json(Array)
PjaxResponseNegotiator.php:87

PjaxResponseNegotiator->respond(SS_HTTPRequest)
LeftAndMain.php:464

LeftAndMain->show(SS_HTTPRequest)
Controller.php:205

Controller->handleAction(SS_HTTPRequest)
RequestHandler.php:184

RequestHandler->handleRequest(SS_HTTPRequest,DataModel)
Controller.php:153

Controller->handleRequest(SS_HTTPRequest,DataModel)
LeftAndMain.php:357

LeftAndMain->handleRequest(SS_HTTPRequest,DataModel)
AdminRootController.php:89

AdminRootController->handleRequest(SS_HTTPRequest,DataModel)
Director.php:307

Director::handleRequest(SS_HTTPRequest,Session,DataModel)
Director.php:119

Director::direct(/admin/pages/edit/show/2,DataModel)
main.php:126

{"Content":null}

Avatar
dacar

8 February 2013 at 9:52pm Community Member, 168 Posts

Hi, i think i have found the solution: I have Changed "framework/core/convert.php" from

   public static function raw2json($val) {
      return json_encode($val);
   }

to

   public static function raw2json($val) {
      array_walk_recursive($val, function (&$item, $key) {
         if (is_string($item)) $item = mb_encode_numericentity($item, array (0x80, 0xffff, 0, 0xffff), 'UTF-8');
      });
      return mb_decode_numericentity(json_encode($val), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');
      
      //return json_encode($val);
   }

Now it seems to work. I think with this solution u can use SS3 without mb_regex_encoding('UTF-8');

Greetings, Carsten.