Hi,

I need some help! Not sure if this is the right spot to post this, so forgive me if this could have been posted in a better place.

This is the error I'm receiving when I try to edit an article from the frontend, as a Publisher.

Fatal error: Call to a member function get() on a non-object in ... /vsc/plugins/editors/ckeditor.php on line 628

JCE works just fine, when I'm logged in as the administrator from the backend. I get the same error when I try to use TinyMice or JCE.

Sorry for the big long files ... but I'm not sure which code is creating the problem.

Thanks so much for your help!

Linda.

Here is the a clipping of what I think is the offending code (though I'm not sure ... but I couldn't include the entire file) from ckeditor.php file:

}
if(!empty($buttons))
{
$results = $this->_subject->getButtons($name, $buttons);
$return .= "\n<div id=\"editor-xtd-buttons\">\n";
foreach ($results as $button)
{
if ( $button->get('name') )
{
$modal = ($button->get('modal')) ? 'class="modal-button"' : null;
$href = ($button->get('link')) ? 'href="'.$button->get('link').'"' : null;
$onclick = ($button->get('onclick')) ? 'onclick="'.$button->get('onclick').'"' : null;
$return .= "<div class=\"button2-left\"><div class=\"".$button->get('name')."\"><a ".$modal." title=\"".$button->get('text')."\" ".$href." ".$onclick." rel=\"".$button->get('options')."\">".$button->get('text')."</a></div></div>\n";
}
}
$return .= "</div>\n";
}
return $return;
}

/*function returns instanceReady event from CKEditor
* @return variable with javascript code , define CKEDitor instanceReady event
*/
function CKEditorInstance()
{

$txt = "
CKEDITOR.on( 'instanceReady', function( ev )
{
var formater = [];
formater['indent'] = ".$this->params->get('CKEditorIndent',1).";
formater['breakBeforeOpen'] = ".$this->params->get('CKEditorBreakBeforeOpener',1).";
formater['breakAfterOpen'] = ".$this->params->get('CKEditorBreakAfterOpener',1).";
formater['breakBeforeClose'] = ".$this->params->get('CKEditorBreakBeforeCloser',0).";
formater['breakAfterClose'] = ".$this->params->get('CKEditorBreakAfterCloser',1).";
var pre_formater = ".$this->params->get('CKEditorPre',0).";
var dtd = CKEDITOR.dtd;
for ( var e in CKEDITOR.tools.extend( {}, dtd.\$nonBodyContent, dtd.\$block, dtd.\$listItem, dtd.\$tableContent ) ) {
ev.editor.dataProcessor.writer.setRules( e, formater);
}

ev.editor.dataProcessor.writer.setRules( 'pre',
{
indent: pre_formater
});
});
";
return $txt;
}
}

Here is the editor.php file:

Here is the a clipping of what I think is the offending code from editor.php file:

// Try to authenticate
$result[] = $plugin->onDisplay($editor);
// Try to authenticate -- only add to array if authentication is successful
$resultTest = $plugin->onDisplay($editor);
if ($resultTest) $result[] = $resultTest;
}

return $result;
}

/**
* Load the editor
*
* @access private
* @param array Associative array of editor config paramaters
* @since 1.5
*/
function _loadEditor($config = array())
{
//check if editor is already loaded
if(!is_null(($this->_editor))) {
return;
}

jimport('joomla.filesystem.file');

// Build the path to the needed editor plugin
$name = JFilterInput::clean($this->_name, 'cmd');
$path = JPATH_SITE.DS.'plugins'.DS.'editors'.DS.$name.'.php';

if ( ! JFile::exists($path) )
{
$message = JText::_('Cannot load the editor');
JError::raiseWarning( 500, $message );
return false;
}

// Require plugin file
require_once $path;

// Get the plugin
$plugin =& JPluginHelper::getPlugin('editors', $this->_name);
$params = new JParameter($plugin->params);
$params->loadArray($config);
$plugin->params = $params;

// Build editor plugin classname
$name = 'plgEditor'.$this->_name;
if($this->_editor = new $name ($this, (array)$plugin))
{
// load plugin parameters
$this->initialise();
JPluginHelper::importPlugin('editors-xtd');
}
}
}

Recommended Answers

All 2 Replies

It appears that, some of the classes / files are not included properly.
or the method is not there at all in the ckeditor.
Please search the method get() in the ckeditor or in your files.
If found , please include the file with correct path.

If it's a non-object, it's not being initialized properly. Look for the file that creates the $buttons array of objects.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.