CkEditor set cursor behind inserted Html - ckeditor

I insert some links to CkEditor by executing
editor.insertHtml(links.join('<br />'));
now, when I continue typing I will extend the text of the last link, since the cursor is for some reason before the closing </a> it seems.

Related

CKEditor Adding Extra Classes To Widget

I've created a CKEditor widget to allow a user to input a section of text into a colored box once it is output to a report. My code is almost exactly like the simplebox example on the CK site
While I can get the widget to work and add the correct classes, 'simplebox-title' etc, it is also adding a ton of extra wrapper classes, data tags, and even an img (for the move button) when I save it into the database. So instead of having a clean:
<div class="simplebox-title"></div>
I end up with about 4 lines of code like:
<div data-cke-widget-id="0" data-cke-display-name="div" class="cke_widget_wrapper cke_widget_block" data-cke-filter="off".....etc>
All of this is going into the database. It even transfers the image of the "+" sign to move the div around. I don't want any of this as it comes through from the database into the report page.
I'm sure I'm missing something (probably obvious), but I can't find it. And blowing up the DB + having that move button won't work on a report.
I'm using PHP/Laravel, mysql, standard (not floating) CKEditor, CKEditor Save plugin.
Any help?

Insert plain text just before last closing HTML tag

I am using CKEditor in my web app. Once the user is done using the editor, they will choose some products from a selection list.
After that, they will click a preview button, at which time I need to programmatically insert some plain text immediately before the last closing HTML tag in the editor. For example:
Current Editor HTML:
<p>The products you have chosen are: </p>
After Inserting the plain text:
<p>The products you have chosen are: product 1, product 2, product 3</p>
Thank You
EDIT: Try to use jquery
$( ":last-child" ).children().last().append("product 1 product 2 product 3");
var existingContent = CKEDITOR.instances.containerID.getData();
Gets the contents of whatever container you are using to hold the edit into a string var. Change 'containerID' to be the container's css ID. This will be 'editable' if you used the suggested code.
You can write the modified string back by using innerHTML, eg:
document.getElementById('editable').innerHTML=modifiedContent;
You may be thinking why not get the content by innerHTML - the answer is that innerHTML does not preserve formatting.
HTH
For an example of how this works, take a look at codebase/srcedit.php in Hyperframe 4. http://sf.net/projects/hyperframe.

how to disable tag validation in ckeditor?

CKeditor apparently automatically creates matching end tags when you enter a start tag. Is there a way to turn this behavior off?
I have a situation where I am creating two blocks of text in an admin program using CKeditor, then I'm using these to paint a page with the first block, some static content, and then the second block. Now I've got a case where I want to wrap the static content in a table. I was thinking, No problem, I'll just put the <table> tag in the first block and the </table> tag in the second block, and the static content will be inside the table. But no, CKeditor insists on closing the table tag in the first block.
In general, I can go to source mode and enter HTML directly, but CKeditor then decides to reformat my tagging. This seems to rather defeat the purpose of having a source mode. (I hate it when I tell the computer what I want and it tells me, No, you're wrong, I know better than you what you want!)
CKEditor produces valid HTML. Valid HTML has to include both - start and end tags. There's no way to change this behaviour without hacking editor. Note that even if you'll force editor to produce content without one of these tags it will then try to fix this and won't do this as you expect. E.g. load:
<p>foo</p></td></tr></table>
And you'll completely loose this table so only regexp based fix on data loading could help. In the opposite case:
<table><tr><td><p>foo</p>
You'll end up with paragraph wrapped with table, so it's better. But what if someone would remove this table from editor contents?
Therefore you should do this integration outside editor - prepend table to contents of one editor and append to contents of second one. You simply cannot force editor to work on partial HTML.

Entering custom HTML-code in EZ Publish's TinyMCE will not work

I've added the "html"-button to TinyMCE on an EZ Publish site so that the users can write custom html into the xmlblock-field. But html-code with div-, img- and other tags get stripped when the user saves. If I use the ''-tag I assume that the html-code inside will be rendered as viewable html-code on the web page, instead of actual html-content.
How can I enable html-editing in the ezoe?
This is what I'm trying:
Click the html-button in TinyMCE.
Write html-code:
<div style="text-align:left; width:496px; margin-left:auto; margin-right:auto;">
<img id="Image-Maps_fottoey" src="some url.jpg" width="496" height="249" alt="" />
</div>
Click "Publish". When viewing the page it has no trace of the html-code from step 2.
I've tried to add the following to my override content.ini.append.php:
[literal]
AvailableClasses[]
AvailableClasses[]=html
as per http://acidre.com/blog/ez-publish-saisir-du-contenu-directement-en-html/ but that doesn't help.
Update:
It works now with the changes that I made to content.ini.append.php. This change adds "html" as a literal option and gives you a new icon in the editor, which Nicolas pointed me to (looks like a sheet of paper and is on icon row 2, first section before the Omega-icon.
When you add the html-source in the purple edit field, the editor will create links if it discovers that you've pasted inn urls. These links are blue in the editor. You must break these links with the "Break link"-icon to the far right on icon row 1. There should be no blue hyperlinks in the editor when you save. If you've managed this, the published page should display your custom html nicely :)
The usual way of enabling literal HTML in eZ Online Editor (based on TinyMCE) in eZ Publish is to uncomment the
AvailableClasses[]=html
configuration directive in an override of content.ini. A bit more of information here : http://share.ez.no/forums/setup-design/custom-tag-stop-while-running/comment64177.
Then, the literal tag should be available to editors through the literal button in TinyMCE (this button looks like a text sheet). The dropdown proposed in the pop-up menu shows 'html'.
Allowing raw html requires a few editorial guidelines and full trust in editors, but i am sure you are aware of this.
Cheers,
Nicolas

Insert an image with a link in a PDF using PDFBox

I have multiple PDFs and I want to insert a logo on every page which links to http://xyz.com (that is, clicking on the logo opens up xyz.com in the browser).
Also, I want to insert some text 'Click Here to view this page at xyz.com' next to the logo where 'Click Here' is a link (different link on every page, like http://xyz.com/show.php?id=76&page=3)
I have been able to add the logo and the text but could not figure out how to make the text a link.
I had posted this on pdfbox-users mailing list also and a pointer to the solution was posted there by Hesham G. Link

Resources