Is there any solution that redactor did not add p tags around pulse tags?
e. g. if there is a div, redactor notices this and omits the p tags.
At pulse tags redactor probably believes that it is normal text.
Is there any solution that redactor did not add p tags around pulse tags?
e. g. if there is a div, redactor notices this and omits the p tags.
At pulse tags redactor probably believes that it is normal text.
By default Redactor creates paragraph on the enter key pressed. You can change it:
$R('#content', {
markup: 'div'
});
As for around Pulse Tags - this is something that will need adding. In the meantime, surround any custom tags in Divs
Hi Oliver,
I put together a Redactor 10 (Pulse 4) plug-in a while ago that filters the user input and automatically strips <p>
tags from around Pulse plug-in content. You can find the download link at the foot of this post.
You should see this sort of code;
<p>{{pulseplugin}}</p>
getting automatically changed to;
{{pulseplugin}}
To install it you'll need to
admin/js/redactor
,<script src="<?php echo $path.'/'.$admin; ?>/js/redactor/addpulseplugin.js"></script>
),redactor/options.js
file to tell Redactor to load the plugin (plugins: ['image manager','table','fullscreen','addpulseplugin']
)I hope it helps.
(As a sidenote it would be good to see Pulse automatically load any plug-ins that are present in the admin/js/redactor
directory without having to load them manually.)
hi @TimPlumb
not working {{pulseplugin}}, does not work plugin ?
What do you see when you click on the Redactor source code view? Does the plugin alter the source code in any way?
When I wrote the code I noticed that Redactor would either wrap the short code directly in paragraph tags;
<p>{{pulseplugin}}</p>
,
or add in a line break and/or <br>
. So something like;
<p>{{pulseplugin}}
</p>
or
<p>{{pulseplugin}}<br>
</p>
If you open up the addpulseplugin.js file it may be worth changing the filter code to;
filter: function(html) { //try and match plugin content wrapped directly in <p> tags var newHTML = html; var plugintag = /(<p>)({{[^}]+}})(\\r)?(<br>)?(<\/p>)/gi; console.log(newHTML.match(plugintag)); newHTML = newHTML.replace(plugintag,"$2"); return newHTML; }
where the regular expression specifically looks for an optional return character and <br>
. I also added in a console log so you can see what the regex is matching without having to constantly switch to Redactor’s code view.
Hi Tim,
thanks for your solution. I tried, but unfortunately it doesn't work for me. I also did not get any console log but I would say the plugin is loaded.
What I did:
I have put your plugin to /admin/redactor/plugins/
Added the Plugin inside the /admin/redactor/redactor_init.js
and inserted the following line of code inside the admin/index.php
(also tried it in the root index.php)
\pulsecore\get_context()->theme->js_body->add( "{$path}/{$admin}/redactor/plugins/addpulseplugin.js", array( 'redactor' ) );
Hello Oliver.
This script is for Redactor 1.
Plugins for Redactor1 do not work in Redactor 2.
Plugin for Redactor 2, has another script header.
Try editing the script header.
I did not try it, I did not install Pulse.
`if (!RedactorPlugins) var RedactorPlugins = {};
(function($)
{
RedactorPlugins.addpulseplugin = function()
{
return {
init: function() {`
-------Redactor 2 ------------
(function($) { $.Redactor.prototype.addpulseplugin = function() { return { init: function() {
This topic was automatically closed after 5 days. New replies are no longer allowed.
From Imperavi:
"At the moment, Redactor does not support Pulse's tags without wrapping to p or div. But we are working on it and not only for pulse tags, but in general to support the insertion of template variables."