CKEditor in Drupal adding "nofollow" and target ="_blank" to every link - drupal-7

Even if I set the target to _self in CKEDitor. It is putting this into every link, it seems to be the default and override any other setting the user picks. In CKEDitor source view it will not show _target="blank" but when the node is published the link turns into this.
a link looks like this
<a target="_blank" rel="nofollow" href="#" style="color: rgb(85, 26, 139); text-decoration: none;">submitting an online application</a>
http://screencast.com/t/BEbaMw8SZ
I downloaded the latest CKEditor Full Package and am using it with the Drupal module.
UPDATE: I changed to TINYMCE and am getting the same issue so this is an issue with Drupal not CKEditor

Are you using any module that alters links like External Links, External Links Filter etc? Check that.

The same was happening to me. My problem was with Twitter module.
I've solved it unchecking the Twitter link converter filter in the format that was experimenting this problem (Filtered HTML in my case). This filter was adding "target=_blank" to all of my links.
Hope it helps.

You may have this set in the format you have set for the wysiwyg editors. Check admin/config/content/formats/wysiwyg_editor and make sure that in 'Limit allowed HTML tags' the 'Add rel="nofollow" to all links' option is not checked.

Related

TYPO3 Link to local file like "file:///C:/SomeFile"

I wanted to add a link to a local file, like "file:///C:/dir/some/file.pdf", in TYPO3.
I can add the link in the backend-text editor moreover; when I display the source-code, the Link is correct. However, in the frontend the url of this same link is missing in the html-code which means the browser won't display it as a link (obviously because it is not a valid link at this point).
Example code in the backend:
Link-Name</p>
Result in the front end:
<a target="_blank">Link-Name</a>
Do any of you have an idea how I can fix this problem?
Souji
If you want to add a file:/// link in the Rich Text Editor (htmlarea) of TYPO3 up to 7.6, you need to add the parameter rtekeep="1" to the link, e.g. like this:
Link-Name
As far as I know this doesn't work in TYPO3 8.7 and newer versions which use a new Rich Text Editor called CKEditor.
By the way, not all browsers support the file:// protocol anymore.

How to include a full HTML file with specific styles inside a div

I'm making a script to preview email templates so I'm getting a full HTML page (with ) and I'm willing to make a popup with this page.
I'm getting the result from an API that gave me the full code inside a variable.
How to display this page inside my app without surcharging the styles ?
Thank you
Ps: I can't use an iframe since I can't get the preview from a simple get query (without header)
You can try one of these options (all of them have drawbacks)
ng-bind-html (AngualrJS directive) - doesn't provide styles encapsulation
iFrame - provides styles encapsulation, browser compatibility is not a problem. Still, you may need to set up or adjust your CSP policies if you are worried about security or have it already in place.
Shadow DOM - provides styles encapsulation, but you need to make sure it fits your supported browsers, and it's quite tricky to implement for AngularJS
UPD: based on your recent update, I guess you can proceed with ng-bind-html directive (HTML content will be sanitized, but you will have to cope with styles intersection and head & body tags warnings). If it doesn't work - try iFrame based on the approach referenced above (you don't need to make any external queries/requests for that).
iframe is the tag which you can use for call other html pages into your web page
<iframe src="http://www.page.com" name="targetframe" allowTransparency="true" scrolling="no" frameborder="0" >
</iframe>

2sxc: How to disable the quick insert hover items?

For the 2sxc DNN module: Is it possible to disable the "quick insert" menu (with "add content module" and "add app module") that appears when I hover over ANY module or pane on the page...whether in Edit mode or not? See screenshot:
Screenshot
I only use the Content module in a few areas and DNN's core HTML module for the rest of the content. It's very confusing to my editors. They keep accidentally adding more Content modules to the page and it's just visually distracting if not needed/wanted. It would be nice to have a choice in whether this feature is enabled. Thanks!
For now there is no real switch to do this, but you can easily do it yourself.
There are some unique css classes. If you target them in your CSS, you can make it go away. I would need more time to figure out exactly which ones they are, but I'm sure you'll figure it out.
As #iJungleBoy recommended I did it with CSS using the Snipped Inject App. Unfortunately this App also adds some menus i don't want. This is my CSS rule:
.sc-content-block-menu, .DnnModule-7777 .sc-menu { display: none !important; }
These answers are old - you can now do it by adding an attribute to any dom-element as described here: https://github.com/2sic/2sxc/wiki/Html-Js-%24quickE

ng-show and ng-hide doesn't work in chrome extension

I made a little chrome extension with angularjs and bootstrap. I have a alert like this:
<div class="alert alert-danger" role="alert" ng-show="errorMailZR">error</div>
and in angularjs controller :
$scope.errorMailZR = false;
i put it to false because i see the alert by default, it's not hidden :/ but in single web page when i go on it with browser, everything is ok. So, what i need for it's works in chrome extension ?
ng-show="false" doesn't work too in chrome extension...
UPDATE:
https://docs.angularjs.org/api/ng/directive/ngCsp#!
In order to run angular on an extension page, you have to use the ng-csp directive, or satisfy the ng-csp policies. I'm assuming you've done this, or nothing would be working at all.
Doing so turns off inline style insertion, this line in particular in angular.js (showing for reference, not for modification!):
!window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend('<style type="text/css">#charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
To get directives that rely on classes like ng-hide, ng-animate, ng-cloak, to work, manually link to the classes using:
<link rel="stylesheet" href="path/to/angular/angular-csp.css">
That's all there is to it.
OLD HACKY STUFF
Immediate fix, add this to your document head:
<style type="text/css">#charset "UTF-8";[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>
Ng-show and hide work by angular adding the class ng-hide to items that are hidden and removing it when they are shown.
Why doesn't it work in extensions?
Good question. For whatever reason (will update when I find the reason) chrome extensions prevent that style tag from being added to the head. It's probably some kind of security thingy, and there's probably a way to turn off that security bit, I'll update when I find out more.
You can debug chrome extension in chrome, just click right on extension popup. my guess is that angularjs isn't loaded or bootstraped in your extension, from my experience you should rather load angular from local files rather than CDN

How do I get the URLs to display properly when switching from the SL3 Beta?

I was using the SL3 beta and used the Deep Linking functionality as part of my application. When I switched to SL3, the deep linking stopped working. What do I need to do to get it back?
For future reference, if you add the following tag to the hosting page (html or aspx or what have you) after the object tag, it works. You may need to update the Silverlight.js too.
<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>

Resources