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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

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

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

onAfterWrite javascript Parse Error


Go to End


6 Posts   2003 Views

Avatar
Bambii7

Community Member, 254 Posts

19 February 2010 at 5:40pm

Hey All :)
Any one else have a similar problem?
I've included a Twitter class in Page, for auto tweeting after writing data.

Goes like
public function onAfterWrite()
{
parent::onAfterWrite();
include('twitter.php');
$t = new Twitter('****','****');
$t->updateStatus("".$this->Title." http://www.mysite.com".$this->Link());
}

Everything still works fine, data is saved and tweet is sent.
But I get two errors in base.js promoting me that errors occurred and it didn't go according to plan.

From fire fox web tools plugin error console .
"reference to undefined property jQuery.cache[id][name]"
jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])

And

"reference to undefined property window.opera"
if(window.opera&&['left','top','right','bottom'].include(style))

Its probably a difficult thing to answer as it's an issue with my twitter class. Remove the twitter code and all works a charm. Just wondering if anyone had any pointers?

Avatar
bummzack

Community Member, 904 Posts

19 February 2010 at 8:10pm

What twitter class did you use?
Maybe try this one instead: http://code.google.com/p/twitter-php/

Btw. you could also use AbsoluteLink instead of yourdomain + Link. Eg.

$t->updateStatus($this->Title . ' ' . $this->AbsoluteLink()); 

Avatar
Bambii7

Community Member, 254 Posts

23 February 2010 at 1:51pm

Thanks for the reply banal. I was trying to find the AbsoluteLink, I remember seeing it a 6 months ago but couldn't remember.

I'm using Twitter class by Tijs Verkoyen, tried that google code one you linked to and I get the exact some thing. It sends the tweet fine, but javascript error on save, although the content appears to save.

It seems to be the include('twitter.class.php'); that's throwing it out.

Avatar
Bambii7

Community Member, 254 Posts

23 February 2010 at 1:56pm

Not best practice but I whacked the twitter class above the page class, and it works. Someone must have encountered this before, I'll try and find the correct way to include a custom class.

Avatar
bummzack

Community Member, 904 Posts

23 February 2010 at 7:47pm

Edited: 23/02/2010 7:48pm

I wasn't sure how PHP handles includes, but after reading this: http://www.php.net/manual/en/function.include.php it appears that if you put an include statement inside a function, the code will be included as if it was defined in the function.
Maybe this causes the issue? Have you also tried include_once (just to be sure the class doesn't get included multiple times)?

Avatar
Bambii7

Community Member, 254 Posts

11 March 2010 at 2:12pm

I can't remember off hand, but that is a good point. I usually include files before the class. I'll give it a whirl