I figured out the problem why only users in admins group can read news extended text. In FormatedStory.FormatedStory(...), the line
boolean canRead = level.greaterOrEquals(Level.ACCESS_ADD);
should be changed to
boolean canRead = level.greaterOrEquals(Level.ACCESS_READ);
to allow people other than admin to read news.
To jae77,
As I look in your code in FormatedStory.FormatedStory(...), the following line is definitely wrong:
comment = !canComment ? "" :
"modules.php?op=modload&name=News&file=article&sid=$info[sid]&$commentextra";
I don't think there is any php page link in here.