Jump to:

7938 Posts in 1541 Topics by 945 members

DataObjectManager Module

SilverStripe Forums » DataObjectManager Module » Customizing SimpleTinyMCE

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Page: 1
Go to End
Author Topic: 1228 Views
  • Samba Sam
    Avatar
    Community Member
    85 Posts

    Customizing SimpleTinyMCE Link to this post

    Hi,
    I'm trying to customize the SimpleTinyMce in my DOM pop_up using the code supplied in Uncle Cheese's thread: http://www.silverstripe.org/dataobjectmanager-module-forum/show/262243?start=0

    I am getting an error with the following code regarding SimpleTinyMce:

    <?php
    class Link extends DataObject
    {
       static $db = array (
       'AltText' => 'Varchar(50)',
       'TitleText' => 'Varchar(50)',
       'Description' => 'Text',
       'LinkUrl' => 'Varchar(50)'
    );

       static $has_one = array (
       'LinksPage' => 'LinksPage',
       'LinkImage' => 'Image'
    );

    public function getDOMThumbnail()
       {return $this->LinkImage()->CroppedImage(50,50);}

    function getCMSFields_forPopup()
    {
       return new FieldSet(
       new ImageField('LinkImage'),
       new TextField('AltText'),
       new TextField('TitleText'),
       new TextField('LinkUrl'),
       $myfield = new SimpleTinyMCEField('Description');
       $myfield->setButtons(array(
       'cut,paste,|,undo,code','bold,italic,underline,|,justifyleft,justifyright'));
    }
    }
    ?>

    I've also tried adding the following to my _config.php file instead:

    SimpleTinyMCEField::set_default_buttons(array(
    'cut,paste,|,undo,code',
    'bold,italic,underline,|,justifyleft,justifyright'
    ));

    And changing the previous code to:

    ...
    function getCMSFields_forPopup()
    {
       return new FieldSet(
       new ImageField('LinkImage'),
       new TextField('AltText'),
       new TextField('TitleText'),
       new SimpleTinyMCEField('Description'),
       new TextField('LinkUrl')
    );
    }

    That doesn't work either. Nothing happens. None of the text formatting options are there. Just looks like a plain text form in the pop-up.

    Alternatively, I also tried using SimpleWysiwygField. Still nothing.
    In the _config.php file I put:

    SimpleWysiwygField::set_default_configuration(array(
    array('cut','copy','paste','|','bold','italic','underline','|','left','center','right'),
    array('ol','ul','|','hyperlink','unlink','image','|','formats')
    ));

    In the Link.php file, I put:

    new SimpleWysiwygField('Description'));


    Any help would be appreciated,
    Sam

  • Samba Sam
    Avatar
    Community Member
    85 Posts

    Re: Customizing SimpleTinyMCE Link to this post

    It appeared to be an issue with DOM's intelligent constructor. It doesn't recognize html fieldsets such as SimpleTinyMCEField.

    It worked using the expanded version in the LinksPage.php

    public function getCMSFields()
       {
          $fields = parent::getCMSFields();
          $manager = new DataObjectManager(
    $this,
    'Links',
    'Link',
    array(
    'DOMThumbnail' => 'Thumbnail',
    'AltText' => 'AltText',
    'TitleText' => 'TitleText',
    'Description' => 'Link description',
    'LinkUrl' => 'Url of link'
    ),
    'getCMSFields_forPopup'
    );
          $fields->addFieldToTab("Root.Content.Links", $manager);
          return $fields;
       }

    Sam

  • UncleCheese
    Avatar
    4085 Posts

    Re: Customizing SimpleTinyMCE Link to this post

    That's true. The intelligent constructor will look for "getCMSFields".. The "getCMSFields_forPopup" is somewhat deprecated. You should only use that if you're returning a different fieldset for the DOM popup than ModelAdmin.

  • Samba Sam
    Avatar
    Community Member
    85 Posts

    Re: Customizing SimpleTinyMCE Link to this post

    Hi,
    I got the intelligent constructor to work using "getCMSFields" instead of "getCMSFields_forPopup" as Uncle Cheese suggested.
    However, the DOM thumbnail is no longer showing up in my Links tab in the CMS when I use the intelligent constructor. What do I have to do to get the thumbnail to show again.

    Also, I get a bluescreen in Firefox after I insert html tagged text into the dataobject pop-up using the html text format icon. It appears after I insert html text, save and then close the pop up. I then have to refresh the browser for the Links tab list to reappear. Is this an issue with SimpleTinyMCE or SS?

    Any ideas on both questions?

    Thanks,
    Sam

  • UncleCheese
    Avatar
    4085 Posts

    Re: Customizing SimpleTinyMCE Link to this post

    If you're using a custom getter like a thumbnail, you need to either pass the DOM constructor an array of fields/headings, or define $summary_fields on your dataobject. It's not smart enough to look for custom getters.

    1228 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.